@energycap/components 0.31.5 → 0.32.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 (292) hide show
  1. package/energycap-components.min.css +2 -2
  2. package/energycap-email.min.css +1 -1
  3. package/esm2020/energycap-components.mjs +5 -0
  4. package/esm2020/lib/components.module.mjs +386 -0
  5. package/esm2020/lib/controls/banner/banner.component.mjs +106 -0
  6. package/esm2020/lib/controls/button/button.component.mjs +106 -0
  7. package/esm2020/lib/controls/button/copy-button.directive.mjs +65 -0
  8. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +139 -0
  9. package/esm2020/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -0
  10. package/esm2020/lib/controls/combobox/combobox.component.mjs +841 -0
  11. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +237 -0
  12. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +169 -0
  13. package/esm2020/lib/controls/form-control/form-control.component.mjs +86 -0
  14. package/esm2020/lib/controls/form-control-base.mjs +143 -0
  15. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
  16. package/esm2020/lib/controls/form-group/form-group.component.mjs +252 -0
  17. package/esm2020/lib/controls/help-popover/help-popover.component.mjs +28 -0
  18. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +233 -0
  19. package/esm2020/lib/controls/link-button/link-button.component.mjs +11 -0
  20. package/esm2020/lib/controls/menu/menu.component.mjs +443 -0
  21. package/{esm2015/lib/controls/navigation/link-item.js → esm2020/lib/controls/navigation/link-item.mjs} +0 -0
  22. package/{esm2015/lib/controls/navigation/nav-group.js → esm2020/lib/controls/navigation/nav-group.mjs} +0 -0
  23. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
  24. package/{esm2015/lib/controls/navigation/nav-item.js → esm2020/lib/controls/navigation/nav-item.mjs} +0 -0
  25. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +371 -0
  26. package/esm2020/lib/controls/popover/popover.component.mjs +84 -0
  27. package/{esm2015/lib/controls/radio-button/radio-button-option.js → esm2020/lib/controls/radio-button/radio-button-option.mjs} +0 -0
  28. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +81 -0
  29. package/esm2020/lib/controls/select/select.component.mjs +87 -0
  30. package/esm2020/lib/controls/tabs/tabs.component.mjs +47 -0
  31. package/esm2020/lib/controls/textbox/textbox.component.mjs +154 -0
  32. package/{esm2015/lib/core/cache.service.js → esm2020/lib/core/cache.service.mjs} +9 -8
  33. package/{esm2015/lib/core/custom-validators.js → esm2020/lib/core/custom-validators.mjs} +0 -0
  34. package/{esm2015/lib/core/date-time-helper.js → esm2020/lib/core/date-time-helper.mjs} +0 -0
  35. package/esm2020/lib/core/error.service.mjs +57 -0
  36. package/esm2020/lib/core/scroll.service.mjs +89 -0
  37. package/esm2020/lib/core/telemetry-tracker.service.mjs +16 -0
  38. package/esm2020/lib/core/telemetry.service.mjs +38 -0
  39. package/esm2020/lib/core/validation-message.service.mjs +181 -0
  40. package/{esm2015/lib/core/validation-patterns.js → esm2020/lib/core/validation-patterns.mjs} +0 -0
  41. package/esm2020/lib/core/window.service.mjs +182 -0
  42. package/esm2020/lib/display/app-bar/app-bar.component.mjs +46 -0
  43. package/esm2020/lib/display/avatar/avatar.component.mjs +67 -0
  44. package/{esm2015/lib/display/avatar/avatar.service.js → esm2020/lib/display/avatar/avatar.service.mjs} +9 -7
  45. package/esm2020/lib/display/confirm/confirm.component.mjs +131 -0
  46. package/{esm2015/lib/display/dialog/dialog-content.js → esm2020/lib/display/dialog/dialog-content.mjs} +0 -0
  47. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
  48. package/{esm2015/lib/display/dialog/dialog-types.js → esm2020/lib/display/dialog/dialog-types.mjs} +0 -0
  49. package/esm2020/lib/display/dialog/dialog.component.mjs +242 -0
  50. package/esm2020/lib/display/dialog/dialog.service.mjs +71 -0
  51. package/{esm2015/lib/display/help/help-types.js → esm2020/lib/display/help/help-types.mjs} +0 -0
  52. package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +106 -0
  53. package/{esm2015/lib/display/hierarchy/hierarchy-mocks.spec.js → esm2020/lib/display/hierarchy/hierarchy-mocks.spec.mjs} +5 -9
  54. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +59 -0
  55. package/esm2020/lib/display/item-display/item-display.component.mjs +67 -0
  56. package/esm2020/lib/display/json-display/json-display.component.mjs +47 -0
  57. package/esm2020/lib/display/resizable/resizable-base.mjs +120 -0
  58. package/esm2020/lib/display/resizable/resizable.component.mjs +57 -0
  59. package/esm2020/lib/display/spinner/spinner.component.mjs +12 -0
  60. package/esm2020/lib/display/splash/splash.component.mjs +42 -0
  61. package/esm2020/lib/display/splash/splash.service.mjs +35 -0
  62. package/esm2020/lib/display/table/resizable-column.component.mjs +20 -0
  63. package/esm2020/lib/display/table/resizable-table.directive.mjs +227 -0
  64. package/esm2020/lib/display/table/searchable-table.component.mjs +338 -0
  65. package/esm2020/lib/display/table/table-detail-row.component.mjs +27 -0
  66. package/esm2020/lib/display/table/table-locked-column.component.mjs +58 -0
  67. package/esm2020/lib/display/table/table-master-header-row.component.mjs +11 -0
  68. package/esm2020/lib/display/table/table-master-row.component.mjs +150 -0
  69. package/esm2020/lib/display/table/table-pagination.component.mjs +150 -0
  70. package/esm2020/lib/display/table/table-selectable-row.component.mjs +235 -0
  71. package/esm2020/lib/display/table/table.component.mjs +244 -0
  72. package/esm2020/lib/display/tags/tag.mjs +15 -0
  73. package/esm2020/lib/display/tags/tags.component.mjs +77 -0
  74. package/esm2020/lib/display/toast/toast/toast.component.mjs +77 -0
  75. package/{esm2015/lib/display/toast/toast-types.js → esm2020/lib/display/toast/toast-types.mjs} +0 -0
  76. package/esm2020/lib/display/toast/toast.service.mjs +35 -0
  77. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +114 -0
  78. package/esm2020/lib/display/tooltip/tooltip.component.mjs +25 -0
  79. package/esm2020/lib/display/tooltip/tooltip.service.mjs +63 -0
  80. package/esm2020/lib/display/tree/tree.component.mjs +125 -0
  81. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +58 -0
  82. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
  83. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
  84. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +163 -0
  85. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
  86. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
  87. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +48 -0
  88. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
  89. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
  90. package/{esm2015/lib/shared/display.js → esm2020/lib/shared/display.mjs} +0 -0
  91. package/esm2020/lib/shared/form-group.helper.mjs +67 -0
  92. package/{esm2015/lib/shared/json-helper.js → esm2020/lib/shared/json-helper.mjs} +0 -0
  93. package/{esm2015/lib/shared/lodash-helper.js → esm2020/lib/shared/lodash-helper.mjs} +0 -0
  94. package/esm2020/lib/shared/page/page-base/page-base.component.mjs +339 -0
  95. package/{esm2015/lib/shared/page/page-statuses.js → esm2020/lib/shared/page/page-statuses.mjs} +0 -0
  96. package/esm2020/lib/shared/page/page-title/page-title.component.mjs +23 -0
  97. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +121 -0
  98. package/{esm2015/lib/shared/testing/hierarchy-base-test-injector-factory.spec.js → esm2020/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs} +0 -0
  99. package/esm2020/lib/shared/testing/page-base-component-test-helper.spec.mjs +30 -0
  100. package/{esm2015/lib/shared/testing/page-base-component-test-injector-factory.spec.js → esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs} +0 -0
  101. package/esm2020/lib/shared/testing/public-mocks.spec.mjs +132 -0
  102. package/{esm2015/lib/shared/testing/spy-factory.spec.js → esm2020/lib/shared/testing/spy-factory.spec.mjs} +0 -0
  103. package/{esm2015/lib/shared/testing/translation-mocks.spec.js → esm2020/lib/shared/testing/translation-mocks.spec.mjs} +0 -0
  104. package/esm2020/lib/shared/user-preference.service.mjs +17 -0
  105. package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
  106. package/esm2020/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -0
  107. package/esm2020/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -0
  108. package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
  109. package/fesm2015/energycap-components.mjs +10090 -0
  110. package/fesm2015/energycap-components.mjs.map +1 -0
  111. package/fesm2020/energycap-components.mjs +9999 -0
  112. package/fesm2020/energycap-components.mjs.map +1 -0
  113. package/index.d.ts +5 -0
  114. package/lib/components.module.d.ts +72 -0
  115. package/lib/controls/banner/banner.component.d.ts +3 -0
  116. package/lib/controls/button/button.component.d.ts +3 -0
  117. package/lib/controls/button/copy-button.directive.d.ts +3 -0
  118. package/lib/controls/checkbox/checkbox.component.d.ts +3 -0
  119. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +3 -0
  120. package/lib/controls/combobox/combobox.component.d.ts +5 -2
  121. package/lib/controls/dropdown/dropdown.component.d.ts +3 -0
  122. package/lib/controls/file-upload/file-upload.component.d.ts +5 -2
  123. package/lib/controls/form-control/form-control.component.d.ts +3 -0
  124. package/lib/controls/form-control-base.d.ts +3 -0
  125. package/lib/controls/form-control-label/form-control-label.component.d.ts +3 -0
  126. package/lib/controls/form-group/form-group.component.d.ts +6 -3
  127. package/lib/controls/help-popover/help-popover.component.d.ts +3 -0
  128. package/lib/controls/item-picker/item-picker.component.d.ts +5 -2
  129. package/lib/controls/link-button/link-button.component.d.ts +3 -0
  130. package/lib/controls/menu/menu.component.d.ts +3 -0
  131. package/lib/controls/navigation/nav-item-active.directive.d.ts +3 -0
  132. package/lib/controls/numericbox/numericbox.component.d.ts +5 -2
  133. package/lib/controls/popover/popover.component.d.ts +3 -0
  134. package/lib/controls/radio-button/radio-button.component.d.ts +3 -0
  135. package/lib/controls/select/select.component.d.ts +3 -0
  136. package/lib/controls/tabs/tabs.component.d.ts +3 -0
  137. package/lib/controls/textbox/textbox.component.d.ts +3 -0
  138. package/lib/core/cache.service.d.ts +3 -0
  139. package/lib/core/error.service.d.ts +3 -0
  140. package/lib/core/scroll.service.d.ts +3 -0
  141. package/lib/core/telemetry-tracker.service.d.ts +3 -0
  142. package/lib/core/telemetry.service.d.ts +3 -0
  143. package/lib/core/validation-message.service.d.ts +3 -0
  144. package/lib/core/window.service.d.ts +3 -0
  145. package/lib/display/app-bar/app-bar.component.d.ts +3 -0
  146. package/lib/display/avatar/avatar.component.d.ts +3 -0
  147. package/lib/display/avatar/avatar.service.d.ts +3 -0
  148. package/lib/display/confirm/confirm.component.d.ts +5 -2
  149. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +3 -0
  150. package/lib/display/dialog/dialog.component.d.ts +3 -0
  151. package/lib/display/dialog/dialog.service.d.ts +3 -0
  152. package/lib/display/hierarchy/hierarchy-base.d.ts +3 -0
  153. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +3 -0
  154. package/lib/display/item-display/item-display.component.d.ts +3 -0
  155. package/lib/display/json-display/json-display.component.d.ts +5 -2
  156. package/lib/display/resizable/resizable-base.d.ts +3 -0
  157. package/lib/display/resizable/resizable.component.d.ts +3 -0
  158. package/lib/display/spinner/spinner.component.d.ts +3 -0
  159. package/lib/display/splash/splash.component.d.ts +3 -0
  160. package/lib/display/splash/splash.service.d.ts +3 -0
  161. package/lib/display/table/resizable-column.component.d.ts +3 -0
  162. package/lib/display/table/resizable-table.directive.d.ts +3 -0
  163. package/lib/display/table/searchable-table.component.d.ts +6 -3
  164. package/lib/display/table/table-detail-row.component.d.ts +3 -0
  165. package/lib/display/table/table-locked-column.component.d.ts +3 -0
  166. package/lib/display/table/table-master-header-row.component.d.ts +3 -0
  167. package/lib/display/table/table-master-row.component.d.ts +3 -0
  168. package/lib/display/table/table-pagination.component.d.ts +3 -0
  169. package/lib/display/table/table-selectable-row.component.d.ts +5 -2
  170. package/lib/display/table/table.component.d.ts +3 -0
  171. package/lib/display/tags/tags.component.d.ts +3 -0
  172. package/lib/display/toast/toast/toast.component.d.ts +3 -0
  173. package/lib/display/toast/toast.service.d.ts +3 -0
  174. package/lib/display/toast/toaster/toaster.component.d.ts +3 -0
  175. package/lib/display/tooltip/tooltip.component.d.ts +3 -0
  176. package/lib/display/tooltip/tooltip.service.d.ts +3 -0
  177. package/lib/display/tree/tree.component.d.ts +3 -0
  178. package/lib/display/view-overlay/view-overlay.component.d.ts +3 -0
  179. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +3 -0
  180. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +3 -0
  181. package/lib/shared/directives/popup/popup-container.directive.d.ts +3 -0
  182. package/lib/shared/display/pipes/date-display.pipe.d.ts +3 -0
  183. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +3 -0
  184. package/lib/shared/display/pipes/relative-date.pipe.d.ts +3 -0
  185. package/lib/shared/display/pipes/row-count.pipe.d.ts +3 -0
  186. package/lib/shared/display/pipes/time-display.pipe.d.ts +3 -0
  187. package/lib/shared/form-group.helper.d.ts +5 -2
  188. package/lib/shared/page/page-base/page-base.component.d.ts +5 -2
  189. package/lib/shared/page/page-title/page-title.component.d.ts +3 -0
  190. package/lib/shared/page/page-view/page-view.component.d.ts +3 -0
  191. package/lib/shared/testing/public-mocks.spec.d.ts +7 -0
  192. package/lib/shared/user-preference.service.d.ts +3 -0
  193. package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +3 -0
  194. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +3 -0
  195. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +3 -0
  196. package/package.json +27 -15
  197. package/src/styles/_functions.scss +6 -4
  198. package/src/styles/_icons.scss +1 -1
  199. package/src/styles/mixins/_control-base.scss +2 -2
  200. package/src/styles/mixins/_form-control-base.scss +3 -1
  201. package/src/styles/mixins/_spinner-base.scss +3 -1
  202. package/bundles/energycap-components.umd.js +0 -10646
  203. package/bundles/energycap-components.umd.js.map +0 -1
  204. package/bundles/energycap-components.umd.min.js +0 -17
  205. package/bundles/energycap-components.umd.min.js.map +0 -1
  206. package/energycap-components.d.ts +0 -7
  207. package/energycap-components.metadata.json +0 -1
  208. package/esm2015/energycap-components.js +0 -8
  209. package/esm2015/lib/components.module.js +0 -238
  210. package/esm2015/lib/controls/banner/banner.component.js +0 -94
  211. package/esm2015/lib/controls/button/button.component.js +0 -89
  212. package/esm2015/lib/controls/button/copy-button.directive.js +0 -63
  213. package/esm2015/lib/controls/checkbox/checkbox.component.js +0 -137
  214. package/esm2015/lib/controls/collapsible-toggle/collapsible-toggle.component.js +0 -35
  215. package/esm2015/lib/controls/combobox/combobox.component.js +0 -819
  216. package/esm2015/lib/controls/dropdown/dropdown.component.js +0 -207
  217. package/esm2015/lib/controls/file-upload/file-upload.component.js +0 -172
  218. package/esm2015/lib/controls/form-control/form-control.component.js +0 -65
  219. package/esm2015/lib/controls/form-control-base.js +0 -140
  220. package/esm2015/lib/controls/form-control-label/form-control-label.component.js +0 -139
  221. package/esm2015/lib/controls/form-group/form-group.component.js +0 -254
  222. package/esm2015/lib/controls/help-popover/help-popover.component.js +0 -22
  223. package/esm2015/lib/controls/item-picker/item-picker.component.js +0 -216
  224. package/esm2015/lib/controls/link-button/link-button.component.js +0 -12
  225. package/esm2015/lib/controls/menu/menu.component.js +0 -424
  226. package/esm2015/lib/controls/navigation/nav-item-active.directive.js +0 -86
  227. package/esm2015/lib/controls/numericbox/numericbox.component.js +0 -362
  228. package/esm2015/lib/controls/popover/popover.component.js +0 -85
  229. package/esm2015/lib/controls/radio-button/radio-button.component.js +0 -78
  230. package/esm2015/lib/controls/select/select.component.js +0 -89
  231. package/esm2015/lib/controls/tabs/tabs.component.js +0 -42
  232. package/esm2015/lib/controls/textbox/textbox.component.js +0 -149
  233. package/esm2015/lib/core/error.service.js +0 -56
  234. package/esm2015/lib/core/scroll.service.js +0 -88
  235. package/esm2015/lib/core/telemetry-tracker.service.js +0 -14
  236. package/esm2015/lib/core/telemetry.service.js +0 -40
  237. package/esm2015/lib/core/validation-message.service.js +0 -185
  238. package/esm2015/lib/core/window.service.js +0 -191
  239. package/esm2015/lib/display/app-bar/app-bar.component.js +0 -42
  240. package/esm2015/lib/display/avatar/avatar.component.js +0 -73
  241. package/esm2015/lib/display/confirm/confirm.component.js +0 -127
  242. package/esm2015/lib/display/dialog/dialog-group/dialog-group.component.js +0 -65
  243. package/esm2015/lib/display/dialog/dialog.component.js +0 -229
  244. package/esm2015/lib/display/dialog/dialog.service.js +0 -69
  245. package/esm2015/lib/display/hierarchy/hierarchy-base.js +0 -106
  246. package/esm2015/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.js +0 -58
  247. package/esm2015/lib/display/item-display/item-display.component.js +0 -57
  248. package/esm2015/lib/display/json-display/json-display.component.js +0 -44
  249. package/esm2015/lib/display/resizable/resizable-base.js +0 -119
  250. package/esm2015/lib/display/resizable/resizable.component.js +0 -57
  251. package/esm2015/lib/display/spinner/spinner.component.js +0 -12
  252. package/esm2015/lib/display/splash/splash.component.js +0 -45
  253. package/esm2015/lib/display/splash/splash.service.js +0 -34
  254. package/esm2015/lib/display/table/resizable-column.component.js +0 -23
  255. package/esm2015/lib/display/table/resizable-table.directive.js +0 -223
  256. package/esm2015/lib/display/table/searchable-table.component.js +0 -303
  257. package/esm2015/lib/display/table/table-detail-row.component.js +0 -21
  258. package/esm2015/lib/display/table/table-locked-column.component.js +0 -53
  259. package/esm2015/lib/display/table/table-master-header-row.component.js +0 -11
  260. package/esm2015/lib/display/table/table-master-row.component.js +0 -141
  261. package/esm2015/lib/display/table/table-pagination.component.js +0 -146
  262. package/esm2015/lib/display/table/table-selectable-row.component.js +0 -216
  263. package/esm2015/lib/display/table/table.component.js +0 -210
  264. package/esm2015/lib/display/tags/tag.js +0 -15
  265. package/esm2015/lib/display/tags/tags.component.js +0 -73
  266. package/esm2015/lib/display/toast/toast/toast.component.js +0 -70
  267. package/esm2015/lib/display/toast/toast.service.js +0 -34
  268. package/esm2015/lib/display/toast/toaster/toaster.component.js +0 -117
  269. package/esm2015/lib/display/tooltip/tooltip.component.js +0 -24
  270. package/esm2015/lib/display/tooltip/tooltip.service.js +0 -64
  271. package/esm2015/lib/display/tree/tree.component.js +0 -100
  272. package/esm2015/lib/display/view-overlay/view-overlay.component.js +0 -50
  273. package/esm2015/lib/shared/directives/click-area-for/click-area-for.directive.js +0 -25
  274. package/esm2015/lib/shared/directives/if-viewport-width/if-viewport-width.directive.js +0 -112
  275. package/esm2015/lib/shared/directives/popup/popup-container.directive.js +0 -160
  276. package/esm2015/lib/shared/display/pipes/date-display.pipe.js +0 -49
  277. package/esm2015/lib/shared/display/pipes/highlight-text.pipe.js +0 -26
  278. package/esm2015/lib/shared/display/pipes/relative-date.pipe.js +0 -49
  279. package/esm2015/lib/shared/display/pipes/row-count.pipe.js +0 -47
  280. package/esm2015/lib/shared/display/pipes/time-display.pipe.js +0 -40
  281. package/esm2015/lib/shared/form-group.helper.js +0 -65
  282. package/esm2015/lib/shared/page/page-base/page-base.component.js +0 -356
  283. package/esm2015/lib/shared/page/page-title/page-title.component.js +0 -19
  284. package/esm2015/lib/shared/page/page-view/page-view.component.js +0 -94
  285. package/esm2015/lib/shared/testing/page-base-component-test-helper.spec.js +0 -35
  286. package/esm2015/lib/shared/testing/public-mocks.spec.js +0 -126
  287. package/esm2015/lib/shared/user-preference.service.js +0 -15
  288. package/esm2015/lib/shared/wizard/wizard-base/wizard-base.component.js +0 -260
  289. package/esm2015/lib/shared/wizard/wizard-buttons/wizard-buttons.component.js +0 -54
  290. package/esm2015/lib/shared/wizard/wizard-progress/wizard-progress.component.js +0 -18
  291. package/fesm2015/energycap-components.js +0 -9638
  292. package/fesm2015/energycap-components.js.map +0 -1
@@ -1,42 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { AvatarService } from '../avatar/avatar.service';
3
- export class AppBarComponent {
4
- constructor(avatarService) {
5
- this.avatarService = avatarService;
6
- this.userMenuItems = [];
7
- this.userMenuWidth = 0;
8
- this.userMenuMinWidth = 160;
9
- this.userMenuTabindex = 0;
10
- this.iconPath = '/assets/images/icon.svg';
11
- this.menuItems = [];
12
- this.userItem = [];
13
- }
14
- ngOnChanges() {
15
- if (this.user) {
16
- this.userItem[0] = { label: this.avatarService.getAvatarLabels(this.user).full || '', display: 'heading' };
17
- }
18
- else {
19
- this.userItem = [];
20
- }
21
- this.menuItems = [...this.userItem, ...this.userMenuItems];
22
- }
23
- }
24
- AppBarComponent.decorators = [
25
- { type: Component, args: [{
26
- selector: 'ec-app-bar',
27
- template: "<section class=\"logo-container\">\r\n <img src=\"{{iconPath}}\"\r\n alt=\"EnergyCAP Platform\">\r\n</section>\r\n\r\n<section class=\"title-container\">\r\n <ng-content select=\".app-bar-title\"></ng-content>\r\n</section>\r\n\r\n<section class=\"actions-container\">\r\n <ng-content select=\".app-bar-actions\"></ng-content>\r\n <ec-dropdown id=\"AppBarUserMenu\"\r\n *ngIf=\"userMenuItems.length; else avatar\"\r\n [items]=\"menuItems\"\r\n [buttonCustomTemplate]=\"avatar\"\r\n [showArrow]=\"false\"\r\n [menuWidth]=\"userMenuWidth\"\r\n [menuMinWidth]=\"userMenuMinWidth\"\r\n [tabindex]=\"userMenuTabindex\"></ec-dropdown>\r\n</section>\r\n\r\n<ng-template #avatar>\r\n <div class=\"p-1\">\r\n <ec-avatar [user]=\"user\"></ec-avatar>\r\n </div>\r\n</ng-template>",
28
- styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{align-items:center;background-color:var(--ec-background-color);display:flex;height:3rem;padding:0 .75rem 0 1rem;position:relative;width:100%;z-index:var(--ec-z-index-navbar)}:host ::ng-deep .app-bar-actions{align-items:center;display:flex;justify-content:flex-end;margin-right:.25rem}section{flex:1 1}.logo-container img{height:2rem;width:2rem}.title-container{text-align:center}.actions-container{display:flex;justify-content:flex-end}"]
29
- },] }
30
- ];
31
- AppBarComponent.ctorParameters = () => [
32
- { type: AvatarService }
33
- ];
34
- AppBarComponent.propDecorators = {
35
- user: [{ type: Input }],
36
- userMenuItems: [{ type: Input }],
37
- userMenuWidth: [{ type: Input }],
38
- userMenuMinWidth: [{ type: Input }],
39
- userMenuTabindex: [{ type: Input }],
40
- iconPath: [{ type: Input }]
41
- };
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9hcHAtYmFyL2FwcC1iYXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQU96RCxNQUFNLE9BQU8sZUFBZTtJQVkxQixZQUFvQixhQUE0QjtRQUE1QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVZ2QyxrQkFBYSxHQUFlLEVBQUUsQ0FBQztRQUMvQixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQUNsQixxQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFDdkIscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLGFBQVEsR0FBRyx5QkFBeUIsQ0FBQztRQUU5QyxjQUFTLEdBQWUsRUFBRSxDQUFBO1FBRWxCLGFBQVEsR0FBZSxFQUFFLENBQUM7SUFFa0IsQ0FBQztJQUU5QyxXQUFXO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBQyxDQUFDO1NBQzFHO2FBQU07WUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNwQjtRQUVELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDN0QsQ0FBQzs7O1lBM0JGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTtnQkFDdEIsNjNCQUF1Qzs7YUFFeEM7OztZQU5RLGFBQWE7OzttQkFRbkIsS0FBSzs0QkFDTCxLQUFLOzRCQUNMLEtBQUs7K0JBQ0wsS0FBSzsrQkFDTCxLQUFLO3VCQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICcuLi8uLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyVXNlciB9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQXZhdGFyU2VydmljZSB9IGZyb20gJy4uL2F2YXRhci9hdmF0YXIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWFwcC1iYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9hcHAtYmFyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hcHAtYmFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEFwcEJhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgdXNlcj86IEF2YXRhclVzZXI7XHJcbiAgQElucHV0KCkgdXNlck1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdO1xyXG4gIEBJbnB1dCgpIHVzZXJNZW51V2lkdGggPSAwO1xyXG4gIEBJbnB1dCgpIHVzZXJNZW51TWluV2lkdGggPSAxNjA7XHJcbiAgQElucHV0KCkgdXNlck1lbnVUYWJpbmRleCA9IDA7XHJcbiAgQElucHV0KCkgaWNvblBhdGggPSAnL2Fzc2V0cy9pbWFnZXMvaWNvbi5zdmcnO1xyXG4gIFxyXG4gIG1lbnVJdGVtczogTWVudUl0ZW1bXSA9IFtdXHJcblxyXG4gIHByaXZhdGUgdXNlckl0ZW06IE1lbnVJdGVtW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhdmF0YXJTZXJ2aWNlOiBBdmF0YXJTZXJ2aWNlKSB7IH1cclxuXHJcbiAgcHVibGljIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudXNlcikge1xyXG4gICAgICB0aGlzLnVzZXJJdGVtWzBdID0ge2xhYmVsOiB0aGlzLmF2YXRhclNlcnZpY2UuZ2V0QXZhdGFyTGFiZWxzKHRoaXMudXNlcikuZnVsbCB8fCAnJywgZGlzcGxheTogJ2hlYWRpbmcnfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXNlckl0ZW0gPSBbXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1lbnVJdGVtcyA9IFsuLi50aGlzLnVzZXJJdGVtLCAuLi50aGlzLnVzZXJNZW51SXRlbXNdO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,73 +0,0 @@
1
- import { Component, Input, ElementRef, Renderer2 } from '@angular/core';
2
- import { AvatarService } from './avatar.service';
3
- export class AvatarComponent {
4
- constructor(el, renderer, avatarService) {
5
- this.el = el;
6
- this.renderer = renderer;
7
- this.avatarService = avatarService;
8
- /** Color map base on the first let of the label */
9
- this.colors = {
10
- abcde01: 'red',
11
- fghij23: 'orange',
12
- klmn15: 'yellow',
13
- opqr67: 'green',
14
- stuv8: 'blue',
15
- wxyz9: 'purple'
16
- };
17
- /** Label is defaulted to HI in the rare case the user does not have a first name, last name, email or username */
18
- this.label = 'HI';
19
- /** Track the current CSS class so we can remove it if the user changes before setting the next one */
20
- this.currentCSSClass = '';
21
- }
22
- ngOnChanges(changes) {
23
- if (!changes.user.firstChange && !this.user) {
24
- console.error(`AvatarComponent expected a value for the [user] input but got ${this.user} instead.`);
25
- }
26
- this.updateLabel();
27
- this.updateColor();
28
- }
29
- /**
30
- * Update the Avatar label
31
- *
32
- */
33
- updateLabel() {
34
- if (this.user) {
35
- this.label = this.avatarService.getAvatarLabels(this.user).abbreviation;
36
- }
37
- }
38
- /**
39
- * Sets the color of the Avatar based on the first letter of the label. If the label is HI or is not
40
- * a letter, default to gray.
41
- */
42
- updateColor() {
43
- if (this.currentCSSClass) {
44
- this.renderer.removeClass(this.el.nativeElement, this.currentCSSClass);
45
- }
46
- let color = 'gray';
47
- if (this.label !== 'HI' && this.label) {
48
- for (let key in this.colors) {
49
- if (key.includes(this.label[0].toLowerCase())) {
50
- color = this.colors[key];
51
- }
52
- }
53
- }
54
- this.currentCSSClass = `avatar-${color}`;
55
- this.renderer.addClass(this.el.nativeElement, this.currentCSSClass);
56
- }
57
- }
58
- AvatarComponent.decorators = [
59
- { type: Component, args: [{
60
- selector: 'ec-avatar',
61
- template: '{{label}}',
62
- styles: [":host{align-items:center;border-radius:50%;color:var(--ec-color-primary-light);display:flex;font-size:1rem;height:2.25rem;justify-content:center;line-height:1.25rem;text-transform:uppercase;width:2.25rem}:host.avatar-red{background-color:#eb6669}:host.avatar-orange{background-color:#fa9f69}:host.avatar-yellow{background-color:#ffec74}:host.avatar-green{background-color:#dbe280}:host.avatar-blue{background-color:#58afc7}:host.avatar-purple{background-color:#9e82b4}:host.avatar-gray{background-color:#acbcc3}:host.avatar-green,:host.avatar-orange,:host.avatar-yellow{color:var(--ec-color-secondary-dark)}"]
63
- },] }
64
- ];
65
- AvatarComponent.ctorParameters = () => [
66
- { type: ElementRef },
67
- { type: Renderer2 },
68
- { type: AvatarService }
69
- ];
70
- AvatarComponent.propDecorators = {
71
- user: [{ type: Input }]
72
- };
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQTBELE1BQU0sZUFBZSxDQUFDO0FBQ2hJLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQWNqRCxNQUFNLE9BQU8sZUFBZTtJQW9CMUIsWUFBb0IsRUFBYyxFQUFVLFFBQW1CLEVBQVUsYUFBNEI7UUFBakYsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWxCckcsbURBQW1EO1FBQzNDLFdBQU0sR0FBRztZQUNmLE9BQU8sRUFBRSxLQUFLO1lBQ2QsT0FBTyxFQUFFLFFBQVE7WUFDakIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsTUFBTSxFQUFFLE9BQU87WUFDZixLQUFLLEVBQUUsTUFBTTtZQUNiLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUE7UUFJRCxrSEFBa0g7UUFDM0csVUFBSyxHQUFHLElBQUksQ0FBQztRQUVwQixzR0FBc0c7UUFDOUYsb0JBQWUsR0FBRyxFQUFFLENBQUM7SUFFMkUsQ0FBQztJQUV6RyxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRTtZQUMzQyxPQUFPLENBQUMsS0FBSyxDQUFDLGlFQUFpRSxJQUFJLENBQUMsSUFBSSxXQUFXLENBQUMsQ0FBQztTQUN0RztRQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ3pFO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNLLFdBQVc7UUFDakIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUN4RTtRQUVELElBQUksS0FBSyxHQUFHLE1BQU0sQ0FBQztRQUNuQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDckMsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO2dCQUMzQixJQUFJLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFO29CQUM3QyxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDMUI7YUFDRjtTQUNGO1FBQ0QsSUFBSSxDQUFDLGVBQWUsR0FBRyxVQUFVLEtBQUssRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN0RSxDQUFDOzs7WUFqRUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2dCQUNyQixRQUFRLEVBQUUsV0FBVzs7YUFFdEI7OztZQWQwQixVQUFVO1lBQUUsU0FBUztZQUN2QyxhQUFhOzs7bUJBMEJuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgRWxlbWVudFJlZiwgUmVuZGVyZXIyLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXZhdGFyU2VydmljZSB9IGZyb20gJy4vYXZhdGFyLnNlcnZpY2UnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdmF0YXJVc2VyIHtcclxuICBmaXJzdE5hbWU/OiBzdHJpbmc7XHJcbiAgbGFzdE5hbWU/OiBzdHJpbmc7XHJcbiAgZW1haWw/OiBzdHJpbmc7XHJcbiAgdXNlcm5hbWU/OiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtYXZhdGFyJyxcclxuICB0ZW1wbGF0ZTogJ3t7bGFiZWx9fScsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYXZhdGFyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEF2YXRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKiBDb2xvciBtYXAgYmFzZSBvbiB0aGUgZmlyc3QgbGV0IG9mIHRoZSBsYWJlbCAqL1xyXG4gIHByaXZhdGUgY29sb3JzID0ge1xyXG4gICAgYWJjZGUwMTogJ3JlZCcsXHJcbiAgICBmZ2hpajIzOiAnb3JhbmdlJyxcclxuICAgIGtsbW4xNTogJ3llbGxvdycsXHJcbiAgICBvcHFyNjc6ICdncmVlbicsXHJcbiAgICBzdHV2ODogJ2JsdWUnLFxyXG4gICAgd3h5ejk6ICdwdXJwbGUnXHJcbiAgfVxyXG5cclxuICBASW5wdXQoKSB1c2VyITogQXZhdGFyVXNlcjtcclxuXHJcbiAgLyoqIExhYmVsIGlzIGRlZmF1bHRlZCB0byBISSBpbiB0aGUgcmFyZSBjYXNlIHRoZSB1c2VyIGRvZXMgbm90IGhhdmUgYSBmaXJzdCBuYW1lLCBsYXN0IG5hbWUsIGVtYWlsIG9yIHVzZXJuYW1lICovXHJcbiAgcHVibGljIGxhYmVsID0gJ0hJJztcclxuXHJcbiAgLyoqIFRyYWNrIHRoZSBjdXJyZW50IENTUyBjbGFzcyBzbyB3ZSBjYW4gcmVtb3ZlIGl0IGlmIHRoZSB1c2VyIGNoYW5nZXMgYmVmb3JlIHNldHRpbmcgdGhlIG5leHQgb25lICovXHJcbiAgcHJpdmF0ZSBjdXJyZW50Q1NTQ2xhc3MgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGF2YXRhclNlcnZpY2U6IEF2YXRhclNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGlmICghY2hhbmdlcy51c2VyLmZpcnN0Q2hhbmdlICYmICF0aGlzLnVzZXIpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgQXZhdGFyQ29tcG9uZW50IGV4cGVjdGVkIGEgdmFsdWUgZm9yIHRoZSBbdXNlcl0gaW5wdXQgYnV0IGdvdCAke3RoaXMudXNlcn0gaW5zdGVhZC5gKTtcclxuICAgIH0gXHJcbiAgICAgIFxyXG4gICAgdGhpcy51cGRhdGVMYWJlbCgpO1xyXG4gICAgdGhpcy51cGRhdGVDb2xvcigpOyAgICBcclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBVcGRhdGUgdGhlIEF2YXRhciBsYWJlbCBcclxuICAgKiBcclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZUxhYmVsKCkge1xyXG4gICAgaWYgKHRoaXMudXNlcikge1xyXG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5hdmF0YXJTZXJ2aWNlLmdldEF2YXRhckxhYmVscyh0aGlzLnVzZXIpLmFiYnJldmlhdGlvbjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBcclxuICAgKiBTZXRzIHRoZSBjb2xvciBvZiB0aGUgQXZhdGFyIGJhc2VkIG9uIHRoZSBmaXJzdCBsZXR0ZXIgb2YgdGhlIGxhYmVsLiBJZiB0aGUgbGFiZWwgaXMgSEkgb3IgaXMgbm90XHJcbiAgICogYSBsZXR0ZXIsIGRlZmF1bHQgdG8gZ3JheS5cclxuICAgKi9cclxuICBwcml2YXRlIHVwZGF0ZUNvbG9yKCkge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudENTU0NsYXNzKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJlbnRDU1NDbGFzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGNvbG9yID0gJ2dyYXknO1xyXG4gICAgaWYgKHRoaXMubGFiZWwgIT09ICdISScgJiYgdGhpcy5sYWJlbCkge1xyXG4gICAgICBmb3IgKGxldCBrZXkgaW4gdGhpcy5jb2xvcnMpIHtcclxuICAgICAgICBpZiAoa2V5LmluY2x1ZGVzKHRoaXMubGFiZWxbMF0udG9Mb3dlckNhc2UoKSkpIHtcclxuICAgICAgICAgIGNvbG9yID0gdGhpcy5jb2xvcnNba2V5XTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudENTU0NsYXNzID0gYGF2YXRhci0ke2NvbG9yfWA7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgdGhpcy5jdXJyZW50Q1NTQ2xhc3MpO1xyXG4gIH1cclxufSJdfQ==
@@ -1,127 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { FormControl, FormGroup, Validators } from '@angular/forms';
4
- import { Overlay } from '../view-overlay/view-overlay.component';
5
- export class ConfirmDialogContext {
6
- constructor() {
7
- /** Id to distinguish between confirm component contexts emitted by the dialog service */
8
- this.id = '';
9
- /**
10
- * Optional required flag for the textbox, will set
11
- * a validator on the input if true
12
- */
13
- this.textboxRequired = false;
14
- /** Sets the textbox's uppercase parameter */
15
- this.textboxUppercase = false;
16
- /**
17
- * Optional textbox height (in rows).
18
- * Only applies to multi-line type.
19
- * Default 3.
20
- */
21
- this.textareaRows = 3;
22
- /** Optional save button label */
23
- this.saveLabel = 'Save'; // LOCO
24
- /** Optional save button type */
25
- this.saveButtonType = 'primary';
26
- /** Optional cancel button label */
27
- this.cancelLabel = 'Cancel'; // LOCO
28
- /** When true, adds the submit tag to the save button so hitting enter triggers the save */
29
- this.saveOnEnter = false;
30
- /** Optional alternate save button label */
31
- this.alternateSaveLabel = undefined;
32
- /** Optional alternate save button type */
33
- this.alternateSaveButtonType = undefined;
34
- /**
35
- * Used to know which save button was selected in case the calling component
36
- * is utilizing the alternate save button
37
- */
38
- this.saveSource = 'primary';
39
- /** The message to be displayed while inlineConfirmAction is pending. */
40
- this.inlineConfirmPendingMessage = '';
41
- }
42
- }
43
- export class ConfirmComponent {
44
- constructor() {
45
- this.dialogId = 'Confirm';
46
- /** Form Group to hold any form controls needed */
47
- this.formGroup = new FormGroup({});
48
- this.status = new Overlay('hasData');
49
- this.onDialogSave = new EventEmitter();
50
- this.onDialogCancel = new EventEmitter();
51
- }
52
- onOpen(openContext) {
53
- this.context = openContext;
54
- this.dialogId = openContext.id;
55
- if (this.context.alternateSaveLabel) {
56
- this.context.saveOnEnter = false;
57
- }
58
- }
59
- ngOnInit() {
60
- this.addFormControls();
61
- }
62
- onSave(source) {
63
- this.formGroup.markAllAsTouched();
64
- if (this.formGroup.valid) {
65
- let formValues = this.formGroup.getRawValue();
66
- if (formValues.textbox) {
67
- this.context.textboxValue = formValues.textbox;
68
- }
69
- this.context.saveSource = source;
70
- if (this.context.inlineConfirmAction) {
71
- this.doInlineConfirmAction();
72
- }
73
- else {
74
- this.onDialogSave.emit(this.context);
75
- }
76
- }
77
- else if (this.context.validationErrorMessage) {
78
- this.error = this.context.validationErrorMessage;
79
- }
80
- }
81
- onCancel() {
82
- this.onDialogCancel.emit();
83
- }
84
- /**
85
- * Adds the textbox form control to our form group if its configured to be visible
86
- * Will also add the required validator if requested
87
- */
88
- addFormControls() {
89
- if (this.context.textboxType) {
90
- let validators = [];
91
- if (this.context.textboxRequired) {
92
- validators.push(Validators.required);
93
- }
94
- if (this.context.textboxValidators) {
95
- validators.push(...this.context.textboxValidators);
96
- }
97
- this.formGroup.addControl('textbox', new FormControl('', validators));
98
- }
99
- }
100
- doInlineConfirmAction() {
101
- return __awaiter(this, void 0, void 0, function* () {
102
- this.status.setStatus('pending', this.context.inlineConfirmPendingMessage);
103
- let result = yield this.context.inlineConfirmAction();
104
- this.status.setStatus('noData', result.message, {
105
- id: 'inlineConfirmClose',
106
- label: 'Close',
107
- icon: result.isSuccess ? 'icon-check-circle' : 'icon-error',
108
- classlist: result.isSuccess ? 'font-color-success' : 'font-color-error',
109
- onClick: () => { result.isSuccess ? this.onDialogSave.emit(this.context) : this.onDialogCancel.emit(); }
110
- });
111
- });
112
- }
113
- }
114
- ConfirmComponent.decorators = [
115
- { type: Component, args: [{
116
- selector: 'ec-confirm',
117
- template: "<section ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [action]=\"status?.action\"\r\n [noDataTemplate]=\"inlineConfirmResult\"\r\n overlayClassList=\"p-0\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\r\n <section class=\"flex-grow\">\r\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\r\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\r\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\r\n <ec-textbox id=\"confirmTextbox\"\r\n *ngIf=\"context?.textboxType\"\r\n [autofocus]=\"true\"\r\n [formModel]=\"formGroup.get('textbox')\"\r\n [required]=\"context?.textboxRequired\"\r\n [label]=\"context?.textboxLabel\"\r\n [type]=\"context?.textboxType\"\r\n [rows]=\"context?.textareaRows\"\r\n [placeholder]=\"context?.textboxPlaceholder\"\r\n [upperCase]=\"context?.textboxUppercase\">\r\n </ec-textbox>\r\n </section>\r\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\r\n <ec-button id=\"saveConfirmButton\"\r\n class=\"ml-2\"\r\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\r\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\r\n [autofocus]=\"!context?.textboxType\"\r\n [isSubmit]=\"context?.saveOnEnter\"\r\n (clicked)=\"onSave('primary')\">\r\n </ec-button>\r\n <ec-button id=\"alternateSaveConfirmButton\"\r\n *ngIf=\"context?.alternateSaveLabel\"\r\n class=\"ml-2\"\r\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\r\n [label]=\"context?.alternateSaveLabel\"\r\n (clicked)=\"onSave('alternate')\">\r\n </ec-button>\r\n <ec-button id=\"cancelConfirmButton\"\r\n class=\"ml-auto\"\r\n type=\"secondary\"\r\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\r\n (clicked)=\"onCancel()\">\r\n </ec-button>\r\n </footer>\r\n </form>\r\n</section>\r\n\r\n<ng-template #inlineConfirmResult>\r\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\r\n <div class=\"d-flex\">\r\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\r\n <div [innerHTML]=\"status?.message | translate\"></div>\r\n </div>\r\n <div class=\"d-flex pt-2 mt-auto\">\r\n <ec-button id=\"inlineConfirmClose\"\r\n label=\"Close\"\r\n type=\"secondary\"\r\n class=\"ml-auto\"\r\n (clicked)=\"status?.action?.onClick!()\"\r\n [autofocus]=\"true\">\r\n </ec-button>\r\n </div>\r\n </section>\r\n</ng-template>",
118
- styles: [":host{display:flex;width:100%}.confirm-content{display:flex;flex-direction:column;padding:1.5rem}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}"]
119
- },] }
120
- ];
121
- ConfirmComponent.ctorParameters = () => [];
122
- ConfirmComponent.propDecorators = {
123
- context: [{ type: Input }],
124
- onDialogSave: [{ type: Output }],
125
- onDialogCancel: [{ type: Output }]
126
- };
127
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFlLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2pGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQVNqRSxNQUFNLE9BQU8sb0JBQW9CO0lBQWpDO1FBQ0UseUZBQXlGO1FBQ2xGLE9BQUUsR0FBVyxFQUFFLENBQUM7UUFpQnZCOzs7V0FHRztRQUNJLG9CQUFlLEdBQWEsS0FBSyxDQUFDO1FBS3pDLDZDQUE2QztRQUN0QyxxQkFBZ0IsR0FBYSxLQUFLLENBQUM7UUFFMUM7Ozs7V0FJRztRQUNJLGlCQUFZLEdBQVksQ0FBQyxDQUFDO1FBV2pDLGlDQUFpQztRQUMxQixjQUFTLEdBQVksTUFBTSxDQUFDLENBQUMsT0FBTztRQUUzQyxnQ0FBZ0M7UUFDekIsbUJBQWMsR0FBZ0IsU0FBUyxDQUFDO1FBRS9DLG1DQUFtQztRQUM1QixnQkFBVyxHQUFZLFFBQVEsQ0FBQyxDQUFDLE9BQU87UUFFL0MsMkZBQTJGO1FBQ3BGLGdCQUFXLEdBQWEsS0FBSyxDQUFDO1FBRXJDLDJDQUEyQztRQUNwQyx1QkFBa0IsR0FBWSxTQUFTLENBQUM7UUFFL0MsMENBQTBDO1FBQ25DLDRCQUF1QixHQUFnQixTQUFTLENBQUM7UUFFeEQ7OztXQUdHO1FBQ0ksZUFBVSxHQUFnQixTQUFTLENBQUM7UUFVM0Msd0VBQXdFO1FBQ2pFLGdDQUEyQixHQUFZLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0NBQUE7QUFPRCxNQUFNLE9BQU8sZ0JBQWdCO0lBOEIzQjtRQTVCTyxhQUFRLEdBQVcsU0FBUyxDQUFDO1FBRXBDLGtEQUFrRDtRQUMzQyxjQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekMsV0FBTSxHQUFHLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBUXRCLGlCQUFZLEdBQXVDLElBQUksWUFBWSxFQUF3QixDQUFDO1FBQzVGLG1CQUFjLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFjL0QsQ0FBQztJQVpWLE1BQU0sQ0FBQyxXQUFrQztRQUM5QyxJQUFJLENBQUMsT0FBTyxHQUFHLFdBQVksQ0FBQztRQUM1QixJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVksQ0FBQyxFQUFFLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFO1lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztTQUNsQztJQUNILENBQUM7SUFPTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBa0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDaEQ7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFFakMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO2dCQUNwQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEM7U0FDRjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7T0FHRztJQUNLLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtZQUM1QixJQUFJLFVBQVUsR0FBa0IsRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLEVBQUU7Z0JBQ2hDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3RDO1lBQ0QsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO2dCQUNsQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLElBQUksV0FBVyxDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO0lBQ0gsQ0FBQztJQUVhLHFCQUFxQjs7WUFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0FBQztZQUUzRSxJQUFJLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsbUJBQW9CLEVBQUUsQ0FBQztZQUV2RCxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDOUMsRUFBRSxFQUFFLG9CQUFvQjtnQkFDeEIsS0FBSyxFQUFFLE9BQU87Z0JBQ2QsSUFBSSxFQUFFLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxZQUFZO2dCQUMzRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtnQkFDdkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQSxDQUFDLENBQUM7YUFDeEcsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBOzs7WUEvRkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxZQUFZO2dCQUN0QixpdkdBQXVDOzthQUV4Qzs7OztzQkFjRSxLQUFLOzJCQUVMLE1BQU07NkJBQ04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBCdXR0b25UeXBlIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUZXh0Ym94VHlwZSB9IGZyb20gJy4uLy4uL2NvbnRyb2xzL3RleHRib3gvdGV4dGJveC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEaWFsb2dDb250ZW50IH0gZnJvbSAnLi4vZGlhbG9nL2RpYWxvZy1jb250ZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheSB9IGZyb20gJy4uL3ZpZXctb3ZlcmxheS92aWV3LW92ZXJsYXkuY29tcG9uZW50JztcclxuXHJcbnR5cGUgU2F2ZVNvdXJjZSA9ICdwcmltYXJ5J3wnYWx0ZXJuYXRlJztcclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvblJlc3VsdCA9IHtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgaXNTdWNjZXNzOiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmZpcm1EaWFsb2dDb250ZXh0IHtcclxuICAvKiogSWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBjb25maXJtIGNvbXBvbmVudCBjb250ZXh0cyBlbWl0dGVkIGJ5IHRoZSBkaWFsb2cgc2VydmljZSAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBPcHRpb25hbCB0aXRsZSBvZiB0aGUgY29uZmlybSAqL1xyXG4gIHB1YmxpYyB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIG1lc3NhZ2UgKi9cclxuICBwdWJsaWMgbWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCB0eXBlLCB0aGlzIHdpbGwgZGV0ZXJtaW5lIHdoZXRoZXJcclxuICAgKiBhbiBpbnB1dCBpcyB2aXNpYmxlIG9yIG5vdFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94VHlwZT86IFRleHRib3hUeXBlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBsYWJlbCAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94TGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIHJlcXVpcmVkIGZsYWcgZm9yIHRoZSB0ZXh0Ym94LCB3aWxsIHNldFxyXG4gICAqIGEgdmFsaWRhdG9yIG9uIHRoZSBpbnB1dCBpZiB0cnVlXHJcbiAgICovXHJcbiAgcHVibGljIHRleHRib3hSZXF1aXJlZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFycmF5IG9mIHZhbGlkYXRvcnMgdG8gYWRkIHRvIHRoZSB0ZXh0Ym94IGZvcm0gY29udHJvbC4gKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xyXG5cclxuICAvKiogU2V0cyB0aGUgdGV4dGJveCdzIHVwcGVyY2FzZSBwYXJhbWV0ZXIgKi9cclxuICBwdWJsaWMgdGV4dGJveFVwcGVyY2FzZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCBoZWlnaHQgKGluIHJvd3MpLlxyXG4gICAqIE9ubHkgYXBwbGllcyB0byBtdWx0aS1saW5lIHR5cGUuXHJcbiAgICogRGVmYXVsdCAzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0YXJlYVJvd3M/OiBudW1iZXIgPSAzO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBwbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgcHVibGljIHRleHRib3hQbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRleHRib3ggKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yTWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqIFZhbHVlIHJldHVybmVkIGZyb20gdGhlIGlucHV0IGlmIGVuYWJsZWQgKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbHVlPzogc3RyaW5nO1xyXG5cclxuICAvKiogT3B0aW9uYWwgc2F2ZSBidXR0b24gbGFiZWwgKi9cclxuICBwdWJsaWMgc2F2ZUxhYmVsPzogc3RyaW5nID0gJ1NhdmUnOyAvLyBMT0NPXHJcblxyXG4gIC8qKiBPcHRpb25hbCBzYXZlIGJ1dHRvbiB0eXBlICovXHJcbiAgcHVibGljIHNhdmVCdXR0b25UeXBlPzogQnV0dG9uVHlwZSA9ICdwcmltYXJ5JztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGNhbmNlbCBidXR0b24gbGFiZWwgKi9cclxuICBwdWJsaWMgY2FuY2VsTGFiZWw/OiBzdHJpbmcgPSAnQ2FuY2VsJzsgLy8gTE9DT1xyXG5cclxuICAvKiogV2hlbiB0cnVlLCBhZGRzIHRoZSBzdWJtaXQgdGFnIHRvIHRoZSBzYXZlIGJ1dHRvbiBzbyBoaXR0aW5nIGVudGVyIHRyaWdnZXJzIHRoZSBzYXZlICovXHJcbiAgcHVibGljIHNhdmVPbkVudGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVMYWJlbD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFsdGVybmF0ZSBzYXZlIGJ1dHRvbiB0eXBlICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVCdXR0b25UeXBlPzogQnV0dG9uVHlwZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVXNlZCB0byBrbm93IHdoaWNoIHNhdmUgYnV0dG9uIHdhcyBzZWxlY3RlZCBpbiBjYXNlIHRoZSBjYWxsaW5nIGNvbXBvbmVudFxyXG4gICAqIGlzIHV0aWxpemluZyB0aGUgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIHNhdmVTb3VyY2U/OiBTYXZlU291cmNlID0gJ3ByaW1hcnknO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHByb3ZpZGVkLCB0aGUgY29uZmlybSB3aWxsIHNob3cgYSBwZW5kaW5nIHN0YXRlIGFuZCBjYWxsIHRoaXMsIHRoZW4gdXBvblxyXG4gICAqIGNvbXBsZXRpb24gZGlzcGxheSB0aGUgcmVzdWx0IG1lc3NhZ2UgYW5kIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZFxyXG4gICAqIHN1Y2Nlc3NmdWxseSwgdGhlIGNsb3NlIGJ1dHRvbiB3aWxsIGVtaXQgb25EaWFsb2dTYXZlLiBJZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZCxcclxuICAgKiB0aGUgY2xvc2UgYnV0dG9uIHdpbGwgZW1pdCBvbkRpYWxvZ0NhbmNlbC5cclxuICAgKi9cclxuICBwdWJsaWMgaW5saW5lQ29uZmlybUFjdGlvbj86ICgpID0+IFByb21pc2U8Q3VzdG9tQWN0aW9uUmVzdWx0PjtcclxuXHJcbiAgLyoqIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCB3aGlsZSBpbmxpbmVDb25maXJtQWN0aW9uIGlzIHBlbmRpbmcuICovXHJcbiAgcHVibGljIGlubGluZUNvbmZpcm1QZW5kaW5nTWVzc2FnZT86IHN0cmluZyA9ICcnO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNvbmZpcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZ0NvbnRlbnQ8Q29uZmlybURpYWxvZ0NvbnRleHQ+e1xyXG5cclxuICBwdWJsaWMgZGlhbG9nSWQ6IHN0cmluZyA9ICdDb25maXJtJztcclxuXHJcbiAgLyoqIEZvcm0gR3JvdXAgdG8gaG9sZCBhbnkgZm9ybSBjb250cm9scyBuZWVkZWQgKi9cclxuICBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcclxuXHJcbiAgcHVibGljIHN0YXR1cyA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGVkIGJ5IHRoZSBjYWxsaW5nIGNvbXBvbmVudCB0byB0ZWxsIHRoZSBjb25maXJtIHdoYXQgdG8gc2hvd1xyXG4gICAqIGFuZCBpcyB1c2VkIG9uIHNhdmUgdG8gc2VuZCBiYWNrIGFueSBlbnRlcmVkIHZhbHVlcyBmcm9tIHRoZSB1c2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRleHQhOiBDb25maXJtRGlhbG9nQ29udGV4dDtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRpYWxvZ1NhdmU6IEV2ZW50RW1pdHRlcjxDb25maXJtRGlhbG9nQ29udGV4dD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpcm1EaWFsb2dDb250ZXh0PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EaWFsb2dDYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIG9uT3BlbihvcGVuQ29udGV4dD86IENvbmZpcm1EaWFsb2dDb250ZXh0KTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRleHQgPSBvcGVuQ29udGV4dCE7XHJcbiAgICB0aGlzLmRpYWxvZ0lkID0gb3BlbkNvbnRleHQhLmlkO1xyXG5cclxuICAgIGlmICh0aGlzLmNvbnRleHQuYWx0ZXJuYXRlU2F2ZUxhYmVsKSB7XHJcbiAgICAgIHRoaXMuY29udGV4dC5zYXZlT25FbnRlciA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEVycm9yIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZXJyb3IgYmFubmVyICovXHJcbiAgcHVibGljIGVycm9yPzogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZEZvcm1Db250cm9scygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2F2ZShzb3VyY2U6IFNhdmVTb3VyY2UpOiB2b2lkIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwLm1hcmtBbGxBc1RvdWNoZWQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5mb3JtR3JvdXAudmFsaWQpIHtcclxuICAgICAgbGV0IGZvcm1WYWx1ZXMgPSB0aGlzLmZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpO1xyXG4gICAgICBpZiAoZm9ybVZhbHVlcy50ZXh0Ym94KSB7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0LnRleHRib3hWYWx1ZSA9IGZvcm1WYWx1ZXMudGV4dGJveDtcclxuICAgICAgfVxyXG5cclxuICAgICAgdGhpcy5jb250ZXh0LnNhdmVTb3VyY2UgPSBzb3VyY2U7XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250ZXh0LmlubGluZUNvbmZpcm1BY3Rpb24pIHtcclxuICAgICAgICB0aGlzLmRvSW5saW5lQ29uZmlybUFjdGlvbigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMub25EaWFsb2dTYXZlLmVtaXQodGhpcy5jb250ZXh0KTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQudmFsaWRhdGlvbkVycm9yTWVzc2FnZSkge1xyXG4gICAgICB0aGlzLmVycm9yID0gdGhpcy5jb250ZXh0LnZhbGlkYXRpb25FcnJvck1lc3NhZ2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uRGlhbG9nQ2FuY2VsLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgdGhlIHRleHRib3ggZm9ybSBjb250cm9sIHRvIG91ciBmb3JtIGdyb3VwIGlmIGl0cyBjb25maWd1cmVkIHRvIGJlIHZpc2libGVcclxuICAgKiBXaWxsIGFsc28gYWRkIHRoZSByZXF1aXJlZCB2YWxpZGF0b3IgaWYgcmVxdWVzdGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRGb3JtQ29udHJvbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250ZXh0LnRleHRib3hUeXBlKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFJlcXVpcmVkKSB7XHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFZhbGlkYXRvcnMpIHtcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goLi4udGhpcy5jb250ZXh0LnRleHRib3hWYWxpZGF0b3JzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCd0ZXh0Ym94JywgbmV3IEZvcm1Db250cm9sKCcnLCB2YWxpZGF0b3JzKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGRvSW5saW5lQ29uZmlybUFjdGlvbigpIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygncGVuZGluZycsIHRoaXMuY29udGV4dC5pbmxpbmVDb25maXJtUGVuZGluZ01lc3NhZ2UpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbnRleHQuaW5saW5lQ29uZmlybUFjdGlvbiEoKTtcclxuXHJcbiAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ25vRGF0YScsIHJlc3VsdC5tZXNzYWdlLCB7XHJcbiAgICAgIGlkOiAnaW5saW5lQ29uZmlybUNsb3NlJyxcclxuICAgICAgbGFiZWw6ICdDbG9zZScsXHJcbiAgICAgIGljb246IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnaWNvbi1jaGVjay1jaXJjbGUnIDogJ2ljb24tZXJyb3InLFxyXG4gICAgICBjbGFzc2xpc3Q6IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnZm9udC1jb2xvci1zdWNjZXNzJyA6ICdmb250LWNvbG9yLWVycm9yJyxcclxuICAgICAgb25DbGljazogKCkgPT4geyByZXN1bHQuaXNTdWNjZXNzID8gdGhpcy5vbkRpYWxvZ1NhdmUuZW1pdCh0aGlzLmNvbnRleHQpIDogdGhpcy5vbkRpYWxvZ0NhbmNlbC5lbWl0KCkgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,65 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { filter, takeUntil } from 'rxjs/operators';
4
- import { DialogCloseEvent, DialogCloseLatestEvent, DialogOpenStartEvent } from '../dialog-types';
5
- import { DialogService } from '../dialog.service';
6
- export class DialogGroupComponent {
7
- constructor(dialogService) {
8
- this.dialogService = dialogService;
9
- this.activeDialogEvents = [];
10
- this.destroyed = new Subject();
11
- }
12
- /**When the group component is created, start watching for any DialogOpenStart events
13
- * so that the group can react and make the matching dialog. New dialogs get assigned unique
14
- * eventIds so that when they close we know exactly which one is done and we can take it
15
- * out of the list of active dialogs
16
- */
17
- ngOnInit() {
18
- this.dialogService.events.pipe(filter(event => event instanceof DialogOpenStartEvent || event instanceof DialogCloseLatestEvent), takeUntil(this.destroyed)).subscribe(event => {
19
- var _a, _b;
20
- if (event instanceof DialogOpenStartEvent) {
21
- this.activeDialogEvents.push(event);
22
- }
23
- else if (event instanceof DialogCloseLatestEvent && this.activeDialogEvents.length > 0) {
24
- let sourceEvent = this.activeDialogEvents[this.activeDialogEvents.length - 1];
25
- this.dialogService.triggerEvent(new DialogCloseEvent(sourceEvent.eventId, sourceEvent.dialogId, (_a = event.dialogResult) === null || _a === void 0 ? void 0 : _a.save, (_b = event.dialogResult) === null || _b === void 0 ? void 0 : _b.context));
26
- this.dialogClosed(sourceEvent);
27
- }
28
- });
29
- }
30
- /** When the dialog group is destroyed we no longer want to listen for any open events. */
31
- ngOnDestroy() {
32
- this.destroyed.next();
33
- this.destroyed.unsubscribe();
34
- }
35
- /**The dialog component completed opening (including animation delay) and
36
- * emits an event that tells us it is ready. The group can then pump out a dialog
37
- * openEnd event (kinda NavigationEnd in the router) to tell anybody who cares that
38
- * the dialog is now ready.
39
- */
40
- dialogOpened(dialogOpenEvent, dialogId) {
41
- dialogOpenEvent.dialogId = dialogId;
42
- }
43
- /** The dialog has closed (after animation delay) and emitted an event to tell the hosting component.
44
- * We handle the event and pump a matching DialogCloseEvent so that anybody who cares can know that the
45
- * dialog instance referenced by dialogOpenEvent.eventId is gone now. We remove it from our list of
46
- * active dialogs which pulls it out of the DOM too
47
- */
48
- dialogClosed(dialogOpenEvent) {
49
- const index = this.activeDialogEvents.findIndex(d => d === dialogOpenEvent);
50
- if (index >= 0) {
51
- this.activeDialogEvents.splice(index, 1);
52
- }
53
- }
54
- }
55
- DialogGroupComponent.decorators = [
56
- { type: Component, args: [{
57
- selector: 'ec-dialog-group',
58
- template: "<ec-dialog *ngFor=\"let dialog of activeDialogEvents\"\r\n [dialogOpenStartEventId]=\"dialog.eventId\"\r\n [size]=\"dialog.options?.size\"\r\n [content]=\"dialog.content\"\r\n [context]=\"dialog.context\"\r\n [options]=\"dialog.options\"\r\n (opened)=\"dialogOpened(dialog, $event)\"\r\n (closed)=\"dialogClosed(dialog)\">\r\n</ec-dialog>",
59
- styles: [":root{--ec-color-icon:rgba(26,26,35,0.66);--ec-font-size-icon:1rem}@-webkit-keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}ec-dialog:not(:only-child){--ec-dialog-background-color:transparent}ec-dialog:not(:only-child):last-child,ec-dialog:not(:only-child):nth-last-child(2){--ec-dialog-background-color:var(--ec-background-color-dialog-stacked)}"]
60
- },] }
61
- ];
62
- DialogGroupComponent.ctorParameters = () => [
63
- { type: DialogService }
64
- ];
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2RpYWxvZy9kaWFsb2ctZ3JvdXAvZGlhbG9nLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBT2xELE1BQU0sT0FBTyxvQkFBb0I7SUFLL0IsWUFBb0IsYUFBNEI7UUFBNUIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFIaEQsdUJBQWtCLEdBQWdDLEVBQUUsQ0FBQztRQUM3QyxjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUVZLENBQUM7SUFFckQ7Ozs7T0FJRztJQUNILFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxvQkFBb0IsSUFBSSxLQUFLLFlBQVksc0JBQXNCLENBQUMsRUFDakcsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FDMUIsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7O1lBQ2xCLElBQUcsS0FBSyxZQUFZLG9CQUFvQixFQUFDO2dCQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQWtDLENBQUMsQ0FBQzthQUNsRTtpQkFBTSxJQUFHLEtBQUssWUFBWSxzQkFBc0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdkYsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQzlFLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksZ0JBQWdCLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsUUFBUSxRQUFFLEtBQUssQ0FBQyxZQUFZLDBDQUFFLElBQUksUUFBRSxLQUFLLENBQUMsWUFBWSwwQ0FBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUN4SixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsMEZBQTBGO0lBQzFGLFdBQVc7UUFDVCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsZUFBMEMsRUFBRSxRQUFnQjtRQUN2RSxlQUFlLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxlQUEwQztRQUNyRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLGVBQWUsQ0FBQyxDQUFDO1FBRTVFLElBQUcsS0FBSyxJQUFHLENBQUMsRUFBQztZQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQzs7O1lBMURGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixvYUFBNEM7O2FBRTdDOzs7WUFOUSxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBEaWFsb2dDbG9zZUV2ZW50LCBEaWFsb2dDbG9zZUxhdGVzdEV2ZW50LCBEaWFsb2dPcGVuU3RhcnRFdmVudCB9IGZyb20gJy4uL2RpYWxvZy10eXBlcyc7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UgfSBmcm9tICcuLi9kaWFsb2cuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWRpYWxvZy1ncm91cCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGlhbG9nLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIERpYWxvZ0dyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBhY3RpdmVEaWFsb2dFdmVudHM6IERpYWxvZ09wZW5TdGFydEV2ZW50PGFueT5bXSA9IFtdO1xyXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlKSB7IH1cclxuXHJcbiAgLyoqV2hlbiB0aGUgZ3JvdXAgY29tcG9uZW50IGlzIGNyZWF0ZWQsIHN0YXJ0IHdhdGNoaW5nIGZvciBhbnkgRGlhbG9nT3BlblN0YXJ0IGV2ZW50c1xyXG4gICAqIHNvIHRoYXQgdGhlIGdyb3VwIGNhbiByZWFjdCBhbmQgbWFrZSB0aGUgbWF0Y2hpbmcgZGlhbG9nLiBOZXcgZGlhbG9ncyBnZXQgYXNzaWduZWQgdW5pcXVlXHJcbiAgICogZXZlbnRJZHMgc28gdGhhdCB3aGVuIHRoZXkgY2xvc2Ugd2Uga25vdyBleGFjdGx5IHdoaWNoIG9uZSBpcyBkb25lIGFuZCB3ZSBjYW4gdGFrZSBpdFxyXG4gICAqIG91dCBvZiB0aGUgbGlzdCBvZiBhY3RpdmUgZGlhbG9nc1xyXG4gICAqL1xyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLmV2ZW50cy5waXBlKFxyXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gZXZlbnQgaW5zdGFuY2VvZiBEaWFsb2dPcGVuU3RhcnRFdmVudCB8fCBldmVudCBpbnN0YW5jZW9mIERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQpLFxyXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpXHJcbiAgICApLnN1YnNjcmliZShldmVudCA9PiB7XHJcbiAgICAgIGlmKGV2ZW50IGluc3RhbmNlb2YgRGlhbG9nT3BlblN0YXJ0RXZlbnQpe1xyXG4gICAgICAgIHRoaXMuYWN0aXZlRGlhbG9nRXZlbnRzLnB1c2goZXZlbnQgYXMgRGlhbG9nT3BlblN0YXJ0RXZlbnQ8YW55Pik7XHJcbiAgICAgIH0gZWxzZSBpZihldmVudCBpbnN0YW5jZW9mIERpYWxvZ0Nsb3NlTGF0ZXN0RXZlbnQgJiYgdGhpcy5hY3RpdmVEaWFsb2dFdmVudHMubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGxldCBzb3VyY2VFdmVudCA9IHRoaXMuYWN0aXZlRGlhbG9nRXZlbnRzW3RoaXMuYWN0aXZlRGlhbG9nRXZlbnRzLmxlbmd0aCAtIDFdO1xyXG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS50cmlnZ2VyRXZlbnQobmV3IERpYWxvZ0Nsb3NlRXZlbnQoc291cmNlRXZlbnQuZXZlbnRJZCwgc291cmNlRXZlbnQuZGlhbG9nSWQsIGV2ZW50LmRpYWxvZ1Jlc3VsdD8uc2F2ZSwgZXZlbnQuZGlhbG9nUmVzdWx0Py5jb250ZXh0KSk7XHJcbiAgICAgICAgdGhpcy5kaWFsb2dDbG9zZWQoc291cmNlRXZlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKiBXaGVuIHRoZSBkaWFsb2cgZ3JvdXAgaXMgZGVzdHJveWVkIHdlIG5vIGxvbmdlciB3YW50IHRvIGxpc3RlbiBmb3IgYW55IG9wZW4gZXZlbnRzLiAqL1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIC8qKlRoZSBkaWFsb2cgY29tcG9uZW50IGNvbXBsZXRlZCBvcGVuaW5nIChpbmNsdWRpbmcgYW5pbWF0aW9uIGRlbGF5KSBhbmRcclxuICAgKiBlbWl0cyBhbiBldmVudCB0aGF0IHRlbGxzIHVzIGl0IGlzIHJlYWR5LiBUaGUgZ3JvdXAgY2FuIHRoZW4gcHVtcCBvdXQgYSBkaWFsb2dcclxuICAgKiBvcGVuRW5kIGV2ZW50IChraW5kYSBOYXZpZ2F0aW9uRW5kIGluIHRoZSByb3V0ZXIpIHRvIHRlbGwgYW55Ym9keSB3aG8gY2FyZXMgdGhhdFxyXG4gICAqIHRoZSBkaWFsb2cgaXMgbm93IHJlYWR5LlxyXG4gICAqL1xyXG4gIGRpYWxvZ09wZW5lZChkaWFsb2dPcGVuRXZlbnQ6IERpYWxvZ09wZW5TdGFydEV2ZW50PGFueT4sIGRpYWxvZ0lkOiBzdHJpbmcpIHtcclxuICAgIGRpYWxvZ09wZW5FdmVudC5kaWFsb2dJZCA9IGRpYWxvZ0lkO1xyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSBkaWFsb2cgaGFzIGNsb3NlZCAoYWZ0ZXIgYW5pbWF0aW9uIGRlbGF5KSBhbmQgZW1pdHRlZCBhbiBldmVudCB0byB0ZWxsIHRoZSBob3N0aW5nIGNvbXBvbmVudC5cclxuICAgKiBXZSBoYW5kbGUgdGhlIGV2ZW50IGFuZCBwdW1wIGEgbWF0Y2hpbmcgRGlhbG9nQ2xvc2VFdmVudCBzbyB0aGF0IGFueWJvZHkgd2hvIGNhcmVzIGNhbiBrbm93IHRoYXQgdGhlXHJcbiAgICogZGlhbG9nIGluc3RhbmNlIHJlZmVyZW5jZWQgYnkgZGlhbG9nT3BlbkV2ZW50LmV2ZW50SWQgaXMgZ29uZSBub3cuIFdlIHJlbW92ZSBpdCBmcm9tIG91ciBsaXN0IG9mXHJcbiAgICogYWN0aXZlIGRpYWxvZ3Mgd2hpY2ggcHVsbHMgaXQgb3V0IG9mIHRoZSBET00gdG9vXHJcbiAgICovXHJcbiAgZGlhbG9nQ2xvc2VkKGRpYWxvZ09wZW5FdmVudDogRGlhbG9nT3BlblN0YXJ0RXZlbnQ8YW55Pikge1xyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmFjdGl2ZURpYWxvZ0V2ZW50cy5maW5kSW5kZXgoZCA9PiBkID09PSBkaWFsb2dPcGVuRXZlbnQpO1xyXG4gICAgXHJcbiAgICBpZihpbmRleCA+PTApe1xyXG4gICAgICB0aGlzLmFjdGl2ZURpYWxvZ0V2ZW50cy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=