@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,168 +1,168 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
- import { Overlay } from '../view-overlay/view-overlay.component';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { Subject } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- import * as i2 from "@angular/forms";
9
- import * as i3 from "../../controls/button/button.component";
10
- import * as i4 from "../../controls/textbox/textbox.component";
11
- import * as i5 from "../view-overlay/view-overlay.component";
12
- import * as i6 from "../../controls/banner/banner.component";
13
- import * as i7 from "../../controls/checkbox/checkbox.component";
14
- import * as i8 from "@ngx-translate/core";
15
- export class ConfirmDialogContext {
16
- constructor() {
17
- /** Id to distinguish between confirm component contexts emitted by the dialog service */
18
- this.id = '';
19
- /**
20
- * Optional required flag for the textbox, will set
21
- * a validator on the input if true
22
- */
23
- this.textboxRequired = false;
24
- /** Sets the textbox's uppercase parameter */
25
- this.textboxUppercase = false;
26
- /**
27
- * Optional textbox height (in rows).
28
- * Only applies to multi-line type.
29
- * Default 3.
30
- */
31
- this.textareaRows = 3;
32
- /** Optional save button label */
33
- this.saveLabel = 'Save'; // LOCO
34
- /** Optional save button type */
35
- this.saveButtonType = 'primary';
36
- /** Optional cancel button label */
37
- this.cancelLabel = 'Cancel'; // LOCO
38
- /** Optional flag for hiding the cancel (secondary) button */
39
- this.hideCancel = false;
40
- /** When true, adds the submit tag to the save button so hitting enter triggers the save */
41
- this.saveOnEnter = false;
42
- /** Optional alternate save button label */
43
- this.alternateSaveLabel = undefined;
44
- /** Optional alternate save button type */
45
- this.alternateSaveButtonType = undefined;
46
- /**
47
- * Used to know which save button was selected in case the calling component
48
- * is utilizing the alternate save button
49
- */
50
- this.saveSource = 'primary';
51
- /** The message to be displayed while inlineConfirmAction is pending. */
52
- this.inlineConfirmPendingMessage = '';
53
- }
54
- }
55
- export class ConfirmComponent {
56
- onOpen(openContext) {
57
- this.context = openContext;
58
- this.dialogId = openContext.id;
59
- if (this.context.alternateSaveLabel) {
60
- this.context.saveOnEnter = false;
61
- }
62
- }
63
- constructor() {
64
- this.dialogId = 'Confirm';
65
- /** Form Group to hold any form controls needed */
66
- this.formGroup = new UntypedFormGroup({});
67
- this.status = new Overlay('hasData');
68
- this.showTextBox = false;
69
- this.destroyed = new Subject();
70
- this.onDialogSave = new EventEmitter();
71
- this.onDialogCancel = new EventEmitter();
72
- }
73
- ngOnInit() {
74
- this.addFormControls();
75
- this.setValidations();
76
- this.listenCheckBox();
77
- }
78
- onSave(source) {
79
- this.formGroup.markAllAsTouched();
80
- if (this.formGroup.valid) {
81
- let formValues = this.formGroup.getRawValue();
82
- if (formValues.textbox) {
83
- this.context.textboxValue = formValues.textbox;
84
- }
85
- if (this.context.checkConfirm) {
86
- this.context.checkboxValue = formValues.checkbox ? formValues.checkbox : false;
87
- }
88
- this.context.saveSource = source;
89
- if (this.context.inlineConfirmAction) {
90
- this.doInlineConfirmAction();
91
- }
92
- else {
93
- this.onDialogSave.emit(this.context);
94
- }
95
- }
96
- else if (this.context.validationErrorMessage) {
97
- this.error = this.context.validationErrorMessage;
98
- }
99
- }
100
- onCancel() {
101
- this.onDialogCancel.emit();
102
- }
103
- ngOnDestroy() {
104
- this.destroyed.next();
105
- this.destroyed.complete();
106
- }
107
- listenCheckBox() {
108
- this.formGroup.get('checkbox')?.valueChanges.pipe(takeUntil(this.destroyed)).subscribe(value => {
109
- this.showTextBox = value;
110
- this.setValidations();
111
- });
112
- }
113
- setValidations() {
114
- const showCheckBox = this.formGroup.get('checkbox');
115
- const textBoxControl = this.formGroup.controls['textbox'];
116
- if (showCheckBox) {
117
- this.showTextBox ? textBoxControl?.enable() : textBoxControl?.disable();
118
- }
119
- else {
120
- textBoxControl?.enable();
121
- }
122
- }
123
- /**
124
- * Adds the textbox form control to our form group if its configured to be visible
125
- * Will also add the required validator if requested
126
- */
127
- addFormControls() {
128
- if (this.context.textboxType) {
129
- let validators = [];
130
- if (this.context.textboxRequired) {
131
- validators.push(Validators.required);
132
- }
133
- if (this.context.textboxValidators) {
134
- validators.push(...this.context.textboxValidators);
135
- }
136
- this.formGroup.addControl('textbox', new UntypedFormControl('', validators));
137
- }
138
- if (this.context.checkConfirm) {
139
- this.showTextBox = false;
140
- const checkboxControl = new UntypedFormControl('');
141
- this.formGroup.addControl('checkbox', checkboxControl);
142
- }
143
- }
144
- async doInlineConfirmAction() {
145
- this.status.setStatus('pending', this.context.inlineConfirmPendingMessage);
146
- let result = await this.context.inlineConfirmAction();
147
- this.status.setStatus('noData', result.message, {
148
- id: 'inlineConfirmClose',
149
- label: 'Close',
150
- icon: result.isSuccess ? 'icon-check-circle' : 'icon-error',
151
- classlist: result.isSuccess ? 'font-color-success' : 'font-color-error',
152
- onClick: () => { result.isSuccess ? this.onDialogSave.emit(this.context) : this.onDialogCancel.emit(); }
153
- });
154
- }
155
- }
156
- ConfirmComponentfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
157
- ConfirmComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: ConfirmComponent, selector: "ec-confirm", inputs: { context: "context" }, outputs: { onDialogSave: "onDialogSave", onDialogCancel: "onDialogCancel" }, ngImport: i0, template: "<section ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [action]=\"status?.action\"\r\n [noDataTemplate]=\"inlineConfirmResult\"\r\n overlayClassList=\"p-0\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\r\n <section class=\"flex-grow\">\r\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\r\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\r\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\r\n \r\n <ec-checkbox *ngIf=\"context?.checkConfirm\"\r\n [formModel]=\"formGroup.get('checkbox')\"\r\n name=\"confirmCheckbox\"\r\n [label]=\"context?.checkboxText\"\r\n [autofocus]=\"true\"\r\n ></ec-checkbox>\r\n <div *ngIf=\"showTextBox\" [innerHtml]=\"context.confirmLabel\" class=\"mb-3\"></div>\r\n <ec-textbox id=\"confirmTextbox\"\r\n *ngIf=\"(context?.textboxType && !context?.checkConfirm) || showTextBox\"\r\n [autofocus]=\"true\"\r\n [formModel]=\"formGroup.get('textbox')\"\r\n [required]=\"context?.textboxRequired\"\r\n [label]=\"context?.textboxLabel\"\r\n [type]=\"context?.textboxType\"\r\n [rows]=\"context?.textareaRows\"\r\n [placeholder]=\"context?.textboxPlaceholder\"\r\n [upperCase]=\"context?.textboxUppercase\">\r\n </ec-textbox>\r\n </section>\r\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\r\n <ec-button id=\"saveConfirmButton\"\r\n class=\"ml-2\"\r\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\r\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\r\n [autofocus]=\"!context?.textboxType\"\r\n [isSubmit]=\"context?.saveOnEnter\"\r\n (clicked)=\"onSave('primary')\">\r\n </ec-button>\r\n <ec-button id=\"alternateSaveConfirmButton\"\r\n *ngIf=\"context?.alternateSaveLabel\"\r\n class=\"ml-2\"\r\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\r\n [label]=\"context?.alternateSaveLabel\"\r\n (clicked)=\"onSave('alternate')\">\r\n </ec-button>\r\n <ec-button *ngIf=\"!context?.hideCancel\"\r\n id=\"cancelConfirmButton\"\r\n class=\"ml-auto\"\r\n type=\"secondary\"\r\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\r\n (clicked)=\"onCancel()\">\r\n </ec-button>\r\n </footer>\r\n </form>\r\n</section>\r\n\r\n<ng-template #inlineConfirmResult>\r\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\r\n <div class=\"d-flex\">\r\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\r\n <div [innerHTML]=\"status?.message | translate\"></div>\r\n </div>\r\n <div class=\"d-flex pt-2 mt-auto\">\r\n <ec-button id=\"inlineConfirmClose\"\r\n label=\"Close\"\r\n type=\"secondary\"\r\n class=\"ml-auto\"\r\n (clicked)=\"status?.action?.onClick!()\"\r\n [autofocus]=\"true\">\r\n </ec-button>\r\n </div>\r\n </section>\r\n</ng-template>", styles: [":host{width:100%;display:flex}.confirm-content{padding:1.5rem;display:flex;flex-direction:column}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "component", type: i4.TextboxComponent, selector: "ec-textbox", inputs: ["autocomplete", "type", "placeholder", "maxlength", "minlength", "rows", "selectOnAutofocus", "upperCase"] }, { kind: "component", type: i5.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i6.BannerComponent, selector: "ec-banner", inputs: ["hidden", "id", "type", "bannerStyle", "title", "text", "list", "showCloseBtn", "autoHideOnClose", "customIcon", "rememberClosed"], outputs: ["closed"] }, { kind: "component", type: i7.CheckboxComponent, selector: "ec-checkbox", inputs: ["name", "dependentCheckboxesGroup", "ignoreDisabledDependents"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] });
158
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ConfirmComponent, decorators: [{
159
- type: Component,
160
- args: [{ selector: 'ec-confirm', template: "<section ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [action]=\"status?.action\"\r\n [noDataTemplate]=\"inlineConfirmResult\"\r\n overlayClassList=\"p-0\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\r\n <section class=\"flex-grow\">\r\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\r\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\r\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\r\n \r\n <ec-checkbox *ngIf=\"context?.checkConfirm\"\r\n [formModel]=\"formGroup.get('checkbox')\"\r\n name=\"confirmCheckbox\"\r\n [label]=\"context?.checkboxText\"\r\n [autofocus]=\"true\"\r\n ></ec-checkbox>\r\n <div *ngIf=\"showTextBox\" [innerHtml]=\"context.confirmLabel\" class=\"mb-3\"></div>\r\n <ec-textbox id=\"confirmTextbox\"\r\n *ngIf=\"(context?.textboxType && !context?.checkConfirm) || showTextBox\"\r\n [autofocus]=\"true\"\r\n [formModel]=\"formGroup.get('textbox')\"\r\n [required]=\"context?.textboxRequired\"\r\n [label]=\"context?.textboxLabel\"\r\n [type]=\"context?.textboxType\"\r\n [rows]=\"context?.textareaRows\"\r\n [placeholder]=\"context?.textboxPlaceholder\"\r\n [upperCase]=\"context?.textboxUppercase\">\r\n </ec-textbox>\r\n </section>\r\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\r\n <ec-button id=\"saveConfirmButton\"\r\n class=\"ml-2\"\r\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\r\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\r\n [autofocus]=\"!context?.textboxType\"\r\n [isSubmit]=\"context?.saveOnEnter\"\r\n (clicked)=\"onSave('primary')\">\r\n </ec-button>\r\n <ec-button id=\"alternateSaveConfirmButton\"\r\n *ngIf=\"context?.alternateSaveLabel\"\r\n class=\"ml-2\"\r\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\r\n [label]=\"context?.alternateSaveLabel\"\r\n (clicked)=\"onSave('alternate')\">\r\n </ec-button>\r\n <ec-button *ngIf=\"!context?.hideCancel\"\r\n id=\"cancelConfirmButton\"\r\n class=\"ml-auto\"\r\n type=\"secondary\"\r\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\r\n (clicked)=\"onCancel()\">\r\n </ec-button>\r\n </footer>\r\n </form>\r\n</section>\r\n\r\n<ng-template #inlineConfirmResult>\r\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\r\n <div class=\"d-flex\">\r\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\r\n <div [innerHTML]=\"status?.message | translate\"></div>\r\n </div>\r\n <div class=\"d-flex pt-2 mt-auto\">\r\n <ec-button id=\"inlineConfirmClose\"\r\n label=\"Close\"\r\n type=\"secondary\"\r\n class=\"ml-auto\"\r\n (clicked)=\"status?.action?.onClick!()\"\r\n [autofocus]=\"true\">\r\n </ec-button>\r\n </div>\r\n </section>\r\n</ng-template>", styles: [":host{width:100%;display:flex}.confirm-content{padding:1.5rem;display:flex;flex-direction:column}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}\n"] }]
161
- }], ctorParameters: function () { return []; }, propDecorators: { context: [{
162
- type: Input
163
- }], onDialogSave: [{
164
- type: Output
165
- }], onDialogCancel: [{
166
- type: Output
167
- }] } });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvY29uZmlybS9jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLG9CQUFvQjtJQUFqQztRQUNFLHlGQUF5RjtRQUNsRixPQUFFLEdBQVcsRUFBRSxDQUFDO1FBK0J2Qjs7O1dBR0c7UUFDSSxvQkFBZSxHQUFhLEtBQUssQ0FBQztRQUt6Qyw2Q0FBNkM7UUFDdEMscUJBQWdCLEdBQWEsS0FBSyxDQUFDO1FBRTFDOzs7O1dBSUc7UUFDSSxpQkFBWSxHQUFZLENBQUMsQ0FBQztRQWFqQyxpQ0FBaUM7UUFDMUIsY0FBUyxHQUFZLE1BQU0sQ0FBQyxDQUFDLE9BQU87UUFFM0MsZ0NBQWdDO1FBQ3pCLG1CQUFjLEdBQWdCLFNBQVMsQ0FBQztRQUUvQyxtQ0FBbUM7UUFDNUIsZ0JBQVcsR0FBWSxRQUFRLENBQUMsQ0FBQyxPQUFPO1FBRS9DLDZEQUE2RDtRQUN0RCxlQUFVLEdBQWEsS0FBSyxDQUFDO1FBRXBDLDJGQUEyRjtRQUNwRixnQkFBVyxHQUFhLEtBQUssQ0FBQztRQUVyQywyQ0FBMkM7UUFDcEMsdUJBQWtCLEdBQVksU0FBUyxDQUFDO1FBRS9DLDBDQUEwQztRQUNuQyw0QkFBdUIsR0FBZ0IsU0FBUyxDQUFDO1FBRXhEOzs7V0FHRztRQUNJLGVBQVUsR0FBZ0IsU0FBUyxDQUFDO1FBVTNDLHdFQUF3RTtRQUNqRSxnQ0FBMkIsR0FBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztDQUFBO0FBT0QsTUFBTSxPQUFPLGdCQUFnQjtJQXNCcEIsTUFBTSxDQUFDLFdBQWtDO1FBQzlDLElBQUksQ0FBQyxPQUFPLEdBQUcsV0FBWSxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBWSxDQUFDLEVBQUUsQ0FBQztRQUNoQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUtEO1FBL0JPLGFBQVEsR0FBVyxTQUFTLENBQUM7UUFFcEMsa0RBQWtEO1FBQzNDLGNBQVMsR0FBcUIsSUFBSSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV2RCxXQUFNLEdBQUcsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEMsZ0JBQVcsR0FBVyxLQUFLLENBQUM7UUFFM0IsY0FBUyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFRdkIsaUJBQVksR0FBdUMsSUFBSSxZQUFZLEVBQXdCLENBQUM7UUFDNUYsbUJBQWMsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQWEvRCxDQUFDO0lBRVYsUUFBUTtRQUNiLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBa0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRWxDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUU7WUFDeEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUM5QyxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUM7YUFDaEQ7WUFDRCxJQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFO2dCQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDaEY7WUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUM7WUFFakMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFtQixFQUFFO2dCQUNwQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQzthQUM5QjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDdEM7U0FFRjthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRTtZQUM5QyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUM7U0FDbEQ7SUFDSCxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxJQUFJLENBQy9DLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQzFCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjO1FBQ3BCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELElBQUksWUFBWSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDM0U7YUFBTTtZQUNILGNBQWMsRUFBRSxNQUFNLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxlQUFlO1FBQ3JCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDNUIsSUFBSSxVQUFVLEdBQWtCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFO2dCQUNoQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUN0QztZQUNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRTtnQkFDbEMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FBQzthQUNwRDtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQzlFO1FBRUQsSUFBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBQztZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztZQUN6QixNQUFNLGVBQWUsR0FBRyxJQUFJLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxlQUFlLENBQUMsQ0FBQztTQUN4RDtJQUNILENBQUM7SUFFTyxLQUFLLENBQUMscUJBQXFCO1FBQ2pDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFM0UsSUFBSSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLG1CQUFvQixFQUFFLENBQUM7UUFFdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDOUMsRUFBRSxFQUFFLG9CQUFvQjtZQUN4QixLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsWUFBWTtZQUMzRCxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLGtCQUFrQjtZQUN2RSxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFBLENBQUMsQ0FBQztTQUN4RyxDQUFDLENBQUM7SUFDTCxDQUFDOzs2R0FsSVUsZ0JBQWdCO2lHQUFoQixnQkFBZ0IsK0pDNUg3QixtdUhBMkVjOzJGRGlERCxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTswRUFxQk4sT0FBTztzQkFBdEIsS0FBSztnQkFFVyxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLGNBQWM7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRib3hUeXBlIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0NvbnRlbnQgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLWNvbnRlbnQnO1xyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbnR5cGUgU2F2ZVNvdXJjZSA9ICdwcmltYXJ5J3wnYWx0ZXJuYXRlJztcclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvblJlc3VsdCA9IHtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgaXNTdWNjZXNzOiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmZpcm1EaWFsb2dDb250ZXh0IHtcclxuICAvKiogSWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBjb25maXJtIGNvbXBvbmVudCBjb250ZXh0cyBlbWl0dGVkIGJ5IHRoZSBkaWFsb2cgc2VydmljZSAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBPcHRpb25hbCB0aXRsZSBvZiB0aGUgY29uZmlybSAqL1xyXG4gIHB1YmxpYyB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIG1lc3NhZ2UgKi9cclxuICBwdWJsaWMgbWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGNoZWNrQ29uZmlybVxyXG4gICAqIHRoaXMgd2lsbCBkZXRlcm1pbmUgaWYgZWMtY2hlY2tib3ggaXMgYXZhaWxhYmxlIG9yIG5vXHJcbiAgICogaW4gb3JkZXIgdG8gZGVsZXRlIG9yIG1vdmUgdG8gbm8gcGFyZW50IHRoZSBlbnRpdHlcclxuICAgKi9cclxuICBwdWJsaWMgY2hlY2tDb25maXJtPzpib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBjaGVja2JveENvbnRlbnRcclxuICAgKiBEZXRlcm1pbmUgdGhlIGxhYmVsIG5leHQgdG8gdGhlIGNoZWNrYm94XHJcbiAgICogaWYgY2hlY2tDb25maXJtIGlzIHRydWUgb3RoZXJ3aXNlIGlzIG5vdCB2aXNpYmxlXHJcbiAgICovXHJcblxyXG4gIHB1YmxpYyBjaGVja2JveFRleHQ/OnN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCB0eXBlLCB0aGlzIHdpbGwgZGV0ZXJtaW5lIHdoZXRoZXJcclxuICAgKiBhbiBpbnB1dCBpcyB2aXNpYmxlIG9yIG5vdFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94VHlwZT86IFRleHRib3hUeXBlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBsYWJlbCAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94TGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIHJlcXVpcmVkIGZsYWcgZm9yIHRoZSB0ZXh0Ym94LCB3aWxsIHNldFxyXG4gICAqIGEgdmFsaWRhdG9yIG9uIHRoZSBpbnB1dCBpZiB0cnVlXHJcbiAgICovXHJcbiAgcHVibGljIHRleHRib3hSZXF1aXJlZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFycmF5IG9mIHZhbGlkYXRvcnMgdG8gYWRkIHRvIHRoZSB0ZXh0Ym94IGZvcm0gY29udHJvbC4gKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xyXG5cclxuICAvKiogU2V0cyB0aGUgdGV4dGJveCdzIHVwcGVyY2FzZSBwYXJhbWV0ZXIgKi9cclxuICBwdWJsaWMgdGV4dGJveFVwcGVyY2FzZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCBoZWlnaHQgKGluIHJvd3MpLlxyXG4gICAqIE9ubHkgYXBwbGllcyB0byBtdWx0aS1saW5lIHR5cGUuXHJcbiAgICogRGVmYXVsdCAzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0YXJlYVJvd3M/OiBudW1iZXIgPSAzO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBwbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgcHVibGljIHRleHRib3hQbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRleHRib3ggKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yTWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqIFZhbHVlIHJldHVybmVkIGZyb20gdGhlIGlucHV0IGlmIGVuYWJsZWQgKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbHVlPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBjaGVja2JveFZhbHVlPzpib29sZWFuO1xyXG4gIHB1YmxpYyBjb25maXJtTGFiZWw/OnN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIHNhdmUgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIHNhdmVMYWJlbD86IHN0cmluZyA9ICdTYXZlJzsgLy8gTE9DT1xyXG5cclxuICAvKiogT3B0aW9uYWwgc2F2ZSBidXR0b24gdHlwZSAqL1xyXG4gIHB1YmxpYyBzYXZlQnV0dG9uVHlwZT86IEJ1dHRvblR5cGUgPSAncHJpbWFyeSc7XHJcblxyXG4gIC8qKiBPcHRpb25hbCBjYW5jZWwgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIGNhbmNlbExhYmVsPzogc3RyaW5nID0gJ0NhbmNlbCc7IC8vIExPQ09cclxuXHJcbiAgLyoqIE9wdGlvbmFsIGZsYWcgZm9yIGhpZGluZyB0aGUgY2FuY2VsIChzZWNvbmRhcnkpIGJ1dHRvbiAqL1xyXG4gIHB1YmxpYyBoaWRlQ2FuY2VsPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogV2hlbiB0cnVlLCBhZGRzIHRoZSBzdWJtaXQgdGFnIHRvIHRoZSBzYXZlIGJ1dHRvbiBzbyBoaXR0aW5nIGVudGVyIHRyaWdnZXJzIHRoZSBzYXZlICovXHJcbiAgcHVibGljIHNhdmVPbkVudGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVMYWJlbD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFsdGVybmF0ZSBzYXZlIGJ1dHRvbiB0eXBlICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVCdXR0b25UeXBlPzogQnV0dG9uVHlwZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVXNlZCB0byBrbm93IHdoaWNoIHNhdmUgYnV0dG9uIHdhcyBzZWxlY3RlZCBpbiBjYXNlIHRoZSBjYWxsaW5nIGNvbXBvbmVudFxyXG4gICAqIGlzIHV0aWxpemluZyB0aGUgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIHNhdmVTb3VyY2U/OiBTYXZlU291cmNlID0gJ3ByaW1hcnknO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHByb3ZpZGVkLCB0aGUgY29uZmlybSB3aWxsIHNob3cgYSBwZW5kaW5nIHN0YXRlIGFuZCBjYWxsIHRoaXMsIHRoZW4gdXBvblxyXG4gICAqIGNvbXBsZXRpb24gZGlzcGxheSB0aGUgcmVzdWx0IG1lc3NhZ2UgYW5kIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZFxyXG4gICAqIHN1Y2Nlc3NmdWxseSwgdGhlIGNsb3NlIGJ1dHRvbiB3aWxsIGVtaXQgb25EaWFsb2dTYXZlLiBJZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZCxcclxuICAgKiB0aGUgY2xvc2UgYnV0dG9uIHdpbGwgZW1pdCBvbkRpYWxvZ0NhbmNlbC5cclxuICAgKi9cclxuICBwdWJsaWMgaW5saW5lQ29uZmlybUFjdGlvbj86ICgpID0+IFByb21pc2U8Q3VzdG9tQWN0aW9uUmVzdWx0PjtcclxuXHJcbiAgLyoqIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCB3aGlsZSBpbmxpbmVDb25maXJtQWN0aW9uIGlzIHBlbmRpbmcuICovXHJcbiAgcHVibGljIGlubGluZUNvbmZpcm1QZW5kaW5nTWVzc2FnZT86IHN0cmluZyA9ICcnO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNvbmZpcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZ0NvbnRlbnQ8Q29uZmlybURpYWxvZ0NvbnRleHQ+LCBPbkRlc3Ryb3l7XHJcblxyXG4gIHB1YmxpYyBkaWFsb2dJZDogc3RyaW5nID0gJ0NvbmZpcm0nO1xyXG5cclxuICAvKiogRm9ybSBHcm91cCB0byBob2xkIGFueSBmb3JtIGNvbnRyb2xzIG5lZWRlZCAqL1xyXG4gIHB1YmxpYyBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXMgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xyXG5cclxuICBwdWJsaWMgc2hvd1RleHRCb3g6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGVkIGJ5IHRoZSBjYWxsaW5nIGNvbXBvbmVudCB0byB0ZWxsIHRoZSBjb25maXJtIHdoYXQgdG8gc2hvd1xyXG4gICAqIGFuZCBpcyB1c2VkIG9uIHNhdmUgdG8gc2VuZCBiYWNrIGFueSBlbnRlcmVkIHZhbHVlcyBmcm9tIHRoZSB1c2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRleHQhOiBDb25maXJtRGlhbG9nQ29udGV4dDtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRpYWxvZ1NhdmU6IEV2ZW50RW1pdHRlcjxDb25maXJtRGlhbG9nQ29udGV4dD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpcm1EaWFsb2dDb250ZXh0PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EaWFsb2dDYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIG9uT3BlbihvcGVuQ29udGV4dD86IENvbmZpcm1EaWFsb2dDb250ZXh0KTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRleHQgPSBvcGVuQ29udGV4dCE7XHJcbiAgICB0aGlzLmRpYWxvZ0lkID0gb3BlbkNvbnRleHQhLmlkO1xyXG4gICAgaWYgKHRoaXMuY29udGV4dC5hbHRlcm5hdGVTYXZlTGFiZWwpIHtcclxuICAgICAgdGhpcy5jb250ZXh0LnNhdmVPbkVudGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogRXJyb3IgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBlcnJvciBiYW5uZXIgKi9cclxuICBwdWJsaWMgZXJyb3I/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkRm9ybUNvbnRyb2xzKCk7XHJcbiAgICB0aGlzLnNldFZhbGlkYXRpb25zKCk7XHJcbiAgICB0aGlzLmxpc3RlbkNoZWNrQm94KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TYXZlKHNvdXJjZTogU2F2ZVNvdXJjZSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xyXG4gICAgICBsZXQgZm9ybVZhbHVlcyA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgIGlmIChmb3JtVmFsdWVzLnRleHRib3gpIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQudGV4dGJveFZhbHVlID0gZm9ybVZhbHVlcy50ZXh0Ym94O1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMuY29udGV4dC5jaGVja0NvbmZpcm0pIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQuY2hlY2tib3hWYWx1ZSA9IGZvcm1WYWx1ZXMuY2hlY2tib3ggPyBmb3JtVmFsdWVzLmNoZWNrYm94IDogZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29udGV4dC5zYXZlU291cmNlID0gc291cmNlO1xyXG5cclxuICAgICAgaWYgKHRoaXMuY29udGV4dC5pbmxpbmVDb25maXJtQWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5kb0lubGluZUNvbmZpcm1BY3Rpb24oKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uRGlhbG9nU2F2ZS5lbWl0KHRoaXMuY29udGV4dCk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGV4dC52YWxpZGF0aW9uRXJyb3JNZXNzYWdlKSB7XHJcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLmNvbnRleHQudmFsaWRhdGlvbkVycm9yTWVzc2FnZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25EaWFsb2dDYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsaXN0ZW5DaGVja0JveCgpOnZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGVja2JveCcpPy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLnNob3dUZXh0Qm94ID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWxpZGF0aW9ucygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNob3dDaGVja0JveCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnY2hlY2tib3gnKTtcclxuICAgIGNvbnN0IHRleHRCb3hDb250cm9sID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ3RleHRib3gnXTtcclxuXHJcbiAgICBpZiAoc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgdGhpcy5zaG93VGV4dEJveCA/IHRleHRCb3hDb250cm9sPy5lbmFibGUoKSA6IHRleHRCb3hDb250cm9sPy5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRleHRCb3hDb250cm9sPy5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgdGhlIHRleHRib3ggZm9ybSBjb250cm9sIHRvIG91ciBmb3JtIGdyb3VwIGlmIGl0cyBjb25maWd1cmVkIHRvIGJlIHZpc2libGVcclxuICAgKiBXaWxsIGFsc28gYWRkIHRoZSByZXF1aXJlZCB2YWxpZGF0b3IgaWYgcmVxdWVzdGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRGb3JtQ29udHJvbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250ZXh0LnRleHRib3hUeXBlKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFJlcXVpcmVkKSB7XHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFZhbGlkYXRvcnMpIHtcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goLi4udGhpcy5jb250ZXh0LnRleHRib3hWYWxpZGF0b3JzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCd0ZXh0Ym94JywgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgdmFsaWRhdG9ycykpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuY29udGV4dC5jaGVja0NvbmZpcm0pe1xyXG4gICAgICB0aGlzLnNob3dUZXh0Qm94ID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IGNoZWNrYm94Q29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdjaGVja2JveCcsIGNoZWNrYm94Q29udHJvbCk7ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGRvSW5saW5lQ29uZmlybUFjdGlvbigpIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygncGVuZGluZycsIHRoaXMuY29udGV4dC5pbmxpbmVDb25maXJtUGVuZGluZ01lc3NhZ2UpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbnRleHQuaW5saW5lQ29uZmlybUFjdGlvbiEoKTtcclxuXHJcbiAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ25vRGF0YScsIHJlc3VsdC5tZXNzYWdlLCB7XHJcbiAgICAgIGlkOiAnaW5saW5lQ29uZmlybUNsb3NlJyxcclxuICAgICAgbGFiZWw6ICdDbG9zZScsXHJcbiAgICAgIGljb246IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnaWNvbi1jaGVjay1jaXJjbGUnIDogJ2ljb24tZXJyb3InLFxyXG4gICAgICBjbGFzc2xpc3Q6IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnZm9udC1jb2xvci1zdWNjZXNzJyA6ICdmb250LWNvbG9yLWVycm9yJyxcclxuICAgICAgb25DbGljazogKCkgPT4geyByZXN1bHQuaXNTdWNjZXNzID8gdGhpcy5vbkRpYWxvZ1NhdmUuZW1pdCh0aGlzLmNvbnRleHQpIDogdGhpcy5vbkRpYWxvZ0NhbmNlbC5lbWl0KCkgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGVjT3ZlcmxheVxyXG4gICAgICAgICBbc3RhdHVzXT1cInN0YXR1cz8uc3RhdHVzXCJcclxuICAgICAgICAgW21lc3NhZ2VdPVwic3RhdHVzPy5tZXNzYWdlXCJcclxuICAgICAgICAgW2FjdGlvbl09XCJzdGF0dXM/LmFjdGlvblwiXHJcbiAgICAgICAgIFtub0RhdGFUZW1wbGF0ZV09XCJpbmxpbmVDb25maXJtUmVzdWx0XCJcclxuICAgICAgICAgb3ZlcmxheUNsYXNzTGlzdD1cInAtMFwiXHJcbiAgICAgICAgIGNsYXNzPVwiYmctYm9keSBmbGV4LWdyb3cgZC1mbGV4XCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cImZsZXgtZ3JvdyBmbGV4LWNvbHVtbiBjb25maXJtLWNvbnRlbnQgdGV4dC1ib2R5LTFcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGQgbWItM1wiICpuZ0lmPVwiY29udGV4dD8udGl0bGVcIj57e2NvbnRleHQ/LnRpdGxlfX08L2gyPlxyXG4gICAgICA8ZWMtYmFubmVyICpuZ0lmPVwiZXJyb3JcIiBbdGV4dF09XCJlcnJvciB8IHRyYW5zbGF0ZVwiIGJhbm5lclN0eWxlPVwibm9ybWFsXCIgY2xhc3M9XCJtYi0zXCI+PC9lYy1iYW5uZXI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZXh0Py5tZXNzYWdlXCIgW2lubmVySHRtbF09XCJjb250ZXh0Py5tZXNzYWdlIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJtYi0zXCI+PC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICA8ZWMtY2hlY2tib3ggKm5nSWY9XCJjb250ZXh0Py5jaGVja0NvbmZpcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtTW9kZWxdPVwiZm9ybUdyb3VwLmdldCgnY2hlY2tib3gnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNvbmZpcm1DaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbnRleHQ/LmNoZWNrYm94VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9lYy1jaGVja2JveD5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dUZXh0Qm94XCIgW2lubmVySHRtbF09XCJjb250ZXh0LmNvbmZpcm1MYWJlbFwiIGNsYXNzPVwibWItM1wiPjwvZGl2PlxyXG4gICAgICA8ZWMtdGV4dGJveCBpZD1cImNvbmZpcm1UZXh0Ym94XCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoY29udGV4dD8udGV4dGJveFR5cGUgJiYgIWNvbnRleHQ/LmNoZWNrQ29uZmlybSkgfHwgc2hvd1RleHRCb3hcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybU1vZGVsXT1cImZvcm1Hcm91cC5nZXQoJ3RleHRib3gnKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJjb250ZXh0Py50ZXh0Ym94UmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8udGV4dGJveExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29udGV4dD8udGV4dGJveFR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICBbcm93c109XCJjb250ZXh0Py50ZXh0YXJlYVJvd3NcIlxyXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udGV4dD8udGV4dGJveFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3VwcGVyQ2FzZV09XCJjb250ZXh0Py50ZXh0Ym94VXBwZXJjYXNlXCI+XHJcbiAgICAgIDwvZWMtdGV4dGJveD5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJtdC1hdXRvIGZsZXgtc2hyaW5rIGQtZmxleCBweS0yIGZsZXgtcm93LXJldmVyc2VcIj5cclxuICAgICAgPGVjLWJ1dHRvbiBpZD1cInNhdmVDb25maXJtQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0yXCJcclxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29udGV4dD8uc2F2ZUJ1dHRvblR5cGUgPyBjb250ZXh0Py5zYXZlQnV0dG9uVHlwZSA6ICdwcmltYXJ5J1wiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjb250ZXh0Py5zYXZlTGFiZWwgPyBjb250ZXh0Py5zYXZlTGFiZWwgOiAnU2F2ZSdcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cIiFjb250ZXh0Py50ZXh0Ym94VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpc1N1Ym1pdF09XCJjb250ZXh0Py5zYXZlT25FbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2F2ZSgncHJpbWFyeScpXCI+XHJcbiAgICAgIDwvZWMtYnV0dG9uPlxyXG4gICAgICA8ZWMtYnV0dG9uIGlkPVwiYWx0ZXJuYXRlU2F2ZUNvbmZpcm1CdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRleHQ/LmFsdGVybmF0ZVNhdmVMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMlwiXHJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbnRleHQ/LmFsdGVybmF0ZVNhdmVCdXR0b25UeXBlID8gY29udGV4dD8uYWx0ZXJuYXRlU2F2ZUJ1dHRvblR5cGUgOiAncHJpbWFyeSdcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8uYWx0ZXJuYXRlU2F2ZUxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25TYXZlKCdhbHRlcm5hdGUnKVwiPlxyXG4gICAgICA8L2VjLWJ1dHRvbj5cclxuICAgICAgPGVjLWJ1dHRvbiAgKm5nSWY9XCIhY29udGV4dD8uaGlkZUNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICAgIGlkPVwiY2FuY2VsQ29uZmlybUJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8uY2FuY2VsTGFiZWwgPyBjb250ZXh0Py5jYW5jZWxMYWJlbCA6ICdDYW5jZWwnXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25DYW5jZWwoKVwiPlxyXG4gICAgICA8L2VjLWJ1dHRvbj5cclxuICAgIDwvZm9vdGVyPlxyXG4gIDwvZm9ybT5cclxuPC9zZWN0aW9uPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbmxpbmVDb25maXJtUmVzdWx0PlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiZmxleC1ncm93IGFsaWduLXNlbGYtc3RyZXRjaCBjb25maXJtLWNvbnRlbnQgdGV4dC1ib2R5LTFcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIHt7c3RhdHVzPy5hY3Rpb24/Lmljb259fSB7e3N0YXR1cz8uYWN0aW9uPy5jbGFzc2xpc3R9fSBpbmxpbmUtY29uZmlybS1yZXN1bHQtaWNvblwiPjwvaT5cclxuICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInN0YXR1cz8ubWVzc2FnZSB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHB0LTIgbXQtYXV0b1wiPlxyXG4gICAgICA8ZWMtYnV0dG9uIGlkPVwiaW5saW5lQ29uZmlybUNsb3NlXCJcclxuICAgICAgICAgICAgICAgICBsYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICAgICAgICAgICB0eXBlPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInN0YXR1cz8uYWN0aW9uPy5vbkNsaWNrISgpXCJcclxuICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIj5cclxuICAgICAgPC9lYy1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvbmctdGVtcGxhdGU+Il19
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
3
+ import { Overlay } from '../view-overlay/view-overlay.component';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { Subject } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "../../controls/button/button.component";
10
+ import * as i4 from "../../controls/textbox/textbox.component";
11
+ import * as i5 from "../view-overlay/view-overlay.component";
12
+ import * as i6 from "../../controls/banner/banner.component";
13
+ import * as i7 from "../../controls/checkbox/checkbox.component";
14
+ import * as i8 from "@ngx-translate/core";
15
+ export class ConfirmDialogContext {
16
+ constructor() {
17
+ /** Id to distinguish between confirm component contexts emitted by the dialog service */
18
+ this.id = '';
19
+ /**
20
+ * Optional required flag for the textbox, will set
21
+ * a validator on the input if true
22
+ */
23
+ this.textboxRequired = false;
24
+ /** Sets the textbox's uppercase parameter */
25
+ this.textboxUppercase = false;
26
+ /**
27
+ * Optional textbox height (in rows).
28
+ * Only applies to multi-line type.
29
+ * Default 3.
30
+ */
31
+ this.textareaRows = 3;
32
+ /** Optional save button label */
33
+ this.saveLabel = 'Save'; // LOCO
34
+ /** Optional save button type */
35
+ this.saveButtonType = 'primary';
36
+ /** Optional cancel button label */
37
+ this.cancelLabel = 'Cancel'; // LOCO
38
+ /** Optional flag for hiding the cancel (secondary) button */
39
+ this.hideCancel = false;
40
+ /** When true, adds the submit tag to the save button so hitting enter triggers the save */
41
+ this.saveOnEnter = false;
42
+ /** Optional alternate save button label */
43
+ this.alternateSaveLabel = undefined;
44
+ /** Optional alternate save button type */
45
+ this.alternateSaveButtonType = undefined;
46
+ /**
47
+ * Used to know which save button was selected in case the calling component
48
+ * is utilizing the alternate save button
49
+ */
50
+ this.saveSource = 'primary';
51
+ /** The message to be displayed while inlineConfirmAction is pending. */
52
+ this.inlineConfirmPendingMessage = '';
53
+ }
54
+ }
55
+ export class ConfirmComponent {
56
+ onOpen(openContext) {
57
+ this.context = openContext;
58
+ this.dialogId = openContext.id;
59
+ if (this.context.alternateSaveLabel) {
60
+ this.context.saveOnEnter = false;
61
+ }
62
+ }
63
+ constructor() {
64
+ this.dialogId = 'Confirm';
65
+ /** Form Group to hold any form controls needed */
66
+ this.formGroup = new UntypedFormGroup({});
67
+ this.status = new Overlay('hasData');
68
+ this.showTextBox = false;
69
+ this.destroyed = new Subject();
70
+ this.onDialogSave = new EventEmitter();
71
+ this.onDialogCancel = new EventEmitter();
72
+ }
73
+ ngOnInit() {
74
+ this.addFormControls();
75
+ this.setValidations();
76
+ this.listenCheckBox();
77
+ }
78
+ onSave(source) {
79
+ this.formGroup.markAllAsTouched();
80
+ if (this.formGroup.valid) {
81
+ let formValues = this.formGroup.getRawValue();
82
+ if (formValues.textbox) {
83
+ this.context.textboxValue = formValues.textbox;
84
+ }
85
+ if (this.context.checkConfirm) {
86
+ this.context.checkboxValue = formValues.checkbox ? formValues.checkbox : false;
87
+ }
88
+ this.context.saveSource = source;
89
+ if (this.context.inlineConfirmAction) {
90
+ this.doInlineConfirmAction();
91
+ }
92
+ else {
93
+ this.onDialogSave.emit(this.context);
94
+ }
95
+ }
96
+ else if (this.context.validationErrorMessage) {
97
+ this.error = this.context.validationErrorMessage;
98
+ }
99
+ }
100
+ onCancel() {
101
+ this.onDialogCancel.emit();
102
+ }
103
+ ngOnDestroy() {
104
+ this.destroyed.next();
105
+ this.destroyed.complete();
106
+ }
107
+ listenCheckBox() {
108
+ this.formGroup.get('checkbox')?.valueChanges.pipe(takeUntil(this.destroyed)).subscribe(value => {
109
+ this.showTextBox = value;
110
+ this.setValidations();
111
+ });
112
+ }
113
+ setValidations() {
114
+ const showCheckBox = this.formGroup.get('checkbox');
115
+ const textBoxControl = this.formGroup.controls['textbox'];
116
+ if (showCheckBox) {
117
+ this.showTextBox ? textBoxControl?.enable() : textBoxControl?.disable();
118
+ }
119
+ else {
120
+ textBoxControl?.enable();
121
+ }
122
+ }
123
+ /**
124
+ * Adds the textbox form control to our form group if its configured to be visible
125
+ * Will also add the required validator if requested
126
+ */
127
+ addFormControls() {
128
+ if (this.context.textboxType) {
129
+ let validators = [];
130
+ if (this.context.textboxRequired) {
131
+ validators.push(Validators.required);
132
+ }
133
+ if (this.context.textboxValidators) {
134
+ validators.push(...this.context.textboxValidators);
135
+ }
136
+ this.formGroup.addControl('textbox', new UntypedFormControl('', validators));
137
+ }
138
+ if (this.context.checkConfirm) {
139
+ this.showTextBox = false;
140
+ const checkboxControl = new UntypedFormControl('');
141
+ this.formGroup.addControl('checkbox', checkboxControl);
142
+ }
143
+ }
144
+ async doInlineConfirmAction() {
145
+ this.status.setStatus('pending', this.context.inlineConfirmPendingMessage);
146
+ let result = await this.context.inlineConfirmAction();
147
+ this.status.setStatus('noData', result.message, {
148
+ id: 'inlineConfirmClose',
149
+ label: 'Close',
150
+ icon: result.isSuccess ? 'icon-check-circle' : 'icon-error',
151
+ classlist: result.isSuccess ? 'font-color-success' : 'font-color-error',
152
+ onClick: () => { result.isSuccess ? this.onDialogSave.emit(this.context) : this.onDialogCancel.emit(); }
153
+ });
154
+ }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
156
+ static { thiscmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmComponent, selector: "ec-confirm", inputs: { context: "context" }, outputs: { onDialogSave: "onDialogSave", onDialogCancel: "onDialogCancel" }, ngImport: i0, template: "<section ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [action]=\"status?.action\"\r\n [noDataTemplate]=\"inlineConfirmResult\"\r\n overlayClassList=\"p-0\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\r\n <section class=\"flex-grow\">\r\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\r\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\r\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\r\n \r\n <ec-checkbox *ngIf=\"context?.checkConfirm\"\r\n [formModel]=\"formGroup.get('checkbox')\"\r\n name=\"confirmCheckbox\"\r\n [label]=\"context?.checkboxText\"\r\n [autofocus]=\"true\"\r\n ></ec-checkbox>\r\n <div *ngIf=\"showTextBox\" [innerHtml]=\"context.confirmLabel\" class=\"mb-3\"></div>\r\n <ec-textbox id=\"confirmTextbox\"\r\n *ngIf=\"(context?.textboxType && !context?.checkConfirm) || showTextBox\"\r\n [autofocus]=\"true\"\r\n [formModel]=\"formGroup.get('textbox')\"\r\n [required]=\"context?.textboxRequired\"\r\n [label]=\"context?.textboxLabel\"\r\n [type]=\"context?.textboxType\"\r\n [rows]=\"context?.textareaRows\"\r\n [placeholder]=\"context?.textboxPlaceholder\"\r\n [upperCase]=\"context?.textboxUppercase\">\r\n </ec-textbox>\r\n </section>\r\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\r\n <ec-button id=\"saveConfirmButton\"\r\n class=\"ml-2\"\r\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\r\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\r\n [autofocus]=\"!context?.textboxType\"\r\n [isSubmit]=\"context?.saveOnEnter\"\r\n (clicked)=\"onSave('primary')\">\r\n </ec-button>\r\n <ec-button id=\"alternateSaveConfirmButton\"\r\n *ngIf=\"context?.alternateSaveLabel\"\r\n class=\"ml-2\"\r\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\r\n [label]=\"context?.alternateSaveLabel\"\r\n (clicked)=\"onSave('alternate')\">\r\n </ec-button>\r\n <ec-button *ngIf=\"!context?.hideCancel\"\r\n id=\"cancelConfirmButton\"\r\n class=\"ml-auto\"\r\n type=\"secondary\"\r\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\r\n (clicked)=\"onCancel()\">\r\n </ec-button>\r\n </footer>\r\n </form>\r\n</section>\r\n\r\n<ng-template #inlineConfirmResult>\r\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\r\n <div class=\"d-flex\">\r\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\r\n <div [innerHTML]=\"status?.message | translate\"></div>\r\n </div>\r\n <div class=\"d-flex pt-2 mt-auto\">\r\n <ec-button id=\"inlineConfirmClose\"\r\n label=\"Close\"\r\n type=\"secondary\"\r\n class=\"ml-auto\"\r\n (clicked)=\"status?.action?.onClick!()\"\r\n [autofocus]=\"true\">\r\n </ec-button>\r\n </div>\r\n </section>\r\n</ng-template>", styles: [":host{width:100%;display:flex}.confirm-content{padding:1.5rem;display:flex;flex-direction:column}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "component", type: i4.TextboxComponent, selector: "ec-textbox", inputs: ["autocomplete", "type", "placeholder", "maxlength", "minlength", "rows", "selectOnAutofocus", "upperCase"] }, { kind: "component", type: i5.ViewOverlayComponent, selector: "[ecOverlay]", inputs: ["status", "message", "action", "noDataTemplate", "displayAsMask", "overlayClassList"] }, { kind: "component", type: i6.BannerComponent, selector: "ec-banner", inputs: ["hidden", "id", "type", "bannerStyle", "title", "text", "list", "showCloseBtn", "autoHideOnClose", "customIcon", "rememberClosed"], outputs: ["closed"] }, { kind: "component", type: i7.CheckboxComponent, selector: "ec-checkbox", inputs: ["name", "dependentCheckboxesGroup", "ignoreDisabledDependents"] }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }] }); }
157
+ }
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmComponent, decorators: [{
159
+ type: Component,
160
+ args: [{ selector: 'ec-confirm', template: "<section ecOverlay\r\n [status]=\"status?.status\"\r\n [message]=\"status?.message\"\r\n [action]=\"status?.action\"\r\n [noDataTemplate]=\"inlineConfirmResult\"\r\n overlayClassList=\"p-0\"\r\n class=\"bg-body flex-grow d-flex\">\r\n <form [formGroup]=\"formGroup\" class=\"flex-grow flex-column confirm-content text-body-1\">\r\n <section class=\"flex-grow\">\r\n <h2 class=\"font-weight-bold mb-3\" *ngIf=\"context?.title\">{{context?.title}}</h2>\r\n <ec-banner *ngIf=\"error\" [text]=\"error | translate\" bannerStyle=\"normal\" class=\"mb-3\"></ec-banner>\r\n <div *ngIf=\"context?.message\" [innerHtml]=\"context?.message | translate\" class=\"mb-3\"></div>\r\n \r\n <ec-checkbox *ngIf=\"context?.checkConfirm\"\r\n [formModel]=\"formGroup.get('checkbox')\"\r\n name=\"confirmCheckbox\"\r\n [label]=\"context?.checkboxText\"\r\n [autofocus]=\"true\"\r\n ></ec-checkbox>\r\n <div *ngIf=\"showTextBox\" [innerHtml]=\"context.confirmLabel\" class=\"mb-3\"></div>\r\n <ec-textbox id=\"confirmTextbox\"\r\n *ngIf=\"(context?.textboxType && !context?.checkConfirm) || showTextBox\"\r\n [autofocus]=\"true\"\r\n [formModel]=\"formGroup.get('textbox')\"\r\n [required]=\"context?.textboxRequired\"\r\n [label]=\"context?.textboxLabel\"\r\n [type]=\"context?.textboxType\"\r\n [rows]=\"context?.textareaRows\"\r\n [placeholder]=\"context?.textboxPlaceholder\"\r\n [upperCase]=\"context?.textboxUppercase\">\r\n </ec-textbox>\r\n </section>\r\n <footer class=\"mt-auto flex-shrink d-flex py-2 flex-row-reverse\">\r\n <ec-button id=\"saveConfirmButton\"\r\n class=\"ml-2\"\r\n [type]=\"context?.saveButtonType ? context?.saveButtonType : 'primary'\"\r\n [label]=\"context?.saveLabel ? context?.saveLabel : 'Save'\"\r\n [autofocus]=\"!context?.textboxType\"\r\n [isSubmit]=\"context?.saveOnEnter\"\r\n (clicked)=\"onSave('primary')\">\r\n </ec-button>\r\n <ec-button id=\"alternateSaveConfirmButton\"\r\n *ngIf=\"context?.alternateSaveLabel\"\r\n class=\"ml-2\"\r\n [type]=\"context?.alternateSaveButtonType ? context?.alternateSaveButtonType : 'primary'\"\r\n [label]=\"context?.alternateSaveLabel\"\r\n (clicked)=\"onSave('alternate')\">\r\n </ec-button>\r\n <ec-button *ngIf=\"!context?.hideCancel\"\r\n id=\"cancelConfirmButton\"\r\n class=\"ml-auto\"\r\n type=\"secondary\"\r\n [label]=\"context?.cancelLabel ? context?.cancelLabel : 'Cancel'\"\r\n (clicked)=\"onCancel()\">\r\n </ec-button>\r\n </footer>\r\n </form>\r\n</section>\r\n\r\n<ng-template #inlineConfirmResult>\r\n <section class=\"flex-grow align-self-stretch confirm-content text-body-1\">\r\n <div class=\"d-flex\">\r\n <i class=\"ec-icon {{status?.action?.icon}} {{status?.action?.classlist}} inline-confirm-result-icon\"></i>\r\n <div [innerHTML]=\"status?.message | translate\"></div>\r\n </div>\r\n <div class=\"d-flex pt-2 mt-auto\">\r\n <ec-button id=\"inlineConfirmClose\"\r\n label=\"Close\"\r\n type=\"secondary\"\r\n class=\"ml-auto\"\r\n (clicked)=\"status?.action?.onClick!()\"\r\n [autofocus]=\"true\">\r\n </ec-button>\r\n </div>\r\n </section>\r\n</ng-template>", styles: [":host{width:100%;display:flex}.confirm-content{padding:1.5rem;display:flex;flex-direction:column}.inline-confirm-result-icon{margin:.0625rem .25rem .0625rem 0}\n"] }]
161
+ }], ctorParameters: function () { return []; }, propDecorators: { context: [{
162
+ type: Input
163
+ }], onDialogSave: [{
164
+ type: Output
165
+ }], onDialogCancel: [{
166
+ type: Output
167
+ }] } });
168
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvY29uZmlybS9jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBZSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUsvRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDakUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTL0IsTUFBTSxPQUFPLG9CQUFvQjtJQUFqQztRQUNFLHlGQUF5RjtRQUNsRixPQUFFLEdBQVcsRUFBRSxDQUFDO1FBK0J2Qjs7O1dBR0c7UUFDSSxvQkFBZSxHQUFhLEtBQUssQ0FBQztRQUt6Qyw2Q0FBNkM7UUFDdEMscUJBQWdCLEdBQWEsS0FBSyxDQUFDO1FBRTFDOzs7O1dBSUc7UUFDSSxpQkFBWSxHQUFZLENBQUMsQ0FBQztRQWFqQyxpQ0FBaUM7UUFDMUIsY0FBUyxHQUFZLE1BQU0sQ0FBQyxDQUFDLE9BQU87UUFFM0MsZ0NBQWdDO1FBQ3pCLG1CQUFjLEdBQWdCLFNBQVMsQ0FBQztRQUUvQyxtQ0FBbUM7UUFDNUIsZ0JBQVcsR0FBWSxRQUFRLENBQUMsQ0FBQyxPQUFPO1FBRS9DLDZEQUE2RDtRQUN0RCxlQUFVLEdBQWEsS0FB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RGlERCxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsWUFBWTswRUFxQk4sT0FBTztzQkFBdEIsS0FBSztnQkFFVyxZQUFZO3NCQUE1QixNQUFNO2dCQUNVLGNBQWM7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmltcG9ydCB7IEJ1dHRvblR5cGUgfSBmcm9tICcuLi8uLi9jb250cm9scy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRleHRib3hUeXBlIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvdGV4dGJveC90ZXh0Ym94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IERpYWxvZ0NvbnRlbnQgfSBmcm9tICcuLi9kaWFsb2cvZGlhbG9nLWNvbnRlbnQnO1xyXG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnLi4vdmlldy1vdmVybGF5L3ZpZXctb3ZlcmxheS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbnR5cGUgU2F2ZVNvdXJjZSA9ICdwcmltYXJ5J3wnYWx0ZXJuYXRlJztcclxuXHJcbmV4cG9ydCB0eXBlIEN1c3RvbUFjdGlvblJlc3VsdCA9IHtcclxuICBtZXNzYWdlOiBzdHJpbmc7XHJcbiAgaXNTdWNjZXNzOiBib29sZWFuO1xyXG59O1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbmZpcm1EaWFsb2dDb250ZXh0IHtcclxuICAvKiogSWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiBjb25maXJtIGNvbXBvbmVudCBjb250ZXh0cyBlbWl0dGVkIGJ5IHRoZSBkaWFsb2cgc2VydmljZSAqL1xyXG4gIHB1YmxpYyBpZDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKiBPcHRpb25hbCB0aXRsZSBvZiB0aGUgY29uZmlybSAqL1xyXG4gIHB1YmxpYyB0aXRsZT86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIG1lc3NhZ2UgKi9cclxuICBwdWJsaWMgbWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGNoZWNrQ29uZmlybVxyXG4gICAqIHRoaXMgd2lsbCBkZXRlcm1pbmUgaWYgZWMtY2hlY2tib3ggaXMgYXZhaWxhYmxlIG9yIG5vXHJcbiAgICogaW4gb3JkZXIgdG8gZGVsZXRlIG9yIG1vdmUgdG8gbm8gcGFyZW50IHRoZSBlbnRpdHlcclxuICAgKi9cclxuICBwdWJsaWMgY2hlY2tDb25maXJtPzpib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBjaGVja2JveENvbnRlbnRcclxuICAgKiBEZXRlcm1pbmUgdGhlIGxhYmVsIG5leHQgdG8gdGhlIGNoZWNrYm94XHJcbiAgICogaWYgY2hlY2tDb25maXJtIGlzIHRydWUgb3RoZXJ3aXNlIGlzIG5vdCB2aXNpYmxlXHJcbiAgICovXHJcblxyXG4gIHB1YmxpYyBjaGVja2JveFRleHQ/OnN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCB0eXBlLCB0aGlzIHdpbGwgZGV0ZXJtaW5lIHdoZXRoZXJcclxuICAgKiBhbiBpbnB1dCBpcyB2aXNpYmxlIG9yIG5vdFxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94VHlwZT86IFRleHRib3hUeXBlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBsYWJlbCAqL1xyXG4gIHB1YmxpYyB0ZXh0Ym94TGFiZWw/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIE9wdGlvbmFsIHJlcXVpcmVkIGZsYWcgZm9yIHRoZSB0ZXh0Ym94LCB3aWxsIHNldFxyXG4gICAqIGEgdmFsaWRhdG9yIG9uIHRoZSBpbnB1dCBpZiB0cnVlXHJcbiAgICovXHJcbiAgcHVibGljIHRleHRib3hSZXF1aXJlZD86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFycmF5IG9mIHZhbGlkYXRvcnMgdG8gYWRkIHRvIHRoZSB0ZXh0Ym94IGZvcm0gY29udHJvbC4gKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbGlkYXRvcnM/OiBWYWxpZGF0b3JGbltdO1xyXG5cclxuICAvKiogU2V0cyB0aGUgdGV4dGJveCdzIHVwcGVyY2FzZSBwYXJhbWV0ZXIgKi9cclxuICBwdWJsaWMgdGV4dGJveFVwcGVyY2FzZT86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3B0aW9uYWwgdGV4dGJveCBoZWlnaHQgKGluIHJvd3MpLlxyXG4gICAqIE9ubHkgYXBwbGllcyB0byBtdWx0aS1saW5lIHR5cGUuXHJcbiAgICogRGVmYXVsdCAzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyB0ZXh0YXJlYVJvd3M/OiBudW1iZXIgPSAzO1xyXG5cclxuICAvKiogT3B0aW9uYWwgdGV4dGJveCBwbGFjZWhvbGRlciB0ZXh0ICovXHJcbiAgcHVibGljIHRleHRib3hQbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGVycm9yIG1lc3NhZ2UgdG8gZGlzcGxheSB3aGVuIHRleHRib3ggKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yTWVzc2FnZT86IHN0cmluZztcclxuXHJcbiAgLyoqIFZhbHVlIHJldHVybmVkIGZyb20gdGhlIGlucHV0IGlmIGVuYWJsZWQgKi9cclxuICBwdWJsaWMgdGV4dGJveFZhbHVlPzogc3RyaW5nO1xyXG4gIHB1YmxpYyBjaGVja2JveFZhbHVlPzpib29sZWFuO1xyXG4gIHB1YmxpYyBjb25maXJtTGFiZWw/OnN0cmluZztcclxuXHJcbiAgLyoqIE9wdGlvbmFsIHNhdmUgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIHNhdmVMYWJlbD86IHN0cmluZyA9ICdTYXZlJzsgLy8gTE9DT1xyXG5cclxuICAvKiogT3B0aW9uYWwgc2F2ZSBidXR0b24gdHlwZSAqL1xyXG4gIHB1YmxpYyBzYXZlQnV0dG9uVHlwZT86IEJ1dHRvblR5cGUgPSAncHJpbWFyeSc7XHJcblxyXG4gIC8qKiBPcHRpb25hbCBjYW5jZWwgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIGNhbmNlbExhYmVsPzogc3RyaW5nID0gJ0NhbmNlbCc7IC8vIExPQ09cclxuXHJcbiAgLyoqIE9wdGlvbmFsIGZsYWcgZm9yIGhpZGluZyB0aGUgY2FuY2VsIChzZWNvbmRhcnkpIGJ1dHRvbiAqL1xyXG4gIHB1YmxpYyBoaWRlQ2FuY2VsPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogV2hlbiB0cnVlLCBhZGRzIHRoZSBzdWJtaXQgdGFnIHRvIHRoZSBzYXZlIGJ1dHRvbiBzbyBoaXR0aW5nIGVudGVyIHRyaWdnZXJzIHRoZSBzYXZlICovXHJcbiAgcHVibGljIHNhdmVPbkVudGVyPzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKiogT3B0aW9uYWwgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uIGxhYmVsICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVMYWJlbD86IHN0cmluZyA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqIE9wdGlvbmFsIGFsdGVybmF0ZSBzYXZlIGJ1dHRvbiB0eXBlICovXHJcbiAgcHVibGljIGFsdGVybmF0ZVNhdmVCdXR0b25UeXBlPzogQnV0dG9uVHlwZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogVXNlZCB0byBrbm93IHdoaWNoIHNhdmUgYnV0dG9uIHdhcyBzZWxlY3RlZCBpbiBjYXNlIHRoZSBjYWxsaW5nIGNvbXBvbmVudFxyXG4gICAqIGlzIHV0aWxpemluZyB0aGUgYWx0ZXJuYXRlIHNhdmUgYnV0dG9uXHJcbiAgICovXHJcbiAgcHVibGljIHNhdmVTb3VyY2U/OiBTYXZlU291cmNlID0gJ3ByaW1hcnknO1xyXG5cclxuICAvKipcclxuICAgKiBXaGVuIHByb3ZpZGVkLCB0aGUgY29uZmlybSB3aWxsIHNob3cgYSBwZW5kaW5nIHN0YXRlIGFuZCBjYWxsIHRoaXMsIHRoZW4gdXBvblxyXG4gICAqIGNvbXBsZXRpb24gZGlzcGxheSB0aGUgcmVzdWx0IG1lc3NhZ2UgYW5kIGEgY2xvc2UgYnV0dG9uLiBJZiB0aGUgcHJvbWlzZSBpcyByZXNvbHZlZFxyXG4gICAqIHN1Y2Nlc3NmdWxseSwgdGhlIGNsb3NlIGJ1dHRvbiB3aWxsIGVtaXQgb25EaWFsb2dTYXZlLiBJZiB0aGUgcHJvbWlzZSBpcyByZWplY3RlZCxcclxuICAgKiB0aGUgY2xvc2UgYnV0dG9uIHdpbGwgZW1pdCBvbkRpYWxvZ0NhbmNlbC5cclxuICAgKi9cclxuICBwdWJsaWMgaW5saW5lQ29uZmlybUFjdGlvbj86ICgpID0+IFByb21pc2U8Q3VzdG9tQWN0aW9uUmVzdWx0PjtcclxuXHJcbiAgLyoqIFRoZSBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCB3aGlsZSBpbmxpbmVDb25maXJtQWN0aW9uIGlzIHBlbmRpbmcuICovXHJcbiAgcHVibGljIGlubGluZUNvbmZpcm1QZW5kaW5nTWVzc2FnZT86IHN0cmluZyA9ICcnO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWNvbmZpcm0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb25maXJtLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbmZpcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIERpYWxvZ0NvbnRlbnQ8Q29uZmlybURpYWxvZ0NvbnRleHQ+LCBPbkRlc3Ryb3l7XHJcblxyXG4gIHB1YmxpYyBkaWFsb2dJZDogc3RyaW5nID0gJ0NvbmZpcm0nO1xyXG5cclxuICAvKiogRm9ybSBHcm91cCB0byBob2xkIGFueSBmb3JtIGNvbnRyb2xzIG5lZWRlZCAqL1xyXG4gIHB1YmxpYyBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XHJcblxyXG4gIHB1YmxpYyBzdGF0dXMgPSBuZXcgT3ZlcmxheSgnaGFzRGF0YScpO1xyXG5cclxuICBwdWJsaWMgc2hvd1RleHRCb3g6Ym9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFByb3ZpZGVkIGJ5IHRoZSBjYWxsaW5nIGNvbXBvbmVudCB0byB0ZWxsIHRoZSBjb25maXJtIHdoYXQgdG8gc2hvd1xyXG4gICAqIGFuZCBpcyB1c2VkIG9uIHNhdmUgdG8gc2VuZCBiYWNrIGFueSBlbnRlcmVkIHZhbHVlcyBmcm9tIHRoZSB1c2VyXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRleHQhOiBDb25maXJtRGlhbG9nQ29udGV4dDtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBvbkRpYWxvZ1NhdmU6IEV2ZW50RW1pdHRlcjxDb25maXJtRGlhbG9nQ29udGV4dD4gPSBuZXcgRXZlbnRFbWl0dGVyPENvbmZpcm1EaWFsb2dDb250ZXh0PigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgb25EaWFsb2dDYW5jZWw6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgcHVibGljIG9uT3BlbihvcGVuQ29udGV4dD86IENvbmZpcm1EaWFsb2dDb250ZXh0KTogdm9pZCB7XHJcbiAgICB0aGlzLmNvbnRleHQgPSBvcGVuQ29udGV4dCE7XHJcbiAgICB0aGlzLmRpYWxvZ0lkID0gb3BlbkNvbnRleHQhLmlkO1xyXG4gICAgaWYgKHRoaXMuY29udGV4dC5hbHRlcm5hdGVTYXZlTGFiZWwpIHtcclxuICAgICAgdGhpcy5jb250ZXh0LnNhdmVPbkVudGVyID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogRXJyb3IgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBlcnJvciBiYW5uZXIgKi9cclxuICBwdWJsaWMgZXJyb3I/OiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYWRkRm9ybUNvbnRyb2xzKCk7XHJcbiAgICB0aGlzLnNldFZhbGlkYXRpb25zKCk7XHJcbiAgICB0aGlzLmxpc3RlbkNoZWNrQm94KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TYXZlKHNvdXJjZTogU2F2ZVNvdXJjZSk6IHZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAubWFya0FsbEFzVG91Y2hlZCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cC52YWxpZCkge1xyXG4gICAgICBsZXQgZm9ybVZhbHVlcyA9IHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XHJcbiAgICAgIGlmIChmb3JtVmFsdWVzLnRleHRib3gpIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQudGV4dGJveFZhbHVlID0gZm9ybVZhbHVlcy50ZXh0Ym94O1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHRoaXMuY29udGV4dC5jaGVja0NvbmZpcm0pIHtcclxuICAgICAgICB0aGlzLmNvbnRleHQuY2hlY2tib3hWYWx1ZSA9IGZvcm1WYWx1ZXMuY2hlY2tib3ggPyBmb3JtVmFsdWVzLmNoZWNrYm94IDogZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuY29udGV4dC5zYXZlU291cmNlID0gc291cmNlO1xyXG5cclxuICAgICAgaWYgKHRoaXMuY29udGV4dC5pbmxpbmVDb25maXJtQWN0aW9uKSB7XHJcbiAgICAgICAgdGhpcy5kb0lubGluZUNvbmZpcm1BY3Rpb24oKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uRGlhbG9nU2F2ZS5lbWl0KHRoaXMuY29udGV4dCk7XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY29udGV4dC52YWxpZGF0aW9uRXJyb3JNZXNzYWdlKSB7XHJcbiAgICAgIHRoaXMuZXJyb3IgPSB0aGlzLmNvbnRleHQudmFsaWRhdGlvbkVycm9yTWVzc2FnZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgIHRoaXMub25EaWFsb2dDYW5jZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsaXN0ZW5DaGVja0JveCgpOnZvaWQge1xyXG4gICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCdjaGVja2JveCcpPy52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKVxyXG4gICAgKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICB0aGlzLnNob3dUZXh0Qm94ID0gdmFsdWU7XHJcbiAgICAgIHRoaXMuc2V0VmFsaWRhdGlvbnMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWxpZGF0aW9ucygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNob3dDaGVja0JveCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnY2hlY2tib3gnKTtcclxuICAgIGNvbnN0IHRleHRCb3hDb250cm9sID0gdGhpcy5mb3JtR3JvdXAuY29udHJvbHNbJ3RleHRib3gnXTtcclxuXHJcbiAgICBpZiAoc2hvd0NoZWNrQm94KSB7XHJcbiAgICAgICAgdGhpcy5zaG93VGV4dEJveCA/IHRleHRCb3hDb250cm9sPy5lbmFibGUoKSA6IHRleHRCb3hDb250cm9sPy5kaXNhYmxlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRleHRCb3hDb250cm9sPy5lbmFibGUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEFkZHMgdGhlIHRleHRib3ggZm9ybSBjb250cm9sIHRvIG91ciBmb3JtIGdyb3VwIGlmIGl0cyBjb25maWd1cmVkIHRvIGJlIHZpc2libGVcclxuICAgKiBXaWxsIGFsc28gYWRkIHRoZSByZXF1aXJlZCB2YWxpZGF0b3IgaWYgcmVxdWVzdGVkXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBhZGRGb3JtQ29udHJvbHMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jb250ZXh0LnRleHRib3hUeXBlKSB7XHJcbiAgICAgIGxldCB2YWxpZGF0b3JzOiBWYWxpZGF0b3JGbltdID0gW107XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFJlcXVpcmVkKSB7XHJcbiAgICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLmNvbnRleHQudGV4dGJveFZhbGlkYXRvcnMpIHtcclxuICAgICAgICB2YWxpZGF0b3JzLnB1c2goLi4udGhpcy5jb250ZXh0LnRleHRib3hWYWxpZGF0b3JzKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCd0ZXh0Ym94JywgbmV3IFVudHlwZWRGb3JtQ29udHJvbCgnJywgdmFsaWRhdG9ycykpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMuY29udGV4dC5jaGVja0NvbmZpcm0pe1xyXG4gICAgICB0aGlzLnNob3dUZXh0Qm94ID0gZmFsc2U7XHJcbiAgICAgIGNvbnN0IGNoZWNrYm94Q29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5hZGRDb250cm9sKCdjaGVja2JveCcsIGNoZWNrYm94Q29udHJvbCk7ICAgICAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGRvSW5saW5lQ29uZmlybUFjdGlvbigpIHtcclxuICAgIHRoaXMuc3RhdHVzLnNldFN0YXR1cygncGVuZGluZycsIHRoaXMuY29udGV4dC5pbmxpbmVDb25maXJtUGVuZGluZ01lc3NhZ2UpO1xyXG5cclxuICAgIGxldCByZXN1bHQgPSBhd2FpdCB0aGlzLmNvbnRleHQuaW5saW5lQ29uZmlybUFjdGlvbiEoKTtcclxuXHJcbiAgICB0aGlzLnN0YXR1cy5zZXRTdGF0dXMoJ25vRGF0YScsIHJlc3VsdC5tZXNzYWdlLCB7XHJcbiAgICAgIGlkOiAnaW5saW5lQ29uZmlybUNsb3NlJyxcclxuICAgICAgbGFiZWw6ICdDbG9zZScsXHJcbiAgICAgIGljb246IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnaWNvbi1jaGVjay1jaXJjbGUnIDogJ2ljb24tZXJyb3InLFxyXG4gICAgICBjbGFzc2xpc3Q6IHJlc3VsdC5pc1N1Y2Nlc3MgPyAnZm9udC1jb2xvci1zdWNjZXNzJyA6ICdmb250LWNvbG9yLWVycm9yJyxcclxuICAgICAgb25DbGljazogKCkgPT4geyByZXN1bHQuaXNTdWNjZXNzID8gdGhpcy5vbkRpYWxvZ1NhdmUuZW1pdCh0aGlzLmNvbnRleHQpIDogdGhpcy5vbkRpYWxvZ0NhbmNlbC5lbWl0KCkgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxzZWN0aW9uIGVjT3ZlcmxheVxyXG4gICAgICAgICBbc3RhdHVzXT1cInN0YXR1cz8uc3RhdHVzXCJcclxuICAgICAgICAgW21lc3NhZ2VdPVwic3RhdHVzPy5tZXNzYWdlXCJcclxuICAgICAgICAgW2FjdGlvbl09XCJzdGF0dXM/LmFjdGlvblwiXHJcbiAgICAgICAgIFtub0RhdGFUZW1wbGF0ZV09XCJpbmxpbmVDb25maXJtUmVzdWx0XCJcclxuICAgICAgICAgb3ZlcmxheUNsYXNzTGlzdD1cInAtMFwiXHJcbiAgICAgICAgIGNsYXNzPVwiYmctYm9keSBmbGV4LWdyb3cgZC1mbGV4XCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIiBjbGFzcz1cImZsZXgtZ3JvdyBmbGV4LWNvbHVtbiBjb25maXJtLWNvbnRlbnQgdGV4dC1ib2R5LTFcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZmxleC1ncm93XCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cImZvbnQtd2VpZ2h0LWJvbGQgbWItM1wiICpuZ0lmPVwiY29udGV4dD8udGl0bGVcIj57e2NvbnRleHQ/LnRpdGxlfX08L2gyPlxyXG4gICAgICA8ZWMtYmFubmVyICpuZ0lmPVwiZXJyb3JcIiBbdGV4dF09XCJlcnJvciB8IHRyYW5zbGF0ZVwiIGJhbm5lclN0eWxlPVwibm9ybWFsXCIgY2xhc3M9XCJtYi0zXCI+PC9lYy1iYW5uZXI+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJjb250ZXh0Py5tZXNzYWdlXCIgW2lubmVySHRtbF09XCJjb250ZXh0Py5tZXNzYWdlIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJtYi0zXCI+PC9kaXY+XHJcbiAgICAgIFxyXG4gICAgICA8ZWMtY2hlY2tib3ggKm5nSWY9XCJjb250ZXh0Py5jaGVja0NvbmZpcm1cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtTW9kZWxdPVwiZm9ybUdyb3VwLmdldCgnY2hlY2tib3gnKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNvbmZpcm1DaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbnRleHQ/LmNoZWNrYm94VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICA+PC9lYy1jaGVja2JveD5cclxuICAgICAgPGRpdiAqbmdJZj1cInNob3dUZXh0Qm94XCIgW2lubmVySHRtbF09XCJjb250ZXh0LmNvbmZpcm1MYWJlbFwiIGNsYXNzPVwibWItM1wiPjwvZGl2PlxyXG4gICAgICA8ZWMtdGV4dGJveCBpZD1cImNvbmZpcm1UZXh0Ym94XCJcclxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoY29udGV4dD8udGV4dGJveFR5cGUgJiYgIWNvbnRleHQ/LmNoZWNrQ29uZmlybSkgfHwgc2hvd1RleHRCb3hcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybU1vZGVsXT1cImZvcm1Hcm91cC5nZXQoJ3RleHRib3gnKVwiXHJcbiAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJjb250ZXh0Py50ZXh0Ym94UmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8udGV4dGJveExhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29udGV4dD8udGV4dGJveFR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICBbcm93c109XCJjb250ZXh0Py50ZXh0YXJlYVJvd3NcIlxyXG4gICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY29udGV4dD8udGV4dGJveFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgW3VwcGVyQ2FzZV09XCJjb250ZXh0Py50ZXh0Ym94VXBwZXJjYXNlXCI+XHJcbiAgICAgIDwvZWMtdGV4dGJveD5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIDxmb290ZXIgY2xhc3M9XCJtdC1hdXRvIGZsZXgtc2hyaW5rIGQtZmxleCBweS0yIGZsZXgtcm93LXJldmVyc2VcIj5cclxuICAgICAgPGVjLWJ1dHRvbiBpZD1cInNhdmVDb25maXJtQnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtbC0yXCJcclxuICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiY29udGV4dD8uc2F2ZUJ1dHRvblR5cGUgPyBjb250ZXh0Py5zYXZlQnV0dG9uVHlwZSA6ICdwcmltYXJ5J1wiXHJcbiAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJjb250ZXh0Py5zYXZlTGFiZWwgPyBjb250ZXh0Py5zYXZlTGFiZWwgOiAnU2F2ZSdcIlxyXG4gICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cIiFjb250ZXh0Py50ZXh0Ym94VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIFtpc1N1Ym1pdF09XCJjb250ZXh0Py5zYXZlT25FbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2F2ZSgncHJpbWFyeScpXCI+XHJcbiAgICAgIDwvZWMtYnV0dG9uPlxyXG4gICAgICA8ZWMtYnV0dG9uIGlkPVwiYWx0ZXJuYXRlU2F2ZUNvbmZpcm1CdXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cImNvbnRleHQ/LmFsdGVybmF0ZVNhdmVMYWJlbFwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtMlwiXHJcbiAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImNvbnRleHQ/LmFsdGVybmF0ZVNhdmVCdXR0b25UeXBlID8gY29udGV4dD8uYWx0ZXJuYXRlU2F2ZUJ1dHRvblR5cGUgOiAncHJpbWFyeSdcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8uYWx0ZXJuYXRlU2F2ZUxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25TYXZlKCdhbHRlcm5hdGUnKVwiPlxyXG4gICAgICA8L2VjLWJ1dHRvbj5cclxuICAgICAgPGVjLWJ1dHRvbiAgKm5nSWY9XCIhY29udGV4dD8uaGlkZUNhbmNlbFwiXHJcbiAgICAgICAgICAgICAgICAgIGlkPVwiY2FuY2VsQ29uZmlybUJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWwtYXV0b1wiXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY29udGV4dD8uY2FuY2VsTGFiZWwgPyBjb250ZXh0Py5jYW5jZWxMYWJlbCA6ICdDYW5jZWwnXCJcclxuICAgICAgICAgICAgICAgICAgKGNsaWNrZWQpPVwib25DYW5jZWwoKVwiPlxyXG4gICAgICA8L2VjLWJ1dHRvbj5cclxuICAgIDwvZm9vdGVyPlxyXG4gIDwvZm9ybT5cclxuPC9zZWN0aW9uPlxyXG5cclxuPG5nLXRlbXBsYXRlICNpbmxpbmVDb25maXJtUmVzdWx0PlxyXG4gIDxzZWN0aW9uIGNsYXNzPVwiZmxleC1ncm93IGFsaWduLXNlbGYtc3RyZXRjaCBjb25maXJtLWNvbnRlbnQgdGV4dC1ib2R5LTFcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJkLWZsZXhcIj5cclxuICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIHt7c3RhdHVzPy5hY3Rpb24/Lmljb259fSB7e3N0YXR1cz8uYWN0aW9uPy5jbGFzc2xpc3R9fSBpbmxpbmUtY29uZmlybS1yZXN1bHQtaWNvblwiPjwvaT5cclxuICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInN0YXR1cz8ubWVzc2FnZSB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IHB0LTIgbXQtYXV0b1wiPlxyXG4gICAgICA8ZWMtYnV0dG9uIGlkPVwiaW5saW5lQ29uZmlybUNsb3NlXCJcclxuICAgICAgICAgICAgICAgICBsYWJlbD1cIkNsb3NlXCJcclxuICAgICAgICAgICAgICAgICB0eXBlPVwic2Vjb25kYXJ5XCJcclxuICAgICAgICAgICAgICAgICBjbGFzcz1cIm1sLWF1dG9cIlxyXG4gICAgICAgICAgICAgICAgIChjbGlja2VkKT1cInN0YXR1cz8uYWN0aW9uPy5vbkNsaWNrISgpXCJcclxuICAgICAgICAgICAgICAgICBbYXV0b2ZvY3VzXT1cInRydWVcIj5cclxuICAgICAgPC9lYy1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvbmctdGVtcGxhdGU+Il19
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLWNvbnRlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9kaWFsb2cvZGlhbG9nLWNvbnRlbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vKipcclxuICogVGhpcyBpbnRlcmZhY2UgcmVwcmVzZW50cyB0aGUgY29udHJhY3QgYmV0d2VlbiB0aGUgZGlhbG9nIGNvbXBvbmVudCAodGhlIFwic2hlbGxcIiBhcm91bmQgdGhhdCBtYXNrcyB0aGUgYmFja2dyb3VuZCkgXHJcbiAqIGFuZCB0aGUgYm9keSBvZiB0aGUgZGlhbG9nIHdoaWNoIGNhbiBiZSBhbG1vc3QgYW55IGNvbXBvbmVudC4gSXQgZXhwb3NlcyBhIHdheSBmb3IgdXMgdG8gcGFzcyBkYXRhIGludG8gYW5kIG91dCBvZlxyXG4gKiB0aGUgYm9keSBmcm9tIHRoZSBob3N0aW5nIHBhZ2Ugd2l0aCBzdHJvbmcgdHlwZSBpbmZvcm1hdGlvbiBcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGlhbG9nQ29udGVudDxUPiB7XHJcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaW1wbGVtZW50aW5nIGNsYXNzLiAqL1xyXG4gIGRpYWxvZ0lkOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBkYXRhIHRoYXQgaXMgcGFzc2VkIHRvIHRoZSBpbm5lciBkaWFsb2cgY29tcG9uZW50IHdoZW4gaXQgb3BlbnMgZnJvbSB0aGUgaG9zdGluZyBwYWdlLiBcclxuICAgKiBXaWxsIGJlIGNhbGxlZCBiZWZvcmUgYW55IGFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2tzLlxyXG4gICAqL1xyXG4gIG9uT3Blbj86IChvcGVuQ29udGV4dD86IFQpID0+IHZvaWQ7XHJcblxyXG4gIC8qKiBBbiBldmVudCBlbWl0dGVyIHRoYXQgd2lsbCBlbWl0IGFuIGV2ZW50IHdoZW4gdGhlIGRpYWxvZyBhY3Rpb24gaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkgKi9cclxuICBvbkRpYWxvZ1NhdmU6IEV2ZW50RW1pdHRlcjxUPjtcclxuXHJcbiAgLyoqIEFuIGV2ZW50IGVtaXR0ZXIgdGhhdCB3aWxsIGVtaXQgYW4gZXZlbnQgd2hlbiB0aGUgZGlhbG9nIGFjdGlvbiBoYXMgYmVlbiBjYW5jZWxlZCAqL1xyXG4gIG9uRGlhbG9nQ2FuY2VsOiBFdmVudEVtaXR0ZXI8dm9pZD47XHJcbn1cclxuIl19