@energycap/components 0.41.1-ECAP-26841-date-input-features.20250108-1149 → 0.42.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (353) hide show
  1. package/{esm2020 → esm2022}/energycap-components.mjs +4 -4
  2. package/esm2022/lib/components.module.mjs +418 -0
  3. package/esm2022/lib/controls/banner/banner.component.mjs +109 -0
  4. package/esm2022/lib/controls/button/button.component.mjs +106 -0
  5. package/esm2022/lib/controls/button/copy-button-base.directive.mjs +67 -0
  6. package/{esm2020 → esm2022}/lib/controls/button/copy-button.directive.mjs +28 -28
  7. package/esm2022/lib/controls/button/copy-table-button.directive.mjs +43 -0
  8. package/esm2022/lib/controls/calendar/calendar-item.component.mjs +59 -0
  9. package/esm2022/lib/controls/calendar/calendar.component.mjs +200 -0
  10. package/esm2022/lib/controls/calendar/calendar.types.mjs +4 -0
  11. package/esm2022/lib/controls/checkbox/checkbox.component.mjs +140 -0
  12. package/{esm2020 → esm2022}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
  13. package/esm2022/lib/controls/combobox/combobox.component.mjs +879 -0
  14. package/esm2022/lib/controls/date-input/date-input.component.mjs +256 -0
  15. package/esm2022/lib/controls/dropdown/dropdown.component.mjs +243 -0
  16. package/esm2022/lib/controls/file-upload/file-upload.component.mjs +261 -0
  17. package/esm2022/lib/controls/form-control/form-control.component.mjs +104 -0
  18. package/esm2022/lib/controls/form-control-base.mjs +151 -0
  19. package/esm2022/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
  20. package/esm2022/lib/controls/form-group/form-group.component.mjs +261 -0
  21. package/{esm2020 → esm2022}/lib/controls/help-popover/help-popover.component.mjs +31 -31
  22. package/esm2022/lib/controls/item-picker/item-picker.component.mjs +329 -0
  23. package/{esm2020 → esm2022}/lib/controls/link-button/link-button.component.mjs +11 -11
  24. package/esm2022/lib/controls/menu/menu.component.mjs +485 -0
  25. package/{esm2020 → esm2022}/lib/controls/navigation/link-item.mjs +1 -1
  26. package/esm2022/lib/controls/navigation/nav-group.mjs +39 -0
  27. package/esm2022/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
  28. package/{esm2020 → esm2022}/lib/controls/navigation/nav-item.mjs +1 -1
  29. package/esm2022/lib/controls/numericbox/numericbox.component.mjs +372 -0
  30. package/esm2022/lib/controls/popover/popover.component.mjs +117 -0
  31. package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button-option.mjs +2 -2
  32. package/esm2022/lib/controls/radio-button/radio-button.component.mjs +82 -0
  33. package/esm2022/lib/controls/select/select.component.mjs +88 -0
  34. package/esm2022/lib/controls/tabs/tabs.component.mjs +47 -0
  35. package/esm2022/lib/controls/textbox/textbox.component.mjs +155 -0
  36. package/esm2022/lib/core/cache.service.mjs +105 -0
  37. package/esm2022/lib/core/custom-validators.mjs +29 -0
  38. package/esm2022/lib/core/date-time-helper.mjs +220 -0
  39. package/esm2022/lib/core/error.service.mjs +61 -0
  40. package/esm2022/lib/core/router-helper.service.mjs +111 -0
  41. package/esm2022/lib/core/scroll.service.mjs +89 -0
  42. package/{esm2020 → esm2022}/lib/core/telemetry-tracker.service.mjs +16 -16
  43. package/{esm2020 → esm2022}/lib/core/telemetry.service.mjs +38 -38
  44. package/esm2022/lib/core/validation-message.service.mjs +185 -0
  45. package/{esm2020 → esm2022}/lib/core/validation-patterns.mjs +30 -30
  46. package/esm2022/lib/core/window.service.mjs +186 -0
  47. package/esm2022/lib/display/app-bar/app-bar.component.mjs +46 -0
  48. package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
  49. package/esm2022/lib/display/avatar/avatar.service.mjs +64 -0
  50. package/esm2022/lib/display/confirm/confirm.component.mjs +168 -0
  51. package/{esm2020 → esm2022}/lib/display/dialog/dialog-content.mjs +1 -1
  52. package/esm2022/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
  53. package/{esm2020 → esm2022}/lib/display/dialog/dialog-types.mjs +76 -76
  54. package/esm2022/lib/display/dialog/dialog.component.mjs +281 -0
  55. package/{esm2020 → esm2022}/lib/display/dialog/dialog.service.mjs +71 -71
  56. package/{esm2020 → esm2022}/lib/display/help/help-types.mjs +1 -1
  57. package/esm2022/lib/display/hierarchy/hierarchy-base.mjs +111 -0
  58. package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
  59. package/esm2022/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -0
  60. package/esm2022/lib/display/item-display/item-display.component.mjs +81 -0
  61. package/esm2022/lib/display/json-display/json-display.component.mjs +47 -0
  62. package/esm2022/lib/display/resizable/resizable-base.mjs +120 -0
  63. package/{esm2020 → esm2022}/lib/display/resizable/resizable.component.mjs +52 -52
  64. package/{esm2020 → esm2022}/lib/display/spinner/spinner.component.mjs +12 -12
  65. package/esm2022/lib/display/splash/splash.component.mjs +42 -0
  66. package/{esm2020 → esm2022}/lib/display/splash/splash.service.mjs +35 -35
  67. package/{esm2020 → esm2022}/lib/display/table/resizable-column.component.mjs +20 -20
  68. package/esm2022/lib/display/table/resizable-table.directive.mjs +227 -0
  69. package/esm2022/lib/display/table/searchable-table.component.mjs +342 -0
  70. package/{esm2020 → esm2022}/lib/display/table/table-detail-row.component.mjs +19 -19
  71. package/esm2022/lib/display/table/table-locked-column.component.mjs +58 -0
  72. package/{esm2020 → esm2022}/lib/display/table/table-master-header-row.component.mjs +14 -14
  73. package/esm2022/lib/display/table/table-master-row.component.mjs +163 -0
  74. package/esm2022/lib/display/table/table-pagination.component.mjs +155 -0
  75. package/esm2022/lib/display/table/table-selectable-row.component.mjs +235 -0
  76. package/esm2022/lib/display/table/table.component.mjs +249 -0
  77. package/esm2022/lib/display/tags/tag.mjs +18 -0
  78. package/esm2022/lib/display/tags/tags.component.mjs +77 -0
  79. package/esm2022/lib/display/toast/toast/toast.component.mjs +77 -0
  80. package/{esm2020 → esm2022}/lib/display/toast/toast-types.mjs +7 -7
  81. package/{esm2020 → esm2022}/lib/display/toast/toast.service.mjs +35 -35
  82. package/esm2022/lib/display/toast/toaster/toaster.component.mjs +114 -0
  83. package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.component.mjs +28 -28
  84. package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.service.mjs +78 -78
  85. package/esm2022/lib/display/tooltip-directive/tooltip.directive.mjs +173 -0
  86. package/{esm2020 → esm2022}/lib/display/tour/tour-types.mjs +33 -33
  87. package/esm2022/lib/display/tour/tour.component.mjs +398 -0
  88. package/esm2022/lib/display/tour/tour.service.mjs +75 -0
  89. package/esm2022/lib/display/tree/tree.component.mjs +135 -0
  90. package/esm2022/lib/display/view-overlay/view-overlay.component.mjs +58 -0
  91. package/esm2022/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
  92. package/esm2022/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
  93. package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
  94. package/esm2022/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
  95. package/esm2022/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
  96. package/esm2022/lib/shared/display/pipes/relative-date.pipe.mjs +62 -0
  97. package/esm2022/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
  98. package/esm2022/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
  99. package/esm2022/lib/shared/display.mjs +6 -0
  100. package/esm2022/lib/shared/form-group.helper.mjs +67 -0
  101. package/esm2022/lib/shared/json-helper.mjs +19 -0
  102. package/esm2022/lib/shared/lodash-helper.mjs +52 -0
  103. package/esm2022/lib/shared/page/page-base/page-base.component.mjs +387 -0
  104. package/{esm2020 → esm2022}/lib/shared/page/page-statuses.mjs +22 -22
  105. package/{esm2020 → esm2022}/lib/shared/page/page-title/page-title.component.mjs +23 -23
  106. package/esm2022/lib/shared/page/page-view/page-view.component.mjs +147 -0
  107. package/{esm2020 → esm2022}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
  108. package/{esm2020 → esm2022}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
  109. package/{esm2020 → esm2022}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
  110. package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
  111. package/{esm2020 → esm2022}/lib/shared/testing/public-mocks.spec.mjs +148 -148
  112. package/{esm2020 → esm2022}/lib/shared/testing/spy-factory.spec.mjs +39 -39
  113. package/{esm2020 → esm2022}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
  114. package/{esm2020 → esm2022}/lib/shared/user-preference.service.mjs +17 -17
  115. package/esm2022/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
  116. package/{esm2020 → esm2022}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
  117. package/{esm2020 → esm2022}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
  118. package/esm2022/public-api.mjs +115 -0
  119. package/{fesm2020 → fesm2022}/energycap-components.mjs +11819 -12974
  120. package/fesm2022/energycap-components.mjs.map +1 -0
  121. package/index.d.ts +5 -5
  122. package/lib/components.module.d.ts +91 -92
  123. package/lib/controls/banner/banner.component.d.ts +50 -50
  124. package/lib/controls/button/button.component.d.ts +78 -78
  125. package/lib/controls/button/copy-button-base.directive.d.ts +20 -20
  126. package/lib/controls/button/copy-button.directive.d.ts +14 -14
  127. package/lib/controls/button/copy-table-button.directive.d.ts +19 -19
  128. package/lib/controls/calendar/calendar-item.component.d.ts +17 -22
  129. package/lib/controls/calendar/calendar.component.d.ts +54 -52
  130. package/lib/controls/calendar/calendar.types.d.ts +7 -11
  131. package/lib/controls/checkbox/checkbox.component.d.ts +65 -65
  132. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -25
  133. package/lib/controls/combobox/combobox.component.d.ts +418 -418
  134. package/lib/controls/date-input/date-input.component.d.ts +80 -115
  135. package/lib/controls/dropdown/dropdown.component.d.ts +161 -161
  136. package/lib/controls/file-upload/file-upload.component.d.ts +124 -124
  137. package/lib/controls/form-control/form-control.component.d.ts +30 -28
  138. package/lib/controls/form-control-base.d.ts +110 -110
  139. package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -73
  140. package/lib/controls/form-group/form-group.component.d.ts +105 -105
  141. package/lib/controls/help-popover/help-popover.component.d.ts +11 -11
  142. package/lib/controls/item-picker/item-picker.component.d.ts +164 -164
  143. package/lib/controls/link-button/link-button.component.d.ts +5 -5
  144. package/lib/controls/menu/menu.component.d.ts +255 -255
  145. package/lib/controls/navigation/link-item.d.ts +32 -32
  146. package/lib/controls/navigation/nav-group.d.ts +18 -18
  147. package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -42
  148. package/lib/controls/navigation/nav-item.d.ts +31 -31
  149. package/lib/controls/numericbox/numericbox.component.d.ts +148 -148
  150. package/lib/controls/popover/popover.component.d.ts +51 -51
  151. package/lib/controls/radio-button/radio-button-option.d.ts +19 -19
  152. package/lib/controls/radio-button/radio-button.component.d.ts +53 -53
  153. package/lib/controls/select/select.component.d.ts +44 -44
  154. package/lib/controls/tabs/tabs.component.d.ts +30 -30
  155. package/lib/controls/textbox/textbox.component.d.ts +107 -107
  156. package/lib/core/cache.service.d.ts +33 -33
  157. package/lib/core/custom-validators.d.ts +20 -20
  158. package/lib/core/date-time-helper.d.ts +101 -101
  159. package/lib/core/error.service.d.ts +20 -20
  160. package/lib/core/router-helper.service.d.ts +48 -48
  161. package/lib/core/scroll.service.d.ts +36 -36
  162. package/lib/core/telemetry-tracker.service.d.ts +13 -13
  163. package/lib/core/telemetry.service.d.ts +31 -31
  164. package/lib/core/validation-message.service.d.ts +26 -26
  165. package/lib/core/validation-patterns.d.ts +22 -22
  166. package/lib/core/window.service.d.ts +116 -116
  167. package/lib/display/app-bar/app-bar.component.d.ts +20 -20
  168. package/lib/display/avatar/avatar.component.d.ts +35 -35
  169. package/lib/display/avatar/avatar.service.d.ts +24 -24
  170. package/lib/display/confirm/confirm.component.d.ts +123 -123
  171. package/lib/display/dialog/dialog-content.d.ts +19 -19
  172. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -32
  173. package/lib/display/dialog/dialog-types.d.ts +130 -130
  174. package/lib/display/dialog/dialog.component.d.ts +120 -120
  175. package/lib/display/dialog/dialog.service.d.ts +48 -48
  176. package/lib/display/help/help-types.d.ts +33 -33
  177. package/lib/display/hierarchy/hierarchy-base.d.ts +97 -97
  178. package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -53
  179. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -34
  180. package/lib/display/item-display/item-display.component.d.ts +43 -43
  181. package/lib/display/json-display/json-display.component.d.ts +16 -16
  182. package/lib/display/resizable/resizable-base.d.ts +67 -67
  183. package/lib/display/resizable/resizable.component.d.ts +31 -31
  184. package/lib/display/spinner/spinner.component.d.ts +5 -5
  185. package/lib/display/splash/splash.component.d.ts +16 -16
  186. package/lib/display/splash/splash.service.d.ts +22 -22
  187. package/lib/display/table/resizable-column.component.d.ts +10 -10
  188. package/lib/display/table/resizable-table.directive.d.ts +93 -93
  189. package/lib/display/table/searchable-table.component.d.ts +206 -206
  190. package/lib/display/table/table-detail-row.component.d.ts +8 -8
  191. package/lib/display/table/table-locked-column.component.d.ts +20 -20
  192. package/lib/display/table/table-master-header-row.component.d.ts +9 -9
  193. package/lib/display/table/table-master-row.component.d.ts +113 -113
  194. package/lib/display/table/table-pagination.component.d.ts +91 -91
  195. package/lib/display/table/table-selectable-row.component.d.ts +102 -102
  196. package/lib/display/table/table.component.d.ts +121 -121
  197. package/lib/display/tags/tag.d.ts +18 -18
  198. package/lib/display/tags/tags.component.d.ts +48 -48
  199. package/lib/display/toast/toast/toast.component.d.ts +23 -23
  200. package/lib/display/toast/toast-types.d.ts +24 -24
  201. package/lib/display/toast/toast.service.d.ts +20 -20
  202. package/lib/display/toast/toaster/toaster.component.d.ts +35 -35
  203. package/lib/display/tooltip/tooltip.component.d.ts +70 -70
  204. package/lib/display/tooltip/tooltip.service.d.ts +16 -16
  205. package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -44
  206. package/lib/display/tour/tour-types.d.ts +70 -70
  207. package/lib/display/tour/tour.component.d.ts +147 -147
  208. package/lib/display/tour/tour.service.d.ts +38 -38
  209. package/lib/display/tree/tree.component.d.ts +75 -75
  210. package/lib/display/view-overlay/view-overlay.component.d.ts +38 -38
  211. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -14
  212. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -60
  213. package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -101
  214. package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -21
  215. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -9
  216. package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -36
  217. package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -23
  218. package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -18
  219. package/lib/shared/display.d.ts +42 -42
  220. package/lib/shared/form-group.helper.d.ts +31 -31
  221. package/lib/shared/json-helper.d.ts +7 -7
  222. package/lib/shared/lodash-helper.d.ts +18 -18
  223. package/lib/shared/page/page-base/page-base.component.d.ts +259 -259
  224. package/lib/shared/page/page-statuses.d.ts +13 -13
  225. package/lib/shared/page/page-title/page-title.component.d.ts +9 -9
  226. package/lib/shared/page/page-view/page-view.component.d.ts +102 -102
  227. package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -4
  228. package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -4
  229. package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -30
  230. package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -28
  231. package/lib/shared/testing/public-mocks.spec.d.ts +90 -90
  232. package/lib/shared/testing/spy-factory.spec.d.ts +27 -27
  233. package/lib/shared/testing/translation-mocks.spec.d.ts +30 -30
  234. package/lib/shared/user-preference.service.d.ts +13 -13
  235. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -134
  236. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -27
  237. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -10
  238. package/package.json +12 -18
  239. package/public-api.d.ts +111 -113
  240. package/schematics/rxjs-7-upgrade/index.d.ts +3 -3
  241. package/schematics/rxjs-7-upgrade/index.js +67 -67
  242. package/schematics/rxjs-7-upgrade/index.js.map +1 -1
  243. package/schematics/rxjs-7-upgrade/schema.d.ts +4 -4
  244. package/schematics/rxjs-7-upgrade/schema.js +2 -2
  245. package/schematics/utilities/typescript.d.ts +7 -7
  246. package/schematics/utilities/typescript.js +41 -41
  247. package/schematics/utilities/workspace.d.ts +8 -8
  248. package/schematics/utilities/workspace.js +71 -71
  249. package/schematics/utilities/workspace.js.map +1 -1
  250. package/src/assets/locales/en_US.json +1 -9
  251. package/esm2020/lib/components.module.mjs +0 -423
  252. package/esm2020/lib/controls/banner/banner.component.mjs +0 -109
  253. package/esm2020/lib/controls/button/button.component.mjs +0 -106
  254. package/esm2020/lib/controls/button/copy-button-base.directive.mjs +0 -67
  255. package/esm2020/lib/controls/button/copy-table-button.directive.mjs +0 -43
  256. package/esm2020/lib/controls/calendar/calendar-item.component.mjs +0 -91
  257. package/esm2020/lib/controls/calendar/calendar.component.mjs +0 -248
  258. package/esm2020/lib/controls/calendar/calendar.types.mjs +0 -2
  259. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +0 -140
  260. package/esm2020/lib/controls/combobox/combobox.component.mjs +0 -879
  261. package/esm2020/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.mjs +0 -57
  262. package/esm2020/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.mjs +0 -62
  263. package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.mjs +0 -100
  264. package/esm2020/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.mjs +0 -101
  265. package/esm2020/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.mjs +0 -76
  266. package/esm2020/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.mjs +0 -79
  267. package/esm2020/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.mjs +0 -210
  268. package/esm2020/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.mjs +0 -81
  269. package/esm2020/lib/controls/date-input/date-input.component.mjs +0 -465
  270. package/esm2020/lib/controls/date-input/date-input.types.mjs +0 -44
  271. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +0 -243
  272. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +0 -261
  273. package/esm2020/lib/controls/form-control/form-control.component.mjs +0 -98
  274. package/esm2020/lib/controls/form-control-base.mjs +0 -151
  275. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +0 -136
  276. package/esm2020/lib/controls/form-group/form-group.component.mjs +0 -261
  277. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +0 -329
  278. package/esm2020/lib/controls/menu/menu.component.mjs +0 -485
  279. package/esm2020/lib/controls/navigation/nav-group.mjs +0 -39
  280. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +0 -92
  281. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +0 -372
  282. package/esm2020/lib/controls/popover/popover.component.mjs +0 -117
  283. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +0 -82
  284. package/esm2020/lib/controls/select/select.component.mjs +0 -88
  285. package/esm2020/lib/controls/tabs/tabs.component.mjs +0 -47
  286. package/esm2020/lib/controls/textbox/textbox.component.mjs +0 -155
  287. package/esm2020/lib/core/cache.service.mjs +0 -105
  288. package/esm2020/lib/core/custom-validators.mjs +0 -29
  289. package/esm2020/lib/core/date-time-helper.mjs +0 -228
  290. package/esm2020/lib/core/error.service.mjs +0 -61
  291. package/esm2020/lib/core/router-helper.service.mjs +0 -111
  292. package/esm2020/lib/core/scroll.service.mjs +0 -89
  293. package/esm2020/lib/core/validation-message.service.mjs +0 -185
  294. package/esm2020/lib/core/window.service.mjs +0 -186
  295. package/esm2020/lib/display/app-bar/app-bar.component.mjs +0 -46
  296. package/esm2020/lib/display/avatar/avatar.component.mjs +0 -67
  297. package/esm2020/lib/display/avatar/avatar.service.mjs +0 -64
  298. package/esm2020/lib/display/confirm/confirm.component.mjs +0 -168
  299. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +0 -63
  300. package/esm2020/lib/display/dialog/dialog.component.mjs +0 -281
  301. package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +0 -111
  302. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +0 -61
  303. package/esm2020/lib/display/item-display/item-display.component.mjs +0 -81
  304. package/esm2020/lib/display/json-display/json-display.component.mjs +0 -47
  305. package/esm2020/lib/display/resizable/resizable-base.mjs +0 -120
  306. package/esm2020/lib/display/splash/splash.component.mjs +0 -42
  307. package/esm2020/lib/display/table/resizable-table.directive.mjs +0 -227
  308. package/esm2020/lib/display/table/searchable-table.component.mjs +0 -342
  309. package/esm2020/lib/display/table/table-locked-column.component.mjs +0 -58
  310. package/esm2020/lib/display/table/table-master-row.component.mjs +0 -163
  311. package/esm2020/lib/display/table/table-pagination.component.mjs +0 -155
  312. package/esm2020/lib/display/table/table-selectable-row.component.mjs +0 -235
  313. package/esm2020/lib/display/table/table.component.mjs +0 -249
  314. package/esm2020/lib/display/tags/tag.mjs +0 -18
  315. package/esm2020/lib/display/tags/tags.component.mjs +0 -77
  316. package/esm2020/lib/display/toast/toast/toast.component.mjs +0 -77
  317. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +0 -114
  318. package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +0 -173
  319. package/esm2020/lib/display/tour/tour.component.mjs +0 -398
  320. package/esm2020/lib/display/tour/tour.service.mjs +0 -75
  321. package/esm2020/lib/display/tree/tree.component.mjs +0 -135
  322. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +0 -58
  323. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +0 -32
  324. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +0 -111
  325. package/esm2020/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.mjs +0 -100
  326. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +0 -163
  327. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +0 -50
  328. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +0 -30
  329. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +0 -62
  330. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +0 -48
  331. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +0 -41
  332. package/esm2020/lib/shared/display.mjs +0 -6
  333. package/esm2020/lib/shared/form-group.helper.mjs +0 -67
  334. package/esm2020/lib/shared/json-helper.mjs +0 -19
  335. package/esm2020/lib/shared/lodash-helper.mjs +0 -51
  336. package/esm2020/lib/shared/page/page-base/page-base.component.mjs +0 -387
  337. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +0 -147
  338. package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
  339. package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +0 -246
  340. package/esm2020/public-api.mjs +0 -117
  341. package/fesm2015/energycap-components.mjs +0 -13373
  342. package/fesm2015/energycap-components.mjs.map +0 -1
  343. package/fesm2020/energycap-components.mjs.map +0 -1
  344. package/lib/controls/date-input/date-input-selection-strategies/date-input-selection-strategy-base.d.ts +0 -42
  345. package/lib/controls/date-input/date-input-selection-strategies/day-selection-strategy.d.ts +0 -21
  346. package/lib/controls/date-input/date-input-selection-strategies/last-28-days-selection-strategy.d.ts +0 -21
  347. package/lib/controls/date-input/date-input-selection-strategies/last-7-days-selection-strategy.d.ts +0 -21
  348. package/lib/controls/date-input/date-input-selection-strategies/month-selection-strategy.d.ts +0 -18
  349. package/lib/controls/date-input/date-input-selection-strategies/quarter-selection-strategy.d.ts +0 -18
  350. package/lib/controls/date-input/date-input-selection-strategies/range-selection-strategy.d.ts +0 -21
  351. package/lib/controls/date-input/date-input-selection-strategies/year-selection-strategy.d.ts +0 -20
  352. package/lib/controls/date-input/date-input.types.d.ts +0 -62
  353. package/lib/shared/directives/keyboard-nav-container/keyboard-nav-container.directive.d.ts +0 -23
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsZ0VBQWdFO0FBQ2hFLE1BQU0sT0FBTyxHQUFHO0lBbUJkLFlBQVksS0FBYSxFQUFFLElBQWMsRUFBRSxTQUFrQixFQUFFLElBQWEsRUFBRSxhQUF1QixFQUFFLE9BQWdCLEVBQUUsR0FBWSxFQUFFLE1BQW1CO1FBRm5KLFdBQU0sR0FBZ0IsT0FBTyxDQUFDO1FBR25DLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxJQUFJLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsSUFBSSxLQUFLLENBQUM7UUFDNUMsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLEdBQUcsR0FBRyxHQUFHLENBQUM7UUFDZixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sSUFBSSxPQUFPLENBQUM7UUFFaEMsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztTQUM1QjtJQUNILENBQUM7Q0FDRjtBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGFnIHR5cGUgdXNlZCB0byBzdHlsZSB0aGUgdGFnICovXHJcbmV4cG9ydCB0eXBlIFRhZ1R5cGUgPSBcImluZm9cIiB8IFwic3VjY2Vzc1wiIHwgXCJ3YXJuaW5nXCIgfCBcImRhbmdlclwiIHwgXCJhY2NlbnRcIiB8IFwiY2hhcmdlYmFja1wiIHwgXCJhY2NydWFsXCIgfCBcImludmVydGVkXCIgfCBcInN5c3RlbVwiO1xyXG5cclxuLyoqIExpbmsgdGFyZ2V0IG9wdGlvbnMsIHNoYXJlZCBhbW9uZ3N0IHRhZywgbWVudSBhbmQgaXRlbSBkaXNwbGF5ICovXHJcbmV4cG9ydCB0eXBlIExpbmtUYXJnZXQgPSAnX3NlbGYnIHwgJ19ibGFuaycgfCAnX3BhcmVudCcgfCAnX3RvcCc7XHJcblxyXG4vKiogVGFnIGNvbnRhaW5zIGEgbGFiZWwgYW5kIHR5cGUuIFR5cGUgaXMgZGVmYXVsdCBieSBkZWZhdWx0ICovXHJcbmV4cG9ydCBjbGFzcyBUYWcge1xyXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgdHlwZTogVGFnVHlwZTtcclxuXHJcbiAgcHVibGljIGljb24/OiBzdHJpbmc7XHJcblxyXG4gIHB1YmxpYyBpc0Rpc21pc3NhYmxlPzogYm9vbGVhbjtcclxuXHJcbiAgLyoqIENTUyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRhZyBmb3IgY3VzdG9tIHN0eWxpbmcgKi9cclxuICBwdWJsaWMgY2xhc3NMaXN0Pzogc3RyaW5nO1xyXG5cclxuICBwdWJsaWMgdG9vbHRpcD86IHN0cmluZztcclxuXHJcbiAgLyoqIFdoZW4gc2V0IGEgaHlwZXJsaW5rIHdpbGwgYmUgc2hvd24gbGlua2luZyB0byB0aGUgdmFsdWUgc2V0ICovXHJcbiAgcHVibGljIHVybD86IHN0cmluZztcclxuXHJcbiAgcHVibGljIHRhcmdldD86IExpbmtUYXJnZXQgPSAnX3NlbGYnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihsYWJlbDogc3RyaW5nLCB0eXBlPzogVGFnVHlwZSwgY2xhc3NMaXN0Pzogc3RyaW5nLCBpY29uPzogc3RyaW5nLCBpc0Rpc21pc3NhYmxlPzogYm9vbGVhbiwgdG9vbHRpcD86IHN0cmluZywgdXJsPzogc3RyaW5nLCB0YXJnZXQ/OiBMaW5rVGFyZ2V0ICkge1xyXG4gICAgdGhpcy5sYWJlbCA9IGxhYmVsO1xyXG4gICAgdGhpcy50eXBlID0gdHlwZSB8fCAnaW5mbyc7XHJcbiAgICB0aGlzLmljb24gPSBpY29uO1xyXG4gICAgdGhpcy5pc0Rpc21pc3NhYmxlID0gaXNEaXNtaXNzYWJsZSA/PyBmYWxzZTtcclxuICAgIHRoaXMudG9vbHRpcCA9IHRvb2x0aXA7XHJcbiAgICB0aGlzLnVybCA9IHVybDtcclxuICAgIHRoaXMudGFyZ2V0ID0gdGFyZ2V0IHx8ICdfc2VsZic7XHJcblxyXG4gICAgaWYgKGNsYXNzTGlzdCkge1xyXG4gICAgICB0aGlzLmNsYXNzTGlzdCA9IGNsYXNzTGlzdDtcclxuICAgIH1cclxuICB9XHJcbn07Il19
@@ -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
- }
61
- TagsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TagsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
62
- TagsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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" }] });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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: function () { return []; }, 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90YWdzL3RhZ3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdGFncy90YWdzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsS0FBSyxFQUFpQixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWpHLE1BQU0sT0FBTyxhQUFhO0lBdUN4QjtRQXJDQSxnQ0FBZ0M7UUFDaEIsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQVVoQzs7Ozs7V0FLRztRQUNhLFNBQUksR0FBWSxJQUFJLENBQUM7UUFFckM7O1dBRUc7UUFDYSxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUU3Qzs7V0FFRztRQUNjLGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUV4RTs7Ozs7V0FLRztRQUNJLGNBQVMsR0FBVSxFQUFFLENBQUM7SUFFYixDQUFDO0lBRWpCOzs7Ozs7T0FNRztJQUNILFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNiLDhFQUE4RTtnQkFDOUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM1QjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM5QjthQUNGO2lCQUFNO2dCQUNMLHdDQUF3QztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7YUFDckI7U0FDRjtJQUNILENBQUM7SUFFTSxRQUFRLENBQUMsR0FBUTtRQUN0QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OzBHQW5FVSxhQUFhOzhGQUFiLGFBQWEsdUxDUjFCLGloQ0F1Qks7MkZEZlEsYUFBYTtrQkFMekIsU0FBUzsrQkFDRSxTQUFTOzBFQU9ILEVBQUU7c0JBQWpCLEtBQUs7Z0JBUVUsSUFBSTtzQkFBbkIsS0FBSztnQkFRVSxJQUFJO3NCQUFuQixLQUFLO2dCQUtVLFdBQVc7c0JBQTFCLEtBQUs7Z0JBS1csU0FBUztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25DaGFuZ2VzLCBJbnB1dCwgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGFnIH0gZnJvbSAnLi90YWcnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy10YWdzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGFncy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGFncy5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWdzQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgLyoqVGhlIElEIG9mIHRoaXMgc2V0IG9mIHRhZ3MgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBPbmUgb3IgbW9yZSB0YWdzXHJcbiAgICogXHJcbiAgICogQHR5cGUgeyhUYWcgfCBUYWdbXSl9XHJcbiAgICogQG1lbWJlcm9mIFRhZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGFncz86IFRhZyB8IFRhZ1tdO1xyXG5cclxuICAvKipcclxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHRhZ3Mgd2lsbCB3cmFwIG9yIG5vdFxyXG4gICAqIFxyXG4gICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAqIEBtZW1iZXJvZiBUYWdzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIHdyYXA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBEaXNwbGF5cyB0aGUgdGFncyBpbiBjb25kZW5zZWQgbW9kZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc0NvbmRlbnNlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBFbWl0cyB0aGUgdGFnIGl0ZW0gd2hlbiB0aGUgdGFnJ3MgY2xvc2UgYnV0dG9uIGlzIGNsaWNrZWRcclxuICAgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHRhZ0Nsb3NlZDogRXZlbnRFbWl0dGVyPFRhZz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRhZz4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogVGFncyB0byBiZSBkaXNwbGF5ZWRcclxuICAgKiBcclxuICAgKiBAdHlwZSB7VGFnW119XHJcbiAgICogQG1lbWJlcm9mIFRhZ3NDb21wb25lbnRcclxuICAgKi9cclxuICBwdWJsaWMgdGFnc0FycmF5OiBUYWdbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uQ2hhbmdlcyBsaWZlY3ljbGUgaG9va1xyXG4gICAqIEBzZWUge0BsaW5rIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3MgfCBMaWZlLWN5Y2xlIGhvb2tzfVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7U2ltcGxlQ2hhbmdlc30gY2hhbmdlcyBcclxuICAgKiBAbWVtYmVyb2YgVGFnc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmIChjaGFuZ2VzLnRhZ3MpIHtcclxuICAgICAgaWYgKHRoaXMudGFncykge1xyXG4gICAgICAgIC8vIElmIG9ubHkgZ2l2ZW4gYSBzaW5nbGUgaXRlbSwgcHV0IGl0IGluIGFuIGFycmF5IHNvIGl0IHdvcmtzIGluIHRoZSB0ZW1wbGF0ZVxyXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudGFncykpIHtcclxuICAgICAgICAgIHRoaXMudGFnc0FycmF5ID0gdGhpcy50YWdzO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLnRhZ3NBcnJheSA9IFt0aGlzLnRhZ3NdO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyByZXNldCBhcnJheSBpZiB0YWdzIGJlY29tZXMgdW5kZWZpbmVkXHJcbiAgICAgICAgdGhpcy50YWdzQXJyYXkgPSBbXTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsb3NlVGFnKHRhZzogVGFnKSB7XHJcbiAgICB0aGlzLnRhZ3NBcnJheSA9IHRoaXMudGFnc0FycmF5LmZpbHRlcih0ID0+IHQgIT09IHRhZyk7XHJcbiAgICB0aGlzLnRhZ0Nsb3NlZC5lbWl0KHRhZyk7XHJcbiAgfVxyXG59XHJcbiIsIjx1bCBjbGFzcz1cInRhZ3NcIlxyXG4gICAgW2NsYXNzLmlzLXdyYXBwZWRdPVwid3JhcFwiPlxyXG4gICA8bGkgKm5nRm9yPVwibGV0IHRhZyBvZiB0YWdzQXJyYXk7IGluZGV4IGFzIGlcIlxyXG4gICAgICAgaWQ9XCJ7e2lkfX1fdGFnX3t7aX19XCJcclxuICAgICAgIGNsYXNzPVwidGFnIGlzLXt7dGFnLnR5cGV9fSB7e3RhZy5jbGFzc0xpc3R9fSBtci0xXCJcclxuICAgICAgIFtuZ0NsYXNzXT1cInsndGV4dC1jYXB0aW9uLTEnOiAhaXNDb25kZW5zZWQsICd0ZXh0LWNhcHRpb24tMic6IGlzQ29uZGVuc2VkLCAnaXMtY29uZGVuc2VkJzogaXNDb25kZW5zZWQsICdwci0wJzogdGFnLmlzRGlzbWlzc2FibGUsICdpcy1saW5rJzogdGFnLnVybH1cIlxyXG4gICAgICAgdGl0bGU9XCJ7e3RhZy50b29sdGlwIHwgdHJhbnNsYXRlfX1cIj5cclxuICAgICAgPGkgKm5nSWY9XCJ0YWcuaWNvblwiXHJcbiAgICAgICAgIGNsYXNzPVwiZWMtaWNvbiB7e3RhZy5pY29ufX0gZWMtaWNvbi1zbVwiPjwvaT5cclxuICAgICAgPHNwYW4gKm5nSWY9XCIhdGFnLnVybFwiPnt7dGFnLmxhYmVsIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcblxyXG4gICAgICA8YSAqbmdJZj1cInRhZy51cmxcIlxyXG4gICAgICAgICBpZD1cInt7aWR9fV90YWdfe3tpfX1fbGlua1wiXHJcbiAgICAgICAgIGNsYXNzPVwiZm9udC13ZWlnaHQtYm9sZFwiXHJcbiAgICAgICAgIGhyZWY9XCJ7e3RhZy51cmx9fVwiXHJcbiAgICAgICAgIHRhcmdldD1cInt7dGFnLnRhcmdldH19XCI+e3t0YWcubGFiZWwgfCB0cmFuc2xhdGV9fTwvYT5cclxuXHJcbiAgICAgIDxidXR0b24gaWQ9XCJ7e2lkfX1fdGFnX3t7aX19X2Rpc21pc3NCdXR0b25cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwidGFnLmlzRGlzbWlzc2FibGVcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbG9zZVRhZyh0YWcpXCI+XHJcbiAgICAgICAgIDxpIGNsYXNzPVwiZWMtaWNvbiBlYy1pY29uLXNtIGljb24tY2FuY2VsXCI+PC9pPlxyXG4gICAgICA8L2J1dHRvbj5cclxuICAgPC9saT5cclxuPC91bD4iXX0=
@@ -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
- }
58
- ToastComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToastComponent, deps: [{ token: i1.ToastService }], target: i0.ɵɵFactoryTarget.Component });
59
- ToastComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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" }] });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3QvdG9hc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBZ0MsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSSxPQUFPLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7O0FBUzNDLE1BQU0sT0FBTyxjQUFjO0lBYXpCLFlBQW9CLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBUlQsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUNBLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV6RSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWMsQ0FBQztRQUV4Qyx5QkFBb0IsR0FBVyxJQUFJLENBQUM7UUFDN0MsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFVSxDQUFDO0lBRW5ELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksUUFBUSxJQUFJLEtBQUssQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDOUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUN2QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzVCLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1lBRWpCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRU0sWUFBWTtRQUNqQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMsS0FBaUI7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsS0FBSyxDQUFDLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sZUFBZTtRQUNyQixLQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUNuQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQzdDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUN4RDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkdBNURVLGNBQWM7K0ZBQWQsY0FBYyw4UkNYM0IsMnZCQWdCWTsyRkRMQyxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFVBQVU7bUdBTUosU0FBUztzQkFBeEIsS0FBSztnQkFFeUIsRUFBRTtzQkFBaEMsV0FBVzt1QkFBQyxTQUFTO2dCQUNlLElBQUk7c0JBQXhDLFdBQVc7dUJBQUMsZUFBZTtnQkFDK0Isd0JBQXdCO3NCQUFsRixXQUFXO3VCQUFDLHFDQUFxQztnQkFFakMsTUFBTTtzQkFBdEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyByYWNlLCBTdWJqZWN0LCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRvYXN0RXZlbnQsIFRvYXN0SXRlbSB9IGZyb20gJy4uL3RvYXN0LXR5cGVzJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAnLi4vdG9hc3Quc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLXRvYXN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RvYXN0LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgXHJcbiAgQElucHV0KCkgcHVibGljIHRvYXN0SXRlbT86IFRvYXN0SXRlbTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgcHVibGljIGlkPzogc3RyaW5nO1xyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaXMtb3BlbicpIHB1YmxpYyBvcGVuOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS4tLXRvYXN0LWFuaW1hdGlvbi1kdXJhdGlvbi5tcycpIHB1YmxpYyBUT0FTVF9BTklNQVRJT05fRFVSQVRJT04gPSAyNTA7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjxUb2FzdEV2ZW50PigpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IFRJTUVEX1RPQVNUX0RVUkFUSU9OOiBudW1iZXIgPSA0MDAwO1xyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0b2FzdFNlcnZpY2U6IFRvYXN0U2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy50b2FzdFNlcnZpY2UuZXZlbnRzLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSkuc3Vic2NyaWJlKGV2ZW50ID0+IHtcclxuICAgICAgaWYgKGV2ZW50LmFjdGlvbiA9PSAncmVtb3ZlJyAmJiBldmVudC50b2FzdCA9PT0gdGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgICB0aGlzLmNsb3NlKGV2ZW50KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBpZiAoY2hhbmdlcy50b2FzdEl0ZW0gJiYgdGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgdGhpcy5pZCA9IHRoaXMudG9hc3RJdGVtLmlkO1xyXG4gICAgICB0aGlzLm9wZW4gPSB0cnVlO1xyXG5cclxuICAgICAgaWYgKCF0aGlzLnRvYXN0SXRlbS5kaXNtaXNzaWJsZSkge1xyXG4gICAgICAgIHRoaXMuY2xvc2VBZnRlclRpbWVyKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZUNsaWNrZWQoKSB7XHJcbiAgICBpZiAodGhpcy50b2FzdEl0ZW0pIHtcclxuICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzc1RvYXN0KHRoaXMudG9hc3RJdGVtLCAndXNlcicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjbG9zZShldmVudDogVG9hc3RFdmVudCkge1xyXG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XHJcbiAgICB0aW1lcih0aGlzLlRPQVNUX0FOSU1BVElPTl9EVVJBVElPTikuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZWQuZW1pdChldmVudCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xvc2VBZnRlclRpbWVyKCkge1xyXG4gICAgdGltZXIodGhpcy5USU1FRF9UT0FTVF9EVVJBVElPTikucGlwZShcclxuICAgICAgdGFrZVVudGlsKHJhY2UodGhpcy5jbG9zZWQsIHRoaXMuZGVzdHJveWVkKSlcclxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMudG9hc3RJdGVtKSB7XHJcbiAgICAgICAgdGhpcy50b2FzdFNlcnZpY2UuZGlzbWlzc1RvYXN0KHRoaXMudG9hc3RJdGVtLCAnYXV0bycpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPGVjLWJhbm5lciBpZD1cInt7dG9hc3RJdGVtPy5pZH19X2Jhbm5lclwiXHJcbiAgICAgICAgICAgW3R5cGVdPVwidG9hc3RJdGVtPy50eXBlXCJcclxuICAgICAgICAgICBiYW5uZXJTdHlsZT1cInRvYXN0XCJcclxuICAgICAgICAgICBbY3VzdG9tSWNvbl09XCJ0b2FzdEl0ZW0/Lmljb25cIlxyXG4gICAgICAgICAgIFtzaG93Q2xvc2VCdG5dPVwidG9hc3RJdGVtPy5kaXNtaXNzaWJsZVwiXHJcbiAgICAgICAgICAgW2F1dG9IaWRlT25DbG9zZV09XCJmYWxzZVwiXHJcbiAgICAgICAgICAgKGNsb3NlZCk9XCJjbG9zZUNsaWNrZWQoKVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgIDxkaXYgaWQ9XCJ7e3RvYXN0SXRlbT8uaWR9fV9tZXNzYWdlXCJcclxuICAgICAgICAgW2lubmVySFRNTF09XCJ0b2FzdEl0ZW0/Lm1lc3NhZ2UgfCB0cmFuc2xhdGVcIj48L2Rpdj5cclxuICAgIDxidXR0b24gaWQ9XCJ7e3RvYXN0SXRlbT8uaWR9fV9hY3Rpb25cIlxyXG4gICAgICAgICAgICBlY0xpbmtCdXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJ0b2FzdEl0ZW0/LmFjdGlvbiAmJiB0b2FzdEl0ZW0/LmFjdGlvbkxhYmVsXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJmb250LXdlaWdodC1ib2xkIG1sLTJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidG9hc3RJdGVtIS5hY3Rpb24hKClcIj57e3RvYXN0SXRlbT8uYWN0aW9uTGFiZWwgfCB0cmFuc2xhdGV9fTwvYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L2VjLWJhbm5lcj4iXX0=
@@ -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
- }
105
- ToasterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ToasterComponent, deps: [{ token: i1.ToastService }, { token: i2.TelemetryService }], target: i0.ɵɵFactoryTarget.Component });
106
- ToasterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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"] }] });
107
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90b2FzdC90b2FzdGVyL3RvYXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG9hc3QvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBUzNDLE1BQU0sT0FBTyxnQkFBZ0I7SUFVM0IsWUFDVSxZQUEwQixFQUMxQixnQkFBa0M7UUFEbEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQVJyQywyQkFBc0IsR0FBVyxDQUFDLENBQUM7UUFHbEMsa0JBQWEsR0FBZ0IsRUFBRSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBS3BDLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDekUsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssRUFBRTtnQkFDekIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO2dCQUNw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Q0FBQztJQUNMLENBQUM7OzZHQTNHVSxnQkFBZ0I7aUdBQWhCLGdCQUFnQix5SUFLcUIsVUFBVSw2QkNoQjVELDRVQVFXOzJGREdFLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxZQUFZO2tJQVF3QyxZQUFZO3NCQUF6RSxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvdGVsZW1ldHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb2FzdEV2ZW50LCBUb2FzdEl0ZW0gfSBmcm9tICcuLi90b2FzdC10eXBlcyc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uL3RvYXN0LnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy10b2FzdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdG9hc3Rlci5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHB1YmxpYyBjdXJyZW50VGltZWRUb2FzdD86IFRvYXN0SXRlbTtcclxuICBwdWJsaWMgY3VycmVudERpc21pc3NpYmxlVG9hc3Q/OiBUb2FzdEl0ZW07XHJcbiAgcHVibGljIGRpc21pc3NpYmxlVG9hc3RCb3R0b206IG51bWJlciA9IDA7XHJcbiAgQFZpZXdDaGlsZCgndGltZWRUb2FzdCcsIHsgc3RhdGljOiBmYWxzZSwgcmVhZDogRWxlbWVudFJlZiB9KSB0aW1lZFRvYXN0RWw/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcclxuICBcclxuICBwcml2YXRlIHBlbmRpbmdUb2FzdHM6IFRvYXN0SXRlbVtdID0gW107XHJcbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgdG9hc3RTZXJ2aWNlOiBUb2FzdFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRlbGVtZXRyeVNlcnZpY2U6IFRlbGVtZXRyeVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudG9hc3RTZXJ2aWNlLmV2ZW50cy5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmIChldmVudC5hY3Rpb24gPT0gJ2FkZCcpIHtcclxuICAgICAgICB0aGlzLmFkZFRvYXN0KGV2ZW50LnRvYXN0KTtcclxuICAgICAgICB0aGlzLnVwZGF0ZURpc21pc3NpYmxlVG9hc3RCb3R0b20oKTtcclxuICAgICAgICB0aGlzLnRyYWNrRXZlbnQoZXZlbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGV2ZW50LmFjdGlvbiA9PSAncmVtb3ZlJyAmJiBldmVudC50b2FzdCAhPT0gdGhpcy5jdXJyZW50RGlzbWlzc2libGVUb2FzdCAmJiBldmVudC50b2FzdCAhPT0gdGhpcy5jdXJyZW50VGltZWRUb2FzdCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlUGVuZGluZ1RvYXN0KGV2ZW50LnRvYXN0KTtcclxuICAgICAgICB0aGlzLnRyYWNrRXZlbnQoZXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWaXNpYmxlVG9hc3QoZXZlbnQ6IFRvYXN0RXZlbnQpIHtcclxuICAgIGlmIChldmVudC50b2FzdC5kaXNtaXNzaWJsZSkge1xyXG4gICAgICB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0ID0gdGhpcy5nZXROZXh0VG9hc3QodHJ1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN1cnJlbnRUaW1lZFRvYXN0ID0gdGhpcy5nZXROZXh0VG9hc3QoZmFsc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMudXBkYXRlRGlzbWlzc2libGVUb2FzdEJvdHRvbSgpO1xyXG4gICAgdGhpcy50cmFja0V2ZW50KGV2ZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkVG9hc3QodG9hc3Q6IFRvYXN0SXRlbSkge1xyXG4gICAgaWYgKCh0b2FzdC5kaXNtaXNzaWJsZSAmJiB0aGlzLmN1cnJlbnREaXNtaXNzaWJsZVRvYXN0KSB8fCAoIXRvYXN0LmRpc21pc3NpYmxlICYmIHRoaXMuY3VycmVudFRpbWVkVG9hc3QpKSB7XHJcbiAgICAgIHRoaXMuYWRkUGVuZGluZ1RvYXN0KHRvYXN0KTtcclxuICAgIH0gZWxzZSBpZiAodG9hc3QuZGlzbWlzc2libGUpIHtcclxuICAgICAgdGhpcy5jdXJyZW50RGlzbWlzc2libGVUb2FzdCA9IHRvYXN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdXJyZW50VGltZWRUb2FzdCA9IHRvYXN0O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFJldHVybnMgdGhlIG5leHQgcGVuZGluZyB0b2FzdCBvZiB0aGUgc3BlY2lmaWVkIHR5cGUgYW5kIHJlbW92ZXMgaXQgZnJvbSB0aGUgbGlzdCBvZiBwZW5kaW5nIHRvYXN0cy4gKi9cclxuICBwcml2YXRlIGdldE5leHRUb2FzdChkaXNtaXNzaWJsZTogYm9vbGVhbik6IFRvYXN0SXRlbSB8IHVuZGVmaW5lZCB7XHJcbiAgICBjb25zdCB0b2FzdCA9IHRoaXMucGVuZGluZ1RvYXN0cy5maW5kKHQgPT4gdC5kaXNtaXNzaWJsZSA9PT0gZGlzbWlzc2libGUpO1xyXG4gICAgaWYgKHRvYXN0KSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlUGVuZGluZ1RvYXN0KHRvYXN0KTtcclxuICAgIH1cclxuICAgIHJldHVybiB0b2FzdDtcclxuICB9XHJcblxyXG4gIC8qKiBBZGQgYSB0b2FzdCB0byB0aGUgbGlzdCBvZiBwZW5kaW5nIHRvYXN0cyAqL1xyXG4gIHByaXZhdGUgYWRkUGVuZGluZ1RvYXN0KHRvYXN0OiBUb2FzdEl0ZW0pIHtcclxuICAgIHRoaXMucGVuZGluZ1RvYXN0cy5wdXNoKHRvYXN0KTtcclxuICB9XHJcblxyXG4gIC8qKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgdG9hc3QgZnJvbSB0aGUgbGlzdCBvZiBwZW5kaW5nIHRvYXN0cyAqL1xyXG4gIHByaXZhdGUgcmVtb3ZlUGVuZGluZ1RvYXN0KHRvYXN0OiBUb2FzdEl0ZW0pIHtcclxuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5wZW5kaW5nVG9hc3RzLmluZGV4T2YodG9hc3QpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5wZW5kaW5nVG9hc3RzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogXHJcbiAgICogSWYgdGhlIHRpbWVkIHRvYXN0IGlzIHByZXNlbnQsIHNldHMgdGhlIGJvdHRvbSBoZWlnaHQgb2YgdGhlIGRpc21pc3NpYmxlIHRvYXN0IHRvXHJcbiAgICogdGhlIGN1cnJlbnQgaGVpZ2h0IG9mIHRoZSB0aW1lZCB0b2FzdCBwbHVzIC41cmVtIGZvciBzcGFjaW5nLlxyXG4gICAqIFJldHVybnMgMCBpZiB0aGVyZSBpc24ndCBhIHZpc2libGUgdGltZWQgdG9hc3QuXHJcbiAgICovXHJcbiAgcHJpdmF0ZSB1cGRhdGVEaXNtaXNzaWJsZVRvYXN0Qm90dG9tKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRpbWVkVG9hc3QgJiYgdGhpcy50aW1lZFRvYXN0RWwpIHtcclxuICAgICAgdGhpcy5kaXNtaXNzaWJsZVRvYXN0Qm90dG9tID0gKHRoaXMudGltZWRUb2FzdEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgOCkgLyAxNjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZGlzbWlzc2libGVUb2FzdEJvdHRvbSA9IDA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHRyYWNrRXZlbnQoZXZlbnQ6IFRvYXN0RXZlbnQpIHtcclxuICAgIGNvbnN0IGRpc21pc3NpYmxlID0gdGhpcy5wZW5kaW5nVG9hc3RzLmZpbHRlcih0ID0+IHQuZGlzbWlzc2libGUpO1xyXG4gICAgY29uc3QgdHJhbnNpZW50ID0gdGhpcy5wZW5kaW5nVG9hc3RzLmZpbHRlcih0ID0+ICF0LmRpc21pc3NpYmxlKTtcclxuXHJcbiAgICB0aGlzLnRlbGVtZXRyeVNlcnZpY2UudHJhY2tFdmVudChgJHtldmVudC5hY3Rpb259IHRvYXN0YCwge1xyXG4gICAgICBhY3Rpb246IGV2ZW50LmFjdGlvbixcclxuICAgICAgc291cmNlOiBldmVudC5zb3VyY2UsXHJcbiAgICAgIGhhc0Rpc21pc3NpYmxlUGVuZGluZzogZGlzbWlzc2libGUubGVuZ3RoID4gMCA/ICd5ZXMnIDogJ25vJyxcclxuICAgICAgZGlzbWlzc2libGVQZW5kaW5nTGVuZ3RoOiBgJHtkaXNtaXNzaWJsZS5sZW5ndGh9YCxcclxuICAgICAgaGFzVHJhbnNpZW50UGVuZGluZzogdHJhbnNpZW50Lmxlbmd0aCA+IDAgPyAneWVzJyA6ICdubycsXHJcbiAgICAgIHRyYW5zaWVudFBlbmRpbmdMZW5ndGg6IGAke3RyYW5zaWVudC5sZW5ndGh9YCxcclxuICAgICAgdG9hc3RJZDogZXZlbnQudG9hc3QuaWQgPz8gJycsXHJcbiAgICAgIHRvYXN0VHlwZTogZXZlbnQudG9hc3QudHlwZSxcclxuICAgICAgdG9hc3RNZXNzYWdlOiBldmVudC50b2FzdC5tZXNzYWdlLFxyXG4gICAgICB0b2FzdERpc21pc3NpYmxlOiBgJHtldmVudC50b2FzdC5kaXNtaXNzaWJsZX1gLFxyXG4gICAgICB0b2FzdEljb246IGV2ZW50LnRvYXN0Lmljb24gPz8gJycsXHJcbiAgICAgIHRvYXN0QWN0aW9uOiBldmVudC50b2FzdC5hY3Rpb25MYWJlbCA/PyAnJyxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8ZWMtdG9hc3QgW3RvYXN0SXRlbV09XCJjdXJyZW50RGlzbWlzc2libGVUb2FzdFwiXHJcbiAgICAgICAgICBbc3R5bGUuLS10b2FzdC1ib3R0b20ucmVtXT1cImRpc21pc3NpYmxlVG9hc3RCb3R0b21cIlxyXG4gICAgICAgICAgKGNsb3NlZCk9XCJ1cGRhdGVWaXNpYmxlVG9hc3QoJGV2ZW50KVwiPlxyXG48L2VjLXRvYXN0PlxyXG5cclxuPGVjLXRvYXN0ICN0aW1lZFRvYXN0XHJcbiAgICAgICAgICBbdG9hc3RJdGVtXT1cImN1cnJlbnRUaW1lZFRvYXN0XCJcclxuICAgICAgICAgIChjbG9zZWQpPVwidXBkYXRlVmlzaWJsZVRvYXN0KCRldmVudClcIj5cclxuPC9lYy10b2FzdD4iXX0=
@@ -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
- }
151
- TooltipDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipDirective, deps: [{ token: i1.TooltipService }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
152
- TooltipDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TooltipDirective, selector: "[ecTooltip]", inputs: { tooltipConfig: "tooltipConfig", tooltipText: "tooltipText", tooltipCustomContent: "tooltipCustomContent", tooltipPosition: "tooltipPosition" }, host: { listeners: { "mouseover": "onMouseOver()", "mouseleave": "onLeave()" } }, ngImport: i0 });
153
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TooltipDirective, decorators: [{
154
- type: Directive,
155
- args: [{
156
- selector: '[ecTooltip]'
157
- }]
158
- }], ctorParameters: function () { return [{ 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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Vix1REFBdUQ7UUFDdkQsMkNBQTJDO1FBQzNDLGtDQUFrQztRQUNsQyxJQUFHLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZiw0Q0FBNEM7WUFDNUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztZQUV6QixJQUFHLElBQUksQ0FBQyxvQkFBb0IsRUFBQztnQkFDM0IsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDN0I7U0FDRjtRQUVELGdFQUFnRTtRQUNoRSx3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0Qix5RUFBeUU7UUFDekUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsMkRBQTJEO0lBQzNELHlDQUF5QztJQUN6QyxXQUFXO1FBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2QixDQUFDOzs2R0EzTFUsZ0JBQWdCO2lHQUFoQixnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFKNUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtpQkFDeEI7c0pBTWlCLGFBQWE7c0JBQTVCLEtBQUs7Z0JBR1UsV0FBVztzQkFBMUIsS0FBSztnQkFJVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBS1UsZUFBZTtzQkFBOUIsS0FBSztnQkFvRkMsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxXQUFXO2dCQVFsQixPQUFPO3NCQURiLFlBQVk7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG9mLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGRlbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCwgVG9vbHRpcE9wdGlvbnMsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4vLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRvb2x0aXBTZXJ2aWNlIH0gZnJvbSAnLi8uLi90b29sdGlwL3Rvb2x0aXAuc2VydmljZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tlY1Rvb2x0aXBdJ1xyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFRvb2x0aXBEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICAvL1Rvb2x0aXBDb25maWc6IHJlY2VpdmVzIGFsbCB0aGUgdG9vbHRpcCBvcHRpb25zIHRvIG92ZXJ3cml0ZSB0aGVcclxuICAvL2RlZmF1bHQgY29uZmlndXJhdGlvbiBvZiB0aGUgdG9vbHRpcFxyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwQ29uZmlnPzogVG9vbHRpcE9wdGlvbnMgPSB1bmRlZmluZWRcclxuXHJcbiAgLy9Ub29sdGlwVGV4dDogcmVjZWl2ZXMgcGxhaW4gdGV4dCB0byBkaXNwbGF5IGluIHRoZSBkZWZhdWx0IHRvb2x0aXBcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcFRleHQ/OiBzdHJpbmcgPSB1bmRlZmluZWQ7IFxyXG5cclxuICAvL1Rvb2x0aXBDdXN0b21Db250ZW50OiByZWNlaXZlcyBhIHRlbXBsYXRlIHJlZmVyZW5jZSB0byBkaXNwbGF5XHJcbiAgLy9pbnRvIHRoZSB0b29sdGlwIGNvbnRlbnRcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcEN1c3RvbUNvbnRlbnQ/OiBUZW1wbGF0ZVJlZjxhbnk+ID0gdW5kZWZpbmVkO1xyXG4gIFxyXG4gIFxyXG4gIC8vVGhpcyBJbnB1dCB3aWxsIHJlbWFpbiBhcyBJbnB1dCBiZWNhdXNlIHRvb2x0aXBQb3NpdGlvbiBpcyBub3QgcGFydFxyXG4gIC8vb2YgVG9vbHRpcE9wdGlvbnMgdHlwZSBvZiBvYmplY3RcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSBcInRvcC1jZW50ZXJcIjtcclxuXHJcblxyXG5cclxuICAvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXHJcblxyXG4gIC8vRXZlbnRzIHJlbGF0ZWRcclxuICBwcml2YXRlIG1vdXNlT3ZlciA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBpbnRlcnJ1cHQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gIHByaXZhdGUgaGlkZUNvbXBsZXRlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcbiAgcHJpdmF0ZSBjb250ZW50UmVjdDogRE9NUmVjdCB8IHVuZGVmaW5lZDtcclxuXHJcbiAgLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xyXG5cclxuICAvL1JlZmVyZW5jZSB0byBUb29sdGlwQ29tcG9uZW50LCB3aWxsIGJlIGRlZmluZWQgYmVsb3cgaW4gdGhpcy5zaG93KClcclxuICBwcml2YXRlIHRvb2x0aXA/OiBUb29sdGlwQ29tcG9uZW50O1xyXG5cclxuICAvL09iamVjdCB3aXRoIHRoZSB0b29sdGlwIG9wdGlvbnMgYnVpbGRlZCB3aXRoIHRoZSBJbnB1dCBwYXJhbWV0ZXJzXHJcbiAgLy9hbmQgdXNlIGl0IGluIHRvb2x0aXBTZXJ2aWNlIC0gc2hvdygpXHJcbiAgcHJpdmF0ZSB0b29sdGlwT3B0aW9ucz86VG9vbHRpcE9wdGlvbnMgPSB7fVxyXG4gIFxyXG5cclxuICAvKipTZXQgd2hlbiB3ZSBzaG93IGEgdG9vbHRpcCwgdG8gYWxsb3cgdXMgdG8gdW5zdWJzY3JpYmUgdG8gbW91c2UgbW92ZSB3aGVuIGhpZGUgZmlyZXMuXHJcbiAgICogaWYgd2UgbmV2ZXIgc2hvd2VkIHRoZSB0b29sdGlwIHRoaXMgd2lsbCByZW1haW4gbnVsbCBhbmQgd2Ugd29uJ3QgaGF2ZSBhbiBldmVudCB0byB1bnN1YnNjcmliZSB0b1xyXG4gICAqL1xyXG4gIHByaXZhdGUgbW91c2VNb3ZlVW5zdWJzY3JpYmU6ICgoKT0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSB0b29sdGlwU2VydmljZTogVG9vbHRpcFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjI6IFJlbmRlcmVyMlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICAvL2NoZWNrSW5wdXRzVmFsdWUoKTogaWYgdGhlcmUgaXMgYW4gZXJyb3IgaXQgd2lsbCBwcmV2ZW50IHRvIGV4ZWN1dGVcclxuICAgIC8vYW55IGNvZGUgcmVsYXRlZCB3aXRoIHRoZSB0b29sdGlwIHNldHVwXHJcbiAgICBpZih0aGlzLmNoZWNrSW5wdXRzVmFsdWUoKSkge1xyXG4gICAgICAvL0NyZWF0ZSB0aGUgb2JqZWN0IHdpdGggdGhlIHRvb2x0aXAgb3B0aW9ucyBwcm92aWRlZCBhcyBASW5wdXRzXHJcbiAgICAgIHRoaXMuY3JlYXRlVG9vbHRpcE9wdGlvbnMoKTtcclxuXHJcbiAgICAgIC8vTW91c2VPdmVyIGZsb3c6IHN0YXJ0IHRoZSBwcm9jZXNzIG9mIHNob3dpbmcgdGhlIHRvb2x0aXBcclxuICAgICAgLy91bnRpbCB0aGUgbW91c2UgbGVhdmVzIHRoZSBhbmNob3IgZWxlbWVudCB3aXRoIHRoaXMuaW50ZXJydXB0XHJcbiAgICAgIHRoaXMubW91c2VPdmVyXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCh2ID0+XHJcbiAgICAgICAgICBvZih2KS5waXBlKFxyXG4gICAgICAgICAgICBkZWxheSgzMDApLCAvL2RlbGF5cyB0aGUgdGltZSBwcmV2aW91cyBvZiBzaG93aW5nIHRoZSB0b29sdGlwXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmludGVycnVwdClcclxuICAgICAgICAgIClcclxuICAgICAgICApXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3coKSk7IC8vQ2FsbHMgdGhlIGZ1bmN0aW9uIHJlc3BvbnNhYmxlIG9mIHVzaW5nIHRoZSB0b29sdGlwU2VydmljZVxyXG4gIFxyXG4gICAgICAvL01vdXNlIGxlYXZlIGZsb3c6IHN0YXJ0IHRoZSBwcm9jZXNzIG9mIHJlbW92aW5nIHRoZSB0b29sdGlwIHdoZW4gdGhlIG1vdXNlIGlzIGF3YXkgb2YgdGhlIGFuY2hvciBlbGVtZW50XHJcbiAgICAgIHRoaXMuaW50ZXJydXB0LnBpcGUoXHJcbiAgICAgICAgc3dpdGNoTWFwKHYgPT4gXHJcbiAgICAgICAgICBvZih2KS5waXBlKFxyXG4gICAgICAgICAgICBkZWxheSg1MCksXHJcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmhpZGVDb21wbGV0ZWQpXHJcbiAgICAgICAgICApKVxyXG4gICAgICApLnN1YnNjcmliZSgoKSA9PiB0aGlzLmhpZGUoKSk7IC8vaGlkZSB0aGUgdG9vbHRpcCBhbmQgdHJpZ2dlcnMgdGhlIGNvbXBsZXRlZCBjeWNsZSBmbGFnIHRoaXMuaGlkZUNvbXBsZXRlZFxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc29sZS5lcnJvcignVGhlcmUgYXJlIHRvbyBtYW55IHBhcmFtZXRlcnMgb3Igbm9uZSBwYXJhbWV0ZXIgdG8gY29uZmlnIHRoZSB0b29sdGlwIG9wdGlvbnMnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKkRldGVjdHMgd2hlcmUgdGhlIG1vdXNlIGlzIHRvIHRyaWdnZXIgdGhlIGxlYXZlL2hpZGUgcHJvY2Vzc1xyXG4gICAqIFRoaXMgaXMgYSBiYWNrc3RvcCBwcm90ZWN0aW9uIGFnYWluc3QgdXMgbWlzc2luZyB0aGUgbW91c2VsZWF2ZSBldmVudCBhbmQgbGVhdmluZyBhIGhhbmdpbmcgY2hhZC5cclxuICAgKiBPbiBzb21lIGJyb3dzZXJzLCBhbmQgb24gc29tZSBhY3Rpb25zIChlc3BlY2lhbGx5IHNjcm9sbCkgdGhlIG1vdXNlTGVhdmUgc2VlbXMgdG8gbmV2ZXIgZmlyZSAqL1xyXG4gIHB1YmxpYyBvbk1vdXNlTW92ZShldmVudDpNb3VzZUV2ZW50KSB7XHJcbiAgICBsZXQgY2FsbENhbGxiYWNrID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLmNvbnRlbnRSZWN0KSB7XHJcbiAgICAgIGNhbGxDYWxsYmFjayA9IHRoaXMudG9vbHRpcFNlcnZpY2Uub25Nb3ZlKGV2ZW50LCB0aGlzLmNvbnRlbnRSZWN0ISk7XHJcbiAgICAgIGlmKGNhbGxDYWxsYmFjaykge1xyXG4gICAgICAgIC8vdHJpZ2dlciBvbiBoaWRlIHByb2Nlc3NcclxuICAgICAgICB0aGlzLmludGVycnVwdC5uZXh0KCk7IFxyXG4gICAgICAgIC8vcmVzZXQgdGhlIGNvbnRlbnRSZWMgZm9yIGEgbmV3IHRvb2x0aXBcclxuICAgICAgICB0aGlzLmNvbnRlbnRSZWN0ID0gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvL1RyaWdnZXIgdGhlIHByb2Nlc3MgdG8gc2hvdyB0aGUgdG9vbHRpcFxyXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlb3ZlcicpXHJcbiAgcHVibGljIG9uTW91c2VPdmVyKCkge1xyXG4gICAgdGhpcy5tb3VzZU92ZXIubmV4dCgpO1xyXG4gIH1cclxuICBcclxuICAvL1RyaWdnZXIgdGhlIHByb2Nlc3MgdG8gaGlkZSBhbmQgbGF0ZXIgdGhlIHByb2Nlc3NcclxuICAvL3RvIG1hcmsgYXMgY29tcGxldGUgdGhlIGN5Y2xlIG9mIHNob3cgYW5kIGhpZGUgdGhlIHRvb2x0aXBcclxuICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcclxuICBwdWJsaWMgb25MZWF2ZSgpIHtcclxuICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tJbnB1dHNWYWx1ZSgpOmJvb2xlYW4ge1xyXG4gICAgbGV0IHBhcmFtZXRlcnNXaXRoVmFsdWUgPSAwO1xyXG4gICAgaWYodGhpcy50b29sdGlwVGV4dCkge1xyXG4gICAgICBwYXJhbWV0ZXJzV2l0aFZhbHVlID0gcGFyYW1ldGVyc1dpdGhWYWx1ZSArIDFcclxuICAgIH0gXHJcbiAgICBpZih0aGlzLnRvb2x0aXBDdXN0b21Db250ZW50KSB7XHJcbiAgICAgIHBhcmFtZXRlcnNXaXRoVmFsdWUgPSBwYXJhbWV0ZXJzV2l0aFZhbHVlICsgMVxyXG4gICAgfVxyXG4gICAgaWYodGhpcy50b29sdGlwQ29uZmlnKSB7XHJcbiAgICAgIHBhcmFtZXRlcnNXaXRoVmFsdWUgPSBwYXJhbWV0ZXJzV2l0aFZhbHVlICsgMVxyXG4gICAgfVxyXG4gICAgaWYocGFyYW1ldGVyc1dpdGhWYWx1ZSA9PT0gMSkge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogY3JlYXRlVG9vbHRpcE9wdGlvbnNcclxuICAgKiB3aWxsIG9ubHkgYmUgZXhlY3V0ZWQgYWZ0ZXIgbWFuYWdlRXJyb3IoKSB2ZXJpZmllcyBcclxuICAgKiBpZiB0aGUgcGFyYW1ldGVycyBhcmUgbm90IG92ZXJsYXBwaW5nIGVhY2ggb3RoZXJcclxuICAgKiBhbmQgaXQgd2lsbCBidWlsZCB0aGUgdG9vbHRpcE9wdGlvbnMgb2JqZWN0XHJcbiAgICovXHJcbiAgcHJpdmF0ZSBjcmVhdGVUb29sdGlwT3B0aW9ucygpOiB2b2lkIHtcclxuICAgIHRoaXMudG9vbHRpcE9wdGlvbnMgPSB7XHJcbiAgICAgIGlkOiBgdG9vbHRpcF8ke3RoaXMudG9vbHRpcENvbmZpZz8uaWQ/IHRoaXMudG9vbHRpcENvbmZpZz8uaWQ6ICcnfWAsXHJcbiAgICAgIHRleHQ6IHRoaXMudG9vbHRpcENvbmZpZz8udGV4dCB8fCB0aGlzLnRvb2x0aXBUZXh0LFxyXG4gICAgICB0aXRsZTogdGhpcy50b29sdGlwQ29uZmlnPy50aXRsZSxcclxuICAgICAgc3VidGl0bGU6IHRoaXMudG9vbHRpcENvbmZpZz8uc3VidGl0bGUsXHJcbiAgICAgIGN1c3RvbUNvbnRlbnQ6IHRoaXMudG9vbHRpcENvbmZpZz8uY3VzdG9tQ29udGVudCB8fCB0aGlzLnRvb2x0aXBDdXN0b21Db250ZW50LFxyXG4gICAgICBkaXNtaXNzaWJsZTogdGhpcy50b29sdGlwQ29uZmlnPy5kaXNtaXNzaWJsZSB8fCBmYWxzZSxcclxuICAgICAgbWF4V2lkdGg6IHRoaXMudG9vbHRpcENvbmZpZz8ubWF4V2lkdGgsXHJcbiAgICAgIHdpZHRoOiB0aGlzLnRvb2x0aXBDb25maWc/LndpZHRoLFxyXG4gICAgICBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMudG9vbHRpcENvbmZpZz8uYmFja2dyb3VuZENvbG9yLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHNob3coKTp2b2lkIHtcclxuICAgIC8vUmVmZXJlbmNlIHRvIHRoZSBlbGVtZW50IHdoZXJlIHRvIHRvb2x0aXAgaXMgYXR0YWNoZWRcclxuICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICAgIC8vY29udGVudFJlY3Qgd2lsbCBiZSBhc3Npbmcgb25seSBhZnRlciBzaG93aW5nIGEgdG9vbHRpcC9wb3BvdmVyIGFuZCBpdCB3aWxsIGJlXHJcbiAgICAvL3Jlc2V0IGFmdGVyIGhpZGUgdGhlIHNhbWUgdG9vbHRpcC9wb3BvdmVyXHJcbiAgICB0aGlzLmNvbnRlbnRSZWN0ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAvL3Rvb2x0aXBQb3NpdGlvbiBpcyBuZXZlciB1bmRlZmluZWQsIGRlZmF1bHQgdmFsdWUgPSBcInRvcC1jZW50ZXJcIlxyXG4gICAgaWYoIXRoaXMudG9vbHRpcCkge1xyXG4gICAgICB0aGlzLnRvb2x0aXAgPSB0aGlzLnRvb2x0aXBTZXJ2aWNlLnNob3coZWxlbWVudCBhcyBIVE1MRWxlbWVudCwgdGhpcy50b29sdGlwUG9zaXRpb24sIHRoaXMudG9vbHRpcE9wdGlvbnMpO1xyXG4gICAgICB0aGlzLm1vdXNlTW92ZVVuc3Vic2NyaWJlID0gdGhpcy5yZW5kZXJlcjIubGlzdGVuKGRvY3VtZW50LCAnbW91c2Vtb3ZlJywgdGhpcy5vbk1vdXNlTW92ZS5iaW5kKHRoaXMpKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGlkZSgpOnZvaWQge1xyXG4gICAgLy9UaGVyZSBpcyBhIHRpbWluZyBpc3N1ZSBiZXR3ZWVuIHRoZSBzaG93IC0gaGlkZSB3aXRoIFxyXG4gICAgLy9saW5lciB0b29sdGlwIGVsZW1lbnRzLCBzbyB0aGUgYmVsb3cgbGluZVxyXG4gICAgLy9tYWtlcyBzdXJlIHRoZSBhcHAgZG9lc24ndCBicmVha1xyXG4gICAgaWYodGhpcy50b29sdGlwKSB7XHJcbiAgICAgIC8vQ2FsbCB0aGUgaGlkZSgpIGZyb20gdGhlIHRvb2x0aXAgY29tcG9uZW50XHJcbiAgICAgIHRoaXMudG9vbHRpcC5oaWRlKCk7XHJcbiAgICAgIHRoaXMudG9vbHRpcCA9IHVuZGVmaW5lZDtcclxuICAgICAgXHJcbiAgICAgIGlmKHRoaXMubW91c2VNb3ZlVW5zdWJzY3JpYmUpe1xyXG4gICAgICAgIHRoaXMubW91c2VNb3ZlVW5zdWJzY3JpYmUoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vSW50ZXJydXB0IHRoZSBmbG93IG9mIG1vdXNlb3ZlciB3aXRoIGEgZGVsYXkgYW5kIHRyaWdnZXJzIHRoZSBcclxuICAgIC8vZmxvdyB0byBoaWRlIHRoZSB0b29sdGlwIHdpdGggYSBkZWxheSBcclxuICAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICAgIC8vV29yayBhcyBhIGZsYWcgdG8gaW5kaWNhdGUgdGhlIGZsb3cgb2Ygc2hvdyBhbmQgaGlkZSBoYXMgYmVlbiBjb21wbGV0ZWRcclxuICAgIHRoaXMuaGlkZUNvbXBsZXRlZC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICAvL1doZW4gdGhlIGVsZW1lbnQgd2hlcmUgdGhlIHRvb2x0aXAgaXMgYXR0YWNoZWQgZGlzYXBwZWFyc1xyXG4gIC8vdGhlIHRvb2x0aXAgc2hvdWxkIGJlIGRlc3Ryb3kgYXMgd2VsbCAgXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgIHRoaXMuaW50ZXJydXB0Lm5leHQoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==