@energycap/components 0.41.1-ECAP-27592-angular-17.20241223-1643 → 0.41.1-ECAP-26841-date-input-features.20250106-0847

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 (353) hide show
  1. package/{esm2022 → esm2020}/energycap-components.mjs +4 -4
  2. package/esm2020/lib/components.module.mjs +423 -0
  3. package/esm2020/lib/controls/banner/banner.component.mjs +109 -0
  4. package/esm2020/lib/controls/button/button.component.mjs +106 -0
  5. package/esm2020/lib/controls/button/copy-button-base.directive.mjs +67 -0
  6. package/{esm2022 → esm2020}/lib/controls/button/copy-button.directive.mjs +28 -28
  7. package/esm2020/lib/controls/button/copy-table-button.directive.mjs +43 -0
  8. package/esm2020/lib/controls/calendar/calendar-item.component.mjs +91 -0
  9. package/esm2020/lib/controls/calendar/calendar.component.mjs +248 -0
  10. package/esm2020/lib/controls/calendar/calendar.types.mjs +2 -0
  11. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +140 -0
  12. package/{esm2022 → esm2020}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
  13. package/esm2020/lib/controls/combobox/combobox.component.mjs +879 -0
  14. package/esm2020/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +57 -0
  15. package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +62 -0
  16. package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +100 -0
  17. package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +101 -0
  18. package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +76 -0
  19. package/esm2020/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +79 -0
  20. package/esm2020/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +210 -0
  21. package/esm2020/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +81 -0
  22. package/esm2020/lib/controls/date-input/date-input.component.mjs +462 -0
  23. package/esm2020/lib/controls/date-input/date-input.types.mjs +44 -0
  24. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +243 -0
  25. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +261 -0
  26. package/esm2020/lib/controls/form-control/form-control.component.mjs +98 -0
  27. package/esm2020/lib/controls/form-control-base.mjs +151 -0
  28. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
  29. package/esm2020/lib/controls/form-group/form-group.component.mjs +261 -0
  30. package/{esm2022 → esm2020}/lib/controls/help-popover/help-popover.component.mjs +31 -31
  31. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +329 -0
  32. package/{esm2022 → esm2020}/lib/controls/link-button/link-button.component.mjs +11 -11
  33. package/esm2020/lib/controls/menu/menu.component.mjs +485 -0
  34. package/{esm2022 → esm2020}/lib/controls/navigation/link-item.mjs +1 -1
  35. package/esm2020/lib/controls/navigation/nav-group.mjs +39 -0
  36. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
  37. package/{esm2022 → esm2020}/lib/controls/navigation/nav-item.mjs +1 -1
  38. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +372 -0
  39. package/esm2020/lib/controls/popover/popover.component.mjs +117 -0
  40. package/{esm2022 → esm2020}/lib/controls/radio-button/radio-button-option.mjs +2 -2
  41. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +82 -0
  42. package/esm2020/lib/controls/select/select.component.mjs +88 -0
  43. package/esm2020/lib/controls/tabs/tabs.component.mjs +47 -0
  44. package/esm2020/lib/controls/textbox/textbox.component.mjs +155 -0
  45. package/esm2020/lib/core/cache.service.mjs +105 -0
  46. package/esm2020/lib/core/custom-validators.mjs +29 -0
  47. package/esm2020/lib/core/date-time-helper.mjs +228 -0
  48. package/esm2020/lib/core/error.service.mjs +61 -0
  49. package/esm2020/lib/core/router-helper.service.mjs +111 -0
  50. package/esm2020/lib/core/scroll.service.mjs +89 -0
  51. package/{esm2022 → esm2020}/lib/core/telemetry-tracker.service.mjs +16 -16
  52. package/{esm2022 → esm2020}/lib/core/telemetry.service.mjs +38 -38
  53. package/esm2020/lib/core/validation-message.service.mjs +185 -0
  54. package/{esm2022 → esm2020}/lib/core/validation-patterns.mjs +30 -30
  55. package/esm2020/lib/core/window.service.mjs +186 -0
  56. package/esm2020/lib/display/app-bar/app-bar.component.mjs +46 -0
  57. package/esm2020/lib/display/avatar/avatar.component.mjs +67 -0
  58. package/esm2020/lib/display/avatar/avatar.service.mjs +64 -0
  59. package/esm2020/lib/display/confirm/confirm.component.mjs +168 -0
  60. package/{esm2022 → esm2020}/lib/display/dialog/dialog-content.mjs +1 -1
  61. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
  62. package/{esm2022 → esm2020}/lib/display/dialog/dialog-types.mjs +76 -76
  63. package/esm2020/lib/display/dialog/dialog.component.mjs +281 -0
  64. package/{esm2022 → esm2020}/lib/display/dialog/dialog.service.mjs +71 -71
  65. package/{esm2022 → esm2020}/lib/display/help/help-types.mjs +1 -1
  66. package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +111 -0
  67. package/{esm2022 → esm2020}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
  68. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
  69. package/esm2020/lib/display/item-display/item-display.component.mjs +81 -0
  70. package/esm2020/lib/display/json-display/json-display.component.mjs +47 -0
  71. package/esm2020/lib/display/resizable/resizable-base.mjs +120 -0
  72. package/{esm2022 → esm2020}/lib/display/resizable/resizable.component.mjs +52 -52
  73. package/{esm2022 → esm2020}/lib/display/spinner/spinner.component.mjs +12 -12
  74. package/esm2020/lib/display/splash/splash.component.mjs +42 -0
  75. package/{esm2022 → esm2020}/lib/display/splash/splash.service.mjs +35 -35
  76. package/{esm2022 → esm2020}/lib/display/table/resizable-column.component.mjs +20 -20
  77. package/esm2020/lib/display/table/resizable-table.directive.mjs +227 -0
  78. package/esm2020/lib/display/table/searchable-table.component.mjs +342 -0
  79. package/{esm2022 → esm2020}/lib/display/table/table-detail-row.component.mjs +19 -19
  80. package/esm2020/lib/display/table/table-locked-column.component.mjs +58 -0
  81. package/{esm2022 → esm2020}/lib/display/table/table-master-header-row.component.mjs +14 -14
  82. package/esm2020/lib/display/table/table-master-row.component.mjs +163 -0
  83. package/esm2020/lib/display/table/table-pagination.component.mjs +155 -0
  84. package/esm2020/lib/display/table/table-selectable-row.component.mjs +235 -0
  85. package/esm2020/lib/display/table/table.component.mjs +249 -0
  86. package/esm2020/lib/display/tags/tag.mjs +18 -0
  87. package/esm2020/lib/display/tags/tags.component.mjs +77 -0
  88. package/esm2020/lib/display/toast/toast/toast.component.mjs +77 -0
  89. package/{esm2022 → esm2020}/lib/display/toast/toast-types.mjs +7 -7
  90. package/{esm2022 → esm2020}/lib/display/toast/toast.service.mjs +35 -35
  91. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +114 -0
  92. package/{esm2022 → esm2020}/lib/display/tooltip/tooltip.component.mjs +28 -28
  93. package/{esm2022 → esm2020}/lib/display/tooltip/tooltip.service.mjs +78 -78
  94. package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
  95. package/{esm2022 → esm2020}/lib/display/tour/tour-types.mjs +33 -33
  96. package/esm2020/lib/display/tour/tour.component.mjs +398 -0
  97. package/esm2020/lib/display/tour/tour.service.mjs +75 -0
  98. package/esm2020/lib/display/tree/tree.component.mjs +135 -0
  99. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +58 -0
  100. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
  101. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
  102. package/esm2020/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +100 -0
  103. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +163 -0
  104. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
  105. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
  106. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
  107. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
  108. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
  109. package/esm2020/lib/shared/display.mjs +6 -0
  110. package/esm2020/lib/shared/form-group.helper.mjs +67 -0
  111. package/esm2020/lib/shared/json-helper.mjs +19 -0
  112. package/esm2020/lib/shared/lodash-helper.mjs +51 -0
  113. package/esm2020/lib/shared/page/page-base/page-base.component.mjs +387 -0
  114. package/{esm2022 → esm2020}/lib/shared/page/page-statuses.mjs +22 -22
  115. package/{esm2022 → esm2020}/lib/shared/page/page-title/page-title.component.mjs +23 -23
  116. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +147 -0
  117. package/{esm2022 → esm2020}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
  118. package/{esm2022 → esm2020}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
  119. package/{esm2022 → esm2020}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
  120. package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
  121. package/{esm2022 → esm2020}/lib/shared/testing/public-mocks.spec.mjs +148 -148
  122. package/{esm2022 → esm2020}/lib/shared/testing/spy-factory.spec.mjs +39 -39
  123. package/{esm2022 → esm2020}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
  124. package/{esm2022 → esm2020}/lib/shared/user-preference.service.mjs +17 -17
  125. package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
  126. package/{esm2022 → esm2020}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
  127. package/{esm2022 → esm2020}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
  128. package/esm2020/public-api.mjs +117 -0
  129. package/fesm2015/energycap-components.mjs +13370 -0
  130. package/fesm2015/energycap-components.mjs.map +1 -0
  131. package/{fesm2022 → fesm2020}/energycap-components.mjs +12971 -11819
  132. package/fesm2020/energycap-components.mjs.map +1 -0
  133. package/index.d.ts +5 -5
  134. package/lib/components.module.d.ts +92 -91
  135. package/lib/controls/banner/banner.component.d.ts +50 -50
  136. package/lib/controls/button/button.component.d.ts +78 -78
  137. package/lib/controls/button/copy-button-base.directive.d.ts +20 -20
  138. package/lib/controls/button/copy-button.directive.d.ts +14 -14
  139. package/lib/controls/button/copy-table-button.directive.d.ts +19 -19
  140. package/lib/controls/calendar/calendar-item.component.d.ts +22 -17
  141. package/lib/controls/calendar/calendar.component.d.ts +52 -54
  142. package/lib/controls/calendar/calendar.types.d.ts +11 -7
  143. package/lib/controls/checkbox/checkbox.component.d.ts +65 -65
  144. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -25
  145. package/lib/controls/combobox/combobox.component.d.ts +418 -418
  146. package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +42 -0
  147. package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +21 -0
  148. package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +21 -0
  149. package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +21 -0
  150. package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +18 -0
  151. package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +18 -0
  152. package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +21 -0
  153. package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +20 -0
  154. package/lib/controls/date-input/date-input.component.d.ts +115 -80
  155. package/lib/controls/date-input/date-input.types.d.ts +62 -0
  156. package/lib/controls/dropdown/dropdown.component.d.ts +161 -161
  157. package/lib/controls/file-upload/file-upload.component.d.ts +124 -124
  158. package/lib/controls/form-control/form-control.component.d.ts +28 -30
  159. package/lib/controls/form-control-base.d.ts +110 -110
  160. package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -73
  161. package/lib/controls/form-group/form-group.component.d.ts +105 -105
  162. package/lib/controls/help-popover/help-popover.component.d.ts +11 -11
  163. package/lib/controls/item-picker/item-picker.component.d.ts +164 -164
  164. package/lib/controls/link-button/link-button.component.d.ts +5 -5
  165. package/lib/controls/menu/menu.component.d.ts +255 -255
  166. package/lib/controls/navigation/link-item.d.ts +32 -32
  167. package/lib/controls/navigation/nav-group.d.ts +18 -18
  168. package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -42
  169. package/lib/controls/navigation/nav-item.d.ts +31 -31
  170. package/lib/controls/numericbox/numericbox.component.d.ts +148 -148
  171. package/lib/controls/popover/popover.component.d.ts +51 -51
  172. package/lib/controls/radio-button/radio-button-option.d.ts +19 -19
  173. package/lib/controls/radio-button/radio-button.component.d.ts +53 -53
  174. package/lib/controls/select/select.component.d.ts +44 -44
  175. package/lib/controls/tabs/tabs.component.d.ts +30 -30
  176. package/lib/controls/textbox/textbox.component.d.ts +107 -107
  177. package/lib/core/cache.service.d.ts +33 -33
  178. package/lib/core/custom-validators.d.ts +20 -20
  179. package/lib/core/date-time-helper.d.ts +101 -101
  180. package/lib/core/error.service.d.ts +20 -20
  181. package/lib/core/router-helper.service.d.ts +48 -48
  182. package/lib/core/scroll.service.d.ts +36 -36
  183. package/lib/core/telemetry-tracker.service.d.ts +13 -13
  184. package/lib/core/telemetry.service.d.ts +31 -31
  185. package/lib/core/validation-message.service.d.ts +26 -26
  186. package/lib/core/validation-patterns.d.ts +22 -22
  187. package/lib/core/window.service.d.ts +116 -116
  188. package/lib/display/app-bar/app-bar.component.d.ts +20 -20
  189. package/lib/display/avatar/avatar.component.d.ts +35 -35
  190. package/lib/display/avatar/avatar.service.d.ts +24 -24
  191. package/lib/display/confirm/confirm.component.d.ts +123 -123
  192. package/lib/display/dialog/dialog-content.d.ts +19 -19
  193. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -32
  194. package/lib/display/dialog/dialog-types.d.ts +130 -130
  195. package/lib/display/dialog/dialog.component.d.ts +120 -120
  196. package/lib/display/dialog/dialog.service.d.ts +48 -48
  197. package/lib/display/help/help-types.d.ts +33 -33
  198. package/lib/display/hierarchy/hierarchy-base.d.ts +97 -97
  199. package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -53
  200. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -34
  201. package/lib/display/item-display/item-display.component.d.ts +43 -43
  202. package/lib/display/json-display/json-display.component.d.ts +16 -16
  203. package/lib/display/resizable/resizable-base.d.ts +67 -67
  204. package/lib/display/resizable/resizable.component.d.ts +31 -31
  205. package/lib/display/spinner/spinner.component.d.ts +5 -5
  206. package/lib/display/splash/splash.component.d.ts +16 -16
  207. package/lib/display/splash/splash.service.d.ts +22 -22
  208. package/lib/display/table/resizable-column.component.d.ts +10 -10
  209. package/lib/display/table/resizable-table.directive.d.ts +93 -93
  210. package/lib/display/table/searchable-table.component.d.ts +206 -206
  211. package/lib/display/table/table-detail-row.component.d.ts +8 -8
  212. package/lib/display/table/table-locked-column.component.d.ts +20 -20
  213. package/lib/display/table/table-master-header-row.component.d.ts +9 -9
  214. package/lib/display/table/table-master-row.component.d.ts +113 -113
  215. package/lib/display/table/table-pagination.component.d.ts +91 -91
  216. package/lib/display/table/table-selectable-row.component.d.ts +102 -102
  217. package/lib/display/table/table.component.d.ts +121 -121
  218. package/lib/display/tags/tag.d.ts +18 -18
  219. package/lib/display/tags/tags.component.d.ts +48 -48
  220. package/lib/display/toast/toast/toast.component.d.ts +23 -23
  221. package/lib/display/toast/toast-types.d.ts +24 -24
  222. package/lib/display/toast/toast.service.d.ts +20 -20
  223. package/lib/display/toast/toaster/toaster.component.d.ts +35 -35
  224. package/lib/display/tooltip/tooltip.component.d.ts +70 -70
  225. package/lib/display/tooltip/tooltip.service.d.ts +16 -16
  226. package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -44
  227. package/lib/display/tour/tour-types.d.ts +70 -70
  228. package/lib/display/tour/tour.component.d.ts +147 -147
  229. package/lib/display/tour/tour.service.d.ts +38 -38
  230. package/lib/display/tree/tree.component.d.ts +75 -75
  231. package/lib/display/view-overlay/view-overlay.component.d.ts +38 -38
  232. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -14
  233. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -60
  234. package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +23 -0
  235. package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -101
  236. package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -21
  237. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -9
  238. package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -36
  239. package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -23
  240. package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -18
  241. package/lib/shared/display.d.ts +42 -42
  242. package/lib/shared/form-group.helper.d.ts +31 -31
  243. package/lib/shared/json-helper.d.ts +7 -7
  244. package/lib/shared/lodash-helper.d.ts +18 -18
  245. package/lib/shared/page/page-base/page-base.component.d.ts +259 -259
  246. package/lib/shared/page/page-statuses.d.ts +13 -13
  247. package/lib/shared/page/page-title/page-title.component.d.ts +9 -9
  248. package/lib/shared/page/page-view/page-view.component.d.ts +102 -102
  249. package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -4
  250. package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -4
  251. package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -30
  252. package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -28
  253. package/lib/shared/testing/public-mocks.spec.d.ts +90 -90
  254. package/lib/shared/testing/spy-factory.spec.d.ts +27 -27
  255. package/lib/shared/testing/translation-mocks.spec.d.ts +30 -30
  256. package/lib/shared/user-preference.service.d.ts +13 -13
  257. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -134
  258. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -27
  259. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -10
  260. package/package.json +18 -12
  261. package/public-api.d.ts +113 -111
  262. package/schematics/rxjs-7-upgrade/index.d.ts +3 -3
  263. package/schematics/rxjs-7-upgrade/index.js +67 -67
  264. package/schematics/rxjs-7-upgrade/index.js.map +1 -1
  265. package/schematics/rxjs-7-upgrade/schema.d.ts +4 -4
  266. package/schematics/rxjs-7-upgrade/schema.js +2 -2
  267. package/schematics/utilities/typescript.d.ts +7 -7
  268. package/schematics/utilities/typescript.js +41 -41
  269. package/schematics/utilities/workspace.d.ts +8 -8
  270. package/schematics/utilities/workspace.js +71 -71
  271. package/schematics/utilities/workspace.js.map +1 -1
  272. package/src/assets/locales/en_US.json +9 -1
  273. package/esm2022/lib/components.module.mjs +0 -418
  274. package/esm2022/lib/controls/banner/banner.component.mjs +0 -109
  275. package/esm2022/lib/controls/button/button.component.mjs +0 -106
  276. package/esm2022/lib/controls/button/copy-button-base.directive.mjs +0 -67
  277. package/esm2022/lib/controls/button/copy-table-button.directive.mjs +0 -43
  278. package/esm2022/lib/controls/calendar/calendar-item.component.mjs +0 -59
  279. package/esm2022/lib/controls/calendar/calendar.component.mjs +0 -200
  280. package/esm2022/lib/controls/calendar/calendar.types.mjs +0 -4
  281. package/esm2022/lib/controls/checkbox/checkbox.component.mjs +0 -140
  282. package/esm2022/lib/controls/combobox/combobox.component.mjs +0 -879
  283. package/esm2022/lib/controls/date-input/date-input.component.mjs +0 -256
  284. package/esm2022/lib/controls/dropdown/dropdown.component.mjs +0 -243
  285. package/esm2022/lib/controls/file-upload/file-upload.component.mjs +0 -261
  286. package/esm2022/lib/controls/form-control/form-control.component.mjs +0 -104
  287. package/esm2022/lib/controls/form-control-base.mjs +0 -151
  288. package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
  289. package/esm2022/lib/controls/form-group/form-group.component.mjs +0 -261
  290. package/esm2022/lib/controls/item-picker/item-picker.component.mjs +0 -329
  291. package/esm2022/lib/controls/menu/menu.component.mjs +0 -485
  292. package/esm2022/lib/controls/navigation/nav-group.mjs +0 -39
  293. package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
  294. package/esm2022/lib/controls/numericbox/numericbox.component.mjs +0 -372
  295. package/esm2022/lib/controls/popover/popover.component.mjs +0 -117
  296. package/esm2022/lib/controls/radio-button/radio-button.component.mjs +0 -82
  297. package/esm2022/lib/controls/select/select.component.mjs +0 -88
  298. package/esm2022/lib/controls/tabs/tabs.component.mjs +0 -47
  299. package/esm2022/lib/controls/textbox/textbox.component.mjs +0 -155
  300. package/esm2022/lib/core/cache.service.mjs +0 -105
  301. package/esm2022/lib/core/custom-validators.mjs +0 -29
  302. package/esm2022/lib/core/date-time-helper.mjs +0 -220
  303. package/esm2022/lib/core/error.service.mjs +0 -61
  304. package/esm2022/lib/core/router-helper.service.mjs +0 -111
  305. package/esm2022/lib/core/scroll.service.mjs +0 -89
  306. package/esm2022/lib/core/validation-message.service.mjs +0 -185
  307. package/esm2022/lib/core/window.service.mjs +0 -186
  308. package/esm2022/lib/display/app-bar/app-bar.component.mjs +0 -46
  309. package/esm2022/lib/display/avatar/avatar.component.mjs +0 -67
  310. package/esm2022/lib/display/avatar/avatar.service.mjs +0 -64
  311. package/esm2022/lib/display/confirm/confirm.component.mjs +0 -168
  312. package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
  313. package/esm2022/lib/display/dialog/dialog.component.mjs +0 -281
  314. package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +0 -111
  315. package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
  316. package/esm2022/lib/display/item-display/item-display.component.mjs +0 -81
  317. package/esm2022/lib/display/json-display/json-display.component.mjs +0 -47
  318. package/esm2022/lib/display/resizable/resizable-base.mjs +0 -120
  319. package/esm2022/lib/display/splash/splash.component.mjs +0 -42
  320. package/esm2022/lib/display/table/resizable-table.directive.mjs +0 -227
  321. package/esm2022/lib/display/table/searchable-table.component.mjs +0 -342
  322. package/esm2022/lib/display/table/table-locked-column.component.mjs +0 -58
  323. package/esm2022/lib/display/table/table-master-row.component.mjs +0 -163
  324. package/esm2022/lib/display/table/table-pagination.component.mjs +0 -155
  325. package/esm2022/lib/display/table/table-selectable-row.component.mjs +0 -235
  326. package/esm2022/lib/display/table/table.component.mjs +0 -249
  327. package/esm2022/lib/display/tags/tag.mjs +0 -18
  328. package/esm2022/lib/display/tags/tags.component.mjs +0 -77
  329. package/esm2022/lib/display/toast/toast/toast.component.mjs +0 -77
  330. package/esm2022/lib/display/toast/toaster/toaster.component.mjs +0 -114
  331. package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
  332. package/esm2022/lib/display/tour/tour.component.mjs +0 -398
  333. package/esm2022/lib/display/tour/tour.service.mjs +0 -75
  334. package/esm2022/lib/display/tree/tree.component.mjs +0 -135
  335. package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +0 -58
  336. package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
  337. package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
  338. package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +0 -166
  339. package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
  340. package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
  341. package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
  342. package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
  343. package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
  344. package/esm2022/lib/shared/display.mjs +0 -6
  345. package/esm2022/lib/shared/form-group.helper.mjs +0 -67
  346. package/esm2022/lib/shared/json-helper.mjs +0 -19
  347. package/esm2022/lib/shared/lodash-helper.mjs +0 -52
  348. package/esm2022/lib/shared/page/page-base/page-base.component.mjs +0 -387
  349. package/esm2022/lib/shared/page/page-view/page-view.component.mjs +0 -147
  350. package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
  351. package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
  352. package/esm2022/public-api.mjs +0 -115
  353. package/fesm2022/energycap-components.mjs.map +0 -1
@@ -1,18 +0,0 @@
1
- /** Tag contains a label and type. Type is default by default */
2
- export class Tag {
3
- constructor(label, type, classList, icon, isDismissable, tooltip, url, target) {
4
- this.target = '_self';
5
- this.label = label;
6
- this.type = type || 'info';
7
- this.icon = icon;
8
- this.isDismissable = isDismissable ?? false;
9
- this.tooltip = tooltip;
10
- this.url = url;
11
- this.target = target || '_self';
12
- if (classList) {
13
- this.classList = classList;
14
- }
15
- }
16
- }
17
- ;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsZ0VBQWdFO0FBQ2hFLE1BQU0sT0FBTyxHQUFHO0lBbUJkLFlBQVksS0FBYSxFQUFFLElBQWMsRUFBRSxTQUFrQixFQUFFLElBQWEsRUFBRSxhQUF1QixFQUFFLE9BQWdCLEVBQUUsR0FBWSxFQUFFLE1BQW1CO1FBRm5KLFdBQU0sR0FBZ0IsT0FBTyxDQUFDO1FBR25DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFFaEMsSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIFRhZyB0eXBlIHVzZWQgdG8gc3R5bGUgdGhlIHRhZyAqL1xyXG5leHBvcnQgdHlwZSBUYWdUeXBlID0gXCJpbmZvXCIgfCBcInN1Y2Nlc3NcIiB8IFwid2FybmluZ1wiIHwgXCJkYW5nZXJcIiB8IFwiYWNjZW50XCIgfCBcImNoYXJnZWJhY2tcIiB8IFwiYWNjcnVhbFwiIHwgXCJpbnZlcnRlZFwiIHwgXCJzeXN0ZW1cIjtcclxuXHJcbi8qKiBMaW5rIHRhcmdldCBvcHRpb25zLCBzaGFyZWQgYW1vbmdzdCB0YWcsIG1lbnUgYW5kIGl0ZW0gZGlzcGxheSAqL1xyXG5leHBvcnQgdHlwZSBMaW5rVGFyZ2V0ID0gJ19zZWxmJyB8ICdfYmxhbmsnIHwgJ19wYXJlbnQnIHwgJ190b3AnO1xyXG5cclxuLyoqIFRhZyBjb250YWlucyBhIGxhYmVsIGFuZCB0eXBlLiBUeXBlIGlzIGRlZmF1bHQgYnkgZGVmYXVsdCAqL1xyXG5leHBvcnQgY2xhc3MgVGFnIHtcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcclxuXHJcbiAgcHVibGljIHR5cGU6IFRhZ1R5cGU7XHJcblxyXG4gIHB1YmxpYyBpY29uPzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgaXNEaXNtaXNzYWJsZT86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBDU1MgY2xhc3NlcyB0byBhcHBseSB0byB0YWcgZm9yIGN1c3RvbSBzdHlsaW5nICovXHJcbiAgcHVibGljIGNsYXNzTGlzdD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIHRvb2x0aXA/OiBzdHJpbmc7XHJcblxyXG4gIC8qKiBXaGVuIHNldCBhIGh5cGVybGluayB3aWxsIGJlIHNob3duIGxpbmtpbmcgdG8gdGhlIHZhbHVlIHNldCAqL1xyXG4gIHB1YmxpYyB1cmw/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyB0YXJnZXQ/OiBMaW5rVGFyZ2V0ID0gJ19zZWxmJztcclxuXHJcbiAgY29uc3RydWN0b3IobGFiZWw6IHN0cmluZywgdHlwZT86IFRhZ1R5cGUsIGNsYXNzTGlzdD86IHN0cmluZywgaWNvbj86IHN0cmluZywgaXNEaXNtaXNzYWJsZT86IGJvb2xlYW4sIHRvb2x0aXA/OiBzdHJpbmcsIHVybD86IHN0cmluZywgdGFyZ2V0PzogTGlua1RhcmdldCApIHtcclxuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcclxuICAgIHRoaXMudHlwZSA9IHR5cGUgfHwgJ2luZm8nO1xyXG4gICAgdGhpcy5pY29uID0gaWNvbjtcclxuICAgIHRoaXMuaXNEaXNtaXNzYWJsZSA9IGlzRGlzbWlzc2FibGUgPz8gZmFsc2U7XHJcbiAgICB0aGlzLnRvb2x0aXAgPSB0b29sdGlwO1xyXG4gICAgdGhpcy51cmwgPSB1cmw7XHJcbiAgICB0aGlzLnRhcmdldCA9IHRhcmdldCB8fCAnX3NlbGYnO1xyXG5cclxuICAgIGlmIChjbGFzc0xpc3QpIHtcclxuICAgICAgdGhpcy5jbGFzc0xpc3QgPSBjbGFzc0xpc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG59OyJdfQ==
@@ -1,77 +0,0 @@
1
- import { Component, Input, Output, EventEmitter } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@ngx-translate/core";
5
- export class TagsComponent {
6
- constructor() {
7
- /**The ID of this set of tags */
8
- this.id = '';
9
- /**
10
- * Determines whether the tags will wrap or not
11
- *
12
- * @type {boolean}
13
- * @memberof TagsComponent
14
- */
15
- this.wrap = true;
16
- /**
17
- * Displays the tags in condensed mode
18
- */
19
- this.isCondensed = false;
20
- /**
21
- * Emits the tag item when the tag's close button is clicked
22
- */
23
- this.tagClosed = new EventEmitter();
24
- /**
25
- * Tags to be displayed
26
- *
27
- * @type {Tag[]}
28
- * @memberof TagsComponent
29
- */
30
- this.tagsArray = [];
31
- }
32
- /**
33
- * Angular onChanges lifecycle hook
34
- * @see {@link https://angular.io/guide/lifecycle-hooks | Life-cycle hooks}
35
- *
36
- * @param {SimpleChanges} changes
37
- * @memberof TagsComponent
38
- */
39
- ngOnChanges(changes) {
40
- if (changes.tags) {
41
- if (this.tags) {
42
- // If only given a single item, put it in an array so it works in the template
43
- if (Array.isArray(this.tags)) {
44
- this.tagsArray = this.tags;
45
- }
46
- else {
47
- this.tagsArray = [this.tags];
48
- }
49
- }
50
- else {
51
- // reset array if tags becomes undefined
52
- this.tagsArray = [];
53
- }
54
- }
55
- }
56
- closeTag(tag) {
57
- this.tagsArray = this.tagsArray.filter(t => t !== tag);
58
- this.tagClosed.emit(tag);
59
- }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
61
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TagsComponent, selector: "ec-tags", inputs: { id: "id", tags: "tags", wrap: "wrap", isCondensed: "isCondensed" }, outputs: { tagClosed: "tagClosed" }, usesOnChanges: true, ngImport: i0, template: "<ul class=\"tags\"\r\n [class.is-wrapped]=\"wrap\">\r\n <li *ngFor=\"let tag of tagsArray; index as i\"\r\n id=\"{{id}}_tag_{{i}}\"\r\n class=\"tag is-{{tag.type}} {{tag.classList}} mr-1\"\r\n [ngClass]=\"{'text-caption-1': !isCondensed, 'text-caption-2': isCondensed, 'is-condensed': isCondensed, 'pr-0': tag.isDismissable, 'is-link': tag.url}\"\r\n title=\"{{tag.tooltip | translate}}\">\r\n <i *ngIf=\"tag.icon\"\r\n class=\"ec-icon {{tag.icon}} ec-icon-sm\"></i>\r\n <span *ngIf=\"!tag.url\">{{tag.label | translate}}</span>\r\n\r\n <a *ngIf=\"tag.url\"\r\n id=\"{{id}}_tag_{{i}}_link\"\r\n class=\"font-weight-bold\"\r\n href=\"{{tag.url}}\"\r\n target=\"{{tag.target}}\">{{tag.label | translate}}</a>\r\n\r\n <button id=\"{{id}}_tag_{{i}}_dismissButton\"\r\n *ngIf=\"tag.isDismissable\"\r\n (click)=\"closeTag(tag)\">\r\n <i class=\"ec-icon ec-icon-sm icon-cancel\"></i>\r\n </button>\r\n </li>\r\n</ul>", styles: ["@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{display:block}.tags{padding:0;margin:0;list-style:none;display:flex}.tags.is-wrapped{flex-wrap:wrap;margin-top:.25rem}.tags.is-wrapped>.tag{margin-bottom:.25rem}.tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:var(--ec-color-gray-1);border:2px solid var(--ec-color-gray-4);display:inline-flex;align-items:center;border-radius:calc(var(--ec-border-radius, .25rem) * 3);height:1.5rem;line-height:1.25rem;padding:0 .4375rem;vertical-align:top}.tag>.ec-icon:first-child{margin-right:.1875rem}.tag .ec-icon{display:flex;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;width:auto;height:auto;min-width:1em;justify-content:center}.tag.is-inverted{background-color:var(--ec-background-color);border-color:var(--ec-background-color)}.tag.is-info{background-color:var(--ec-color-cobalt-1);border-color:var(--ec-color-info)}.tag.is-info>.ec-icon:first-child{color:var(--ec-color-info)}.tag.is-success{background-color:var(--ec-color-green-1);border-color:var(--ec-color-success)}.tag.is-success>.ec-icon:first-child{color:var(--ec-color-success)}.tag.is-warning{background-color:var(--ec-color-yellow-1);border-color:var(--ec-color-caution)}.tag.is-warning>.ec-icon:first-child{color:var(--ec-color-caution)}.tag.is-danger{background-color:var(--ec-color-red-1);border-color:var(--ec-color-danger)}.tag.is-danger>.ec-icon:first-child{color:var(--ec-color-danger)}.tag.is-accent{background-color:var(--ec-color-purple-1);border-color:var(--ec-color-accent)}.tag.is-accent>.ec-icon:first-child{color:var(--ec-color-accent)}.tag.is-chargeback{background-color:var(--ec-color-orange-1);border-color:var(--ec-color-orange-7)}.tag.is-chargeback>.ec-icon:first-child{color:var(--ec-color-orange-7)}.tag.is-accrual{background-color:var(--ec-color-aqua-1);border-color:var(--ec-color-aqua-5)}.tag.is-accrual>.ec-icon:first-child{color:var(--ec-color-aqua-5)}.tag.is-system{background-color:var(--ec-color-gray-1);border-color:var(--ec-color-gray-4)}.tag.is-system>.ec-icon:first-child{color:var(--ec-color-gray-4)}button{background-color:transparent;border:0;display:flex;align-items:center;padding:0 .25rem;height:100%;cursor:pointer;position:relative}button:hover,button:focus{outline:none}button:hover:before,button:focus:before{display:block;content:\"\";position:absolute;inset:.0625rem .125rem;background-color:#1a1a231a;border-radius:.125rem}.is-condensed{border-radius:var(--ec-border-radius);border-width:1px;padding:0 .25rem;height:1.125rem;line-height:1.125rem;min-width:1.125rem;justify-content:center}.is-condensed>.ec-icon:first-child{margin-right:.125rem}.is-link a:after{opacity:1;margin-left:.1875rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] }); }
62
- }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TagsComponent, decorators: [{
64
- type: Component,
65
- args: [{ selector: 'ec-tags', template: "<ul class=\"tags\"\r\n [class.is-wrapped]=\"wrap\">\r\n <li *ngFor=\"let tag of tagsArray; index as i\"\r\n id=\"{{id}}_tag_{{i}}\"\r\n class=\"tag is-{{tag.type}} {{tag.classList}} mr-1\"\r\n [ngClass]=\"{'text-caption-1': !isCondensed, 'text-caption-2': isCondensed, 'is-condensed': isCondensed, 'pr-0': tag.isDismissable, 'is-link': tag.url}\"\r\n title=\"{{tag.tooltip | translate}}\">\r\n <i *ngIf=\"tag.icon\"\r\n class=\"ec-icon {{tag.icon}} ec-icon-sm\"></i>\r\n <span *ngIf=\"!tag.url\">{{tag.label | translate}}</span>\r\n\r\n <a *ngIf=\"tag.url\"\r\n id=\"{{id}}_tag_{{i}}_link\"\r\n class=\"font-weight-bold\"\r\n href=\"{{tag.url}}\"\r\n target=\"{{tag.target}}\">{{tag.label | translate}}</a>\r\n\r\n <button id=\"{{id}}_tag_{{i}}_dismissButton\"\r\n *ngIf=\"tag.isDismissable\"\r\n (click)=\"closeTag(tag)\">\r\n <i class=\"ec-icon ec-icon-sm icon-cancel\"></i>\r\n </button>\r\n </li>\r\n</ul>", styles: ["@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{display:block}.tags{padding:0;margin:0;list-style:none;display:flex}.tags.is-wrapped{flex-wrap:wrap;margin-top:.25rem}.tags.is-wrapped>.tag{margin-bottom:.25rem}.tag{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:var(--ec-color-gray-1);border:2px solid var(--ec-color-gray-4);display:inline-flex;align-items:center;border-radius:calc(var(--ec-border-radius, .25rem) * 3);height:1.5rem;line-height:1.25rem;padding:0 .4375rem;vertical-align:top}.tag>.ec-icon:first-child{margin-right:.1875rem}.tag .ec-icon{display:flex;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;width:auto;height:auto;min-width:1em;justify-content:center}.tag.is-inverted{background-color:var(--ec-background-color);border-color:var(--ec-background-color)}.tag.is-info{background-color:var(--ec-color-cobalt-1);border-color:var(--ec-color-info)}.tag.is-info>.ec-icon:first-child{color:var(--ec-color-info)}.tag.is-success{background-color:var(--ec-color-green-1);border-color:var(--ec-color-success)}.tag.is-success>.ec-icon:first-child{color:var(--ec-color-success)}.tag.is-warning{background-color:var(--ec-color-yellow-1);border-color:var(--ec-color-caution)}.tag.is-warning>.ec-icon:first-child{color:var(--ec-color-caution)}.tag.is-danger{background-color:var(--ec-color-red-1);border-color:var(--ec-color-danger)}.tag.is-danger>.ec-icon:first-child{color:var(--ec-color-danger)}.tag.is-accent{background-color:var(--ec-color-purple-1);border-color:var(--ec-color-accent)}.tag.is-accent>.ec-icon:first-child{color:var(--ec-color-accent)}.tag.is-chargeback{background-color:var(--ec-color-orange-1);border-color:var(--ec-color-orange-7)}.tag.is-chargeback>.ec-icon:first-child{color:var(--ec-color-orange-7)}.tag.is-accrual{background-color:var(--ec-color-aqua-1);border-color:var(--ec-color-aqua-5)}.tag.is-accrual>.ec-icon:first-child{color:var(--ec-color-aqua-5)}.tag.is-system{background-color:var(--ec-color-gray-1);border-color:var(--ec-color-gray-4)}.tag.is-system>.ec-icon:first-child{color:var(--ec-color-gray-4)}button{background-color:transparent;border:0;display:flex;align-items:center;padding:0 .25rem;height:100%;cursor:pointer;position:relative}button:hover,button:focus{outline:none}button:hover:before,button:focus:before{display:block;content:\"\";position:absolute;inset:.0625rem .125rem;background-color:#1a1a231a;border-radius:.125rem}.is-condensed{border-radius:var(--ec-border-radius);border-width:1px;padding:0 .25rem;height:1.125rem;line-height:1.125rem;min-width:1.125rem;justify-content:center}.is-condensed>.ec-icon:first-child{margin-right:.125rem}.is-link a:after{opacity:1;margin-left:.1875rem}\n"] }]
66
- }], ctorParameters: () => [], propDecorators: { id: [{
67
- type: Input
68
- }], tags: [{
69
- type: Input
70
- }], wrap: [{
71
- type: Input
72
- }], isCondensed: [{
73
- type: Input
74
- }], tagClosed: [{
75
- type: Output
76
- }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpHLE1BQU0sT0FBTyxhQUFhO0lBdUN4QjtRQXJDQSxnQ0FBZ0M7UUFDaEIsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQVVoQzs7Ozs7V0FLRztRQUNhLFNBQUksR0FBWSxJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFDYSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qzs7V0FFRztRQUNjLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4RTs7Ozs7V0FLRztRQUNJLGNBQVMsR0FBVSxFQUFFLENBQUM7SUFFYixDQUFDO0lBRWpCOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQixJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZCw4RUFBOEU7Z0JBQzlFLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUM3QixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFNBQVMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDL0IsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTix3Q0FBd0M7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFRO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDM0IsQ0FBQzsrR0FuRVUsYUFBYTttR0FBYixhQUFhLHVMQ1IxQixpaENBdUJLOzs0RkRmUSxhQUFhO2tCQUx6QixTQUFTOytCQUNFLFNBQVM7d0RBT0gsRUFBRTtzQkFBakIsS0FBSztnQkFRVSxJQUFJO3NCQUFuQixLQUFLO2dCQVFVLElBQUk7c0JBQW5CLEtBQUs7Z0JBS1UsV0FBVztzQkFBMUIsS0FBSztnQkFLVyxTQUFTO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkNoYW5nZXMsIElucHV0LCBTaW1wbGVDaGFuZ2VzLCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWcgfSBmcm9tICcuL3RhZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRhZ3MnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWdzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90YWdzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRhZ3NDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAvKipUaGUgSUQgb2YgdGhpcyBzZXQgb2YgdGFncyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9uZSBvciBtb3JlIHRhZ3NcclxuICAgKiBcclxuICAgKiBAdHlwZSB7KFRhZyB8IFRhZ1tdKX1cclxuICAgKiBAbWVtYmVyb2YgVGFnc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0YWdzPzogVGFnIHwgVGFnW107XHJcblxyXG4gIC8qKlxyXG4gICAqIERldGVybWluZXMgd2hldGhlciB0aGUgdGFncyB3aWxsIHdyYXAgb3Igbm90XHJcbiAgICogXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICogQG1lbWJlcm9mIFRhZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgd3JhcDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKlxyXG4gICAqIERpc3BsYXlzIHRoZSB0YWdzIGluIGNvbmRlbnNlZCBtb2RlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlzQ29uZGVuc2VkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHRoZSB0YWcgaXRlbSB3aGVuIHRoZSB0YWcncyBjbG9zZSBidXR0b24gaXMgY2xpY2tlZFxyXG4gICAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgdGFnQ2xvc2VkOiBFdmVudEVtaXR0ZXI8VGFnPiA9IG5ldyBFdmVudEVtaXR0ZXI8VGFnPigpO1xyXG5cclxuICAvKipcclxuICAgKiBUYWdzIHRvIGJlIGRpc3BsYXllZFxyXG4gICAqIFxyXG4gICAqIEB0eXBlIHtUYWdbXX1cclxuICAgKiBAbWVtYmVyb2YgVGFnc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0YWdzQXJyYXk6IFRhZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFuZ3VsYXIgb25DaGFuZ2VzIGxpZmVjeWNsZSBob29rXHJcbiAgICogQHNlZSB7QGxpbmsgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rcyB8IExpZmUtY3ljbGUgaG9va3N9XHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtTaW1wbGVDaGFuZ2VzfSBjaGFuZ2VzIFxyXG4gICAqIEBtZW1iZXJvZiBUYWdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKGNoYW5nZXMudGFncykge1xyXG4gICAgICBpZiAodGhpcy50YWdzKSB7XHJcbiAgICAgICAgLy8gSWYgb25seSBnaXZlbiBhIHNpbmdsZSBpdGVtLCBwdXQgaXQgaW4gYW4gYXJyYXkgc28gaXQgd29ya3MgaW4gdGhlIHRlbXBsYXRlXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy50YWdzKSkge1xyXG4gICAgICAgICAgdGhpcy50YWdzQXJyYXkgPSB0aGlzLnRhZ3M7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudGFnc0FycmF5ID0gW3RoaXMudGFnc107XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vIHJlc2V0IGFycmF5IGlmIHRhZ3MgYmVjb21lcyB1bmRlZmluZWRcclxuICAgICAgICB0aGlzLnRhZ3NBcnJheSA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VUYWcodGFnOiBUYWcpIHtcclxuICAgIHRoaXMudGFnc0FycmF5ID0gdGhpcy50YWdzQXJyYXkuZmlsdGVyKHQgPT4gdCAhPT0gdGFnKTtcclxuICAgIHRoaXMudGFnQ2xvc2VkLmVtaXQodGFnKTtcclxuICB9XHJcbn1cclxuIiwiPHVsIGNsYXNzPVwidGFnc1wiXHJcbiAgICBbY2xhc3MuaXMtd3JhcHBlZF09XCJ3cmFwXCI+XHJcbiAgIDxsaSAqbmdGb3I9XCJsZXQgdGFnIG9mIHRhZ3NBcnJheTsgaW5kZXggYXMgaVwiXHJcbiAgICAgICBpZD1cInt7aWR9fV90YWdfe3tpfX1cIlxyXG4gICAgICAgY2xhc3M9XCJ0YWcgaXMte3t0YWcudHlwZX19IHt7dGFnLmNsYXNzTGlzdH19IG1yLTFcIlxyXG4gICAgICAgW25nQ2xhc3NdPVwieyd0ZXh0LWNhcHRpb24tMSc6ICFpc0NvbmRlbnNlZCwgJ3RleHQtY2FwdGlvbi0yJzogaXNDb25kZW5zZWQsICdpcy1jb25kZW5zZWQnOiBpc0NvbmRlbnNlZCwgJ3ByLTAnOiB0YWcuaXNEaXNtaXNzYWJsZSwgJ2lzLWxpbmsnOiB0YWcudXJsfVwiXHJcbiAgICAgICB0aXRsZT1cInt7dGFnLnRvb2x0aXAgfCB0cmFuc2xhdGV9fVwiPlxyXG4gICAgICA8aSAqbmdJZj1cInRhZy5pY29uXCJcclxuICAgICAgICAgY2xhc3M9XCJlYy1pY29uIHt7dGFnLmljb259fSBlYy1pY29uLXNtXCI+PC9pPlxyXG4gICAgICA8c3BhbiAqbmdJZj1cIiF0YWcudXJsXCI+e3t0YWcubGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHJcbiAgICAgIDxhICpuZ0lmPVwidGFnLnVybFwiXHJcbiAgICAgICAgIGlkPVwie3tpZH19X3RhZ197e2l9fV9saW5rXCJcclxuICAgICAgICAgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkXCJcclxuICAgICAgICAgaHJlZj1cInt7dGFnLnVybH19XCJcclxuICAgICAgICAgdGFyZ2V0PVwie3t0YWcudGFyZ2V0fX1cIj57e3RhZy5sYWJlbCB8IHRyYW5zbGF0ZX19PC9hPlxyXG5cclxuICAgICAgPGJ1dHRvbiBpZD1cInt7aWR9fV90YWdfe3tpfX1fZGlzbWlzc0J1dHRvblwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0YWcuaXNEaXNtaXNzYWJsZVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlVGFnKHRhZylcIj5cclxuICAgICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIGVjLWljb24tc20gaWNvbi1jYW5jZWxcIj48L2k+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICA8L2xpPlxyXG48L3VsPiJdfQ==
@@ -1,77 +0,0 @@
1
- import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';
2
- import { race, Subject, timer } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../toast.service";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "../../../controls/banner/banner.component";
8
- import * as i4 from "../../../controls/link-button/link-button.component";
9
- import * as i5 from "@ngx-translate/core";
10
- export class ToastComponent {
11
- constructor(toastService) {
12
- this.toastService = toastService;
13
- this.open = false;
14
- this.TOAST_ANIMATION_DURATION = 250;
15
- this.closed = new EventEmitter();
16
- this.TIMED_TOAST_DURATION = 4000;
17
- this.destroyed = new Subject();
18
- }
19
- ngOnInit() {
20
- this.toastService.events.pipe(takeUntil(this.destroyed)).subscribe(event => {
21
- if (event.action == 'remove' && event.toast === this.toastItem) {
22
- this.close(event);
23
- }
24
- });
25
- }
26
- ngOnChanges(changes) {
27
- if (changes.toastItem && this.toastItem) {
28
- this.id = this.toastItem.id;
29
- this.open = true;
30
- if (!this.toastItem.dismissible) {
31
- this.closeAfterTimer();
32
- }
33
- }
34
- }
35
- ngOnDestroy() {
36
- this.destroyed.next();
37
- this.destroyed.complete();
38
- }
39
- closeClicked() {
40
- if (this.toastItem) {
41
- this.toastService.dismissToast(this.toastItem, 'user');
42
- }
43
- }
44
- close(event) {
45
- this.open = false;
46
- timer(this.TOAST_ANIMATION_DURATION).subscribe(() => {
47
- this.closed.emit(event);
48
- });
49
- }
50
- closeAfterTimer() {
51
- timer(this.TIMED_TOAST_DURATION).pipe(takeUntil(race(this.closed, this.destroyed))).subscribe(() => {
52
- if (this.toastItem) {
53
- this.toastService.dismissToast(this.toastItem, 'auto');
54
- }
55
- });
56
- }
57
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component }); }
58
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToastComponent, selector: "ec-toast", inputs: { toastItem: "toastItem" }, outputs: { closed: "closed" }, host: { properties: { "attr.id": "this.id", "class.is-open": "this.open", "style.--toast-animation-duration.ms": "this.TOAST_ANIMATION_DURATION" } }, usesOnChanges: true, ngImport: i0, template: "<ec-banner id=\"{{toastItem?.id}}_banner\"\r\n [type]=\"toastItem?.type\"\r\n bannerStyle=\"toast\"\r\n [customIcon]=\"toastItem?.icon\"\r\n [showCloseBtn]=\"toastItem?.dismissible\"\r\n [autoHideOnClose]=\"false\"\r\n (closed)=\"closeClicked()\">\r\n <div class=\"d-flex\">\r\n <div id=\"{{toastItem?.id}}_message\"\r\n [innerHTML]=\"toastItem?.message | translate\"></div>\r\n <button id=\"{{toastItem?.id}}_action\"\r\n ecLinkButton\r\n *ngIf=\"toastItem?.action && toastItem?.actionLabel\"\r\n class=\"font-weight-bold ml-2\"\r\n (click)=\"toastItem!.action!()\">{{toastItem?.actionLabel | translate}}</button>\r\n </div>\r\n</ec-banner>", styles: [":host{display:block;position:fixed;bottom:0;left:50%;transform:translate(-50%,150%);transition:transform var(--toast-animation-duration, .25s);transition-timing-function:ease-in;z-index:var(--ec-z-index-toast)}:host.is-open{transform:translate(-50%,calc(-1 * var(--toast-bottom, 0rem) - 1.5rem));transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.BannerComponent, selector: "ec-banner", inputs: ["hidden", "id", "type", "bannerStyle", "title", "text", "list", "showCloseBtn", "autoHideOnClose", "customIcon", "rememberClosed"], outputs: ["closed"] }, { kind: "component", type: i4.LinkButtonComponent, selector: "button[ecLinkButton]" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }] }); }
59
- }
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToastComponent, decorators: [{
61
- type: Component,
62
- args: [{ selector: 'ec-toast', template: "<ec-banner id=\"{{toastItem?.id}}_banner\"\r\n [type]=\"toastItem?.type\"\r\n bannerStyle=\"toast\"\r\n [customIcon]=\"toastItem?.icon\"\r\n [showCloseBtn]=\"toastItem?.dismissible\"\r\n [autoHideOnClose]=\"false\"\r\n (closed)=\"closeClicked()\">\r\n <div class=\"d-flex\">\r\n <div id=\"{{toastItem?.id}}_message\"\r\n [innerHTML]=\"toastItem?.message | translate\"></div>\r\n <button id=\"{{toastItem?.id}}_action\"\r\n ecLinkButton\r\n *ngIf=\"toastItem?.action && toastItem?.actionLabel\"\r\n class=\"font-weight-bold ml-2\"\r\n (click)=\"toastItem!.action!()\">{{toastItem?.actionLabel | translate}}</button>\r\n </div>\r\n</ec-banner>", styles: [":host{display:block;position:fixed;bottom:0;left:50%;transform:translate(-50%,150%);transition:transform var(--toast-animation-duration, .25s);transition-timing-function:ease-in;z-index:var(--ec-z-index-toast)}:host.is-open{transform:translate(-50%,calc(-1 * var(--toast-bottom, 0rem) - 1.5rem));transition-timing-function:cubic-bezier(.18,.89,.32,1.28)}\n"] }]
63
- }], ctorParameters: () => [{ type: i1.ToastService }], propDecorators: { toastItem: [{
64
- type: Input
65
- }], id: [{
66
- type: HostBinding,
67
- args: ['attr.id']
68
- }], open: [{
69
- type: HostBinding,
70
- args: ['class.is-open']
71
- }], TOAST_ANIMATION_DURATION: [{
72
- type: HostBinding,
73
- args: ['style.--toast-animation-duration.ms']
74
- }], closed: [{
75
- type: Output
76
- }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxjQUFjO0lBYXpCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUlQsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUNBLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV6RSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUV4Qyx5QkFBb0IsR0FBVyxJQUFJLENBQUM7UUFDN0MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFVSxDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN4QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBRWpCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNoQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3pELENBQUM7SUFDSCxDQUFDO0lBRU8sS0FBSyxDQUFDLEtBQWlCO1FBQzdCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLEtBQUssQ0FBQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGVBQWU7UUFDckIsS0FBSyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FDbkMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUM3QyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOytHQTVEVSxjQUFjO21HQUFkLGNBQWMsOFJDWDNCLDJ2QkFnQlk7OzRGRExDLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsVUFBVTtpRkFNSixTQUFTO3NCQUF4QixLQUFLO2dCQUV5QixFQUFFO3NCQUFoQyxXQUFXO3VCQUFDLFNBQVM7Z0JBQ2UsSUFBSTtzQkFBeEMsV0FBVzt1QkFBQyxlQUFlO2dCQUMrQix3QkFBd0I7c0JBQWxGLFdBQVc7dUJBQUMscUNBQXFDO2dCQUVqQyxNQUFNO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHJhY2UsIFN1YmplY3QsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVG9hc3RFdmVudCwgVG9hc3RJdGVtIH0gZnJvbSAnLi4vdG9hc3QtdHlwZXMnO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi90b2FzdC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtdG9hc3QnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdG9hc3QuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBcclxuICBASW5wdXQoKSBwdWJsaWMgdG9hc3RJdGVtPzogVG9hc3RJdGVtO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgaWQ/OiBzdHJpbmc7XHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1vcGVuJykgcHVibGljIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLi0tdG9hc3QtYW5pbWF0aW9uLWR1cmF0aW9uLm1zJykgcHVibGljIFRPQVNUX0FOSU1BVElPTl9EVVJBVElPTiA9IDI1MDtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRvYXN0RXZlbnQ+KCk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgVElNRURfVE9BU1RfRFVSQVRJT046IG51bWJlciA9IDQwMDA7XHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnRvYXN0U2VydmljZS5ldmVudHMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG4gICAgICBpZiAoZXZlbnQuYWN0aW9uID09ICdyZW1vdmUnICYmIGV2ZW50LnRvYXN0ID09PSB0aGlzLnRvYXN0SXRlbSkge1xyXG4gICAgICAgIHRoaXMuY2xvc2UoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnRvYXN0SXRlbSAmJiB0aGlzLnRvYXN0SXRlbSkge1xyXG4gICAgICB0aGlzLmlkID0gdGhpcy50b2FzdEl0ZW0uaWQ7XHJcbiAgICAgIHRoaXMub3BlbiA9IHRydWU7XHJcblxyXG4gICAgICBpZiAoIXRoaXMudG9hc3RJdGVtLmRpc21pc3NpYmxlKSB7XHJcbiAgICAgICAgdGhpcy5jbG9zZUFmdGVyVGltZXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlQ2xpY2tlZCgpIHtcclxuICAgIGlmICh0aGlzLnRvYXN0SXRlbSkge1xyXG4gICAgICB0aGlzLnRvYXN0U2VydmljZS5kaXNtaXNzVG9hc3QodGhpcy50b2FzdEl0ZW0sICd1c2VyJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsb3NlKGV2ZW50OiBUb2FzdEV2ZW50KSB7XHJcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcclxuICAgIHRpbWVyKHRoaXMuVE9BU1RfQU5JTUFUSU9OX0RVUkFUSU9OKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KGV2ZW50KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZUFmdGVyVGltZXIoKSB7XHJcbiAgICB0aW1lcih0aGlzLlRJTUVEX1RPQVNUX0RVUkFUSU9OKS5waXBlKFxyXG4gICAgICB0YWtlVW50aWwocmFjZSh0aGlzLmNsb3NlZCwgdGhpcy5kZXN0cm95ZWQpKVxyXG4gICAgKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgICB0aGlzLnRvYXN0U2VydmljZS5kaXNtaXNzVG9hc3QodGhpcy50b2FzdEl0ZW0sICdhdXRvJyk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZWMtYmFubmVyIGlkPVwie3t0b2FzdEl0ZW0/LmlkfX1fYmFubmVyXCJcclxuICAgICAgICAgICBbdHlwZV09XCJ0b2FzdEl0ZW0/LnR5cGVcIlxyXG4gICAgICAgICAgIGJhbm5lclN0eWxlPVwidG9hc3RcIlxyXG4gICAgICAgICAgIFtjdXN0b21JY29uXT1cInRvYXN0SXRlbT8uaWNvblwiXHJcbiAgICAgICAgICAgW3Nob3dDbG9zZUJ0bl09XCJ0b2FzdEl0ZW0/LmRpc21pc3NpYmxlXCJcclxuICAgICAgICAgICBbYXV0b0hpZGVPbkNsb3NlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAoY2xvc2VkKT1cImNsb3NlQ2xpY2tlZCgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImQtZmxleFwiPlxyXG4gICAgPGRpdiBpZD1cInt7dG9hc3RJdGVtPy5pZH19X21lc3NhZ2VcIlxyXG4gICAgICAgICBbaW5uZXJIVE1MXT1cInRvYXN0SXRlbT8ubWVzc2FnZSB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxyXG4gICAgPGJ1dHRvbiBpZD1cInt7dG9hc3RJdGVtPy5pZH19X2FjdGlvblwiXHJcbiAgICAgICAgICAgIGVjTGlua0J1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cInRvYXN0SXRlbT8uYWN0aW9uICYmIHRvYXN0SXRlbT8uYWN0aW9uTGFiZWxcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGQgbWwtMlwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ0b2FzdEl0ZW0hLmFjdGlvbiEoKVwiPnt7dG9hc3RJdGVtPy5hY3Rpb25MYWJlbCB8IHRyYW5zbGF0ZX19PC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZWMtYmFubmVyPiJdfQ==
@@ -1,114 +0,0 @@
1
- import { Component, ElementRef, ViewChild } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { takeUntil } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../toast.service";
6
- import * as i2 from "../../../core/telemetry.service";
7
- import * as i3 from "../toast/toast.component";
8
- export class ToasterComponent {
9
- constructor(toastService, telemetryService) {
10
- this.toastService = toastService;
11
- this.telemetryService = telemetryService;
12
- this.dismissibleToastBottom = 0;
13
- this.pendingToasts = [];
14
- this.destroyed = new Subject();
15
- }
16
- ngOnInit() {
17
- this.toastService.events.pipe(takeUntil(this.destroyed)).subscribe(event => {
18
- if (event.action == 'add') {
19
- this.addToast(event.toast);
20
- this.updateDismissibleToastBottom();
21
- this.trackEvent(event);
22
- }
23
- else if (event.action == 'remove' && event.toast !== this.currentDismissibleToast && event.toast !== this.currentTimedToast) {
24
- this.removePendingToast(event.toast);
25
- this.trackEvent(event);
26
- }
27
- });
28
- }
29
- ngOnDestroy() {
30
- this.destroyed.next();
31
- this.destroyed.complete();
32
- }
33
- updateVisibleToast(event) {
34
- if (event.toast.dismissible) {
35
- this.currentDismissibleToast = this.getNextToast(true);
36
- }
37
- else {
38
- this.currentTimedToast = this.getNextToast(false);
39
- }
40
- this.updateDismissibleToastBottom();
41
- this.trackEvent(event);
42
- }
43
- addToast(toast) {
44
- if ((toast.dismissible && this.currentDismissibleToast) || (!toast.dismissible && this.currentTimedToast)) {
45
- this.addPendingToast(toast);
46
- }
47
- else if (toast.dismissible) {
48
- this.currentDismissibleToast = toast;
49
- }
50
- else {
51
- this.currentTimedToast = toast;
52
- }
53
- }
54
- /** Returns the next pending toast of the specified type and removes it from the list of pending toasts. */
55
- getNextToast(dismissible) {
56
- const toast = this.pendingToasts.find(t => t.dismissible === dismissible);
57
- if (toast) {
58
- this.removePendingToast(toast);
59
- }
60
- return toast;
61
- }
62
- /** Add a toast to the list of pending toasts */
63
- addPendingToast(toast) {
64
- this.pendingToasts.push(toast);
65
- }
66
- /** Removes the specified toast from the list of pending toasts */
67
- removePendingToast(toast) {
68
- const index = this.pendingToasts.indexOf(toast);
69
- if (index > -1) {
70
- this.pendingToasts.splice(index, 1);
71
- }
72
- }
73
- /**
74
- * If the timed toast is present, sets the bottom height of the dismissible toast to
75
- * the current height of the timed toast plus .5rem for spacing.
76
- * Returns 0 if there isn't a visible timed toast.
77
- */
78
- updateDismissibleToastBottom() {
79
- if (this.currentTimedToast && this.timedToastEl) {
80
- this.dismissibleToastBottom = (this.timedToastEl.nativeElement.offsetHeight + 8) / 16;
81
- }
82
- else {
83
- this.dismissibleToastBottom = 0;
84
- }
85
- }
86
- trackEvent(event) {
87
- const dismissible = this.pendingToasts.filter(t => t.dismissible);
88
- const transient = this.pendingToasts.filter(t => !t.dismissible);
89
- this.telemetryService.trackEvent(`${event.action} toast`, {
90
- action: event.action,
91
- source: event.source,
92
- hasDismissiblePending: dismissible.length > 0 ? 'yes' : 'no',
93
- dismissiblePendingLength: `${dismissible.length}`,
94
- hasTransientPending: transient.length > 0 ? 'yes' : 'no',
95
- transientPendingLength: `${transient.length}`,
96
- toastId: event.toast.id ?? '',
97
- toastType: event.toast.type,
98
- toastMessage: event.toast.message,
99
- toastDismissible: `${event.toast.dismissible}`,
100
- toastIcon: event.toast.icon ?? '',
101
- toastAction: event.toast.actionLabel ?? '',
102
- });
103
- }
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToasterComponent, deps: [{ token: i1.ToastService }, { token: i2.TelemetryService }], target: i0.ɵɵFactoryTarget.Component }); }
105
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ToasterComponent, selector: "ec-toaster", viewQueries: [{ propertyName: "timedToastEl", first: true, predicate: ["timedToast"], descendants: true, read: ElementRef }], ngImport: i0, template: "<ec-toast [toastItem]=\"currentDismissibleToast\"\r\n [style.--toast-bottom.rem]=\"dismissibleToastBottom\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>\r\n\r\n<ec-toast #timedToast\r\n [toastItem]=\"currentTimedToast\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>", dependencies: [{ kind: "component", type: i3.ToastComponent, selector: "ec-toast", inputs: ["toastItem"], outputs: ["closed"] }] }); }
106
- }
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ToasterComponent, decorators: [{
108
- type: Component,
109
- args: [{ selector: 'ec-toaster', template: "<ec-toast [toastItem]=\"currentDismissibleToast\"\r\n [style.--toast-bottom.rem]=\"dismissibleToastBottom\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>\r\n\r\n<ec-toast #timedToast\r\n [toastItem]=\"currentTimedToast\"\r\n (closed)=\"updateVisibleToast($event)\">\r\n</ec-toast>" }]
110
- }], ctorParameters: () => [{ type: i1.ToastService }, { type: i2.TelemetryService }], propDecorators: { timedToastEl: [{
111
- type: ViewChild,
112
- args: ['timedToast', { static: false, read: ElementRef }]
113
- }] } });
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b2FzdC90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBa0M7UUFEbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVJyQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFHbEMsa0JBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBS3BDLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekUsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLDRCQUE0QixFQUFFLENBQUM7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OUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDakMsV0FBVyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLEVBQUU7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0EzR1UsZ0JBQWdCO21HQUFoQixnQkFBZ0IseUlBS3FCLFVBQVUsNkJDaEI1RCw0VUFRVzs7NEZER0UsZ0JBQWdCO2tCQUo1QixTQUFTOytCQUNFLFlBQVk7Z0hBUXdDLFlBQVk7c0JBQXpFLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUZWxlbWV0cnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS90ZWxlbWV0cnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0RXZlbnQsIFRvYXN0SXRlbSB9IGZyb20gJy4uL3RvYXN0LXR5cGVzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRvYXN0ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90b2FzdGVyLmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVG9hc3RlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgcHVibGljIGN1cnJlbnRUaW1lZFRvYXN0PzogVG9hc3RJdGVtO1xyXG4gIHB1YmxpYyBjdXJyZW50RGlzbWlzc2libGVUb2FzdD86IFRvYXN0SXRlbTtcclxuICBwdWJsaWMgZGlzbWlzc2libGVUb2FzdEJvdHRvbTogbnVtYmVyID0gMDtcclxuICBAVmlld0NoaWxkKCd0aW1lZFRvYXN0JywgeyBzdGF0aWM6IGZhbHNlLCByZWFkOiBFbGVtZW50UmVmIH0pIHRpbWVkVG9hc3RFbD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIFxyXG4gIHByaXZhdGUgcGVuZGluZ1RvYXN0czogVG9hc3RJdGVtW10gPSBbXTtcclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgdGVsZW1ldHJ5U2VydmljZTogVGVsZW1ldHJ5U2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PSAnYWRkJykge1xyXG4gICAgICAgIHRoaXMuYWRkVG9hc3QoZXZlbnQudG9hc3QpO1xyXG4gICAgICAgIHRoaXMudXBkYXRlRGlzbWlzc2libGVUb2FzdEJvdHRvbSgpO1xyXG4gICAgICAgIHRoaXMudHJhY2tFdmVudChldmVudCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQuYWN0aW9uID09ICdyZW1vdmUnICYmIGV2ZW50LnRvYXN0ICE9PSB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0ICYmIGV2ZW50LnRvYXN0ICE9PSB0aGlzLmN1cnJlbnRUaW1lZFRvYXN0KSB7XHJcbiAgICAgICAgdGhpcy5yZW1vdmVQZW5kaW5nVG9hc3QoZXZlbnQudG9hc3QpO1xyXG4gICAgICAgIHRoaXMudHJhY2tFdmVudChldmVudCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVZpc2libGVUb2FzdChldmVudDogVG9hc3RFdmVudCkge1xyXG4gICAgaWYgKGV2ZW50LnRvYXN0LmRpc21pc3NpYmxlKSB7XHJcbiAgICAgIHRoaXMuY3VycmVudERpc21pc3NpYmxlVG9hc3QgPSB0aGlzLmdldE5leHRUb2FzdCh0cnVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3VycmVudFRpbWVkVG9hc3QgPSB0aGlzLmdldE5leHRUb2FzdChmYWxzZSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy51cGRhdGVEaXNtaXNzaWJsZVRvYXN0Qm90dG9tKCk7XHJcbiAgICB0aGlzLnRyYWNrRXZlbnQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhZGRUb2FzdCh0b2FzdDogVG9hc3RJdGVtKSB7XHJcbiAgICBpZiAoKHRvYXN0LmRpc21pc3NpYmxlICYmIHRoaXMuY3VycmVudERpc21pc3NpYmxlVG9hc3QpIHx8ICghdG9hc3QuZGlzbWlzc2libGUgJiYgdGhpcy5jdXJyZW50VGltZWRUb2FzdCkpIHtcclxuICAgICAgdGhpcy5hZGRQZW5kaW5nVG9hc3QodG9hc3QpO1xyXG4gICAgfSBlbHNlIGlmICh0b2FzdC5kaXNtaXNzaWJsZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0ID0gdG9hc3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lZFRvYXN0ID0gdG9hc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogUmV0dXJucyB0aGUgbmV4dCBwZW5kaW5nIHRvYXN0IG9mIHRoZSBzcGVjaWZpZWQgdHlwZSBhbmQgcmVtb3ZlcyBpdCBmcm9tIHRoZSBsaXN0IG9mIHBlbmRpbmcgdG9hc3RzLiAqL1xyXG4gIHByaXZhdGUgZ2V0TmV4dFRvYXN0KGRpc21pc3NpYmxlOiBib29sZWFuKTogVG9hc3RJdGVtIHwgdW5kZWZpbmVkIHtcclxuICAgIGNvbnN0IHRvYXN0ID0gdGhpcy5wZW5kaW5nVG9hc3RzLmZpbmQodCA9PiB0LmRpc21pc3NpYmxlID09PSBkaXNtaXNzaWJsZSk7XHJcbiAgICBpZiAodG9hc3QpIHtcclxuICAgICAgdGhpcy5yZW1vdmVQZW5kaW5nVG9hc3QodG9hc3QpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRvYXN0O1xyXG4gIH1cclxuXHJcbiAgLyoqIEFkZCBhIHRvYXN0IHRvIHRoZSBsaXN0IG9mIHBlbmRpbmcgdG9hc3RzICovXHJcbiAgcHJpdmF0ZSBhZGRQZW5kaW5nVG9hc3QodG9hc3Q6IFRvYXN0SXRlbSkge1xyXG4gICAgdGhpcy5wZW5kaW5nVG9hc3RzLnB1c2godG9hc3QpO1xyXG4gIH1cclxuXHJcbiAgLyoqIFJlbW92ZXMgdGhlIHNwZWNpZmllZCB0b2FzdCBmcm9tIHRoZSBsaXN0IG9mIHBlbmRpbmcgdG9hc3RzICovXHJcbiAgcHJpdmF0ZSByZW1vdmVQZW5kaW5nVG9hc3QodG9hc3Q6IFRvYXN0SXRlbSkge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLnBlbmRpbmdUb2FzdHMuaW5kZXhPZih0b2FzdCk7XHJcbiAgICBpZiAoaW5kZXggPiAtMSkge1xyXG4gICAgICB0aGlzLnBlbmRpbmdUb2FzdHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBJZiB0aGUgdGltZWQgdG9hc3QgaXMgcHJlc2VudCwgc2V0cyB0aGUgYm90dG9tIGhlaWdodCBvZiB0aGUgZGlzbWlzc2libGUgdG9hc3QgdG9cclxuICAgKiB0aGUgY3VycmVudCBoZWlnaHQgb2YgdGhlIHRpbWVkIHRvYXN0IHBsdXMgLjVyZW0gZm9yIHNwYWNpbmcuXHJcbiAgICogUmV0dXJucyAwIGlmIHRoZXJlIGlzbid0IGEgdmlzaWJsZSB0aW1lZCB0b2FzdC5cclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZURpc21pc3NpYmxlVG9hc3RCb3R0b20oKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VGltZWRUb2FzdCAmJiB0aGlzLnRpbWVkVG9hc3RFbCkge1xyXG4gICAgICB0aGlzLmRpc21pc3NpYmxlVG9hc3RCb3R0b20gPSAodGhpcy50aW1lZFRvYXN0RWwubmF0aXZlRWxlbWVudC5vZmZzZXRIZWlnaHQgKyA4KSAvIDE2O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNtaXNzaWJsZVRvYXN0Qm90dG9tID0gMDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdHJhY2tFdmVudChldmVudDogVG9hc3RFdmVudCkge1xyXG4gICAgY29uc3QgZGlzbWlzc2libGUgPSB0aGlzLnBlbmRpbmdUb2FzdHMuZmlsdGVyKHQgPT4gdC5kaXNtaXNzaWJsZSk7XHJcbiAgICBjb25zdCB0cmFuc2llbnQgPSB0aGlzLnBlbmRpbmdUb2FzdHMuZmlsdGVyKHQgPT4gIXQuZGlzbWlzc2libGUpO1xyXG5cclxuICAgIHRoaXMudGVsZW1ldHJ5U2VydmljZS50cmFja0V2ZW50KGAke2V2ZW50LmFjdGlvbn0gdG9hc3RgLCB7XHJcbiAgICAgIGFjdGlvbjogZXZlbnQuYWN0aW9uLFxyXG4gICAgICBzb3VyY2U6IGV2ZW50LnNvdXJjZSxcclxuICAgICAgaGFzRGlzbWlzc2libGVQZW5kaW5nOiBkaXNtaXNzaWJsZS5sZW5ndGggPiAwID8gJ3llcycgOiAnbm8nLFxyXG4gICAgICBkaXNtaXNzaWJsZVBlbmRpbmdMZW5ndGg6IGAke2Rpc21pc3NpYmxlLmxlbmd0aH1gLFxyXG4gICAgICBoYXNUcmFuc2llbnRQZW5kaW5nOiB0cmFuc2llbnQubGVuZ3RoID4gMCA/ICd5ZXMnIDogJ25vJyxcclxuICAgICAgdHJhbnNpZW50UGVuZGluZ0xlbmd0aDogYCR7dHJhbnNpZW50Lmxlbmd0aH1gLFxyXG4gICAgICB0b2FzdElkOiBldmVudC50b2FzdC5pZCA/PyAnJyxcclxuICAgICAgdG9hc3RUeXBlOiBldmVudC50b2FzdC50eXBlLFxyXG4gICAgICB0b2FzdE1lc3NhZ2U6IGV2ZW50LnRvYXN0Lm1lc3NhZ2UsXHJcbiAgICAgIHRvYXN0RGlzbWlzc2libGU6IGAke2V2ZW50LnRvYXN0LmRpc21pc3NpYmxlfWAsXHJcbiAgICAgIHRvYXN0SWNvbjogZXZlbnQudG9hc3QuaWNvbiA/PyAnJyxcclxuICAgICAgdG9hc3RBY3Rpb246IGV2ZW50LnRvYXN0LmFjdGlvbkxhYmVsID8/ICcnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxlYy10b2FzdCBbdG9hc3RJdGVtXT1cImN1cnJlbnREaXNtaXNzaWJsZVRvYXN0XCJcclxuICAgICAgICAgIFtzdHlsZS4tLXRvYXN0LWJvdHRvbS5yZW1dPVwiZGlzbWlzc2libGVUb2FzdEJvdHRvbVwiXHJcbiAgICAgICAgICAoY2xvc2VkKT1cInVwZGF0ZVZpc2libGVUb2FzdCgkZXZlbnQpXCI+XHJcbjwvZWMtdG9hc3Q+XHJcblxyXG48ZWMtdG9hc3QgI3RpbWVkVG9hc3RcclxuICAgICAgICAgIFt0b2FzdEl0ZW1dPVwiY3VycmVudFRpbWVkVG9hc3RcIlxyXG4gICAgICAgICAgKGNsb3NlZCk9XCJ1cGRhdGVWaXNpYmxlVG9hc3QoJGV2ZW50KVwiPlxyXG48L2VjLXRvYXN0PiJdfQ==
@@ -1,173 +0,0 @@
1
- import { Directive, HostListener, Input } from '@angular/core';
2
- import { of, Subject } from 'rxjs';
3
- import { delay, switchMap, takeUntil } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./../tooltip/tooltip.service";
6
- export class TooltipDirective {
7
- constructor(tooltipService, element, renderer2) {
8
- this.tooltipService = tooltipService;
9
- this.element = element;
10
- this.renderer2 = renderer2;
11
- //TooltipConfig: receives all the tooltip options to overwrite the
12
- //default configuration of the tooltip
13
- this.tooltipConfig = undefined;
14
- //TooltipText: receives plain text to display in the default tooltip
15
- this.tooltipText = undefined;
16
- //TooltipCustomContent: receives a template reference to display
17
- //into the tooltip content
18
- this.tooltipCustomContent = undefined;
19
- //This Input will remain as Input because tooltipPosition is not part
20
- //of TooltipOptions type of object
21
- this.tooltipPosition = "top-center";
22
- //************************************************************//
23
- //Events related
24
- this.mouseOver = new Subject();
25
- this.interrupt = new Subject();
26
- this.hideCompleted = new Subject();
27
- //Object with the tooltip options builded with the Input parameters
28
- //and use it in tooltipService - show()
29
- this.tooltipOptions = {};
30
- /**Set when we show a tooltip, to allow us to unsubscribe to mouse move when hide fires.
31
- * if we never showed the tooltip this will remain null and we won't have an event to unsubscribe to
32
- */
33
- this.mouseMoveUnsubscribe = null;
34
- }
35
- ngOnInit() {
36
- //checkInputsValue(): if there is an error it will prevent to execute
37
- //any code related with the tooltip setup
38
- if (this.checkInputsValue()) {
39
- //Create the object with the tooltip options provided as @Inputs
40
- this.createTooltipOptions();
41
- //MouseOver flow: start the process of showing the tooltip
42
- //until the mouse leaves the anchor element with this.interrupt
43
- this.mouseOver
44
- .pipe(switchMap(v => of(v).pipe(delay(300), //delays the time previous of showing the tooltip
45
- takeUntil(this.interrupt))))
46
- .subscribe(() => this.show()); //Calls the function responsable of using the tooltipService
47
- //Mouse leave flow: start the process of removing the tooltip when the mouse is away of the anchor element
48
- this.interrupt.pipe(switchMap(v => of(v).pipe(delay(50), takeUntil(this.hideCompleted)))).subscribe(() => this.hide()); //hide the tooltip and triggers the completed cycle flag this.hideCompleted
49
- }
50
- else {
51
- console.error('There are too many parameters or none parameter to config the tooltip options');
52
- }
53
- }
54
- /**Detects where the mouse is to trigger the leave/hide process
55
- * This is a backstop protection against us missing the mouseleave event and leaving a hanging chad.
56
- * On some browsers, and on some actions (especially scroll) the mouseLeave seems to never fire */
57
- onMouseMove(event) {
58
- let callCallback = false;
59
- if (this.contentRect) {
60
- callCallback = this.tooltipService.onMove(event, this.contentRect);
61
- if (callCallback) {
62
- //trigger on hide process
63
- this.interrupt.next();
64
- //reset the contentRec for a new tooltip
65
- this.contentRect = undefined;
66
- }
67
- }
68
- }
69
- //Trigger the process to show the tooltip
70
- onMouseOver() {
71
- this.mouseOver.next();
72
- }
73
- //Trigger the process to hide and later the process
74
- //to mark as complete the cycle of show and hide the tooltip
75
- onLeave() {
76
- this.interrupt.next();
77
- }
78
- checkInputsValue() {
79
- let parametersWithValue = 0;
80
- if (this.tooltipText) {
81
- parametersWithValue = parametersWithValue + 1;
82
- }
83
- if (this.tooltipCustomContent) {
84
- parametersWithValue = parametersWithValue + 1;
85
- }
86
- if (this.tooltipConfig) {
87
- parametersWithValue = parametersWithValue + 1;
88
- }
89
- if (parametersWithValue === 1) {
90
- return true;
91
- }
92
- else {
93
- return false;
94
- }
95
- }
96
- /**
97
- * createTooltipOptions
98
- * will only be executed after manageError() verifies
99
- * if the parameters are not overlapping each other
100
- * and it will build the tooltipOptions object
101
- */
102
- createTooltipOptions() {
103
- this.tooltipOptions = {
104
- id: `tooltip_${this.tooltipConfig?.id ? this.tooltipConfig?.id : ''}`,
105
- text: this.tooltipConfig?.text || this.tooltipText,
106
- title: this.tooltipConfig?.title,
107
- subtitle: this.tooltipConfig?.subtitle,
108
- customContent: this.tooltipConfig?.customContent || this.tooltipCustomContent,
109
- dismissible: this.tooltipConfig?.dismissible || false,
110
- maxWidth: this.tooltipConfig?.maxWidth,
111
- width: this.tooltipConfig?.width,
112
- backgroundColor: this.tooltipConfig?.backgroundColor,
113
- };
114
- }
115
- show() {
116
- //Reference to the element where to tooltip is attached
117
- const element = this.element.nativeElement;
118
- //contentRect will be assing only after showing a tooltip/popover and it will be
119
- //reset after hide the same tooltip/popover
120
- this.contentRect = this.element.nativeElement.getBoundingClientRect();
121
- //tooltipPosition is never undefined, default value = "top-center"
122
- if (!this.tooltip) {
123
- this.tooltip = this.tooltipService.show(element, this.tooltipPosition, this.tooltipOptions);
124
- this.mouseMoveUnsubscribe = this.renderer2.listen(document, 'mousemove', this.onMouseMove.bind(this));
125
- }
126
- }
127
- hide() {
128
- //There is a timing issue between the show - hide with
129
- //liner tooltip elements, so the below line
130
- //makes sure the app doesn't break
131
- if (this.tooltip) {
132
- //Call the hide() from the tooltip component
133
- this.tooltip.hide();
134
- this.tooltip = undefined;
135
- if (this.mouseMoveUnsubscribe) {
136
- this.mouseMoveUnsubscribe();
137
- }
138
- }
139
- //Interrupt the flow of mouseover with a delay and triggers the
140
- //flow to hide the tooltip with a delay
141
- this.interrupt.next();
142
- //Work as a flag to indicate the flow of show and hide has been completed
143
- this.hideCompleted.next();
144
- }
145
- //When the element where the tooltip is attached disappears
146
- //the tooltip should be destroy as well
147
- ngOnDestroy() {
148
- this.interrupt.next();
149
- }
150
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.TooltipService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
151
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: TooltipDirective, selector: "[ecTooltip]", inputs: { tooltipConfig: "tooltipConfig", tooltipText: "tooltipText", tooltipCustomContent: "tooltipCustomContent", tooltipPosition: "tooltipPosition" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onLeave()" } }, ngImport: i0 }); }
152
- }
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TooltipDirective, decorators: [{
154
- type: Directive,
155
- args: [{
156
- selector: '[ecTooltip]'
157
- }]
158
- }], ctorParameters: () => [{ type: i1.TooltipService }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { tooltipConfig: [{
159
- type: Input
160
- }], tooltipText: [{
161
- type: Input
162
- }], tooltipCustomContent: [{
163
- type: Input
164
- }], tooltipPosition: [{
165
- type: Input
166
- }], onMouseOver: [{
167
- type: HostListener,
168
- args: ['mouseover']
169
- }], onLeave: [{
170
- type: HostListener,
171
- args: ['mouseleave']
172
- }] } });
173
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b29sdGlwLWRpcmVjdGl2ZS90b29sdGlwLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQWtDLE1BQU0sZUFBZSxDQUFDO0FBQzNHLE9BQU8sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFRN0QsTUFBTSxPQUFPLGdCQUFnQjtJQTJDM0IsWUFDVSxjQUE4QixFQUM5QixPQUFtQixFQUNuQixTQUFvQjtRQUZwQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBNUM5QixrRUFBa0U7UUFDbEUsc0NBQXNDO1FBQ3RCLGtCQUFhLEdBQW9CLFNBQVMsQ0FBQTtRQUUxRCxvRUFBb0U7UUFDcEQsZ0JBQVcsR0FBWSxTQUFTLENBQUM7UUFFakQsZ0VBQWdFO1FBQ2hFLDBCQUEwQjtRQUNWLHlCQUFvQixHQUFzQixTQUFTLENBQUM7UUFHcEUscUVBQXFFO1FBQ3JFLGtDQUFrQztRQUNsQixvQkFBZSxHQUFvQixZQUFZLENBQUM7UUFJaEUsZ0VBQWdFO1FBRWhFLGdCQUFnQjtRQUNSLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQVE1QyxtRUFBbUU7UUFDbkUsdUNBQXVDO1FBQy9CLG1CQUFjLEdBQW1CLEVBQUUsQ0FB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bkluaXQsIFJlbmRlcmVyMiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50LCBUb29sdGlwT3B0aW9ucywgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9vbHRpcFNlcnZpY2UgfSBmcm9tICcuLy4uL3Rvb2x0aXAvdG9vbHRpcC5zZXJ2aWNlJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW2VjVG9vbHRpcF0nXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgVG9vbHRpcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8vVG9vbHRpcENvbmZpZzogcmVjZWl2ZXMgYWxsIHRoZSB0b29sdGlwIG9wdGlvbnMgdG8gb3ZlcndyaXRlIHRoZVxyXG4gIC8vZGVmYXVsdCBjb25maWd1cmF0aW9uIG9mIHRoZSB0b29sdGlwXHJcbiAgQElucHV0KCkgcHVibGljIHRvb2x0aXBDb25maWc/OiBUb29sdGlwT3B0aW9ucyA9IHVuZGVmaW5lZFxyXG5cclxuICAvL1Rvb2x0aXBUZXh0OiByZWNlaXZlcyBwbGFpbiB0ZXh0IHRvIGRpc3BsYXkgaW4gdGhlIGRlZmF1bHQgdG9vbHRpcFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwVGV4dD86IHN0cmluZyA9IHVuZGVmaW5lZDsgXHJcblxyXG4gIC8vVG9vbHRpcEN1c3RvbUNvbnRlbnQ6IHJlY2VpdmVzIGEgdGVtcGxhdGUgcmVmZXJlbmNlIHRvIGRpc3BsYXlcclxuICAvL2ludG8gdGhlIHRvb2x0aXAgY29udGVudFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwQ3VzdG9tQ29udGVudD86IFRlbXBsYXRlUmVmPGFueT4gPSB1bmRlZmluZWQ7XHJcbiAgXHJcbiAgXHJcbiAgLy9UaGlzIElucHV0IHdpbGwgcmVtYWluIGFzIElucHV0IGJlY2F1c2UgdG9vbHRpcFBvc2l0aW9uIGlzIG5vdCBwYXJ0XHJcbiAgLy9vZiBUb29sdGlwT3B0aW9ucyB0eXBlIG9mIG9iamVjdFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwUG9zaXRpb246IFRvb2x0aXBQb3NpdGlvbiA9IFwidG9wLWNlbnRlclwiO1xyXG5cclxuXHJcblxyXG4gIC8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cclxuXHJcbiAgLy9FdmVudHMgcmVsYXRlZFxyXG4gIHByaXZhdGUgbW91c2VPdmVyID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGludGVycnVwdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBoaWRlQ29tcGxldGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGNvbnRlbnRSZWN0OiBET01SZWN0IHwgdW5kZWZpbmVkO1xyXG5cclxuICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG4gIC8vUmVmZXJlbmNlIHRvIFRvb2x0aXBDb21wb25lbnQsIHdpbGwgYmUgZGVmaW5lZCBiZWxvdyBpbiB0aGlzLnNob3coKVxyXG4gIHByaXZhdGUgdG9vbHRpcD86IFRvb2x0aXBDb21wb25lbnQ7XHJcblxyXG4gIC8vT2JqZWN0IHdpdGggdGhlIHRvb2x0aXAgb3B0aW9ucyBidWlsZGVkIHdpdGggdGhlIElucHV0IHBhcmFtZXRlcnNcclxuICAvL2FuZCB1c2UgaXQgaW4gdG9vbHRpcFNlcnZpY2UgLSBzaG93KClcclxuICBwcml2YXRlIHRvb2x0aXBPcHRpb25zPzpUb29sdGlwT3B0aW9ucyA9IHt9XHJcbiAgXHJcblxyXG4gIC8qKlNldCB3aGVuIHdlIHNob3cgYSB0b29sdGlwLCB0byBhbGxvdyB1cyB0byB1bnN1YnNjcmliZSB0byBtb3VzZSBtb3ZlIHdoZW4gaGlkZSBmaXJlcy5cclxuICAgKiBpZiB3ZSBuZXZlciBzaG93ZWQgdGhlIHRvb2x0aXAgdGhpcyB3aWxsIHJlbWFpbiBudWxsIGFuZCB3ZSB3b24ndCBoYXZlIGFuIGV2ZW50IHRvIHVuc3Vic2NyaWJlIHRvXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBtb3VzZU1vdmVVbnN1YnNjcmliZTogKCgpPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHRvb2x0aXBTZXJ2aWNlOiBUb29sdGlwU2VydmljZSxcclxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZiwgXHJcbiAgICBwcml2YXRlIHJlbmRlcmVyMjogUmVuZGVyZXIyXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vY2hlY2tJbnB1dHNWYWx1ZSgpOiBpZiB0aGVyZSBpcyBhbiBlcnJvciBpdCB3aWxsIHByZXZlbnQgdG8gZXhlY3V0ZVxyXG4gICAgLy9hbnkgY29kZSByZWxhdGVkIHdpdGggdGhlIHRvb2x0aXAgc2V0dXBcclxuICAgIGlmKHRoaXMuY2hlY2tJbnB1dHNWYWx1ZSgpKSB7XHJcbiAgICAgIC8vQ3JlYXRlIHRoZSBvYmplY3Qgd2l0aCB0aGUgdG9vbHRpcCBvcHRpb25zIHByb3ZpZGVkIGFzIEBJbnB1dHNcclxuICAgICAgdGhpcy5jcmVhdGVUb29sdGlwT3B0aW9ucygpO1xyXG5cclxuICAgICAgLy9Nb3VzZU92ZXIgZmxvdzogc3RhcnQgdGhlIHByb2Nlc3Mgb2Ygc2hvd2luZyB0aGUgdG9vbHRpcFxyXG4gICAgICAvL3VudGlsIHRoZSBtb3VzZSBsZWF2ZXMgdGhlIGFuY2hvciBlbGVtZW50IHdpdGggdGhpcy5pbnRlcnJ1cHRcclxuICAgICAgdGhpcy5tb3VzZU92ZXJcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKHYgPT5cclxuICAgICAgICAgIG9mKHYpLnBpcGUoXHJcbiAgICAgICAgICAgIGRlbGF5KDMwMCksIC8vZGVsYXlzIHRoZSB0aW1lIHByZXZpb3VzIG9mIHNob3dpbmcgdGhlIHRvb2x0aXBcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuaW50ZXJydXB0KVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgIClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvdygpKTsgLy9DYWxscyB0aGUgZnVuY3Rpb24gcmVzcG9uc2FibGUgb2YgdXNpbmcgdGhlIHRvb2x0aXBTZXJ2aWNlXHJcbiAgXHJcbiAgICAgIC8vTW91c2UgbGVhdmUgZmxvdzogc3RhcnQgdGhlIHByb2Nlc3Mgb2YgcmVtb3ZpbmcgdGhlIHRvb2x0aXAgd2hlbiB0aGUgbW91c2UgaXMgYXdheSBvZiB0aGUgYW5jaG9yIGVsZW1lbnRcclxuICAgICAgdGhpcy5pbnRlcnJ1cHQucGlwZShcclxuICAgICAgICBzd2l0Y2hNYXAodiA9PiBcclxuICAgICAgICAgIG9mKHYpLnBpcGUoXHJcbiAgICAgICAgICAgIGRlbGF5KDUwKSxcclxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuaGlkZUNvbXBsZXRlZClcclxuICAgICAgICAgICkpXHJcbiAgICAgICkuc3Vic2NyaWJlKCgpID0+IHRoaXMuaGlkZSgpKTsgLy9oaWRlIHRoZSB0b29sdGlwIGFuZCB0cmlnZ2VycyB0aGUgY29tcGxldGVkIGN5Y2xlIGZsYWcgdGhpcy5oaWRlQ29tcGxldGVkXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKCdUaGVyZSBhcmUgdG9vIG1hbnkgcGFyYW1ldGVycyBvciBub25lIHBhcmFtZXRlciB0byBjb25maWcgdGhlIHRvb2x0aXAgb3B0aW9ucycpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqRGV0ZWN0cyB3aGVyZSB0aGUgbW91c2UgaXMgdG8gdHJpZ2dlciB0aGUgbGVhdmUvaGlkZSBwcm9jZXNzXHJcbiAgICogVGhpcyBpcyBhIGJhY2tzdG9wIHByb3RlY3Rpb24gYWdhaW5zdCB1cyBtaXNzaW5nIHRoZSBtb3VzZWxlYXZlIGV2ZW50IGFuZCBsZWF2aW5nIGEgaGFuZ2luZyBjaGFkLlxyXG4gICAqIE9uIHNvbWUgYnJvd3NlcnMsIGFuZCBvbiBzb21lIGFjdGlvbnMgKGVzcGVjaWFsbHkgc2Nyb2xsKSB0aGUgbW91c2VMZWF2ZSBzZWVtcyB0byBuZXZlciBmaXJlICovXHJcbiAgcHVibGljIG9uTW91c2VNb3ZlKGV2ZW50Ok1vdXNlRXZlbnQpIHtcclxuICAgIGxldCBjYWxsQ2FsbGJhY2sgPSBmYWxzZTtcclxuICAgIGlmKHRoaXMuY29udGVudFJlY3QpIHtcclxuICAgICAgY2FsbENhbGxiYWNrID0gdGhpcy50b29sdGlwU2VydmljZS5vbk1vdmUoZXZlbnQsIHRoaXMuY29udGVudFJlY3QhKTtcclxuICAgICAgaWYoY2FsbENhbGxiYWNrKSB7XHJcbiAgICAgICAgLy90cmlnZ2VyIG9uIGhpZGUgcHJvY2Vzc1xyXG4gICAgICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTsgXHJcbiAgICAgICAgLy9yZXNldCB0aGUgY29udGVudFJlYyBmb3IgYSBuZXcgdG9vbHRpcFxyXG4gICAgICAgIHRoaXMuY29udGVudFJlY3QgPSB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vVHJpZ2dlciB0aGUgcHJvY2VzcyB0byBzaG93IHRoZSB0b29sdGlwXHJcbiAgQEhvc3RMaXN0ZW5lcignbW91c2VvdmVyJylcclxuICBwdWJsaWMgb25Nb3VzZU92ZXIoKSB7XHJcbiAgICB0aGlzLm1vdXNlT3Zlci5uZXh0KCk7XHJcbiAgfVxyXG4gIFxyXG4gIC8vVHJpZ2dlciB0aGUgcHJvY2VzcyB0byBoaWRlIGFuZCBsYXRlciB0aGUgcHJvY2Vzc1xyXG4gIC8vdG8gbWFyayBhcyBjb21wbGV0ZSB0aGUgY3ljbGUgb2Ygc2hvdyBhbmQgaGlkZSB0aGUgdG9vbHRpcFxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxyXG4gIHB1YmxpYyBvbkxlYXZlKCkge1xyXG4gICAgdGhpcy5pbnRlcnJ1cHQubmV4dCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0lucHV0c1ZhbHVlKCk6Ym9vbGVhbiB7XHJcbiAgICBsZXQgcGFyYW1ldGVyc1dpdGhWYWx1ZSA9IDA7XHJcbiAgICBpZih0aGlzLnRvb2x0aXBUZXh0KSB7XHJcbiAgICAgIHBhcmFtZXRlcnNXaXRoVmFsdWUgPSBwYXJhbWV0ZXJzV2l0aFZhbHVlICsgMVxyXG4gICAgfSBcclxuICAgIGlmKHRoaXMudG9vbHRpcEN1c3RvbUNvbnRlbnQpIHtcclxuICAgICAgcGFyYW1ldGVyc1dpdGhWYWx1ZSA9IHBhcmFtZXRlcnNXaXRoVmFsdWUgKyAxXHJcbiAgICB9XHJcbiAgICBpZih0aGlzLnRvb2x0aXBDb25maWcpIHtcclxuICAgICAgcGFyYW1ldGVyc1dpdGhWYWx1ZSA9IHBhcmFtZXRlcnNXaXRoVmFsdWUgKyAxXHJcbiAgICB9XHJcbiAgICBpZihwYXJhbWV0ZXJzV2l0aFZhbHVlID09PSAxKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuICAvKipcclxuICAgKiBjcmVhdGVUb29sdGlwT3B0aW9uc1xyXG4gICAqIHdpbGwgb25seSBiZSBleGVjdXRlZCBhZnRlciBtYW5hZ2VFcnJvcigpIHZlcmlmaWVzIFxyXG4gICAqIGlmIHRoZSBwYXJhbWV0ZXJzIGFyZSBub3Qgb3ZlcmxhcHBpbmcgZWFjaCBvdGhlclxyXG4gICAqIGFuZCBpdCB3aWxsIGJ1aWxkIHRoZSB0b29sdGlwT3B0aW9ucyBvYmplY3RcclxuICAgKi9cclxuICBwcml2YXRlIGNyZWF0ZVRvb2x0aXBPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgdGhpcy50b29sdGlwT3B0aW9ucyA9IHtcclxuICAgICAgaWQ6IGB0b29sdGlwXyR7dGhpcy50b29sdGlwQ29uZmlnPy5pZD8gdGhpcy50b29sdGlwQ29uZmlnPy5pZDogJyd9YCxcclxuICAgICAgdGV4dDogdGhpcy50b29sdGlwQ29uZmlnPy50ZXh0IHx8IHRoaXMudG9vbHRpcFRleHQsXHJcbiAgICAgIHRpdGxlOiB0aGlzLnRvb2x0aXBDb25maWc/LnRpdGxlLFxyXG4gICAgICBzdWJ0aXRsZTogdGhpcy50b29sdGlwQ29uZmlnPy5zdWJ0aXRsZSxcclxuICAgICAgY3VzdG9tQ29udGVudDogdGhpcy50b29sdGlwQ29uZmlnPy5jdXN0b21Db250ZW50IHx8IHRoaXMudG9vbHRpcEN1c3RvbUNvbnRlbnQsXHJcbiAgICAgIGRpc21pc3NpYmxlOiB0aGlzLnRvb2x0aXBDb25maWc/LmRpc21pc3NpYmxlIHx8IGZhbHNlLFxyXG4gICAgICBtYXhXaWR0aDogdGhpcy50b29sdGlwQ29uZmlnPy5tYXhXaWR0aCxcclxuICAgICAgd2lkdGg6IHRoaXMudG9vbHRpcENvbmZpZz8ud2lkdGgsXHJcbiAgICAgIGJhY2tncm91bmRDb2xvcjogdGhpcy50b29sdGlwQ29uZmlnPy5iYWNrZ3JvdW5kQ29sb3IsXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcblxyXG4gIHByaXZhdGUgc2hvdygpOnZvaWQge1xyXG4gICAgLy9SZWZlcmVuY2UgdG8gdGhlIGVsZW1lbnQgd2hlcmUgdG8gdG9vbHRpcCBpcyBhdHRhY2hlZFxyXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xyXG4gICAgLy9jb250ZW50UmVjdCB3aWxsIGJlIGFzc2luZyBvbmx5IGFmdGVyIHNob3dpbmcgYSB0b29sdGlwL3BvcG92ZXIgYW5kIGl0IHdpbGwgYmVcclxuICAgIC8vcmVzZXQgYWZ0ZXIgaGlkZSB0aGUgc2FtZSB0b29sdGlwL3BvcG92ZXJcclxuICAgIHRoaXMuY29udGVudFJlY3QgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIC8vdG9vbHRpcFBvc2l0aW9uIGlzIG5ldmVyIHVuZGVmaW5lZCwgZGVmYXVsdCB2YWx1ZSA9IFwidG9wLWNlbnRlclwiXHJcbiAgICBpZighdGhpcy50b29sdGlwKSB7XHJcbiAgICAgIHRoaXMudG9vbHRpcCA9IHRoaXMudG9vbHRpcFNlcnZpY2Uuc2hvdyhlbGVtZW50IGFzIEhUTUxFbGVtZW50LCB0aGlzLnRvb2x0aXBQb3NpdGlvbiwgdGhpcy50b29sdGlwT3B0aW9ucyk7XHJcbiAgICAgIHRoaXMubW91c2VNb3ZlVW5zdWJzY3JpYmUgPSB0aGlzLnJlbmRlcmVyMi5saXN0ZW4oZG9jdW1lbnQsICdtb3VzZW1vdmUnLCB0aGlzLm9uTW91c2VNb3ZlLmJpbmQodGhpcykpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoaWRlKCk6dm9pZCB7XHJcbiAgICAvL1RoZXJlIGlzIGEgdGltaW5nIGlzc3VlIGJldHdlZW4gdGhlIHNob3cgLSBoaWRlIHdpdGggXHJcbiAgICAvL2xpbmVyIHRvb2x0aXAgZWxlbWVudHMsIHNvIHRoZSBiZWxvdyBsaW5lXHJcbiAgICAvL21ha2VzIHN1cmUgdGhlIGFwcCBkb2Vzbid0IGJyZWFrXHJcbiAgICBpZih0aGlzLnRvb2x0aXApIHtcclxuICAgICAgLy9DYWxsIHRoZSBoaWRlKCkgZnJvbSB0aGUgdG9vbHRpcCBjb21wb25lbnRcclxuICAgICAgdGhpcy50b29sdGlwLmhpZGUoKTtcclxuICAgICAgdGhpcy50b29sdGlwID0gdW5kZWZpbmVkO1xyXG4gICAgICBcclxuICAgICAgaWYodGhpcy5tb3VzZU1vdmVVbnN1YnNjcmliZSl7XHJcbiAgICAgICAgdGhpcy5tb3VzZU1vdmVVbnN1YnNjcmliZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy9JbnRlcnJ1cHQgdGhlIGZsb3cgb2YgbW91c2VvdmVyIHdpdGggYSBkZWxheSBhbmQgdHJpZ2dlcnMgdGhlIFxyXG4gICAgLy9mbG93IHRvIGhpZGUgdGhlIHRvb2x0aXAgd2l0aCBhIGRlbGF5IFxyXG4gICAgdGhpcy5pbnRlcnJ1cHQubmV4dCgpO1xyXG4gICAgLy9Xb3JrIGFzIGEgZmxhZyB0byBpbmRpY2F0ZSB0aGUgZmxvdyBvZiBzaG93IGFuZCBoaWRlIGhhcyBiZWVuIGNvbXBsZXRlZFxyXG4gICAgdGhpcy5oaWRlQ29tcGxldGVkLm5leHQoKTtcclxuICB9XHJcblxyXG4gIC8vV2hlbiB0aGUgZWxlbWVudCB3aGVyZSB0aGUgdG9vbHRpcCBpcyBhdHRhY2hlZCBkaXNhcHBlYXJzXHJcbiAgLy90aGUgdG9vbHRpcCBzaG91bGQgYmUgZGVzdHJveSBhcyB3ZWxsICBcclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgdGhpcy5pbnRlcnJ1cHQubmV4dCgpO1xyXG4gIH1cclxuXHJcbn1cclxuIl19