@energycap/components 0.41.0 → 0.41.1-ECAP-27592-angular-17.20241220-1140

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 (258) hide show
  1. package/{esm2020 → esm2022}/energycap-components.mjs +4 -4
  2. package/{esm2020 → esm2022}/lib/components.module.mjs +418 -418
  3. package/{esm2020 → esm2022}/lib/controls/banner/banner.component.mjs +109 -109
  4. package/{esm2020 → esm2022}/lib/controls/button/button.component.mjs +106 -106
  5. package/{esm2020 → esm2022}/lib/controls/button/copy-button-base.directive.mjs +67 -67
  6. package/{esm2020 → esm2022}/lib/controls/button/copy-button.directive.mjs +28 -28
  7. package/{esm2020 → esm2022}/lib/controls/button/copy-table-button.directive.mjs +43 -43
  8. package/{esm2020 → esm2022}/lib/controls/calendar/calendar-item.component.mjs +59 -59
  9. package/{esm2020 → esm2022}/lib/controls/calendar/calendar.component.mjs +200 -200
  10. package/{esm2020 → esm2022}/lib/controls/calendar/calendar.types.mjs +3 -3
  11. package/{esm2020 → esm2022}/lib/controls/checkbox/checkbox.component.mjs +140 -140
  12. package/{esm2020 → esm2022}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
  13. package/{esm2020 → esm2022}/lib/controls/combobox/combobox.component.mjs +879 -879
  14. package/{esm2020 → esm2022}/lib/controls/date-input/date-input.component.mjs +256 -256
  15. package/{esm2020 → esm2022}/lib/controls/dropdown/dropdown.component.mjs +243 -243
  16. package/{esm2020 → esm2022}/lib/controls/file-upload/file-upload.component.mjs +261 -261
  17. package/{esm2020 → esm2022}/lib/controls/form-control/form-control.component.mjs +104 -104
  18. package/{esm2020 → esm2022}/lib/controls/form-control-base.mjs +151 -151
  19. package/{esm2020 → esm2022}/lib/controls/form-control-label/form-control-label.component.mjs +136 -136
  20. package/{esm2020 → esm2022}/lib/controls/form-group/form-group.component.mjs +261 -261
  21. package/{esm2020 → esm2022}/lib/controls/help-popover/help-popover.component.mjs +31 -31
  22. package/{esm2020 → esm2022}/lib/controls/item-picker/item-picker.component.mjs +329 -329
  23. package/{esm2020 → esm2022}/lib/controls/link-button/link-button.component.mjs +11 -11
  24. package/{esm2020 → esm2022}/lib/controls/menu/menu.component.mjs +485 -485
  25. package/{esm2020 → esm2022}/lib/controls/navigation/link-item.mjs +1 -1
  26. package/{esm2020 → esm2022}/lib/controls/navigation/nav-group.mjs +38 -38
  27. package/{esm2020 → esm2022}/lib/controls/navigation/nav-item-active.directive.mjs +92 -92
  28. package/{esm2020 → esm2022}/lib/controls/navigation/nav-item.mjs +1 -1
  29. package/{esm2020 → esm2022}/lib/controls/numericbox/numericbox.component.mjs +372 -372
  30. package/{esm2020 → esm2022}/lib/controls/popover/popover.component.mjs +117 -117
  31. package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button-option.mjs +2 -2
  32. package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button.component.mjs +82 -82
  33. package/{esm2020 → esm2022}/lib/controls/select/select.component.mjs +88 -88
  34. package/{esm2020 → esm2022}/lib/controls/tabs/tabs.component.mjs +47 -47
  35. package/{esm2020 → esm2022}/lib/controls/textbox/textbox.component.mjs +155 -155
  36. package/{esm2020 → esm2022}/lib/core/cache.service.mjs +105 -105
  37. package/esm2022/lib/core/custom-validators.mjs +29 -0
  38. package/esm2022/lib/core/date-time-helper.mjs +220 -0
  39. package/{esm2020 → esm2022}/lib/core/error.service.mjs +61 -61
  40. package/{esm2020 → esm2022}/lib/core/router-helper.service.mjs +111 -111
  41. package/{esm2020 → esm2022}/lib/core/scroll.service.mjs +89 -89
  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/{esm2020 → esm2022}/lib/core/validation-message.service.mjs +185 -185
  45. package/{esm2020 → esm2022}/lib/core/validation-patterns.mjs +30 -30
  46. package/{esm2020 → esm2022}/lib/core/window.service.mjs +186 -186
  47. package/{esm2020 → esm2022}/lib/display/app-bar/app-bar.component.mjs +46 -46
  48. package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
  49. package/{esm2020 → esm2022}/lib/display/avatar/avatar.service.mjs +64 -64
  50. package/{esm2020 → esm2022}/lib/display/confirm/confirm.component.mjs +168 -168
  51. package/{esm2020 → esm2022}/lib/display/dialog/dialog-content.mjs +1 -1
  52. package/{esm2020 → esm2022}/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -63
  53. package/{esm2020 → esm2022}/lib/display/dialog/dialog-types.mjs +76 -76
  54. package/{esm2020 → esm2022}/lib/display/dialog/dialog.component.mjs +281 -281
  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/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-base.mjs +111 -111
  58. package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
  59. package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -61
  60. package/{esm2020 → esm2022}/lib/display/item-display/item-display.component.mjs +81 -81
  61. package/{esm2020 → esm2022}/lib/display/json-display/json-display.component.mjs +47 -47
  62. package/{esm2020 → esm2022}/lib/display/resizable/resizable-base.mjs +120 -120
  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/{esm2020 → esm2022}/lib/display/splash/splash.component.mjs +42 -42
  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/{esm2020 → esm2022}/lib/display/table/resizable-table.directive.mjs +227 -227
  69. package/{esm2020 → esm2022}/lib/display/table/searchable-table.component.mjs +342 -342
  70. package/{esm2020 → esm2022}/lib/display/table/table-detail-row.component.mjs +19 -19
  71. package/{esm2020 → esm2022}/lib/display/table/table-locked-column.component.mjs +58 -58
  72. package/{esm2020 → esm2022}/lib/display/table/table-master-header-row.component.mjs +14 -14
  73. package/{esm2020 → esm2022}/lib/display/table/table-master-row.component.mjs +163 -163
  74. package/{esm2020 → esm2022}/lib/display/table/table-pagination.component.mjs +155 -155
  75. package/{esm2020 → esm2022}/lib/display/table/table-selectable-row.component.mjs +235 -235
  76. package/{esm2020 → esm2022}/lib/display/table/table.component.mjs +249 -249
  77. package/{esm2020 → esm2022}/lib/display/tags/tag.mjs +17 -17
  78. package/{esm2020 → esm2022}/lib/display/tags/tags.component.mjs +77 -77
  79. package/{esm2020 → esm2022}/lib/display/toast/toast/toast.component.mjs +77 -77
  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/{esm2020 → esm2022}/lib/display/toast/toaster/toaster.component.mjs +114 -114
  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/{esm2020 → esm2022}/lib/display/tooltip-directive/tooltip.directive.mjs +173 -173
  86. package/{esm2020 → esm2022}/lib/display/tour/tour-types.mjs +33 -33
  87. package/{esm2020 → esm2022}/lib/display/tour/tour.component.mjs +398 -398
  88. package/{esm2020 → esm2022}/lib/display/tour/tour.service.mjs +75 -75
  89. package/{esm2020 → esm2022}/lib/display/tree/tree.component.mjs +135 -135
  90. package/{esm2020 → esm2022}/lib/display/view-overlay/view-overlay.component.mjs +58 -58
  91. package/{esm2020 → esm2022}/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -32
  92. package/{esm2020 → esm2022}/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -111
  93. package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
  94. package/{esm2020 → esm2022}/lib/shared/display/pipes/date-display.pipe.mjs +50 -50
  95. package/{esm2020 → esm2022}/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -30
  96. package/{esm2020 → esm2022}/lib/shared/display/pipes/relative-date.pipe.mjs +62 -62
  97. package/{esm2020 → esm2022}/lib/shared/display/pipes/row-count.pipe.mjs +48 -48
  98. package/{esm2020 → esm2022}/lib/shared/display/pipes/time-display.pipe.mjs +41 -41
  99. package/esm2022/lib/shared/display.mjs +6 -0
  100. package/esm2022/lib/shared/form-group.helper.mjs +67 -0
  101. package/{esm2020 → esm2022}/lib/shared/json-helper.mjs +18 -18
  102. package/esm2022/lib/shared/lodash-helper.mjs +52 -0
  103. package/{esm2020 → esm2022}/lib/shared/page/page-base/page-base.component.mjs +387 -387
  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/{esm2020 → esm2022}/lib/shared/page/page-view/page-view.component.mjs +147 -147
  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/{esm2020 → esm2022}/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -246
  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/{esm2020 → esm2022}/public-api.mjs +114 -114
  119. package/{fesm2020 → fesm2022}/energycap-components.mjs +11797 -11793
  120. package/fesm2022/energycap-components.mjs.map +1 -0
  121. package/index.d.ts +5 -5
  122. package/lib/components.module.d.ts +91 -91
  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 -17
  129. package/lib/controls/calendar/calendar.component.d.ts +54 -54
  130. package/lib/controls/calendar/calendar.types.d.ts +7 -7
  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 -80
  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 -30
  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 -111
  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/schema.d.ts +4 -4
  243. package/schematics/rxjs-7-upgrade/schema.js +2 -2
  244. package/schematics/utilities/typescript.d.ts +7 -7
  245. package/schematics/utilities/typescript.js +41 -41
  246. package/schematics/utilities/workspace.d.ts +8 -8
  247. package/schematics/utilities/workspace.js +71 -71
  248. package/esm2020/lib/core/custom-validators.mjs +0 -29
  249. package/esm2020/lib/core/date-time-helper.mjs +0 -220
  250. package/esm2020/lib/display/avatar/avatar.component.mjs +0 -67
  251. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +0 -163
  252. package/esm2020/lib/shared/display.mjs +0 -6
  253. package/esm2020/lib/shared/form-group.helper.mjs +0 -67
  254. package/esm2020/lib/shared/lodash-helper.mjs +0 -51
  255. package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
  256. package/fesm2015/energycap-components.mjs +0 -12211
  257. package/fesm2015/energycap-components.mjs.map +0 -1
  258. package/fesm2020/energycap-components.mjs.map +0 -1
@@ -1,75 +1,75 @@
1
- import { Injectable } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { TourEvent } from './tour-types';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "../../core/cache.service";
6
- export class TourService {
7
- constructor(cacheService) {
8
- this.cacheService = cacheService;
9
- this.events = new Subject();
10
- }
11
- /**
12
- * Start a tour of the application. Allows one or many tours to be sent in, each will
13
- * follow the next. If multiple tours have exit steps defined only the final tour will
14
- * execute the exit step.
15
- * @param tours
16
- */
17
- start(tours, isAutoStart = false) {
18
- let tourEvent = new TourEvent(tours, 'start', isAutoStart);
19
- this.events.next(tourEvent);
20
- }
21
- end() {
22
- let tourEvent = new TourEvent([], 'end');
23
- this.events.next(tourEvent);
24
- }
25
- append(tours, isAutoStart = false) {
26
- let tourEvent = new TourEvent(tours, 'append', isAutoStart);
27
- this.events.next(tourEvent);
28
- }
29
- /**
30
- * Returns a formatted cache key for tours
31
- * @param tour
32
- * @returns
33
- */
34
- getCacheKey(tour) {
35
- return `TourCompleted_${tour.id}`;
36
- }
37
- /**
38
- * Given a tour, check to see if it's been completed
39
- * @param tour
40
- * @returns
41
- */
42
- hasTourBeenViewed(tour) {
43
- let cacheValue = this.cacheService.getItem(this.getCacheKey(tour));
44
- if (cacheValue) {
45
- return cacheValue.completed;
46
- }
47
- else {
48
- // If no cache value then we never ran through it and wrote a key
49
- return false;
50
- }
51
- }
52
- /**
53
- * Given a list of tours, check to see if any will show to the user
54
- * @param tours
55
- * @returns
56
- */
57
- haveAllToursBeenViewed(tours) {
58
- let viewedCount = 0;
59
- tours.forEach(tour => {
60
- if (this.hasTourBeenViewed(tour)) {
61
- viewedCount++;
62
- }
63
- });
64
- return viewedCount === tours.length;
65
- }
66
- }
67
- TourServicefac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TourService, deps: [{ token: i1.CacheService }], target: i0.ɵɵFactoryTarget.Injectable });
68
- TourService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TourService, providedIn: 'root' });
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TourService, decorators: [{
70
- type: Injectable,
71
- args: [{
72
- providedIn: 'root'
73
- }]
74
- }], ctorParameters: function () { return [{ type: i1.CacheService }]; } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFLL0QsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUg3QixXQUFNLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFJakQsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLEtBQWEsRUFBRSxjQUF1QixLQUFLO1FBQ3RELElBQUksU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxHQUFHO1FBQ1IsSUFBSSxTQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUE2QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWEsRUFBRSxjQUF1QixLQUFLO1FBQ3ZELElBQUksU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLElBQVU7UUFDM0IsT0FBTyxpQkFBaUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsSUFBVTtRQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBaUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDO1NBQzdCO2FBQU07WUFDTCxpRUFBaUU7WUFDakUsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0JBQXNCLENBQUMsS0FBYTtRQUN6QyxJQUFJLFdBQVcsR0FBVyxDQUFDLENBQUM7UUFFNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEMsV0FBVyxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN0QyxDQUFDOzt3R0FwRVUsV0FBVzs0R0FBWCxXQUFXLGNBRlYsTUFBTTsyRkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb3VyLCBUb3VyQ2FjaGVFbnRyeSwgVG91ckV2ZW50IH0gZnJvbSAnLi90b3VyLXR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvdXJTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIGV2ZW50czogT2JzZXJ2YWJsZTxUb3VyRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgYSB0b3VyIG9mIHRoZSBhcHBsaWNhdGlvbi4gQWxsb3dzIG9uZSBvciBtYW55IHRvdXJzIHRvIGJlIHNlbnQgaW4sIGVhY2ggd2lsbFxyXG4gICAqIGZvbGxvdyB0aGUgbmV4dC4gSWYgbXVsdGlwbGUgdG91cnMgaGF2ZSBleGl0IHN0ZXBzIGRlZmluZWQgb25seSB0aGUgZmluYWwgdG91ciB3aWxsXHJcbiAgICogZXhlY3V0ZSB0aGUgZXhpdCBzdGVwLlxyXG4gICAqIEBwYXJhbSB0b3VycyBcclxuICAgKi9cclxuICBwdWJsaWMgc3RhcnQodG91cnM6IFRvdXJbXSwgaXNBdXRvU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgbGV0IHRvdXJFdmVudDogVG91ckV2ZW50ID0gbmV3IFRvdXJFdmVudCh0b3VycywgJ3N0YXJ0JywgaXNBdXRvU3RhcnQpO1xyXG4gICAgKHRoaXMuZXZlbnRzIGFzIFN1YmplY3Q8VG91ckV2ZW50PikubmV4dCh0b3VyRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVuZCgpOiB2b2lkIHtcclxuICAgIGxldCB0b3VyRXZlbnQ6IFRvdXJFdmVudCA9IG5ldyBUb3VyRXZlbnQoW10sICdlbmQnKTtcclxuICAgICh0aGlzLmV2ZW50cyBhcyBTdWJqZWN0PFRvdXJFdmVudD4pLm5leHQodG91ckV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBlbmQodG91cnM6IFRvdXJbXSwgaXNBdXRvU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgbGV0IHRvdXJFdmVudDogVG91ckV2ZW50ID0gbmV3IFRvdXJFdmVudCh0b3VycywgJ2FwcGVuZCcsIGlzQXV0b1N0YXJ0KTtcclxuICAgICh0aGlzLmV2ZW50cyBhcyBTdWJqZWN0PFRvdXJFdmVudD4pLm5leHQodG91ckV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBmb3JtYXR0ZWQgY2FjaGUga2V5IGZvciB0b3Vyc1xyXG4gICAqIEBwYXJhbSB0b3VyIFxyXG4gICAqIEByZXR1cm5zIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDYWNoZUtleSh0b3VyOiBUb3VyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgVG91ckNvbXBsZXRlZF8ke3RvdXIuaWR9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIGEgdG91ciwgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYmVlbiBjb21wbGV0ZWRcclxuICAgKiBAcGFyYW0gdG91ciBcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICBwdWJsaWMgaGFzVG91ckJlZW5WaWV3ZWQodG91cjogVG91cik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGNhY2hlVmFsdWUgPSB0aGlzLmNhY2hlU2VydmljZS5nZXRJdGVtPFRvdXJDYWNoZUVudHJ5Pih0aGlzLmdldENhY2hlS2V5KHRvdXIpKTtcclxuICAgIGlmIChjYWNoZVZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBjYWNoZVZhbHVlLmNvbXBsZXRlZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIG5vIGNhY2hlIHZhbHVlIHRoZW4gd2UgbmV2ZXIgcmFuIHRocm91Z2ggaXQgYW5kIHdyb3RlIGEga2V5XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIGEgbGlzdCBvZiB0b3VycywgY2hlY2sgdG8gc2VlIGlmIGFueSB3aWxsIHNob3cgdG8gdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gdG91cnMgXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHVibGljIGhhdmVBbGxUb3Vyc0JlZW5WaWV3ZWQodG91cnM6IFRvdXJbXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZpZXdlZENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIHRvdXJzLmZvckVhY2godG91ciA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmhhc1RvdXJCZWVuVmlld2VkKHRvdXIpKSB7XHJcbiAgICAgICAgdmlld2VkQ291bnQrKztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHZpZXdlZENvdW50ID09PSB0b3Vycy5sZW5ndGg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { TourEvent } from './tour-types';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../core/cache.service";
6
+ export class TourService {
7
+ constructor(cacheService) {
8
+ this.cacheService = cacheService;
9
+ this.events = new Subject();
10
+ }
11
+ /**
12
+ * Start a tour of the application. Allows one or many tours to be sent in, each will
13
+ * follow the next. If multiple tours have exit steps defined only the final tour will
14
+ * execute the exit step.
15
+ * @param tours
16
+ */
17
+ start(tours, isAutoStart = false) {
18
+ let tourEvent = new TourEvent(tours, 'start', isAutoStart);
19
+ this.events.next(tourEvent);
20
+ }
21
+ end() {
22
+ let tourEvent = new TourEvent([], 'end');
23
+ this.events.next(tourEvent);
24
+ }
25
+ append(tours, isAutoStart = false) {
26
+ let tourEvent = new TourEvent(tours, 'append', isAutoStart);
27
+ this.events.next(tourEvent);
28
+ }
29
+ /**
30
+ * Returns a formatted cache key for tours
31
+ * @param tour
32
+ * @returns
33
+ */
34
+ getCacheKey(tour) {
35
+ return `TourCompleted_${tour.id}`;
36
+ }
37
+ /**
38
+ * Given a tour, check to see if it's been completed
39
+ * @param tour
40
+ * @returns
41
+ */
42
+ hasTourBeenViewed(tour) {
43
+ let cacheValue = this.cacheService.getItem(this.getCacheKey(tour));
44
+ if (cacheValue) {
45
+ return cacheValue.completed;
46
+ }
47
+ else {
48
+ // If no cache value then we never ran through it and wrote a key
49
+ return false;
50
+ }
51
+ }
52
+ /**
53
+ * Given a list of tours, check to see if any will show to the user
54
+ * @param tours
55
+ * @returns
56
+ */
57
+ haveAllToursBeenViewed(tours) {
58
+ let viewedCount = 0;
59
+ tours.forEach(tour => {
60
+ if (this.hasTourBeenViewed(tour)) {
61
+ viewedCount++;
62
+ }
63
+ });
64
+ return viewedCount === tours.length;
65
+ }
66
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TourService, deps: [{ token: i1.CacheService }], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ static { thisprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TourService, providedIn: 'root' }); }
68
+ }
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TourService, decorators: [{
70
+ type: Injectable,
71
+ args: [{
72
+ providedIn: 'root'
73
+ }]
74
+ }], ctorParameters: function () { return [{ type: i1.CacheService }]; } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG91ci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdG91ci90b3VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBd0IsU0FBUyxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFLL0QsTUFBTSxPQUFPLFdBQVc7SUFJdEIsWUFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUg3QixXQUFNLEdBQTBCLElBQUksT0FBTyxFQUFFLENBQUM7SUFJakQsQ0FBQztJQUVMOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLEtBQWEsRUFBRSxjQUF1QixLQUFLO1FBQ3RELElBQUksU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDckUsSUFBSSxDQUFDLE1BQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFTSxHQUFHO1FBQ1IsSUFBSSxTQUFTLEdBQWMsSUFBSSxTQUFTLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxNQUE2QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sTUFBTSxDQUFDLEtBQWEsRUFBRSxjQUF1QixLQUFLO1FBQ3ZELElBQUksU0FBUyxHQUFjLElBQUksU0FBUyxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLE1BQTZCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksV0FBVyxDQUFDLElBQVU7UUFDM0IsT0FBTyxpQkFBaUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksaUJBQWlCLENBQUMsSUFBVTtRQUNqQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBaUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ25GLElBQUksVUFBVSxFQUFFO1lBQ2QsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDO1NBQzdCO2FBQU07WUFDTCxpRUFBaUU7WUFDakUsT0FBTyxLQUFLLENBQUM7U0FDZDtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksc0JBQXNCLENBQUMsS0FBYTtRQUN6QyxJQUFJLFdBQVcsR0FBVyxDQUFDLENBQUM7UUFFNUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDaEMsV0FBVyxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxXQUFXLEtBQUssS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUN0QyxDQUFDOytHQXBFVSxXQUFXO21IQUFYLFdBQVcsY0FGVixNQUFNOzs0RkFFUCxXQUFXO2tCQUh2QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUb3VyLCBUb3VyQ2FjaGVFbnRyeSwgVG91ckV2ZW50IH0gZnJvbSAnLi90b3VyLXR5cGVzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvdXJTZXJ2aWNlIHtcclxuXHJcbiAgcHVibGljIGV2ZW50czogT2JzZXJ2YWJsZTxUb3VyRXZlbnQ+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGNhY2hlU2VydmljZTogQ2FjaGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogU3RhcnQgYSB0b3VyIG9mIHRoZSBhcHBsaWNhdGlvbi4gQWxsb3dzIG9uZSBvciBtYW55IHRvdXJzIHRvIGJlIHNlbnQgaW4sIGVhY2ggd2lsbFxyXG4gICAqIGZvbGxvdyB0aGUgbmV4dC4gSWYgbXVsdGlwbGUgdG91cnMgaGF2ZSBleGl0IHN0ZXBzIGRlZmluZWQgb25seSB0aGUgZmluYWwgdG91ciB3aWxsXHJcbiAgICogZXhlY3V0ZSB0aGUgZXhpdCBzdGVwLlxyXG4gICAqIEBwYXJhbSB0b3VycyBcclxuICAgKi9cclxuICBwdWJsaWMgc3RhcnQodG91cnM6IFRvdXJbXSwgaXNBdXRvU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgbGV0IHRvdXJFdmVudDogVG91ckV2ZW50ID0gbmV3IFRvdXJFdmVudCh0b3VycywgJ3N0YXJ0JywgaXNBdXRvU3RhcnQpO1xyXG4gICAgKHRoaXMuZXZlbnRzIGFzIFN1YmplY3Q8VG91ckV2ZW50PikubmV4dCh0b3VyRXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGVuZCgpOiB2b2lkIHtcclxuICAgIGxldCB0b3VyRXZlbnQ6IFRvdXJFdmVudCA9IG5ldyBUb3VyRXZlbnQoW10sICdlbmQnKTtcclxuICAgICh0aGlzLmV2ZW50cyBhcyBTdWJqZWN0PFRvdXJFdmVudD4pLm5leHQodG91ckV2ZW50KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhcHBlbmQodG91cnM6IFRvdXJbXSwgaXNBdXRvU3RhcnQ6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgbGV0IHRvdXJFdmVudDogVG91ckV2ZW50ID0gbmV3IFRvdXJFdmVudCh0b3VycywgJ2FwcGVuZCcsIGlzQXV0b1N0YXJ0KTtcclxuICAgICh0aGlzLmV2ZW50cyBhcyBTdWJqZWN0PFRvdXJFdmVudD4pLm5leHQodG91ckV2ZW50KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgYSBmb3JtYXR0ZWQgY2FjaGUga2V5IGZvciB0b3Vyc1xyXG4gICAqIEBwYXJhbSB0b3VyIFxyXG4gICAqIEByZXR1cm5zIFxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRDYWNoZUtleSh0b3VyOiBUb3VyKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgVG91ckNvbXBsZXRlZF8ke3RvdXIuaWR9YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIGEgdG91ciwgY2hlY2sgdG8gc2VlIGlmIGl0J3MgYmVlbiBjb21wbGV0ZWRcclxuICAgKiBAcGFyYW0gdG91ciBcclxuICAgKiBAcmV0dXJucyBcclxuICAgKi9cclxuICBwdWJsaWMgaGFzVG91ckJlZW5WaWV3ZWQodG91cjogVG91cik6IGJvb2xlYW4ge1xyXG4gICAgbGV0IGNhY2hlVmFsdWUgPSB0aGlzLmNhY2hlU2VydmljZS5nZXRJdGVtPFRvdXJDYWNoZUVudHJ5Pih0aGlzLmdldENhY2hlS2V5KHRvdXIpKTtcclxuICAgIGlmIChjYWNoZVZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBjYWNoZVZhbHVlLmNvbXBsZXRlZDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIC8vIElmIG5vIGNhY2hlIHZhbHVlIHRoZW4gd2UgbmV2ZXIgcmFuIHRocm91Z2ggaXQgYW5kIHdyb3RlIGEga2V5XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdpdmVuIGEgbGlzdCBvZiB0b3VycywgY2hlY2sgdG8gc2VlIGlmIGFueSB3aWxsIHNob3cgdG8gdGhlIHVzZXJcclxuICAgKiBAcGFyYW0gdG91cnMgXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHVibGljIGhhdmVBbGxUb3Vyc0JlZW5WaWV3ZWQodG91cnM6IFRvdXJbXSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHZpZXdlZENvdW50OiBudW1iZXIgPSAwO1xyXG5cclxuICAgIHRvdXJzLmZvckVhY2godG91ciA9PiB7XHJcbiAgICAgIGlmICh0aGlzLmhhc1RvdXJCZWVuVmlld2VkKHRvdXIpKSB7XHJcbiAgICAgICAgdmlld2VkQ291bnQrKztcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIHZpZXdlZENvdW50ID09PSB0b3Vycy5sZW5ndGg7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,135 +1,135 @@
1
- import { Component, Input, HostBinding, Output, EventEmitter, ViewChild } from '@angular/core';
2
- import { MenuComponent } from '../../controls/menu/menu.component';
3
- import { HierarchyTreeComponent } from '../hierarchy/hierarchy-tree/hierarchy-tree.component';
4
- import { Overlay } from '../view-overlay/view-overlay.component';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "../view-overlay/view-overlay.component";
8
- import * as i3 from "../../controls/menu/menu.component";
9
- import * as i4 from "../../controls/dropdown/dropdown.component";
10
- import * as i5 from "../hierarchy/hierarchy-tree/hierarchy-tree.component";
11
- import * as i6 from "@ngx-translate/core";
12
- export class TreeComponent {
13
- /**
14
- * The ID of the component, bound to the host element's id attribute and passed
15
- * to child components
16
- */
17
- set id(value) {
18
- this._id = value;
19
- this.attrId = value;
20
- }
21
- ;
22
- get id() {
23
- return this._id;
24
- }
25
- constructor() {
26
- /** The value of the host elements id attribute */
27
- this.attrId = '';
28
- this._id = '';
29
- /** The tree's title displayed in the header */
30
- this.treeTitle = '';
31
- /** Hides the tree header when set to true */
32
- this.hideTreeHeader = false;
33
- /** Used when the tree is in menu mode to tell the menu if it should maintain the selected item
34
- * Useful in side nav components where this tree component may exist alongside other trees or menus
35
- * used for navigation. If this tree is in menu mode you would want this set to false so when you select an item
36
- * from a sibling navigation element the selection will not be maintained.
37
- */
38
- this.treeMenuMaintainSelectedItem = true;
39
- /** Tree overlay */
40
- this.status = new Overlay('hasData');
41
- /** Display the tree items with a MenuComponent or a HierarchyTreeComponent */
42
- this.type = 'hierarchy';
43
- /** Tree dropdown menu overlay */
44
- this.menuStatus = new Overlay('hasData');
45
- /** The menu item template */
46
- this.menuTemplateType = "checkAndLabel";
47
- /**
48
- * When true, the space for the icon is preserved for menu items that do not have icons.
49
- * Only applicable for iconAndLabel menus. Not applicable to hierarchy trees.
50
- */
51
- this.preserveIconSpace = false;
52
- /** Emits the item currently selected item in the tree */
53
- this.treeSelection = new EventEmitter();
54
- /** Emits when a hierarchy tree item is expanded as a hook to load the item's children */
55
- this.getTreeItemChildren = new EventEmitter();
56
- /** Emits when a hierarchy tree item is expanded or collapsed */
57
- this.treeItemToggled = new EventEmitter();
58
- this.templateType = 'label';
59
- }
60
- /** Emits when a tree item is selected */
61
- onItemSelected(item) {
62
- this.treeSelection.emit(item);
63
- }
64
- /** Emits when a hierarchy tree item is expanded to load the item's children */
65
- onHierarchyGetItemChildren(item) {
66
- this.getTreeItemChildren.emit(item);
67
- }
68
- /** Emits when a hierarchy tree item is expanded or collapsed */
69
- onHierarchyItemToggled(item) {
70
- this.treeItemToggled.emit(item);
71
- }
72
- /** Scroll to the tree item that is currently selected. */
73
- scrollToSelectedItem() {
74
- if (this.menuComponent) {
75
- this.menuComponent.scrollToSelectedItem();
76
- }
77
- if (this.hierarchyTreeComponent) {
78
- this.hierarchyTreeComponent.scrollToSelectedItem();
79
- }
80
- }
81
- }
82
- TreeComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
83
- TreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: TreeComponent, selector: "ec-tree", inputs: { id: "id", treeTitle: "treeTitle", hideTreeHeader: "hideTreeHeader", treeItems: "treeItems", treeHierarchyHideRootNode: "treeHierarchyHideRootNode", treeHierarchy: "treeHierarchy", treeMenuMaintainSelectedItem: "treeMenuMaintainSelectedItem", customTreeMenuTemplate: "customTreeMenuTemplate", customHierarchyItemTemplate: "customHierarchyItemTemplate", status: "status", type: "type", menuItems: "menuItems", menuStatus: "menuStatus", menuTemplateType: "menuTemplateType", preserveIconSpace: "preserveIconSpace", templateType: "templateType" }, outputs: { treeSelection: "treeSelection", getTreeItemChildren: "getTreeItemChildren", treeItemToggled: "treeItemToggled" }, host: { properties: { "attr.id": "this.attrId" } }, viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "hierarchyTreeComponent", first: true, predicate: HierarchyTreeComponent, descendants: true }], ngImport: i0, template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i3.MenuComponent, selector: "ec-menu", inputs: ["id", "items", "selected", "parent", "templateType", "customMenuTemplate", "title", "showNoItems", "noDataText", "enableKeyNav", "highlightedItem", "maintainSelectedItem", "truncateItems", "preserveIconSpace", "dropdownToggleButton"], outputs: ["selectedChanged", "menuClosed"] }, { kind: "component", type: i4.DropdownComponent, selector: "ec-dropdown", inputs: ["id", "autofocus", "status", "disabled", "label", "icon", "buttonType", "buttonAlignment", "buttonTitle", "tabindex", "showArrow", "items", "menuTemplateType", "menuTitle", "menuHeight", "menuWidth", "menuMinWidth", "menuPosition", "menuFooter", "popupFixed", "buttonCustomTemplate", "pending"], outputs: ["itemSelected", "popupOpened"] }, { kind: "component", type: i5.HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: ["id", "hideRootNode", "customItemTemplate"], outputs: ["itemSelected"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] });
84
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TreeComponent, decorators: [{
85
- type: Component,
86
- args: [{ selector: 'ec-tree', template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"] }]
87
- }], ctorParameters: function () { return []; }, propDecorators: { attrId: [{
88
- type: HostBinding,
89
- args: ['attr.id']
90
- }], id: [{
91
- type: Input
92
- }], treeTitle: [{
93
- type: Input
94
- }], hideTreeHeader: [{
95
- type: Input
96
- }], treeItems: [{
97
- type: Input
98
- }], treeHierarchyHideRootNode: [{
99
- type: Input
100
- }], treeHierarchy: [{
101
- type: Input
102
- }], treeMenuMaintainSelectedItem: [{
103
- type: Input
104
- }], customTreeMenuTemplate: [{
105
- type: Input
106
- }], customHierarchyItemTemplate: [{
107
- type: Input
108
- }], status: [{
109
- type: Input
110
- }], type: [{
111
- type: Input
112
- }], menuItems: [{
113
- type: Input
114
- }], menuStatus: [{
115
- type: Input
116
- }], menuTemplateType: [{
117
- type: Input
118
- }], preserveIconSpace: [{
119
- type: Input
120
- }], treeSelection: [{
121
- type: Output
122
- }], getTreeItemChildren: [{
123
- type: Output
124
- }], treeItemToggled: [{
125
- type: Output
126
- }], menuComponent: [{
127
- type: ViewChild,
128
- args: [MenuComponent]
129
- }], hierarchyTreeComponent: [{
130
- type: ViewChild,
131
- args: [HierarchyTreeComponent]
132
- }], templateType: [{
133
- type: Input
134
- }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLG9DQUFvQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGFBQWE7SUFLeEI7OztPQUdHO0lBQ0gsSUFDVyxFQUFFLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUNGLElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBcUVEO1FBbkZBLGtEQUFrRDtRQUNuQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBYzNDLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFFekIsK0NBQStDO1FBQy9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkMsNkNBQTZDO1FBQzdCLG1CQUFjLEdBQWEsS0FBSyxDQUFDO1FBV2pEOzs7O1dBSUc7UUFDYSxpQ0FBNEIsR0FBWSxJQUFJLENBQUM7UUFRN0QsbUJBQW1CO1FBQ0gsV0FBTSxHQUFhLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELDhFQUE4RTtRQUM5RCxTQUFJLEdBQWMsV0FBVyxDQUFDO1FBSzlDLGlDQUFpQztRQUNqQixlQUFVLEdBQWEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUQsNkJBQTZCO1FBQ2IscUJBQWdCLEdBQXNCLGVBQWUsQ0FBQztRQUV0RTs7O1dBR0c7UUFDYSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkQseURBQXlEO1FBQ3hDLGtCQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUYseUZBQXlGO1FBQ3hFLHdCQUFtQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZGLGdFQUFnRTtRQUMvQyxvQkFBZSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQVFoRyxpQkFBWSxHQUFxQixPQUFPLENBQUM7SUFFekMsQ0FBQztJQUVqQix5Q0FBeUM7SUFDbEMsY0FBYyxDQUFDLElBQThCO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCwrRUFBK0U7SUFDeEUsMEJBQTBCLENBQUMsSUFBbUI7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ3pELHNCQUFzQixDQUFDLElBQTBCO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwwREFBMEQ7SUFDbkQsb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0M7UUFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUNwRDtJQUNILENBQUM7OzBHQS9HVSxhQUFhOzhGQUFiLGFBQWEseXpCQThFYixhQUFhLHlGQUdiLHNCQUFzQixnREM5Rm5DLDBoRUErQ007MkZEbENPLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUzswRUFPWSxNQUFNO3NCQUFwQyxXQUFXO3VCQUFDLFNBQVM7Z0JBT1gsRUFBRTtzQkFEWixLQUFLO2dCQVdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsY0FBYztzQkFBN0IsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQU9VLDRCQUE0QjtzQkFBM0MsS0FBSztnQkFHVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBR1UsMkJBQTJCO3NCQUExQyxLQUFLO2dCQUdVLE1BQU07c0JBQXJCLEtBQUs7Z0JBR1UsSUFBSTtzQkFBbkIsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBR1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQU1VLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFHVyxhQUFhO3NCQUE3QixNQUFNO2dCQUdVLG1CQUFtQjtzQkFBbkMsTUFBTTtnQkFHVSxlQUFlO3NCQUEvQixNQUFNO2dCQUcwQixhQUFhO3NCQUE3QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR2tCLHNCQUFzQjtzQkFBL0QsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBRWpCLFlBQVk7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW0sIE1lbnVUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlZEhpZXJhcmNoeUl0ZW0sIEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuLi9oaWVyYXJjaHkvaGllcmFyY2h5LWJhc2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICcuLi92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBUcmVlVHlwZSA9ICdoaWVyYXJjaHknIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaG9zdCBlbGVtZW50cyBpZCBhdHRyaWJ1dGUgKi9cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgYXR0cklkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElEIG9mIHRoZSBjb21wb25lbnQsIGJvdW5kIHRvIHRoZSBob3N0IGVsZW1lbnQncyBpZCBhdHRyaWJ1dGUgYW5kIHBhc3NlZFxyXG4gICAqIHRvIGNoaWxkIGNvbXBvbmVudHNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5faWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXR0cklkID0gdmFsdWU7XHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFRoZSB0cmVlJ3MgdGl0bGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZVRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIEhpZGVzIHRoZSB0cmVlIGhlYWRlciB3aGVuIHNldCB0byB0cnVlICovXHJcbiAgQElucHV0KCkgcHVibGljIGhpZGVUcmVlSGVhZGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogSXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdHJlZSB3aGVuIHR5cGUgaXMgJ21lbnUnICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBIaWRlIHRoZSByb290IHRyZWUgaXRlbSB3aGVuIHR5cGUgaXMgJ2hpZXJhcmNoeScgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZT86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSB0cmVlIHdoZW4gdHlwZSBpcyAnaGllcmFyY2h5JyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmVlSGllcmFyY2h5PzogSGllcmFyY2h5SXRlbTtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiB0aGUgdHJlZSBpcyBpbiBtZW51IG1vZGUgdG8gdGVsbCB0aGUgbWVudSBpZiBpdCBzaG91bGQgbWFpbnRhaW4gdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgKiAgVXNlZnVsIGluIHNpZGUgbmF2IGNvbXBvbmVudHMgd2hlcmUgdGhpcyB0cmVlIGNvbXBvbmVudCBtYXkgZXhpc3QgYWxvbmdzaWRlIG90aGVyIHRyZWVzIG9yIG1lbnVzXHJcbiAgICogIHVzZWQgZm9yIG5hdmlnYXRpb24uIElmIHRoaXMgdHJlZSBpcyBpbiBtZW51IG1vZGUgeW91IHdvdWxkIHdhbnQgdGhpcyBzZXQgdG8gZmFsc2Ugc28gd2hlbiB5b3Ugc2VsZWN0IGFuIGl0ZW1cclxuICAgKiAgZnJvbSBhIHNpYmxpbmcgbmF2aWdhdGlvbiBlbGVtZW50IHRoZSBzZWxlY3Rpb24gd2lsbCBub3QgYmUgbWFpbnRhaW5lZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZU1lbnVNYWludGFpblNlbGVjdGVkSXRlbTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBVc2VkIHdoZW4gYSBjdXN0b20gdGVtcGxhdGUgaXMgbmVlZGVkIGZvciB0aGUgbWVudSBpdGVtcyB3aGVuIHRoZSB0cmVlIGlzIGluIG1lbnUgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21UcmVlTWVudVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiBhIGN1c3RvbSB0ZW1wbGF0ZSBpcyBuZWVkZWQgZm9yIHRoZSBoaWVyYXJjaHkgaXRlbXMgd2hlbiB0aGUgdHJlZSBpcyBpbiBoaWVyYXJjaHkgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21IaWVyYXJjaHlJdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogVHJlZSBvdmVybGF5ICovXHJcbiAgQElucHV0KCkgcHVibGljIHN0YXR1cz86IE92ZXJsYXkgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xyXG5cclxuICAvKiogRGlzcGxheSB0aGUgdHJlZSBpdGVtcyB3aXRoIGEgTWVudUNvbXBvbmVudCBvciBhIEhpZXJhcmNoeVRyZWVDb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHlwZT86IFRyZWVUeXBlID0gJ2hpZXJhcmNoeSc7XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93biBtZW51ICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBUcmVlIGRyb3Bkb3duIG1lbnUgb3ZlcmxheSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51U3RhdHVzPzogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKiBUaGUgbWVudSBpdGVtIHRlbXBsYXRlICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVUZW1wbGF0ZVR5cGU/OiBNZW51VGVtcGxhdGVUeXBlID0gXCJjaGVja0FuZExhYmVsXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIHNwYWNlIGZvciB0aGUgaWNvbiBpcyBwcmVzZXJ2ZWQgZm9yIG1lbnUgaXRlbXMgdGhhdCBkbyBub3QgaGF2ZSBpY29ucy5cclxuICAgKiBPbmx5IGFwcGxpY2FibGUgZm9yIGljb25BbmRMYWJlbCBtZW51cy4gTm90IGFwcGxpY2FibGUgdG8gaGllcmFyY2h5IHRyZWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVzZXJ2ZUljb25TcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGl0ZW0gY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gaW4gdGhlIHRyZWUgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHRyZWVTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxNZW51SXRlbSB8IEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgYXMgYSBob29rIHRvIGxvYWQgdGhlIGl0ZW0ncyBjaGlsZHJlbiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZ2V0VHJlZUl0ZW1DaGlsZHJlbjogRXZlbnRFbWl0dGVyPEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB0cmVlSXRlbVRvZ2dsZWQ6IEV2ZW50RW1pdHRlcjxUb2dnbGVkSGllcmFyY2h5SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRvZ2dsZWRIaWVyYXJjaHlJdGVtPigpO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBNZW51Q29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudCkgcHVibGljIG1lbnVDb21wb25lbnQ/OiBNZW51Q29tcG9uZW50O1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoSGllcmFyY2h5VHJlZUNvbXBvbmVudCkgcHVibGljIGhpZXJhcmNoeVRyZWVDb21wb25lbnQ/OiBIaWVyYXJjaHlUcmVlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcGxhdGVUeXBlOiBNZW51VGVtcGxhdGVUeXBlID0gJ2xhYmVsJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gYSB0cmVlIGl0ZW0gaXMgc2VsZWN0ZWQgKi9cclxuICBwdWJsaWMgb25JdGVtU2VsZWN0ZWQoaXRlbTogTWVudUl0ZW0gfCBIaWVyYXJjaHlJdGVtKSB7XHJcbiAgICB0aGlzLnRyZWVTZWxlY3Rpb24uZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIGEgaGllcmFyY2h5IHRyZWUgaXRlbSBpcyBleHBhbmRlZCB0byBsb2FkIHRoZSBpdGVtJ3MgY2hpbGRyZW4gKi9cclxuICBwdWJsaWMgb25IaWVyYXJjaHlHZXRJdGVtQ2hpbGRyZW4oaXRlbTogSGllcmFyY2h5SXRlbSkge1xyXG4gICAgdGhpcy5nZXRUcmVlSXRlbUNoaWxkcmVuLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgcHVibGljIG9uSGllcmFyY2h5SXRlbVRvZ2dsZWQoaXRlbTogVG9nZ2xlZEhpZXJhcmNoeUl0ZW0pIHtcclxuICAgIHRoaXMudHJlZUl0ZW1Ub2dnbGVkLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2Nyb2xsIHRvIHRoZSB0cmVlIGl0ZW0gdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuICovXHJcbiAgcHVibGljIHNjcm9sbFRvU2VsZWN0ZWRJdGVtKCkge1xyXG4gICAgaWYgKHRoaXMubWVudUNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLm1lbnVDb21wb25lbnQuc2Nyb2xsVG9TZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWVyYXJjaHlUcmVlQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuaGllcmFyY2h5VHJlZUNvbXBvbmVudC5zY3JvbGxUb1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiIWhpZGVUcmVlSGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cImZsZXgtc2hyaW5rIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICA8aDIgaWQ9XCJ7e2lkfX1fdGl0bGVcIlxyXG4gICAgICBjbGFzcz1cImZsZXgtZ3JvdyBtci0yIHRleHQtaGVhZGluZy0xXCI+e3t0cmVlVGl0bGUgfCB0cmFuc2xhdGV9fTwvaDI+XHJcbiAgPGVjLWRyb3Bkb3duICpuZ0lmPVwibWVudUl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICBpZD1cInt7aWR9fV9kcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICBpY29uPVwiaWNvbi1tZW51XCJcclxuICAgICAgICAgICAgICAgW21lbnVUZW1wbGF0ZVR5cGVdPVwibWVudVRlbXBsYXRlVHlwZVwiXHJcbiAgICAgICAgICAgICAgIG1lbnVQb3NpdGlvbj1cImxlZnRcIlxyXG4gICAgICAgICAgICAgICBbc3RhdHVzXT1cIm1lbnVTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICBbcG9wdXBGaXhlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW3Nob3dBcnJvd109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgIFttZW51TWluV2lkdGhdPVwiMjQwXCJcclxuICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiPlxyXG4gIDwvZWMtZHJvcGRvd24+XHJcbjwvaGVhZGVyPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIlxyXG4gICAgIGVjT3ZlcmxheVxyXG4gICAgIFtzdGF0dXNdPVwic3RhdHVzPy5zdGF0dXNcIlxyXG4gICAgIFttZXNzYWdlXT1cInN0YXR1cz8ubWVzc2FnZVwiXHJcbiAgICAgW2Rpc3BsYXlBc01hc2tdPVwidHJ1ZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnbWVudSdcIj5cclxuICAgIDxlYy1tZW51IFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwidHJlZUl0ZW1zXCJcclxuICAgICAgICAgICAgIFt0ZW1wbGF0ZVR5cGVdPVwidGVtcGxhdGVUeXBlXCJcclxuICAgICAgICAgICAgIFttYWludGFpblNlbGVjdGVkSXRlbV09XCJ0cmVlTWVudU1haW50YWluU2VsZWN0ZWRJdGVtXCJcclxuICAgICAgICAgICAgIFt0cnVuY2F0ZUl0ZW1zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJvbkl0ZW1TZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIFtjdXN0b21NZW51VGVtcGxhdGVdPVwiY3VzdG9tVHJlZU1lbnVUZW1wbGF0ZSA/IGN1c3RvbVRyZWVNZW51VGVtcGxhdGUgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAgW3ByZXNlcnZlSWNvblNwYWNlXT1cInByZXNlcnZlSWNvblNwYWNlXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICA8L2VjLW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnaGllcmFyY2h5J1wiPlxyXG4gICAgPGVjLWhpZXJhcmNoeS10cmVlIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3ROb2RlXT1cInRyZWVIaWVyYXJjaHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtoaWRlUm9vdE5vZGVdPVwidHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGdldEl0ZW1DaGlsZHJlbik9XCJvbkhpZXJhcmNoeUdldEl0ZW1DaGlsZHJlbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVRvZ2dsZWQpPVwib25IaWVyYXJjaHlJdGVtVG9nZ2xlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21JdGVtVGVtcGxhdGVdPVwiY3VzdG9tSGllcmFyY2h5SXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIj5cclxuICAgIDwvZWMtaGllcmFyY2h5LXRyZWU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==
1
+ import { Component, Input, HostBinding, Output, EventEmitter, ViewChild } from '@angular/core';
2
+ import { MenuComponent } from '../../controls/menu/menu.component';
3
+ import { HierarchyTreeComponent } from '../hierarchy/hierarchy-tree/hierarchy-tree.component';
4
+ import { Overlay } from '../view-overlay/view-overlay.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "../view-overlay/view-overlay.component";
8
+ import * as i3 from "../../controls/menu/menu.component";
9
+ import * as i4 from "../../controls/dropdown/dropdown.component";
10
+ import * as i5 from "../hierarchy/hierarchy-tree/hierarchy-tree.component";
11
+ import * as i6 from "@ngx-translate/core";
12
+ export class TreeComponent {
13
+ /**
14
+ * The ID of the component, bound to the host element's id attribute and passed
15
+ * to child components
16
+ */
17
+ set id(value) {
18
+ this._id = value;
19
+ this.attrId = value;
20
+ }
21
+ ;
22
+ get id() {
23
+ return this._id;
24
+ }
25
+ constructor() {
26
+ /** The value of the host elements id attribute */
27
+ this.attrId = '';
28
+ this._id = '';
29
+ /** The tree's title displayed in the header */
30
+ this.treeTitle = '';
31
+ /** Hides the tree header when set to true */
32
+ this.hideTreeHeader = false;
33
+ /** Used when the tree is in menu mode to tell the menu if it should maintain the selected item
34
+ * Useful in side nav components where this tree component may exist alongside other trees or menus
35
+ * used for navigation. If this tree is in menu mode you would want this set to false so when you select an item
36
+ * from a sibling navigation element the selection will not be maintained.
37
+ */
38
+ this.treeMenuMaintainSelectedItem = true;
39
+ /** Tree overlay */
40
+ this.status = new Overlay('hasData');
41
+ /** Display the tree items with a MenuComponent or a HierarchyTreeComponent */
42
+ this.type = 'hierarchy';
43
+ /** Tree dropdown menu overlay */
44
+ this.menuStatus = new Overlay('hasData');
45
+ /** The menu item template */
46
+ this.menuTemplateType = "checkAndLabel";
47
+ /**
48
+ * When true, the space for the icon is preserved for menu items that do not have icons.
49
+ * Only applicable for iconAndLabel menus. Not applicable to hierarchy trees.
50
+ */
51
+ this.preserveIconSpace = false;
52
+ /** Emits the item currently selected item in the tree */
53
+ this.treeSelection = new EventEmitter();
54
+ /** Emits when a hierarchy tree item is expanded as a hook to load the item's children */
55
+ this.getTreeItemChildren = new EventEmitter();
56
+ /** Emits when a hierarchy tree item is expanded or collapsed */
57
+ this.treeItemToggled = new EventEmitter();
58
+ this.templateType = 'label';
59
+ }
60
+ /** Emits when a tree item is selected */
61
+ onItemSelected(item) {
62
+ this.treeSelection.emit(item);
63
+ }
64
+ /** Emits when a hierarchy tree item is expanded to load the item's children */
65
+ onHierarchyGetItemChildren(item) {
66
+ this.getTreeItemChildren.emit(item);
67
+ }
68
+ /** Emits when a hierarchy tree item is expanded or collapsed */
69
+ onHierarchyItemToggled(item) {
70
+ this.treeItemToggled.emit(item);
71
+ }
72
+ /** Scroll to the tree item that is currently selected. */
73
+ scrollToSelectedItem() {
74
+ if (this.menuComponent) {
75
+ this.menuComponent.scrollToSelectedItem();
76
+ }
77
+ if (this.hierarchyTreeComponent) {
78
+ this.hierarchyTreeComponent.scrollToSelectedItem();
79
+ }
80
+ }
81
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
82
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TreeComponent, selector: "ec-tree", inputs: { id: "id", treeTitle: "treeTitle", hideTreeHeader: "hideTreeHeader", treeItems: "treeItems", treeHierarchyHideRootNode: "treeHierarchyHideRootNode", treeHierarchy: "treeHierarchy", treeMenuMaintainSelectedItem: "treeMenuMaintainSelectedItem", customTreeMenuTemplate: "customTreeMenuTemplate", customHierarchyItemTemplate: "customHierarchyItemTemplate", status: "status", type: "type", menuItems: "menuItems", menuStatus: "menuStatus", menuTemplateType: "menuTemplateType", preserveIconSpace: "preserveIconSpace", templateType: "templateType" }, outputs: { treeSelection: "treeSelection", getTreeItemChildren: "getTreeItemChildren", treeItemToggled: "treeItemToggled" }, host: { properties: { "attr.id": "this.attrId" } }, viewQueries: [{ propertyName: "menuComponent", first: true, predicate: MenuComponent, descendants: true }, { propertyName: "hierarchyTreeComponent", first: true, predicate: HierarchyTreeComponent, descendants: true }], ngImport: i0, template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i3.MenuComponent, selector: "ec-menu", inputs: ["id", "items", "selected", "parent", "templateType", "customMenuTemplate", "title", "showNoItems", "noDataText", "enableKeyNav", "highlightedItem", "maintainSelectedItem", "truncateItems", "preserveIconSpace", "dropdownToggleButton"], outputs: ["selectedChanged", "menuClosed"] }, { kind: "component", type: i4.DropdownComponent, selector: "ec-dropdown", inputs: ["id", "autofocus", "status", "disabled", "label", "icon", "buttonType", "buttonAlignment", "buttonTitle", "tabindex", "showArrow", "items", "menuTemplateType", "menuTitle", "menuHeight", "menuWidth", "menuMinWidth", "menuPosition", "menuFooter", "popupFixed", "buttonCustomTemplate", "pending"], outputs: ["itemSelected", "popupOpened"] }, { kind: "component", type: i5.HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: ["id", "hideRootNode", "customItemTemplate"], outputs: ["itemSelected"] }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }] }); }
83
+ }
84
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TreeComponent, decorators: [{
85
+ type: Component,
86
+ args: [{ selector: 'ec-tree', template: "<header *ngIf=\"!hideTreeHeader\"\r\n class=\"flex-shrink d-flex align-items-center\">\r\n <h2 id=\"{{id}}_title\"\r\n class=\"flex-grow mr-2 text-heading-1\">{{treeTitle | translate}}</h2>\r\n <ec-dropdown *ngIf=\"menuItems?.length\"\r\n id=\"{{id}}_dropdown\"\r\n class=\"flex-shrink\"\r\n icon=\"icon-menu\"\r\n [menuTemplateType]=\"menuTemplateType\"\r\n menuPosition=\"left\"\r\n [status]=\"menuStatus\"\r\n [popupFixed]=\"true\"\r\n [showArrow]=\"false\"\r\n [menuMinWidth]=\"240\"\r\n [items]=\"menuItems\">\r\n </ec-dropdown>\r\n</header>\r\n\r\n<div class=\"flex-grow d-flex\"\r\n ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [displayAsMask]=\"true\">\r\n <ng-container *ngIf=\"type === 'menu'\">\r\n <ec-menu [id]=\"id\"\r\n [items]=\"treeItems\"\r\n [templateType]=\"templateType\"\r\n [maintainSelectedItem]=\"treeMenuMaintainSelectedItem\"\r\n [truncateItems]=\"true\"\r\n (selectedChanged)=\"onItemSelected($event)\"\r\n [customMenuTemplate]=\"customTreeMenuTemplate ? customTreeMenuTemplate : undefined\"\r\n [preserveIconSpace]=\"preserveIconSpace\"\r\n class=\"flex-grow\">\r\n </ec-menu>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"type === 'hierarchy'\">\r\n <ec-hierarchy-tree [id]=\"id\"\r\n [rootNode]=\"treeHierarchy\"\r\n [hideRootNode]=\"treeHierarchyHideRootNode\"\r\n (getItemChildren)=\"onHierarchyGetItemChildren($event)\"\r\n (itemToggled)=\"onHierarchyItemToggled($event)\"\r\n (itemSelected)=\"onItemSelected($event)\"\r\n [customItemTemplate]=\"customHierarchyItemTemplate\"\r\n class=\"flex-grow d-flex\">\r\n </ec-hierarchy-tree>\r\n </ng-container>\r\n</div>", styles: [":host{display:flex;flex-direction:column}header{height:var(--ec-tree-height-header, 3rem);background-color:var(--ec-tree-background-color, var(--ec-background-color));padding:var(--ec-tree-padding-header, 0 .25rem 0 .5rem);border-bottom:var(--ec-tree-border-bottom-header, var(--ec-border-width) solid var(--ec-border-color))}ec-dropdown.fill{height:var(--ec-tree-height-header, 3rem);width:var(--ec-tree-height-header, 3rem)}ec-menu,ec-hierarchy-tree{--ec-menu-background-color: var(--ec-tree-background-color)}[ecOverlay]{--ec-overlay-background-color: var(--ec-tree-background-color)}\n"] }]
87
+ }], ctorParameters: function () { return []; }, propDecorators: { attrId: [{
88
+ type: HostBinding,
89
+ args: ['attr.id']
90
+ }], id: [{
91
+ type: Input
92
+ }], treeTitle: [{
93
+ type: Input
94
+ }], hideTreeHeader: [{
95
+ type: Input
96
+ }], treeItems: [{
97
+ type: Input
98
+ }], treeHierarchyHideRootNode: [{
99
+ type: Input
100
+ }], treeHierarchy: [{
101
+ type: Input
102
+ }], treeMenuMaintainSelectedItem: [{
103
+ type: Input
104
+ }], customTreeMenuTemplate: [{
105
+ type: Input
106
+ }], customHierarchyItemTemplate: [{
107
+ type: Input
108
+ }], status: [{
109
+ type: Input
110
+ }], type: [{
111
+ type: Input
112
+ }], menuItems: [{
113
+ type: Input
114
+ }], menuStatus: [{
115
+ type: Input
116
+ }], menuTemplateType: [{
117
+ type: Input
118
+ }], preserveIconSpace: [{
119
+ type: Input
120
+ }], treeSelection: [{
121
+ type: Output
122
+ }], getTreeItemChildren: [{
123
+ type: Output
124
+ }], treeItemToggled: [{
125
+ type: Output
126
+ }], menuComponent: [{
127
+ type: ViewChild,
128
+ args: [MenuComponent]
129
+ }], hierarchyTreeComponent: [{
130
+ type: ViewChild,
131
+ args: [HierarchyTreeComponent]
132
+ }], templateType: [{
133
+ type: Input
134
+ }] } });
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS90cmVlL3RyZWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvdHJlZS90cmVlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUM1RyxPQUFPLEVBQUUsYUFBYSxFQUE4QixNQUFNLG9DQUFvQyxDQUFDO0FBRS9GLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7Ozs7Ozs7QUFTakUsTUFBTSxPQUFPLGFBQWE7SUFLeEI7OztPQUdHO0lBQ0gsSUFDVyxFQUFFLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBQUEsQ0FBQztJQUNGLElBQVcsRUFBRTtRQUNYLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBcUVEO1FBbkZBLGtEQUFrRDtRQUNuQixXQUFNLEdBQVcsRUFBRSxDQUFDO1FBYzNDLFFBQUcsR0FBVyxFQUFFLENBQUM7UUFFekIsK0NBQStDO1FBQy9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkMsNkNBQTZDO1FBQzdCLG1CQUFjLEdBQWEsS0FBSyxDQUFDO1FBV2pEOzs7O1dBSUc7UUFDYSxpQ0FBNEIsR0FBWSxJQUFJLENBQUM7UUFRN0QsbUJBQW1CO1FBQ0gsV0FBTSxHQUFhLElBQUksT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELDhFQUE4RTtRQUM5RCxTQUFJLEdBQWMsV0FBVyxDQUFDO1FBSzlDLGlDQUFpQztRQUNqQixlQUFVLEdBQWEsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFOUQsNkJBQTZCO1FBQ2IscUJBQWdCLEdBQXNCLGVBQWUsQ0FBQztRQUV0RTs7O1dBR0c7UUFDYSxzQkFBaUIsR0FBWSxLQUFLLENBQUM7UUFFbkQseURBQXlEO1FBQ3hDLGtCQUFhLEdBQTJDLElBQUksWUFBWSxFQUFFLENBQUM7UUFFNUYseUZBQXlGO1FBQ3hFLHdCQUFtQixHQUFnQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZGLGdFQUFnRTtRQUMvQyxvQkFBZSxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQVFoRyxpQkFBWSxHQUFxQixPQUFPLENBQUM7SUFFekMsQ0FBQztJQUVqQix5Q0FBeUM7SUFDbEMsY0FBYyxDQUFDLElBQThCO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRCwrRUFBK0U7SUFDeEUsMEJBQTBCLENBQUMsSUFBbUI7UUFDbkQsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ3pELHNCQUFzQixDQUFDLElBQTBCO1FBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwwREFBMEQ7SUFDbkQsb0JBQW9CO1FBQ3pCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7U0FDM0M7UUFFRCxJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixJQUFJLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUNwRDtJQUNILENBQUM7K0dBL0dVLGFBQWE7bUdBQWIsYUFBYSx5ekJBOEViLGFBQWEseUZBR2Isc0JBQXNCLGdEQzlGbkMsMGhFQStDTTs7NEZEbENPLGFBQWE7a0JBTHpCLFNBQVM7K0JBQ0UsU0FBUzswRUFPWSxNQUFNO3NCQUFwQyxXQUFXO3VCQUFDLFNBQVM7Z0JBT1gsRUFBRTtzQkFEWixLQUFLO2dCQVdVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBR1UsY0FBYztzQkFBN0IsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLHlCQUF5QjtzQkFBeEMsS0FBSztnQkFHVSxhQUFhO3NCQUE1QixLQUFLO2dCQU9VLDRCQUE0QjtzQkFBM0MsS0FBSztnQkFHVSxzQkFBc0I7c0JBQXJDLEtBQUs7Z0JBR1UsMkJBQTJCO3NCQUExQyxLQUFLO2dCQUdVLE1BQU07c0JBQXJCLEtBQUs7Z0JBR1UsSUFBSTtzQkFBbkIsS0FBSztnQkFHVSxTQUFTO3NCQUF4QixLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBR1UsZ0JBQWdCO3NCQUEvQixLQUFLO2dCQU1VLGlCQUFpQjtzQkFBaEMsS0FBSztnQkFHVyxhQUFhO3NCQUE3QixNQUFNO2dCQUdVLG1CQUFtQjtzQkFBbkMsTUFBTTtnQkFHVSxlQUFlO3NCQUEvQixNQUFNO2dCQUcwQixhQUFhO3NCQUE3QyxTQUFTO3VCQUFDLGFBQWE7Z0JBR2tCLHNCQUFzQjtzQkFBL0QsU0FBUzt1QkFBQyxzQkFBc0I7Z0JBRWpCLFlBQVk7c0JBQTNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZywgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWVudUNvbXBvbmVudCwgTWVudUl0ZW0sIE1lbnVUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9tZW51L21lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9nZ2xlZEhpZXJhcmNoeUl0ZW0sIEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuLi9oaWVyYXJjaHkvaGllcmFyY2h5LWJhc2UnO1xyXG5pbXBvcnQgeyBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IH0gZnJvbSAnLi4vaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXkgfSBmcm9tICcuLi92aWV3LW92ZXJsYXkvdmlldy1vdmVybGF5LmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBUcmVlVHlwZSA9ICdoaWVyYXJjaHknIHwgJ21lbnUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdHJlZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJlZS5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmVlQ29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaG9zdCBlbGVtZW50cyBpZCBhdHRyaWJ1dGUgKi9cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBwdWJsaWMgYXR0cklkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIElEIG9mIHRoZSBjb21wb25lbnQsIGJvdW5kIHRvIHRoZSBob3N0IGVsZW1lbnQncyBpZCBhdHRyaWJ1dGUgYW5kIHBhc3NlZFxyXG4gICAqIHRvIGNoaWxkIGNvbXBvbmVudHNcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgaWQodmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5faWQgPSB2YWx1ZTtcclxuICAgIHRoaXMuYXR0cklkID0gdmFsdWU7XHJcbiAgfTtcclxuICBwdWJsaWMgZ2V0IGlkKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5faWQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2lkOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIFRoZSB0cmVlJ3MgdGl0bGUgZGlzcGxheWVkIGluIHRoZSBoZWFkZXIgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZVRpdGxlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgLyoqIEhpZGVzIHRoZSB0cmVlIGhlYWRlciB3aGVuIHNldCB0byB0cnVlICovXHJcbiAgQElucHV0KCkgcHVibGljIGhpZGVUcmVlSGVhZGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogSXRlbXMgdG8gZGlzcGxheSBpbiB0aGUgdHJlZSB3aGVuIHR5cGUgaXMgJ21lbnUnICovXHJcbiAgQElucHV0KCkgcHVibGljIHRyZWVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBIaWRlIHRoZSByb290IHRyZWUgaXRlbSB3aGVuIHR5cGUgaXMgJ2hpZXJhcmNoeScgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZT86IGJvb2xlYW47XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSB0cmVlIHdoZW4gdHlwZSBpcyAnaGllcmFyY2h5JyAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0cmVlSGllcmFyY2h5PzogSGllcmFyY2h5SXRlbTtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiB0aGUgdHJlZSBpcyBpbiBtZW51IG1vZGUgdG8gdGVsbCB0aGUgbWVudSBpZiBpdCBzaG91bGQgbWFpbnRhaW4gdGhlIHNlbGVjdGVkIGl0ZW1cclxuICAgKiAgVXNlZnVsIGluIHNpZGUgbmF2IGNvbXBvbmVudHMgd2hlcmUgdGhpcyB0cmVlIGNvbXBvbmVudCBtYXkgZXhpc3QgYWxvbmdzaWRlIG90aGVyIHRyZWVzIG9yIG1lbnVzXHJcbiAgICogIHVzZWQgZm9yIG5hdmlnYXRpb24uIElmIHRoaXMgdHJlZSBpcyBpbiBtZW51IG1vZGUgeW91IHdvdWxkIHdhbnQgdGhpcyBzZXQgdG8gZmFsc2Ugc28gd2hlbiB5b3Ugc2VsZWN0IGFuIGl0ZW1cclxuICAgKiAgZnJvbSBhIHNpYmxpbmcgbmF2aWdhdGlvbiBlbGVtZW50IHRoZSBzZWxlY3Rpb24gd2lsbCBub3QgYmUgbWFpbnRhaW5lZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHJlZU1lbnVNYWludGFpblNlbGVjdGVkSXRlbTogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gIC8qKiBVc2VkIHdoZW4gYSBjdXN0b20gdGVtcGxhdGUgaXMgbmVlZGVkIGZvciB0aGUgbWVudSBpdGVtcyB3aGVuIHRoZSB0cmVlIGlzIGluIG1lbnUgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21UcmVlTWVudVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgLyoqIFVzZWQgd2hlbiBhIGN1c3RvbSB0ZW1wbGF0ZSBpcyBuZWVkZWQgZm9yIHRoZSBoaWVyYXJjaHkgaXRlbXMgd2hlbiB0aGUgdHJlZSBpcyBpbiBoaWVyYXJjaHkgbW9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21IaWVyYXJjaHlJdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogVHJlZSBvdmVybGF5ICovXHJcbiAgQElucHV0KCkgcHVibGljIHN0YXR1cz86IE92ZXJsYXkgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xyXG5cclxuICAvKiogRGlzcGxheSB0aGUgdHJlZSBpdGVtcyB3aXRoIGEgTWVudUNvbXBvbmVudCBvciBhIEhpZXJhcmNoeVRyZWVDb21wb25lbnQgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdHlwZT86IFRyZWVUeXBlID0gJ2hpZXJhcmNoeSc7XHJcblxyXG4gIC8qKiBJdGVtcyB0byBkaXNwbGF5IGluIHRoZSBkcm9wZG93biBtZW51ICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVJdGVtcz86IE1lbnVJdGVtW107XHJcblxyXG4gIC8qKiBUcmVlIGRyb3Bkb3duIG1lbnUgb3ZlcmxheSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtZW51U3RhdHVzPzogT3ZlcmxheSA9IG5ldyBPdmVybGF5KCdoYXNEYXRhJyk7XHJcblxyXG4gIC8qKiBUaGUgbWVudSBpdGVtIHRlbXBsYXRlICovXHJcbiAgQElucHV0KCkgcHVibGljIG1lbnVUZW1wbGF0ZVR5cGU/OiBNZW51VGVtcGxhdGVUeXBlID0gXCJjaGVja0FuZExhYmVsXCI7XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIHNwYWNlIGZvciB0aGUgaWNvbiBpcyBwcmVzZXJ2ZWQgZm9yIG1lbnUgaXRlbXMgdGhhdCBkbyBub3QgaGF2ZSBpY29ucy5cclxuICAgKiBPbmx5IGFwcGxpY2FibGUgZm9yIGljb25BbmRMYWJlbCBtZW51cy4gTm90IGFwcGxpY2FibGUgdG8gaGllcmFyY2h5IHRyZWVzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwcmVzZXJ2ZUljb25TcGFjZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogRW1pdHMgdGhlIGl0ZW0gY3VycmVudGx5IHNlbGVjdGVkIGl0ZW0gaW4gdGhlIHRyZWUgKi9cclxuICBAT3V0cHV0KCkgcHVibGljIHRyZWVTZWxlY3Rpb246IEV2ZW50RW1pdHRlcjxNZW51SXRlbSB8IEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgYXMgYSBob29rIHRvIGxvYWQgdGhlIGl0ZW0ncyBjaGlsZHJlbiAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgZ2V0VHJlZUl0ZW1DaGlsZHJlbjogRXZlbnRFbWl0dGVyPEhpZXJhcmNoeUl0ZW0+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgQE91dHB1dCgpIHB1YmxpYyB0cmVlSXRlbVRvZ2dsZWQ6IEV2ZW50RW1pdHRlcjxUb2dnbGVkSGllcmFyY2h5SXRlbT4gPSBuZXcgRXZlbnRFbWl0dGVyPFRvZ2dsZWRIaWVyYXJjaHlJdGVtPigpO1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBNZW51Q29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoTWVudUNvbXBvbmVudCkgcHVibGljIG1lbnVDb21wb25lbnQ/OiBNZW51Q29tcG9uZW50O1xyXG5cclxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBIaWVyYXJjaHlUcmVlQ29tcG9uZW50IGluc3RhbmNlIGluIHRoZSB0ZW1wbGF0ZSAqL1xyXG4gIEBWaWV3Q2hpbGQoSGllcmFyY2h5VHJlZUNvbXBvbmVudCkgcHVibGljIGhpZXJhcmNoeVRyZWVDb21wb25lbnQ/OiBIaWVyYXJjaHlUcmVlQ29tcG9uZW50O1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcGxhdGVUeXBlOiBNZW51VGVtcGxhdGVUeXBlID0gJ2xhYmVsJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgLyoqIEVtaXRzIHdoZW4gYSB0cmVlIGl0ZW0gaXMgc2VsZWN0ZWQgKi9cclxuICBwdWJsaWMgb25JdGVtU2VsZWN0ZWQoaXRlbTogTWVudUl0ZW0gfCBIaWVyYXJjaHlJdGVtKSB7XHJcbiAgICB0aGlzLnRyZWVTZWxlY3Rpb24uZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIC8qKiBFbWl0cyB3aGVuIGEgaGllcmFyY2h5IHRyZWUgaXRlbSBpcyBleHBhbmRlZCB0byBsb2FkIHRoZSBpdGVtJ3MgY2hpbGRyZW4gKi9cclxuICBwdWJsaWMgb25IaWVyYXJjaHlHZXRJdGVtQ2hpbGRyZW4oaXRlbTogSGllcmFyY2h5SXRlbSkge1xyXG4gICAgdGhpcy5nZXRUcmVlSXRlbUNoaWxkcmVuLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogRW1pdHMgd2hlbiBhIGhpZXJhcmNoeSB0cmVlIGl0ZW0gaXMgZXhwYW5kZWQgb3IgY29sbGFwc2VkICovXHJcbiAgcHVibGljIG9uSGllcmFyY2h5SXRlbVRvZ2dsZWQoaXRlbTogVG9nZ2xlZEhpZXJhcmNoeUl0ZW0pIHtcclxuICAgIHRoaXMudHJlZUl0ZW1Ub2dnbGVkLmVtaXQoaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKiogU2Nyb2xsIHRvIHRoZSB0cmVlIGl0ZW0gdGhhdCBpcyBjdXJyZW50bHkgc2VsZWN0ZWQuICovXHJcbiAgcHVibGljIHNjcm9sbFRvU2VsZWN0ZWRJdGVtKCkge1xyXG4gICAgaWYgKHRoaXMubWVudUNvbXBvbmVudCkge1xyXG4gICAgICB0aGlzLm1lbnVDb21wb25lbnQuc2Nyb2xsVG9TZWxlY3RlZEl0ZW0oKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5oaWVyYXJjaHlUcmVlQ29tcG9uZW50KSB7XHJcbiAgICAgIHRoaXMuaGllcmFyY2h5VHJlZUNvbXBvbmVudC5zY3JvbGxUb1NlbGVjdGVkSXRlbSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8aGVhZGVyICpuZ0lmPVwiIWhpZGVUcmVlSGVhZGVyXCJcclxuICAgICAgICBjbGFzcz1cImZsZXgtc2hyaW5rIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICA8aDIgaWQ9XCJ7e2lkfX1fdGl0bGVcIlxyXG4gICAgICBjbGFzcz1cImZsZXgtZ3JvdyBtci0yIHRleHQtaGVhZGluZy0xXCI+e3t0cmVlVGl0bGUgfCB0cmFuc2xhdGV9fTwvaDI+XHJcbiAgPGVjLWRyb3Bkb3duICpuZ0lmPVwibWVudUl0ZW1zPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgICBpZD1cInt7aWR9fV9kcm9wZG93blwiXHJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICBpY29uPVwiaWNvbi1tZW51XCJcclxuICAgICAgICAgICAgICAgW21lbnVUZW1wbGF0ZVR5cGVdPVwibWVudVRlbXBsYXRlVHlwZVwiXHJcbiAgICAgICAgICAgICAgIG1lbnVQb3NpdGlvbj1cImxlZnRcIlxyXG4gICAgICAgICAgICAgICBbc3RhdHVzXT1cIm1lbnVTdGF0dXNcIlxyXG4gICAgICAgICAgICAgICBbcG9wdXBGaXhlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgW3Nob3dBcnJvd109XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgIFttZW51TWluV2lkdGhdPVwiMjQwXCJcclxuICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm1lbnVJdGVtc1wiPlxyXG4gIDwvZWMtZHJvcGRvd24+XHJcbjwvaGVhZGVyPlxyXG5cclxuPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIlxyXG4gICAgIGVjT3ZlcmxheVxyXG4gICAgIFtzdGF0dXNdPVwic3RhdHVzPy5zdGF0dXNcIlxyXG4gICAgIFttZXNzYWdlXT1cInN0YXR1cz8ubWVzc2FnZVwiXHJcbiAgICAgW2Rpc3BsYXlBc01hc2tdPVwidHJ1ZVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnbWVudSdcIj5cclxuICAgIDxlYy1tZW51IFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICBbaXRlbXNdPVwidHJlZUl0ZW1zXCJcclxuICAgICAgICAgICAgIFt0ZW1wbGF0ZVR5cGVdPVwidGVtcGxhdGVUeXBlXCJcclxuICAgICAgICAgICAgIFttYWludGFpblNlbGVjdGVkSXRlbV09XCJ0cmVlTWVudU1haW50YWluU2VsZWN0ZWRJdGVtXCJcclxuICAgICAgICAgICAgIFt0cnVuY2F0ZUl0ZW1zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlZCk9XCJvbkl0ZW1TZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgIFtjdXN0b21NZW51VGVtcGxhdGVdPVwiY3VzdG9tVHJlZU1lbnVUZW1wbGF0ZSA/IGN1c3RvbVRyZWVNZW51VGVtcGxhdGUgOiB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAgW3ByZXNlcnZlSWNvblNwYWNlXT1cInByZXNlcnZlSWNvblNwYWNlXCJcclxuICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICA8L2VjLW1lbnU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09PSAnaGllcmFyY2h5J1wiPlxyXG4gICAgPGVjLWhpZXJhcmNoeS10cmVlIFtpZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgW3Jvb3ROb2RlXT1cInRyZWVIaWVyYXJjaHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtoaWRlUm9vdE5vZGVdPVwidHJlZUhpZXJhcmNoeUhpZGVSb290Tm9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgKGdldEl0ZW1DaGlsZHJlbik9XCJvbkhpZXJhcmNoeUdldEl0ZW1DaGlsZHJlbigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVRvZ2dsZWQpPVwib25IaWVyYXJjaHlJdGVtVG9nZ2xlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAoaXRlbVNlbGVjdGVkKT1cIm9uSXRlbVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21JdGVtVGVtcGxhdGVdPVwiY3VzdG9tSGllcmFyY2h5SXRlbVRlbXBsYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXgtZ3JvdyBkLWZsZXhcIj5cclxuICAgIDwvZWMtaGllcmFyY2h5LXRyZWU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PiJdfQ==