@energycap/components 0.41.0 → 0.41.1-ECAP-27592-angular-17.20241219-1718

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,163 +0,0 @@
1
- import { Directive, Input, Inject, EventEmitter } from '@angular/core';
2
- import { DOCUMENT } from '@angular/common';
3
- import { fromEvent } from "rxjs";
4
- import Popper from 'popper.js';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * Primitive directive that popups a container using PopperJS
8
- *
9
- * @export
10
- */
11
- export class PopupContainerDirective {
12
- /**
13
- * Creates an instance of PopupContainerDirective.
14
- * @param templateRef Reference to the popup template
15
- * @param viewContainer Reference to the view container
16
- * @param document Reference to Document
17
- * @memberof PopupContainerDirective
18
- */
19
- constructor(templateRef, viewContainer, document, renderer) {
20
- this.templateRef = templateRef;
21
- this.viewContainer = viewContainer;
22
- this.document = document;
23
- this.renderer = renderer;
24
- /**
25
- * Emit the {@link PopupStatus} when it changes
26
- */
27
- this.popperStatusChange = new EventEmitter();
28
- }
29
- /**
30
- * Angular onInit lifecycle hook
31
- * @see https://angular.io/guide/lifecycle-hooks
32
- */
33
- ngOnInit() {
34
- this.templateViewRef = this.viewContainer.createEmbeddedView(this.templateRef);
35
- }
36
- /**
37
- * Angular onDestroy lifecycle hook. Close and delete references. Unsubscribe observables
38
- * @see https://angular.io/guide/lifecycle-hooks
39
- */
40
- ngOnDestroy() {
41
- this.hide();
42
- }
43
- /**
44
- * Displays the templateRef as a popup
45
- *
46
- * @memberof PopupContainerDirective
47
- */
48
- show() {
49
- if (PopupContainerDirective.GlobalPopupRef) {
50
- if (PopupContainerDirective.GlobalPopupRef != this) {
51
- PopupContainerDirective.GlobalPopupRef.hide();
52
- PopupContainerDirective.GlobalPopupRef = undefined;
53
- }
54
- }
55
- if (!this.globalCloseSubscription) {
56
- this.globalCloseSubscription = fromEvent(this.document.body, "click").subscribe((event) => {
57
- this.hide();
58
- });
59
- }
60
- if (!this.popperRef) {
61
- // Add the popper template as an embedded view since PopperJS
62
- // manipulates DOM elements.
63
- this.popupViewRef = this.viewContainer.createEmbeddedView(this.popup);
64
- // Since popper needs real DOM elements, grab the first non-comment
65
- // DOM element to use as our anchor.
66
- let anchorElement = this.popupViewRef.rootNodes.find(elem => { return elem.nodeName !== "#text"; });
67
- // Use the parents elements as our DOM elements to Popper
68
- this.popperRef = new Popper(this.templateViewRef.rootNodes[0], anchorElement, this.popperOptions);
69
- PopupContainerDirective.GlobalPopupRef = this;
70
- this.popperStatusChange.emit('visible');
71
- }
72
- }
73
- /**
74
- * Hides the templateRef
75
- *
76
- * @memberof PopupContainerDirective
77
- */
78
- hide() {
79
- if (this.globalCloseSubscription) {
80
- this.globalCloseSubscription.unsubscribe();
81
- this.globalCloseSubscription = undefined;
82
- }
83
- if (this.popperRef && this.popupViewRef) {
84
- this.popupViewRef.destroy();
85
- this.popperRef.destroy();
86
- this.popperRef = undefined;
87
- this.popperStatusChange.emit('hidden');
88
- }
89
- }
90
- /**
91
- * Updates the popup container position
92
- */
93
- update() {
94
- if (this.popperRef) {
95
- this.popperRef.update();
96
- }
97
- }
98
- fixPosition(minWidthNone, appendToBody = false) {
99
- if (this.popperRef && this.popperRef['reference'] && this.popperRef['popper']) {
100
- let popupEl = this.popperRef['popper'];
101
- // Reset width style previously assigned because the content may have
102
- // changed and the auto width would be different
103
- this.renderer.removeStyle(popupEl, 'width');
104
- this.renderer.setStyle(popupEl, 'position', 'fixed');
105
- if (appendToBody) {
106
- const bodyEl = this.document.querySelector('body');
107
- const popupParent = this.renderer.parentNode(popupEl);
108
- if (popupParent !== bodyEl) {
109
- this.renderer.appendChild(bodyEl, popupEl);
110
- }
111
- }
112
- let toggleEl = this.popperRef['reference'];
113
- let width = popupEl.offsetWidth;
114
- let boundaries = popupEl.getBoundingClientRect();
115
- let left = boundaries.left;
116
- let coords = toggleEl.getBoundingClientRect();
117
- // Set the top of our menu to the bottom of the toggle element
118
- let top = coords.bottom;
119
- if (this.popperOptions && this.popperOptions.placement) {
120
- if (this.popperOptions.placement === 'bottom-start' || this.popperOptions.placement === 'top-start') {
121
- left = coords.left;
122
- }
123
- else {
124
- left = coords.right - ((minWidthNone || width > coords.width) ? width : coords.width);
125
- }
126
- }
127
- // if it won't fit (with 10px space before hitting the window edge), flip it
128
- if (boundaries.height + top + 10 > window.innerHeight) {
129
- top = coords.top - boundaries.height;
130
- }
131
- this.renderer.setStyle(popupEl, 'transform', 'none');
132
- this.renderer.setStyle(popupEl, 'left', left + 'px');
133
- this.renderer.setStyle(popupEl, 'top', top + 'px');
134
- this.renderer.setStyle(popupEl, 'width', width + 'px');
135
- if (!minWidthNone) {
136
- this.renderer.setStyle(popupEl, 'min-width', coords.width + 'px');
137
- }
138
- }
139
- }
140
- }
141
- /**
142
- * Global reference to the currently displayed popup; only
143
- * one popup directive can be in `show` state at a given time.
144
- *
145
- * @memberof PopupContainerDirective
146
- */
147
- PopupContainerDirective.GlobalPopupRef = undefined;
148
- PopupContainerDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PopupContainerDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
149
- PopupContainerDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: PopupContainerDirective, selector: "[ecPopup]", inputs: { popup: ["ecPopup", "popup"], popperOptions: ["options", "popperOptions"] }, ngImport: i0 });
150
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PopupContainerDirective, decorators: [{
151
- type: Directive,
152
- args: [{ selector: '[ecPopup]' }]
153
- }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
154
- type: Inject,
155
- args: [DOCUMENT]
156
- }] }, { type: i0.Renderer2 }]; }, propDecorators: { popup: [{
157
- type: Input,
158
- args: ['ecPopup']
159
- }], popperOptions: [{
160
- type: Input,
161
- args: ['options']
162
- }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAtY29udGFpbmVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9wb3B1cC9wb3B1cC1jb250YWluZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFnRixNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JKLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQyxPQUFPLE1BQU0sTUFBTSxXQUFXLENBQUE7O0FBSzlCOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sdUJBQXVCO0lBcURoQzs7Ozs7O09BTUc7SUFDSCxZQUNZLFdBQTZCLEVBQzdCLGFBQStCLEVBQ2IsUUFBYSxFQUMvQixRQUFtQjtRQUhuQixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO1FBQ2IsYUFBUSxHQUFSLFFBQVEsQ0FBSztRQUMvQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBcUIvQjs7V0FFRztRQUNJLHVCQUFrQixHQUE4QixJQUFJLFlBQVksRUFBZSxDQUFDO0lBdkJwRixDQUFDO0lBRUo7OztPQUdHO0lBQ0gsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkYsQ0FBQztJQUdEOzs7T0FHRztJQUNILFdBQVc7UUFDUCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDaEIsQ0FBQztJQVNEOzs7O09BSUc7SUFDSSxJQUFJO1FBQ1AsSUFBSSx1QkFBdUIsQ0FBQyxjQUFjLEVBQUU7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QUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRTtnQkFDbkQsR0FBRyxHQUFHLE1BQU0sQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQzthQUN4QztZQUVELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFFdkQsSUFBSSxDQUFDLFlBQVksRUFBRTtnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUM7YUFDckU7U0FDSjtJQUNMLENBQUM7O0FBak5EOzs7OztHQUtHO0FBQ1csc0NBQWMsR0FBNkIsU0FBUyxDQUFDO29IQVIxRCx1QkFBdUIsNkVBK0RwQixRQUFRO3dHQS9EWCx1QkFBdUI7MkZBQXZCLHVCQUF1QjtrQkFEbkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUU7OzBCQWdFM0IsTUFBTTsyQkFBQyxRQUFRO29FQWpESyxLQUFLO3NCQUE3QixLQUFLO3VCQUFDLFNBQVM7Z0JBT1MsYUFBYTtzQkFBckMsS0FBSzt1QkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDb250YWluZXJSZWYsIE9uSW5pdCwgRW1iZWRkZWRWaWV3UmVmLCBPbkRlc3Ryb3ksIFJlbmRlcmVyMiwgSW5qZWN0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIGZyb21FdmVudCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCBQb3BwZXIgZnJvbSAncG9wcGVyLmpzJ1xyXG5cclxuZXhwb3J0IHR5cGUgUG9wdXBQbGFjZW1lbnQgPSAndG9wJyB8ICdyaWdodCcgfCAnYm90dG9tJyB8ICdsZWZ0JyB8ICd0b3Atc3RhcnQnIHwgJ3RvcC1lbmQnIHwgJ2JvdHRvbS1zdGFydCcgfCAnYm90dG9tLWVuZCc7XHJcbmV4cG9ydCB0eXBlIFBvcHVwU3RhdHVzID0gJ3Zpc2libGUnIHwgJ2hpZGRlbic7XHJcblxyXG4vKipcclxuICogUHJpbWl0aXZlIGRpcmVjdGl2ZSB0aGF0IHBvcHVwcyBhIGNvbnRhaW5lciB1c2luZyBQb3BwZXJKU1xyXG4gKlxyXG4gKiBAZXhwb3J0XHJcbiAqL1xyXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbZWNQb3B1cF0nIH0pXHJcbmV4cG9ydCBjbGFzcyBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkluaXQge1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogIEdsb2JhbCByZWZlcmVuY2UgdG8gdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgcG9wdXA7IG9ubHlcclxuICAgICAqICBvbmUgcG9wdXAgZGlyZWN0aXZlIGNhbiBiZSBpbiBgc2hvd2Agc3RhdGUgYXQgYSBnaXZlbiB0aW1lLlxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIEdsb2JhbFBvcHVwUmVmPzogUG9wdXBDb250YWluZXJEaXJlY3RpdmUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUZW1wbGF0ZVJlZiBvZiBjb250YWluZXIgdG8gcG9wdXBcclxuICAgICAqXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgnZWNQb3B1cCcpIHB1YmxpYyBwb3B1cCE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3BwZXIgb3B0aW9uc1xyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoJ29wdGlvbnMnKSBwdWJsaWMgcG9wcGVyT3B0aW9ucz86IFBvcHBlci5Qb3BwZXJPcHRpb25zO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGVtcGxhdGUgVmlldyBSZWZlcmVuY2VcclxuICAgICAqXHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSB0ZW1wbGF0ZVZpZXdSZWYhOiBFbWJlZGRlZFZpZXdSZWY8YW55PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBvcHVwIFZpZXcgUmVmZXJlbmNlIChjb250YWluZXIpXHJcbiAgICAgKlxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcG9wdXBWaWV3UmVmPzogRW1iZWRkZWRWaWV3UmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQb3BwZXIgUmVmZXJlbmNlXHJcbiAgICAgKlxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgcG9wcGVyUmVmPzogUG9wcGVyO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xvc2UtdG8tY2xpY2sgU3Vic2NyaXB0aW9uLiBUaGlzIGFsbG93cyB1cyB0byBjbG9zZSB0aGUgbWVudSB3aGVuIHlvdSBjbGljayBvbiB0aGUgYm9keS5cclxuICAgICAqIFdlIGF0dGFjaCBpdCB3aGVuIHRoZSBtZW51IGlzIG9wZW4gYW5kIGRldGFjaCBpdCBvbiBjbG9zZSwgdG8gbGltaXQgdGhlIGxpZmV0aW1lIG9mIHRoZSBjbGljayBoYW5kbGVyXHJcbiAgICAgKiB3aGljaCBoZWxwcyB3aXRoIHBlcmZvcm1hbmNlIG9uIGEgcGFnZSB3aXRoIG1hbnkgcG9wdXAgY29udGFpbmVyc1xyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIGdsb2JhbENsb3NlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZS5cclxuICAgICAqIEBwYXJhbSB0ZW1wbGF0ZVJlZiBSZWZlcmVuY2UgdG8gdGhlIHBvcHVwIHRlbXBsYXRlXHJcbiAgICAgKiBAcGFyYW0gdmlld0NvbnRhaW5lciBSZWZlcmVuY2UgdG8gdGhlIHZpZXcgY29udGFpbmVyXHJcbiAgICAgKiBAcGFyYW0gZG9jdW1lbnQgUmVmZXJlbmNlIHRvIERvY3VtZW50XHJcbiAgICAgKiBAbWVtYmVyb2YgUG9wdXBDb250YWluZXJEaXJlY3RpdmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcclxuICAgICAgICBwcml2YXRlIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55LFxyXG4gICAgICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMlxyXG4gICAgKSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciBvbkluaXQgbGlmZWN5Y2xlIGhvb2tcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rc1xyXG4gICAgICovXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnRlbXBsYXRlVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy50ZW1wbGF0ZVJlZik7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQW5ndWxhciBvbkRlc3Ryb3kgbGlmZWN5Y2xlIGhvb2suIENsb3NlIGFuZCBkZWxldGUgcmVmZXJlbmNlcy4gVW5zdWJzY3JpYmUgb2JzZXJ2YWJsZXNcclxuICAgICAqIEBzZWUgaHR0cHM6Ly9hbmd1bGFyLmlvL2d1aWRlL2xpZmVjeWNsZS1ob29rc1xyXG4gICAgICovXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbWl0IHRoZSB7QGxpbmsgUG9wdXBTdGF0dXN9IHdoZW4gaXQgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcG9wcGVyU3RhdHVzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8UG9wdXBTdGF0dXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxQb3B1cFN0YXR1cz4oKTtcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBEaXNwbGF5cyB0aGUgdGVtcGxhdGVSZWYgYXMgYSBwb3B1cFxyXG4gICAgICpcclxuICAgICAqIEBtZW1iZXJvZiBQb3B1cENvbnRhaW5lckRpcmVjdGl2ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2hvdygpOiB2b2lkIHtcclxuICAgICAgICBpZiAoUG9wdXBDb250YWluZXJEaXJlY3RpdmUuR2xvYmFsUG9wdXBSZWYpIHtcclxuICAgICAgICAgICAgaWYgKFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmICE9IHRoaXMpIHtcclxuICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmLmhpZGUoKTtcclxuICAgICAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmID0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZighdGhpcy5nbG9iYWxDbG9zZVN1YnNjcmlwdGlvbikge1xyXG4gICAgICAgICAgICB0aGlzLmdsb2JhbENsb3NlU3Vic2NyaXB0aW9uID0gZnJvbUV2ZW50KHRoaXMuZG9jdW1lbnQuYm9keSwgXCJjbGlja1wiKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMucG9wcGVyUmVmKSB7XHJcbiAgICAgICAgICAgIC8vIEFkZCB0aGUgcG9wcGVyIHRlbXBsYXRlIGFzIGFuIGVtYmVkZGVkIHZpZXcgc2luY2UgUG9wcGVySlNcclxuICAgICAgICAgICAgLy8gbWFuaXB1bGF0ZXMgRE9NIGVsZW1lbnRzLlxyXG4gICAgICAgICAgICB0aGlzLnBvcHVwVmlld1JlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVFbWJlZGRlZFZpZXcodGhpcy5wb3B1cCk7XHJcblxyXG4gICAgICAgICAgICAvLyBTaW5jZSBwb3BwZXIgbmVlZHMgcmVhbCBET00gZWxlbWVudHMsIGdyYWIgdGhlIGZpcnN0IG5vbi1jb21tZW50XHJcbiAgICAgICAgICAgIC8vIERPTSBlbGVtZW50IHRvIHVzZSBhcyBvdXIgYW5jaG9yLlxyXG4gICAgICAgICAgICBsZXQgYW5jaG9yRWxlbWVudCA9ICh0aGlzLnBvcHVwVmlld1JlZi5yb290Tm9kZXMgYXMgYW55W10pLmZpbmQoZWxlbSA9PiB7IHJldHVybiBlbGVtLm5vZGVOYW1lICE9PSBcIiN0ZXh0XCIgfSk7XHJcblxyXG5cclxuICAgICAgICAgICAgLy8gVXNlIHRoZSBwYXJlbnRzIGVsZW1lbnRzIGFzIG91ciBET00gZWxlbWVudHMgdG8gUG9wcGVyXHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyUmVmID0gbmV3IFBvcHBlcihcclxuICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGVWaWV3UmVmLnJvb3ROb2Rlc1swXSxcclxuICAgICAgICAgICAgICAgIGFuY2hvckVsZW1lbnQsXHJcbiAgICAgICAgICAgICAgICB0aGlzLnBvcHBlck9wdGlvbnMpO1xyXG5cclxuXHJcbiAgICAgICAgICAgIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlLkdsb2JhbFBvcHVwUmVmID0gdGhpcztcclxuXHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyU3RhdHVzQ2hhbmdlLmVtaXQoJ3Zpc2libGUnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGlkZXMgdGhlIHRlbXBsYXRlUmVmXHJcbiAgICAgKlxyXG4gICAgICogQG1lbWJlcm9mIFBvcHVwQ29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBoaWRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmdsb2JhbENsb3NlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZ2xvYmFsQ2xvc2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5nbG9iYWxDbG9zZVN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnBvcHBlclJlZiAmJiB0aGlzLnBvcHVwVmlld1JlZikge1xyXG4gICAgICAgICAgICB0aGlzLnBvcHVwVmlld1JlZi5kZXN0cm95KCk7XHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyUmVmLmRlc3Ryb3koKTtcclxuICAgICAgICAgICAgdGhpcy5wb3BwZXJSZWYgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICAgIHRoaXMucG9wcGVyU3RhdHVzQ2hhbmdlLmVtaXQoJ2hpZGRlbicpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFVwZGF0ZXMgdGhlIHBvcHVwIGNvbnRhaW5lciBwb3NpdGlvblxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgdXBkYXRlKCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnBvcHBlclJlZikge1xyXG4gICAgICAgICAgICB0aGlzLnBvcHBlclJlZi51cGRhdGUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGZpeFBvc2l0aW9uKG1pbldpZHRoTm9uZT86Ym9vbGVhbiwgYXBwZW5kVG9Cb2R5PWZhbHNlICk6dm9pZCB7XHJcbiAgICAgICAgaWYodGhpcy5wb3BwZXJSZWYgJiYgdGhpcy5wb3BwZXJSZWZbJ3JlZmVyZW5jZSddICYmIHRoaXMucG9wcGVyUmVmWydwb3BwZXInXSkge1xyXG4gICAgICAgICAgICBsZXQgcG9wdXBFbCA9IHRoaXMucG9wcGVyUmVmWydwb3BwZXInXTtcclxuXHJcbiAgICAgICAgICAgIC8vIFJlc2V0IHdpZHRoIHN0eWxlIHByZXZpb3VzbHkgYXNzaWduZWQgYmVjYXVzZSB0aGUgY29udGVudCBtYXkgaGF2ZVxyXG4gICAgICAgICAgICAvLyBjaGFuZ2VkIGFuZCB0aGUgYXV0byB3aWR0aCB3b3VsZCBiZSBkaWZmZXJlbnRcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShwb3B1cEVsLCAnd2lkdGgnKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3Bvc2l0aW9uJywgJ2ZpeGVkJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoYXBwZW5kVG9Cb2R5KSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBib2R5RWwgPSB0aGlzLmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2JvZHknKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHBvcHVwUGFyZW50ID0gdGhpcy5yZW5kZXJlci5wYXJlbnROb2RlKHBvcHVwRWwpO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBvcHVwUGFyZW50ICE9PSBib2R5RWwpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKGJvZHlFbCwgcG9wdXBFbCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGxldCB0b2dnbGVFbCA9IHRoaXMucG9wcGVyUmVmWydyZWZlcmVuY2UnXTtcclxuICAgICAgICAgICAgbGV0IHdpZHRoID0gcG9wdXBFbC5vZmZzZXRXaWR0aDtcclxuICAgICAgICAgICAgbGV0IGJvdW5kYXJpZXMgPSBwb3B1cEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICAgICAgICBsZXQgbGVmdDpudW1iZXIgPSBib3VuZGFyaWVzLmxlZnQ7XHJcbiAgICAgICAgICAgIGxldCBjb29yZHMgPSB0b2dnbGVFbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgICAgIC8vIFNldCB0aGUgdG9wIG9mIG91ciBtZW51IHRvIHRoZSBib3R0b20gb2YgdGhlIHRvZ2dsZSBlbGVtZW50XHJcbiAgICAgICAgICAgIGxldCB0b3A6bnVtYmVyID0gY29vcmRzLmJvdHRvbTtcclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLnBvcHBlck9wdGlvbnMgJiYgdGhpcy5wb3BwZXJPcHRpb25zLnBsYWNlbWVudCkge1xyXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMucG9wcGVyT3B0aW9ucy5wbGFjZW1lbnQgPT09ICdib3R0b20tc3RhcnQnIHx8IHRoaXMucG9wcGVyT3B0aW9ucy5wbGFjZW1lbnQgPT09ICd0b3Atc3RhcnQnKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgbGVmdCA9IGNvb3Jkcy5sZWZ0O1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gY29vcmRzLnJpZ2h0IC0gKChtaW5XaWR0aE5vbmUgfHwgd2lkdGggPiBjb29yZHMud2lkdGgpID8gd2lkdGggOiBjb29yZHMud2lkdGgpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvLyBpZiBpdCB3b24ndCBmaXQgKHdpdGggMTBweCBzcGFjZSBiZWZvcmUgaGl0dGluZyB0aGUgd2luZG93IGVkZ2UpLCBmbGlwIGl0XHJcbiAgICAgICAgICAgIGlmIChib3VuZGFyaWVzLmhlaWdodCArIHRvcCArIDEwID4gd2luZG93LmlubmVySGVpZ2h0KSB7XHJcbiAgICAgICAgICAgICAgICB0b3AgPSBjb29yZHMudG9wIC0gYm91bmRhcmllcy5oZWlnaHQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3RyYW5zZm9ybScsICdub25lJyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ2xlZnQnLCBsZWZ0ICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUocG9wdXBFbCwgJ3RvcCcsIHRvcCArICdweCcpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHBvcHVwRWwsICd3aWR0aCcsIHdpZHRoICsgJ3B4Jyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIW1pbldpZHRoTm9uZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShwb3B1cEVsLCAnbWluLXdpZHRoJywgY29vcmRzLndpZHRoICsgJ3B4Jyk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -1,6 +0,0 @@
1
- /** Common unicode strings */
2
- export class UnicodeStrings {
3
- }
4
- /** Equivalent of – */
5
- UnicodeStrings.ndash = '\u2013';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFTQSw2QkFBNkI7QUFDN0IsTUFBTSxPQUFPLGNBQWM7O0FBRXZCLDRCQUE0QjtBQUNkLG9CQUFLLEdBQVcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmF2SXRlbSB9IGZyb20gJy4uL2NvbnRyb2xzL25hdmlnYXRpb24vbmF2LWl0ZW0nO1xyXG5cclxuXHJcbi8qKlxyXG4gKiBUaGUgc3RhdHVzIG9mIGFueSBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBjb250ZW50XHJcbiAqL1xyXG5leHBvcnQgdHlwZSBWaWV3U3RhdHVzID0gJ3BlbmRpbmcnIHwgJ2hhc0RhdGEnIHwgJ25vRGF0YScgfCAnZXJyb3InO1xyXG5cclxuLyoqIENvbW1vbiB1bmljb2RlIHN0cmluZ3MgKi9cclxuZXhwb3J0IGNsYXNzIFVuaWNvZGVTdHJpbmdzIHtcclxuXHJcbiAgICAvKiogRXF1aXZhbGVudCBvZiAmbmRhc2g7ICovXHJcbiAgICBwdWJsaWMgc3RhdGljIG5kYXNoOiBzdHJpbmcgPSAnXFx1MjAxMyc7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogVGhlIERpc3BsYXkgaW50ZXJmYWNlIGRlZmluZXMgY29tbW9uIHByb3BlcnRpZXMgZm9yIGFueSBjb21wb25lbnQgdGhhdCB3b3VsZFxyXG4gKiBkaXNwbGF5IGNvbnRlbnRcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlzcGxheVN0YXR1cyB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUaGUgc3RhdHVzIG9mIHRoZSBkaXNwbGF5XHJcbiAgICAgKi9cclxuICAgIHN0YXR1czogVmlld1N0YXR1cztcclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbiBvcHRpb25hbCBtZXNzYWdlIHRvIGRpc3BsYXkgd2hlbiBzdGF0dXMgaXMgbm90ICdoYXNEYXRhJ1xyXG4gICAgICovXHJcbiAgICBtZXNzYWdlPzogc3RyaW5nO1xyXG5cclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBwcm9wZXJ0aWVzIG9mIGFuIGFjdGlvbiBidXR0b24gdGhhdCBjYW4gYmUgc2hvd24gd2hlbiBzdGF0dXMgaXMgbm90ICdoYXNEYXRhJ1xyXG4gICAgICogQGRlcHJlY2F0ZWQgRGVwcmVjYXRlZCBkdWUgdG8gbm9EYXRhVGVtcGxhdGUgYmVpbmcgcHJlZmVyZWRcclxuICAgICAqL1xyXG4gICAgYWN0aW9uPzogTmF2SXRlbTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRlbXBsYXRlIHRvIHNob3cgd2hlbiB0aGUgc3RhdHVzIGlzIG5vRGF0YVxyXG4gICAgICovXHJcbiAgICBub0RhdGFUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNYXNrIChub3QgcmVtb3ZlKSB0aGUgdHJhbnNjbHVkZWQgY29udGVudCBmcm9tIHRoZSBkb20gd2hpbGUgbm90IGhhc0RhdGEgc3RhdHVzLlxyXG4gICAgICovXHJcbiAgICBkaXNwbGF5QXNNYXNrPzogYm9vbGVhbjtcclxuXHJcbiAgICAvKiogXHJcbiAgICAgKiBBZGRpdGlvbmFsIGNzcyBjbGFzc2VzIHRvIGFwcGx5IHRvIHRoZSAub3ZlcmxheSBlbGVtZW50IFxyXG4gICAgICovXHJcbiAgICBvdmVybGF5Q2xhc3NMaXN0Pzogc3RyaW5nO1xyXG59XHJcbiJdfQ==
@@ -1,67 +0,0 @@
1
- import { Validators } from '@angular/forms';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Helper for Form Groups
6
- */
7
- export class FormGroupHelper {
8
- /**
9
- * Call patchValue on the formGroup with only the properties
10
- * that actually have values in updates. This method will ignore
11
- * any value that is either null or undefined
12
- */
13
- patchValueSafely(formGroup, updates) {
14
- let safeUpdates = {};
15
- Object.keys(updates).forEach(function (propName) {
16
- let rawValue = updates[propName];
17
- if (rawValue !== null && rawValue !== undefined) {
18
- safeUpdates[propName] = rawValue;
19
- }
20
- });
21
- formGroup.patchValue(safeUpdates);
22
- }
23
- /**
24
- * Get an id for the form controls input
25
- */
26
- getInputId(id) {
27
- return id + '_input';
28
- }
29
- /**
30
- * Takes in a control and returns a function that sets the control's required validator based on
31
- * whether the value provided is empty or not. Adds the required validator if the value provided is
32
- * not empty, otherwise removes the required validator. Useful for dynamically setting the requiredness
33
- * of a control based on whether another control has a value or not.
34
- *
35
- * @param control
36
- * @param keepValidators - Array of Validators to leave configured on the control. Any existing
37
- * validators on the control will be lost if this is left empty.
38
- * @param isZeroEmpty - If true, a numeric zero will be considered an empty value. Default is false.
39
- */
40
- setRequiredFn(control, keepValidators = [], isZeroEmpty = false) {
41
- return (value) => {
42
- let validators = [...keepValidators];
43
- // If the value is not empty, add the required validator.
44
- if (value || (!isZeroEmpty ? value === 0 : false)) {
45
- validators.push(Validators.required);
46
- }
47
- if (validators.length > 0) {
48
- control.setValidators(validators);
49
- }
50
- else {
51
- control.clearValidators();
52
- }
53
- // Recalculating the value is required when changing the validators, otherwise
54
- // the validator won't take effect until the value is changed in the control.
55
- control.updateValueAndValidity({ emitEvent: false });
56
- };
57
- }
58
- }
59
- FormGroupHelper.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGroupHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
60
- FormGroupHelper.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGroupHelper, providedIn: 'root' });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGroupHelper, decorators: [{
62
- type: Injectable,
63
- args: [{
64
- providedIn: 'root'
65
- }]
66
- }] });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvc2hhcmVkL2Zvcm0tZ3JvdXAuaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUMsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8sZUFBZTtJQUV4Qjs7OztPQUlHO0lBQ0ksZ0JBQWdCLENBQUMsU0FBMkIsRUFBRSxPQUFZO1FBQzdELElBQUksV0FBVyxHQUFHLEVBQUUsQ0FBQztRQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLFFBQVE7WUFDM0MsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWpDLElBQUcsUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFDO2dCQUMzQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsUUFBUSxDQUFDO2FBQ3BDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxTQUFTLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxFQUFVO1FBQ3hCLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNJLGFBQWEsQ0FBQyxPQUF3QixFQUFFLGlCQUFnQyxFQUFFLEVBQUUsY0FBdUIsS0FBSztRQUMzRyxPQUFPLENBQUMsS0FBOEIsRUFBRSxFQUFFO1lBQ3RDLElBQUksVUFBVSxHQUFHLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQztZQUVyQyx5REFBeUQ7WUFDekQsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQy9DLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3hDO1lBRUQsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDSCxPQUFPLENBQUMsZUFBZSxFQUFFLENBQUM7YUFDN0I7WUFDRCw4RUFBOEU7WUFDOUUsNkVBQTZFO1lBQzdFLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQTtJQUNMLENBQUM7OzRHQXZEUSxlQUFlO2dIQUFmLGVBQWUsY0FGWixNQUFNOzJGQUVULGVBQWU7a0JBSDNCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JzLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIEhlbHBlciBmb3IgRm9ybSBHcm91cHNcclxuICovXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUdyb3VwSGVscGVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGwgcGF0Y2hWYWx1ZSBvbiB0aGUgZm9ybUdyb3VwIHdpdGggb25seSB0aGUgcHJvcGVydGllc1xyXG4gICAgICogdGhhdCBhY3R1YWxseSBoYXZlIHZhbHVlcyBpbiB1cGRhdGVzLiBUaGlzIG1ldGhvZCB3aWxsIGlnbm9yZVxyXG4gICAgICogYW55IHZhbHVlIHRoYXQgaXMgZWl0aGVyIG51bGwgb3IgdW5kZWZpbmVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwYXRjaFZhbHVlU2FmZWx5KGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgdXBkYXRlczogYW55KXtcclxuICAgICAgICBsZXQgc2FmZVVwZGF0ZXMgPSB7fTtcclxuICAgICAgICBPYmplY3Qua2V5cyh1cGRhdGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wTmFtZSkge1xyXG4gICAgICAgICAgICBsZXQgcmF3VmFsdWUgPSB1cGRhdGVzW3Byb3BOYW1lXTtcclxuXHJcbiAgICAgICAgICAgIGlmKHJhd1ZhbHVlICE9PSBudWxsICYmIHJhd1ZhbHVlICE9PSB1bmRlZmluZWQpe1xyXG4gICAgICAgICAgICAgICAgc2FmZVVwZGF0ZXNbcHJvcE5hbWVdID0gcmF3VmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBmb3JtR3JvdXAucGF0Y2hWYWx1ZShzYWZlVXBkYXRlcyk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXQgYW4gaWQgZm9yIHRoZSBmb3JtIGNvbnRyb2xzIGlucHV0XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRJbnB1dElkKGlkOiBzdHJpbmcpOnN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIGlkICsgJ19pbnB1dCc7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUYWtlcyBpbiBhIGNvbnRyb2wgYW5kIHJldHVybnMgYSBmdW5jdGlvbiB0aGF0IHNldHMgdGhlIGNvbnRyb2wncyByZXF1aXJlZCB2YWxpZGF0b3IgYmFzZWQgb25cclxuICAgICAqIHdoZXRoZXIgdGhlIHZhbHVlIHByb3ZpZGVkIGlzIGVtcHR5IG9yIG5vdC4gQWRkcyB0aGUgcmVxdWlyZWQgdmFsaWRhdG9yIGlmIHRoZSB2YWx1ZSBwcm92aWRlZCBpc1xyXG4gICAgICogbm90IGVtcHR5LCBvdGhlcndpc2UgcmVtb3ZlcyB0aGUgcmVxdWlyZWQgdmFsaWRhdG9yLiBVc2VmdWwgZm9yIGR5bmFtaWNhbGx5IHNldHRpbmcgdGhlIHJlcXVpcmVkbmVzc1xyXG4gICAgICogb2YgYSBjb250cm9sIGJhc2VkIG9uIHdoZXRoZXIgYW5vdGhlciBjb250cm9sIGhhcyBhIHZhbHVlIG9yIG5vdC5cclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIGNvbnRyb2xcclxuICAgICAqIEBwYXJhbSBrZWVwVmFsaWRhdG9ycyAtIEFycmF5IG9mIFZhbGlkYXRvcnMgdG8gbGVhdmUgY29uZmlndXJlZCBvbiB0aGUgY29udHJvbC4gQW55IGV4aXN0aW5nXHJcbiAgICAgKiB2YWxpZGF0b3JzIG9uIHRoZSBjb250cm9sIHdpbGwgYmUgbG9zdCBpZiB0aGlzIGlzIGxlZnQgZW1wdHkuXHJcbiAgICAgKiBAcGFyYW0gaXNaZXJvRW1wdHkgLSBJZiB0cnVlLCBhIG51bWVyaWMgemVybyB3aWxsIGJlIGNvbnNpZGVyZWQgYW4gZW1wdHkgdmFsdWUuIERlZmF1bHQgaXMgZmFsc2UuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXRSZXF1aXJlZEZuKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwga2VlcFZhbGlkYXRvcnM6IFZhbGlkYXRvckZuW10gPSBbXSwgaXNaZXJvRW1wdHk6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgICAgIHJldHVybiAodmFsdWU/OiBudW1iZXIgfCBzdHJpbmcgfCBudWxsKSA9PiB7XHJcbiAgICAgICAgICAgIGxldCB2YWxpZGF0b3JzID0gWy4uLmtlZXBWYWxpZGF0b3JzXTtcclxuXHJcbiAgICAgICAgICAgIC8vIElmIHRoZSB2YWx1ZSBpcyBub3QgZW1wdHksIGFkZCB0aGUgcmVxdWlyZWQgdmFsaWRhdG9yLlxyXG4gICAgICAgICAgICBpZiAodmFsdWUgfHwgKCFpc1plcm9FbXB0eSA/IHZhbHVlID09PSAwIDogZmFsc2UpKSB7XHJcbiAgICAgICAgICAgICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh2YWxpZGF0b3JzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyh2YWxpZGF0b3JzKTtcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgIGNvbnRyb2wuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgLy8gUmVjYWxjdWxhdGluZyB0aGUgdmFsdWUgaXMgcmVxdWlyZWQgd2hlbiBjaGFuZ2luZyB0aGUgdmFsaWRhdG9ycywgb3RoZXJ3aXNlXHJcbiAgICAgICAgICAgIC8vIHRoZSB2YWxpZGF0b3Igd29uJ3QgdGFrZSBlZmZlY3QgdW50aWwgdGhlIHZhbHVlIGlzIGNoYW5nZWQgaW4gdGhlIGNvbnRyb2wuXHJcbiAgICAgICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
@@ -1,51 +0,0 @@
1
- import { sortBy, get, orderBy } from "lodash";
2
- /** A wrapper around the lodash sortBy that supports treating upper case and lower case text as the same.
3
- * If the underlying property value is not a string (or is null or undefined) this function will behave just like lodash's original
4
- * The original array is not modified, and the result is a newly created array to avoid any side effects (just like the lodash implementation)
5
- * String properties are normalized by case for comparisons to prevent sorting AbC as ACb
6
- * @param items - the set of items to sort. Expected to be a set of complex objects to sort by the given properties
7
- * @param properties - a list of values, each of which can be number, date, string, etc property types.
8
- * Can be the name or path to the property to look at, passed to the lodash get function so "address.line1" works if item is
9
- * a meter object like {meterName: 'name', addres: { line1: '100 Factory Street' } }
10
- * @see https://lodash.com/docs/4.17.10#get
11
- */
12
- export function sortByIgnoreCase(items, properties) {
13
- let iteratees = [];
14
- iteratees = properties.map(prop => {
15
- return (item) => safeToLower(item, prop);
16
- });
17
- return sortBy(items, iteratees);
18
- }
19
- /**
20
- * A wrapper around the lodash orderBy that supports treating upper case and lower case text as the same.
21
- * @param items - the set of items to sort. Expected to be a set of complex objects to sort by the given properties
22
- * @param properties - a list of values, each of which can be number, date, string, etc property types.
23
- * @param direction - the direction in which to sort, the pass in an array of directions to match an array of properties
24
- */
25
- export function orderByIgnoreCase(items, properties, direction) {
26
- let iteratees = [];
27
- iteratees = properties.map(prop => {
28
- // Treat nulls as empty string to sort them at the bottom when decending, helpful when looking at dates
29
- return (item) => safeToLower(item, prop) || '';
30
- });
31
- return orderBy(items, iteratees, direction);
32
- }
33
- /**
34
- * Convert the provided item's property to the lowercase version of it if that property
35
- * has a value and the value is a string. Non-string or null/undefined values are kept exactly as they were
36
- * @param item - the object on which the value will be read and interpreted
37
- * @param prop - the name or path to the property to look at, passed to the lodash get function so "address.line1" works if item is
38
- * a meter object like {meterName: 'name', address: { line1: '100 Factory Street' } }
39
- * @see https://lodash.com/docs/4.17.10#get
40
- */
41
- function safeToLower(item, prop) {
42
- let value = get(item, prop);
43
- if (item && typeof value === 'string') {
44
- return value.toLowerCase();
45
- }
46
- else {
47
- return item[prop];
48
- }
49
- }
50
- ;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9kYXNoLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvbG9kYXNoLWhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFOUM7Ozs7Ozs7OztFQVNFO0FBQ0YsTUFBTSxVQUFVLGdCQUFnQixDQUFJLEtBQVUsRUFBRSxVQUFvQjtJQUNsRSxJQUFJLFNBQVMsR0FBZ0UsRUFBRSxDQUFDO0lBRWhGLFNBQVMsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQSxFQUFFO1FBQy9CLE9BQU8sQ0FBQyxJQUFPLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFbEMsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGlCQUFpQixDQUFJLEtBQVUsRUFBRSxVQUFvQixFQUFFLFNBQStCO0lBQ3BHLElBQUksU0FBUyxHQUFnRSxFQUFFLENBQUM7SUFFaEYsU0FBUyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDaEMsdUdBQXVHO1FBQ3ZHLE9BQU8sQ0FBQyxJQUFPLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BELENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQVMsV0FBVyxDQUFJLElBQU8sRUFBRSxJQUFZO0lBQzNDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDNUIsSUFBRyxJQUFJLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFDO1FBQ25DLE9BQWdCLEtBQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztLQUN0QztTQUFNO1FBQ0wsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDbkI7QUFDSCxDQUFDO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNvcnRCeSwgZ2V0LCBvcmRlckJ5IH0gZnJvbSBcImxvZGFzaFwiO1xyXG5cclxuLyoqIEEgd3JhcHBlciBhcm91bmQgdGhlIGxvZGFzaCBzb3J0QnkgdGhhdCBzdXBwb3J0cyB0cmVhdGluZyB1cHBlciBjYXNlIGFuZCBsb3dlciBjYXNlIHRleHQgYXMgdGhlIHNhbWUuICBcclxuICogSWYgdGhlIHVuZGVybHlpbmcgcHJvcGVydHkgdmFsdWUgaXMgbm90IGEgc3RyaW5nIChvciBpcyBudWxsIG9yIHVuZGVmaW5lZCkgdGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBqdXN0IGxpa2UgbG9kYXNoJ3Mgb3JpZ2luYWxcclxuICogVGhlIG9yaWdpbmFsIGFycmF5IGlzIG5vdCBtb2RpZmllZCwgYW5kIHRoZSByZXN1bHQgaXMgYSBuZXdseSBjcmVhdGVkIGFycmF5IHRvIGF2b2lkIGFueSBzaWRlIGVmZmVjdHMgKGp1c3QgbGlrZSB0aGUgbG9kYXNoIGltcGxlbWVudGF0aW9uKVxyXG4gKiBTdHJpbmcgcHJvcGVydGllcyBhcmUgbm9ybWFsaXplZCBieSBjYXNlIGZvciBjb21wYXJpc29ucyB0byBwcmV2ZW50IHNvcnRpbmcgQWJDIGFzIEFDYlxyXG4gKiBAcGFyYW0gaXRlbXMgLSB0aGUgc2V0IG9mIGl0ZW1zIHRvIHNvcnQuIEV4cGVjdGVkIHRvIGJlIGEgc2V0IG9mIGNvbXBsZXggb2JqZWN0cyB0byBzb3J0IGJ5IHRoZSBnaXZlbiBwcm9wZXJ0aWVzXHJcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIC0gYSBsaXN0IG9mIHZhbHVlcywgZWFjaCBvZiB3aGljaCBjYW4gYmUgbnVtYmVyLCBkYXRlLCBzdHJpbmcsIGV0YyBwcm9wZXJ0eSB0eXBlcy4gXHJcbiAqICAgICAgICBDYW4gYmUgdGhlIG5hbWUgb3IgcGF0aCB0byB0aGUgcHJvcGVydHkgdG8gbG9vayBhdCwgcGFzc2VkIHRvIHRoZSBsb2Rhc2ggZ2V0IGZ1bmN0aW9uIHNvIFwiYWRkcmVzcy5saW5lMVwiIHdvcmtzIGlmIGl0ZW0gaXNcclxuICogICAgICAgIGEgbWV0ZXIgb2JqZWN0IGxpa2Uge21ldGVyTmFtZTogJ25hbWUnLCBhZGRyZXM6IHsgbGluZTE6ICcxMDAgRmFjdG9yeSBTdHJlZXQnIH0gfVxyXG4gKiBAc2VlIGh0dHBzOi8vbG9kYXNoLmNvbS9kb2NzLzQuMTcuMTAjZ2V0XHJcbiovXHJcbmV4cG9ydCBmdW5jdGlvbiBzb3J0QnlJZ25vcmVDYXNlPFQ+KGl0ZW1zOiBUW10sIHByb3BlcnRpZXM6IHN0cmluZ1tdKSA6IFRbXSB7XHJcbiAgbGV0IGl0ZXJhdGVlczogKCh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgY29sbGVjdGlvbjogQXJyYXlMaWtlPFQ+KT0+IFQpW10gPSBbXTtcclxuXHJcbiAgaXRlcmF0ZWVzID0gcHJvcGVydGllcy5tYXAocHJvcD0+e1xyXG4gICAgcmV0dXJuIChpdGVtOiBUKSA9PiBzYWZlVG9Mb3dlcihpdGVtLCBwcm9wKTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIHNvcnRCeShpdGVtcywgaXRlcmF0ZWVzKTtcclxuICBcclxufVxyXG5cclxuLyoqXHJcbiAqIEEgd3JhcHBlciBhcm91bmQgdGhlIGxvZGFzaCBvcmRlckJ5IHRoYXQgc3VwcG9ydHMgdHJlYXRpbmcgdXBwZXIgY2FzZSBhbmQgbG93ZXIgY2FzZSB0ZXh0IGFzIHRoZSBzYW1lLlxyXG4gKiBAcGFyYW0gaXRlbXMgLSB0aGUgc2V0IG9mIGl0ZW1zIHRvIHNvcnQuIEV4cGVjdGVkIHRvIGJlIGEgc2V0IG9mIGNvbXBsZXggb2JqZWN0cyB0byBzb3J0IGJ5IHRoZSBnaXZlbiBwcm9wZXJ0aWVzXHJcbiAqIEBwYXJhbSBwcm9wZXJ0aWVzIC0gYSBsaXN0IG9mIHZhbHVlcywgZWFjaCBvZiB3aGljaCBjYW4gYmUgbnVtYmVyLCBkYXRlLCBzdHJpbmcsIGV0YyBwcm9wZXJ0eSB0eXBlcy4gXHJcbiAqIEBwYXJhbSBkaXJlY3Rpb24gLSB0aGUgZGlyZWN0aW9uIGluIHdoaWNoIHRvIHNvcnQsIHRoZSBwYXNzIGluIGFuIGFycmF5IG9mIGRpcmVjdGlvbnMgdG8gbWF0Y2ggYW4gYXJyYXkgb2YgcHJvcGVydGllc1xyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG9yZGVyQnlJZ25vcmVDYXNlPFQ+KGl0ZW1zOiBUW10sIHByb3BlcnRpZXM6IHN0cmluZ1tdLCBkaXJlY3Rpb24/OiBBcnJheTxcImFzY1wifFwiZGVzY1wiPik6IFRbXSB7XHJcbiAgbGV0IGl0ZXJhdGVlczogKCh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgY29sbGVjdGlvbjogQXJyYXlMaWtlPFQ+KT0+IFQpW10gPSBbXTtcclxuXHJcbiAgaXRlcmF0ZWVzID0gcHJvcGVydGllcy5tYXAocHJvcCA9PiB7XHJcbiAgICAvLyBUcmVhdCBudWxscyBhcyBlbXB0eSBzdHJpbmcgdG8gc29ydCB0aGVtIGF0IHRoZSBib3R0b20gd2hlbiBkZWNlbmRpbmcsIGhlbHBmdWwgd2hlbiBsb29raW5nIGF0IGRhdGVzXHJcbiAgICByZXR1cm4gKGl0ZW06IFQpID0+IHNhZmVUb0xvd2VyKGl0ZW0sIHByb3ApIHx8ICcnO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gb3JkZXJCeShpdGVtcywgaXRlcmF0ZWVzLCBkaXJlY3Rpb24pO1xyXG59XHJcblxyXG4vKipcclxuICogQ29udmVydCB0aGUgcHJvdmlkZWQgaXRlbSdzIHByb3BlcnR5IHRvIHRoZSBsb3dlcmNhc2UgdmVyc2lvbiBvZiBpdCBpZiB0aGF0IHByb3BlcnR5XHJcbiAqIGhhcyBhIHZhbHVlIGFuZCB0aGUgdmFsdWUgaXMgYSBzdHJpbmcuIE5vbi1zdHJpbmcgb3IgbnVsbC91bmRlZmluZWQgdmFsdWVzIGFyZSBrZXB0IGV4YWN0bHkgYXMgdGhleSB3ZXJlXHJcbiAqIEBwYXJhbSBpdGVtIC0gdGhlIG9iamVjdCBvbiB3aGljaCB0aGUgdmFsdWUgd2lsbCAgYmUgcmVhZCBhbmQgaW50ZXJwcmV0ZWRcclxuICogQHBhcmFtIHByb3AgLSB0aGUgbmFtZSBvciBwYXRoIHRvIHRoZSBwcm9wZXJ0eSB0byBsb29rIGF0LCBwYXNzZWQgdG8gdGhlIGxvZGFzaCBnZXQgZnVuY3Rpb24gc28gXCJhZGRyZXNzLmxpbmUxXCIgd29ya3MgaWYgaXRlbSBpc1xyXG4gKiBhIG1ldGVyIG9iamVjdCBsaWtlIHttZXRlck5hbWU6ICduYW1lJywgYWRkcmVzczogeyBsaW5lMTogJzEwMCBGYWN0b3J5IFN0cmVldCcgfSB9XHJcbiAqIEBzZWUgaHR0cHM6Ly9sb2Rhc2guY29tL2RvY3MvNC4xNy4xMCNnZXRcclxuICovXHJcbmZ1bmN0aW9uIHNhZmVUb0xvd2VyPFQ+KGl0ZW06IFQsIHByb3A6IHN0cmluZyl7XHJcbiAgbGV0IHZhbHVlID0gZ2V0KGl0ZW0sIHByb3ApO1xyXG4gIGlmKGl0ZW0gJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyl7XHJcbiAgICByZXR1cm4gKDxzdHJpbmc+dmFsdWUpLnRvTG93ZXJDYXNlKCk7XHJcbiAgfSBlbHNlIHtcclxuICAgIHJldHVybiBpdGVtW3Byb3BdO1xyXG4gIH1cclxufTsiXX0=
@@ -1,98 +0,0 @@
1
- import { Injector } from "@angular/core";
2
- import { ActivatedRoute, Router } from "@angular/router";
3
- import { TranslateService } from "@ngx-translate/core";
4
- import { ErrorService } from "../../core/error.service";
5
- import { RouterHelper } from "../../core/router-helper.service";
6
- import { ScrollService } from "../../core/scroll.service";
7
- import { TelemetryService } from '../../core/telemetry.service';
8
- import { DialogService } from "../../display/dialog/dialog.service";
9
- import { SplashService } from "../../display/splash/splash.service";
10
- import { MockActivatedRoute, mockRouterFactory, mockRouterHelperFactory } from "./public-mocks.spec";
11
- import { SpyFactory } from "./spy-factory.spec";
12
- import { MockTranslateService } from "./translation-mocks.spec";
13
- /**
14
- * Contains static methods to create common injectors for unit testing
15
- */
16
- export class PageBaseComponentTestInjectorFactory {
17
- /**
18
- * Get an injector which provides spy and mock objects needed by the @see PageBaseComponent
19
- */
20
- static getComponentInjector() {
21
- return Injector.create({ providers: [...this.CoreProviders, ...this.ComponentProviders] });
22
- }
23
- /**
24
- * Get an injector which provides spy and mock objects needed by the @see WizardBaseComponent
25
- */
26
- static getWizardBaseComponentInjector() {
27
- return Injector.create({ providers: [...this.CoreProviders, ...this.ComponentProviders, ...this.WizardProviders] });
28
- }
29
- }
30
- /**
31
- * Core services retrieved via the @see Injector in our base classes.
32
- */
33
- PageBaseComponentTestInjectorFactory.CoreProviders = [
34
- {
35
- provide: Router,
36
- useFactory: mockRouterFactory,
37
- deps: [],
38
- },
39
- {
40
- provide: ScrollService,
41
- useFactory: () => {
42
- return SpyFactory.createSpy(ScrollService);
43
- },
44
- deps: []
45
- },
46
- {
47
- provide: ActivatedRoute,
48
- useFactory: () => {
49
- return new MockActivatedRoute();
50
- },
51
- deps: [],
52
- },
53
- {
54
- provide: SplashService,
55
- useFactory: () => {
56
- return SpyFactory.createSpy(SplashService);
57
- },
58
- deps: []
59
- }
60
- ];
61
- /**
62
- * Services and such retrieved by @see PageBaseComponent via the @see Injector
63
- * in addition to our core services
64
- */
65
- PageBaseComponentTestInjectorFactory.ComponentProviders = [
66
- {
67
- provide: TranslateService,
68
- useFactory: () => new MockTranslateService('-T'),
69
- deps: []
70
- },
71
- { provide: ErrorService, deps: [] },
72
- {
73
- provide: DialogService,
74
- useFactory: () => {
75
- return SpyFactory.createSpy(DialogService);
76
- },
77
- deps: []
78
- },
79
- {
80
- provide: RouterHelper,
81
- useFactory: () => mockRouterHelperFactory(),
82
- deps: []
83
- }
84
- ];
85
- /**
86
- * Services and such retrieved by @see WizardBaseComponent via the @see Injector
87
- * in addition to our core and @see PageBaseComponent services
88
- */
89
- PageBaseComponentTestInjectorFactory.WizardProviders = [
90
- {
91
- provide: TelemetryService,
92
- useFactory: () => {
93
- return SpyFactory.createSpy(TelemetryService);
94
- },
95
- deps: []
96
- }
97
- ];
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1iYXNlLWNvbXBvbmVudC10ZXN0LWluamVjdG9yLWZhY3Rvcnkuc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9zaGFyZWQvdGVzdGluZy9wYWdlLWJhc2UtY29tcG9uZW50LXRlc3QtaW5qZWN0b3ItZmFjdG9yeS5zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQWtCLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEU7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0NBQW9DO0lBeUU3Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxvQkFBb0I7UUFDOUIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9GLENBQUM7SUFFRDs7T0FFRztJQUNLLE1BQU0sQ0FBQyw4QkFBOEI7UUFDekMsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUN4SCxDQUFDOztBQW5GRDs7R0FFRztBQUNZLGtEQUFhLEdBQXFCO0lBQzdDO1FBQ0ksT0FBTyxFQUFFLE1BQU07UUFDZixVQUFVLEVBQUUsaUJBQWlCO1FBQzdCLElBQUksRUFBRSxFQUFFO0tBQ1g7SUFDRDtRQUNJLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDYixPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDOUMsQ0FBQztRQUNELElBQUksRUFBRSxFQUFFO0tBQ1g7SUFDRDtRQUNJLE9BQU8sRUFBRSxjQUFjO1FBQ3ZCLFVBQVUsRUFBRSxHQUFHLEVBQUU7WUFDYixPQUFPLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsSUFBSSxFQUFFLEVBQUU7S0FDWDtJQUNEO1FBQ0ksT0FBTyxFQUFFLGFBQWE7UUFDdEIsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNiLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUM5QyxDQUFDO1FBQ0QsSUFBSSxFQUFFLEVBQUU7S0FDWDtDQUNKLENBQUM7QUFFRjs7O0dBR0c7QUFDWSx1REFBa0IsR0FBcUI7SUFDbEQ7UUFDSSxPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLElBQUksQ0FBQztRQUNoRCxJQUFJLEVBQUUsRUFBRTtLQUNYO0lBQ0QsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7SUFDbkM7UUFDSSxPQUFPLEVBQUUsYUFBYTtRQUN0QixVQUFVLEVBQUUsR0FBRyxFQUFFO1lBQ2IsT0FBTyxVQUFVLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQzlDLENBQUM7UUFDRCxJQUFJLEVBQUUsRUFBRTtLQUNYO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsWUFBWTtRQUNyQixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsdUJBQXVCLEVBQUU7UUFDM0MsSUFBSSxFQUFFLEVBQUU7S0FDWDtDQUNKLENBQUM7QUFFRjs7O0dBR0c7QUFDWSxvREFBZSxHQUFxQjtJQUMvQztRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsVUFBVSxFQUFFLEdBQUcsRUFBRTtZQUNiLE9BQU8sVUFBVSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xELENBQUM7UUFDRCxJQUFJLEVBQUUsRUFBRTtLQUNYO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yLCBTdGF0aWNQcm92aWRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xyXG5pbXBvcnQgeyBFcnJvclNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS9lcnJvci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFJvdXRlckhlbHBlciB9IGZyb20gXCIuLi8uLi9jb3JlL3JvdXRlci1oZWxwZXIuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTY3JvbGxTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2NvcmUvc2Nyb2xsLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVGVsZW1ldHJ5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdGVsZW1ldHJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL2Rpc3BsYXkvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNwbGFzaFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vZGlzcGxheS9zcGxhc2gvc3BsYXNoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTW9ja0FjdGl2YXRlZFJvdXRlLCBtb2NrUm91dGVyRmFjdG9yeSwgbW9ja1JvdXRlckhlbHBlckZhY3RvcnkgfSBmcm9tIFwiLi9wdWJsaWMtbW9ja3Muc3BlY1wiO1xyXG5pbXBvcnQgeyBTcHlGYWN0b3J5IH0gZnJvbSBcIi4vc3B5LWZhY3Rvcnkuc3BlY1wiO1xyXG5pbXBvcnQgeyBNb2NrVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCIuL3RyYW5zbGF0aW9uLW1vY2tzLnNwZWNcIjtcclxuXHJcbi8qKlxyXG4gKiBDb250YWlucyBzdGF0aWMgbWV0aG9kcyB0byBjcmVhdGUgY29tbW9uIGluamVjdG9ycyBmb3IgdW5pdCB0ZXN0aW5nXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUGFnZUJhc2VDb21wb25lbnRUZXN0SW5qZWN0b3JGYWN0b3J5IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvcmUgc2VydmljZXMgcmV0cmlldmVkIHZpYSB0aGUgQHNlZSBJbmplY3RvciBpbiBvdXIgYmFzZSBjbGFzc2VzLlxyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBDb3JlUHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcHJvdmlkZTogUm91dGVyLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiBtb2NrUm91dGVyRmFjdG9yeSxcclxuICAgICAgICAgICAgZGVwczogW10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFNjcm9sbFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBTcHlGYWN0b3J5LmNyZWF0ZVNweShTY3JvbGxTZXJ2aWNlKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkZXBzOiBbXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBBY3RpdmF0ZWRSb3V0ZSxcclxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBNb2NrQWN0aXZhdGVkUm91dGUoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZGVwczogW10sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFNwbGFzaFNlcnZpY2UsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBTcHlGYWN0b3J5LmNyZWF0ZVNweShTcGxhc2hTZXJ2aWNlKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkZXBzOiBbXVxyXG4gICAgICAgIH1cclxuICAgIF07XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXJ2aWNlcyBhbmQgc3VjaCByZXRyaWV2ZWQgYnkgQHNlZSBQYWdlQmFzZUNvbXBvbmVudCB2aWEgdGhlIEBzZWUgSW5qZWN0b3JcclxuICAgICAqIGluIGFkZGl0aW9uIHRvIG91ciBjb3JlIHNlcnZpY2VzXHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgc3RhdGljIENvbXBvbmVudFByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IG5ldyBNb2NrVHJhbnNsYXRlU2VydmljZSgnLVQnKSxcclxuICAgICAgICAgICAgZGVwczogW11cclxuICAgICAgICB9LFxyXG4gICAgICAgIHsgcHJvdmlkZTogRXJyb3JTZXJ2aWNlLCBkZXBzOiBbXSB9LFxyXG4gICAgICAgIHsgXHJcbiAgICAgICAgICAgIHByb3ZpZGU6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBTcHlGYWN0b3J5LmNyZWF0ZVNweShEaWFsb2dTZXJ2aWNlKVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBkZXBzOiBbXVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBSb3V0ZXJIZWxwZXIsXHJcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IG1vY2tSb3V0ZXJIZWxwZXJGYWN0b3J5KCksXHJcbiAgICAgICAgICAgIGRlcHM6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlcnZpY2VzIGFuZCBzdWNoIHJldHJpZXZlZCBieSBAc2VlIFdpemFyZEJhc2VDb21wb25lbnQgdmlhIHRoZSBAc2VlIEluamVjdG9yXHJcbiAgICAgKiBpbiBhZGRpdGlvbiB0byBvdXIgY29yZSBhbmQgQHNlZSBQYWdlQmFzZUNvbXBvbmVudCBzZXJ2aWNlc1xyXG4gICAgICovXHJcbiAgICBwcml2YXRlIHN0YXRpYyBXaXphcmRQcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10gPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBwcm92aWRlOiBUZWxlbWV0cnlTZXJ2aWNlLFxyXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gU3B5RmFjdG9yeS5jcmVhdGVTcHkoVGVsZW1ldHJ5U2VydmljZSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGRlcHM6IFtdXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldCBhbiBpbmplY3RvciB3aGljaCBwcm92aWRlcyBzcHkgYW5kIG1vY2sgb2JqZWN0cyBuZWVkZWQgYnkgdGhlIEBzZWUgUGFnZUJhc2VDb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBnZXRDb21wb25lbnRJbmplY3RvcigpOiBJbmplY3RvciB7XHJcbiAgICAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogWy4uLnRoaXMuQ29yZVByb3ZpZGVycywgLi4udGhpcy5Db21wb25lbnRQcm92aWRlcnNdIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0IGFuIGluamVjdG9yIHdoaWNoIHByb3ZpZGVzIHNweSBhbmQgbW9jayBvYmplY3RzIG5lZWRlZCBieSB0aGUgQHNlZSBXaXphcmRCYXNlQ29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgICBwdWJsaWMgc3RhdGljIGdldFdpemFyZEJhc2VDb21wb25lbnRJbmplY3RvcigpOiBJbmplY3RvciB7XHJcbiAgICAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7IHByb3ZpZGVyczogWy4uLnRoaXMuQ29yZVByb3ZpZGVycywgLi4udGhpcy5Db21wb25lbnRQcm92aWRlcnMsIC4uLnRoaXMuV2l6YXJkUHJvdmlkZXJzXSB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=