@sebgroup/green-angular 10.0.3 → 10.0.4

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 (469) hide show
  1. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs +10 -10
  2. package/fesm2022/sebgroup-green-angular-src-lib-accordion.mjs.map +1 -1
  3. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs +7 -7
  4. package/fesm2022/sebgroup-green-angular-src-lib-badge.mjs.map +1 -1
  5. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs +7 -7
  6. package/fesm2022/sebgroup-green-angular-src-lib-button.mjs.map +1 -1
  7. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs +23 -23
  8. package/fesm2022/sebgroup-green-angular-src-lib-cell-table.mjs.map +1 -1
  9. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs +11 -11
  10. package/fesm2022/sebgroup-green-angular-src-lib-context-menu.mjs.map +1 -1
  11. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs +11 -11
  12. package/fesm2022/sebgroup-green-angular-src-lib-datepicker.mjs.map +1 -1
  13. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs +24 -27
  14. package/fesm2022/sebgroup-green-angular-src-lib-dropdown.mjs.map +1 -1
  15. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs +7 -7
  16. package/fesm2022/sebgroup-green-angular-src-lib-in-page-wizard.mjs.map +1 -1
  17. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs +45 -46
  18. package/fesm2022/sebgroup-green-angular-src-lib-modal.mjs.map +1 -1
  19. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs +7 -7
  20. package/fesm2022/sebgroup-green-angular-src-lib-pagination.mjs.map +1 -1
  21. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs +7 -7
  22. package/fesm2022/sebgroup-green-angular-src-lib-progress-circle.mjs.map +1 -1
  23. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs +7 -7
  24. package/fesm2022/sebgroup-green-angular-src-lib-segmented-control.mjs.map +1 -1
  25. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +41 -41
  26. package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
  27. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs +7 -7
  28. package/fesm2022/sebgroup-green-angular-src-lib-slider.mjs.map +1 -1
  29. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs +7 -7
  30. package/fesm2022/sebgroup-green-angular-src-lib-sortable-list.mjs.map +1 -1
  31. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +7 -7
  32. package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -1
  33. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +8 -8
  34. package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -1
  35. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +8 -8
  36. package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
  37. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +8 -8
  38. package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
  39. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +8 -8
  40. package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
  41. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +8 -8
  42. package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
  43. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +7 -7
  44. package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
  45. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +8 -8
  46. package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
  47. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +3 -3
  48. package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
  49. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +37 -37
  50. package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -1
  51. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +13 -13
  52. package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -1
  53. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +29 -29
  54. package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
  55. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +7 -7
  56. package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
  57. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +14 -14
  58. package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
  59. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +7 -7
  60. package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
  61. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +10 -10
  62. package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
  63. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +8 -8
  64. package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
  65. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +19 -19
  66. package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
  67. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +7 -7
  68. package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -1
  69. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +14 -14
  70. package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
  71. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +7 -7
  72. package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
  73. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +23 -23
  74. package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -1
  75. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +11 -11
  76. package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -1
  77. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +8 -8
  78. package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
  79. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +10 -10
  80. package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -1
  81. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +7 -7
  82. package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
  83. package/fesm2022/sebgroup-green-angular-v-angular.mjs +300 -300
  84. package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
  85. package/fesm2022/sebgroup-green-angular.mjs +222 -226
  86. package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
  87. package/index.d.ts +1021 -17
  88. package/package.json +10 -10
  89. package/src/lib/accordion/index.d.ts +51 -3
  90. package/src/lib/badge/index.d.ts +46 -2
  91. package/src/lib/button/index.d.ts +20 -2
  92. package/src/lib/cell-table/index.d.ts +105 -3
  93. package/src/lib/context-menu/index.d.ts +63 -2
  94. package/src/lib/datepicker/index.d.ts +80 -2
  95. package/src/lib/dropdown/index.d.ts +114 -4
  96. package/src/lib/in-page-wizard/index.d.ts +30 -2
  97. package/src/lib/modal/index.d.ts +96 -4
  98. package/src/lib/pagination/index.d.ts +66 -2
  99. package/src/lib/progress-circle/index.d.ts +24 -2
  100. package/src/lib/segmented-control/index.d.ts +29 -2
  101. package/src/lib/shared/index.d.ts +223 -7
  102. package/src/lib/slider/index.d.ts +48 -2
  103. package/src/lib/sortable-list/index.d.ts +105 -2
  104. package/src/v-angular/account-number/index.d.ts +43 -2
  105. package/src/v-angular/alert/index.d.ts +44 -3
  106. package/src/v-angular/base-control-value-accessor/index.d.ts +143 -2
  107. package/src/v-angular/breadcrumbs/index.d.ts +29 -2
  108. package/src/v-angular/button/index.d.ts +75 -2
  109. package/src/v-angular/card/index.d.ts +15 -2
  110. package/src/v-angular/character-countdown/index.d.ts +27 -2
  111. package/src/v-angular/checkbox/index.d.ts +47 -2
  112. package/src/v-angular/core/index.d.ts +40 -2
  113. package/src/v-angular/datepicker/index.d.ts +577 -13
  114. package/src/v-angular/drag-drop/index.d.ts +233 -4
  115. package/src/v-angular/dropdown/index.d.ts +474 -5
  116. package/src/v-angular/external-link/index.d.ts +27 -2
  117. package/src/v-angular/i18n/index.d.ts +44 -2
  118. package/src/v-angular/info-circle/index.d.ts +27 -2
  119. package/src/v-angular/input/index.d.ts +127 -2
  120. package/src/v-angular/input-mask/index.d.ts +81 -5
  121. package/src/v-angular/modal/index.d.ts +243 -5
  122. package/src/v-angular/pagination/index.d.ts +75 -2
  123. package/src/v-angular/radio/index.d.ts +111 -3
  124. package/src/v-angular/slug/index.d.ts +22 -2
  125. package/src/v-angular/table/index.d.ts +379 -5
  126. package/src/v-angular/tabs/index.d.ts +138 -4
  127. package/src/v-angular/textarea/index.d.ts +69 -2
  128. package/src/v-angular/toast/index.d.ts +65 -4
  129. package/src/v-angular/tooltip/index.d.ts +118 -2
  130. package/v-angular/index.d.ts +3088 -28
  131. package/lib/accordion/accordion-list-item.component.d.ts +0 -16
  132. package/lib/accordion/accordion.component.d.ts +0 -21
  133. package/lib/accordion/accordion.module.d.ts +0 -14
  134. package/lib/accordion/index.d.ts +0 -3
  135. package/lib/badge/badge.component.d.ts +0 -30
  136. package/lib/badge/badge.module.d.ts +0 -13
  137. package/lib/badge/index.d.ts +0 -2
  138. package/lib/button/button.component.d.ts +0 -11
  139. package/lib/button/button.module.d.ts +0 -8
  140. package/lib/button/index.d.ts +0 -2
  141. package/lib/cell-table/cell-table-item.component.d.ts +0 -14
  142. package/lib/cell-table/cell-table.component.d.ts +0 -44
  143. package/lib/cell-table/cell-table.module.d.ts +0 -10
  144. package/lib/cell-table/cell-table.types.d.ts +0 -34
  145. package/lib/cell-table/cell-underline.directive.d.ts +0 -14
  146. package/lib/cell-table/index.d.ts +0 -3
  147. package/lib/context-menu/context-menu.component.d.ts +0 -48
  148. package/lib/context-menu/context-menu.module.d.ts +0 -14
  149. package/lib/context-menu/index.d.ts +0 -2
  150. package/lib/datepicker/datepicker.component.d.ts +0 -63
  151. package/lib/datepicker/datepicker.module.d.ts +0 -14
  152. package/lib/datepicker/index.d.ts +0 -2
  153. package/lib/dropdown/dropdown-button.directive.d.ts +0 -8
  154. package/lib/dropdown/dropdown-option.directive.d.ts +0 -8
  155. package/lib/dropdown/dropdown.component.d.ts +0 -87
  156. package/lib/dropdown/dropdown.module.d.ts +0 -16
  157. package/lib/dropdown/index.d.ts +0 -4
  158. package/lib/green-angular.module.d.ts +0 -21
  159. package/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +0 -19
  160. package/lib/in-page-wizard/in-page-wizard.module.d.ts +0 -9
  161. package/lib/in-page-wizard/index.d.ts +0 -2
  162. package/lib/modal/index.d.ts +0 -4
  163. package/lib/modal/modal-footer.directive.d.ts +0 -8
  164. package/lib/modal/modal-header.directive.d.ts +0 -8
  165. package/lib/modal/modal.component.d.ts +0 -74
  166. package/lib/modal/modal.module.d.ts +0 -14
  167. package/lib/pagination/index.d.ts +0 -2
  168. package/lib/pagination/pagination.component.d.ts +0 -56
  169. package/lib/pagination/pagination.module.d.ts +0 -8
  170. package/lib/progress-circle/index.d.ts +0 -2
  171. package/lib/progress-circle/progress-circle.component.d.ts +0 -15
  172. package/lib/progress-circle/progress-circle.module.d.ts +0 -8
  173. package/lib/segmented-control/index.d.ts +0 -2
  174. package/lib/segmented-control/segmented-control.component.d.ts +0 -14
  175. package/lib/segmented-control/segmented-control.module.d.ts +0 -12
  176. package/lib/shared/core-control/core-checkbox.directive.d.ts +0 -10
  177. package/lib/shared/core-control/core-control.directive.d.ts +0 -19
  178. package/lib/shared/core-control/core-control.module.d.ts +0 -10
  179. package/lib/shared/core-control/index.d.ts +0 -3
  180. package/lib/shared/core-element/core-element.directive.d.ts +0 -17
  181. package/lib/shared/core-element/core-element.module.d.ts +0 -11
  182. package/lib/shared/core-element/index.d.ts +0 -2
  183. package/lib/shared/core-renderer/core-renderer.d.ts +0 -111
  184. package/lib/shared/core-renderer/index.d.ts +0 -1
  185. package/lib/shared/core-router-link/core-router-link.directive.d.ts +0 -19
  186. package/lib/shared/core-router-link/core-router-link.module.d.ts +0 -10
  187. package/lib/shared/core-router-link/index.d.ts +0 -2
  188. package/lib/shared/id.d.ts +0 -1
  189. package/lib/shared/index.d.ts +0 -7
  190. package/lib/shared/on-scroll.directive.d.ts +0 -14
  191. package/lib/shared/scope-resolver.d.ts +0 -5
  192. package/lib/shared/shared.module.d.ts +0 -9
  193. package/lib/slider/index.d.ts +0 -2
  194. package/lib/slider/slider.component.d.ts +0 -38
  195. package/lib/slider/slider.module.d.ts +0 -9
  196. package/lib/sortable-list/index.d.ts +0 -2
  197. package/lib/sortable-list/sortable-list.component.d.ts +0 -92
  198. package/lib/sortable-list/sortable-list.module.d.ts +0 -11
  199. package/src/lib/accordion/accordion-list-item.component.d.ts +0 -16
  200. package/src/lib/accordion/accordion.component.d.ts +0 -21
  201. package/src/lib/accordion/accordion.module.d.ts +0 -14
  202. package/src/lib/badge/badge.component.d.ts +0 -30
  203. package/src/lib/badge/badge.module.d.ts +0 -13
  204. package/src/lib/button/button.component.d.ts +0 -11
  205. package/src/lib/button/button.module.d.ts +0 -8
  206. package/src/lib/cell-table/cell-table-item.component.d.ts +0 -14
  207. package/src/lib/cell-table/cell-table.component.d.ts +0 -44
  208. package/src/lib/cell-table/cell-table.module.d.ts +0 -10
  209. package/src/lib/cell-table/cell-table.types.d.ts +0 -34
  210. package/src/lib/cell-table/cell-underline.directive.d.ts +0 -14
  211. package/src/lib/context-menu/context-menu.component.d.ts +0 -48
  212. package/src/lib/context-menu/context-menu.module.d.ts +0 -14
  213. package/src/lib/datepicker/datepicker.component.d.ts +0 -63
  214. package/src/lib/datepicker/datepicker.module.d.ts +0 -14
  215. package/src/lib/dropdown/dropdown-button.directive.d.ts +0 -8
  216. package/src/lib/dropdown/dropdown-option.directive.d.ts +0 -8
  217. package/src/lib/dropdown/dropdown.component.d.ts +0 -87
  218. package/src/lib/dropdown/dropdown.module.d.ts +0 -16
  219. package/src/lib/in-page-wizard/in-page-wizard-step-card.component.d.ts +0 -19
  220. package/src/lib/in-page-wizard/in-page-wizard.module.d.ts +0 -9
  221. package/src/lib/modal/modal-footer.directive.d.ts +0 -8
  222. package/src/lib/modal/modal-header.directive.d.ts +0 -8
  223. package/src/lib/modal/modal.component.d.ts +0 -74
  224. package/src/lib/modal/modal.module.d.ts +0 -14
  225. package/src/lib/pagination/pagination.component.d.ts +0 -56
  226. package/src/lib/pagination/pagination.module.d.ts +0 -8
  227. package/src/lib/progress-circle/progress-circle.component.d.ts +0 -15
  228. package/src/lib/progress-circle/progress-circle.module.d.ts +0 -8
  229. package/src/lib/segmented-control/segmented-control.component.d.ts +0 -14
  230. package/src/lib/segmented-control/segmented-control.module.d.ts +0 -12
  231. package/src/lib/shared/core-control/core-checkbox.directive.d.ts +0 -10
  232. package/src/lib/shared/core-control/core-control.directive.d.ts +0 -19
  233. package/src/lib/shared/core-control/core-control.module.d.ts +0 -10
  234. package/src/lib/shared/core-control/index.d.ts +0 -3
  235. package/src/lib/shared/core-element/core-element.directive.d.ts +0 -17
  236. package/src/lib/shared/core-element/core-element.module.d.ts +0 -11
  237. package/src/lib/shared/core-element/index.d.ts +0 -2
  238. package/src/lib/shared/core-renderer/core-renderer.d.ts +0 -111
  239. package/src/lib/shared/core-renderer/index.d.ts +0 -1
  240. package/src/lib/shared/core-router-link/core-router-link.directive.d.ts +0 -19
  241. package/src/lib/shared/core-router-link/core-router-link.module.d.ts +0 -10
  242. package/src/lib/shared/core-router-link/index.d.ts +0 -2
  243. package/src/lib/shared/id.d.ts +0 -1
  244. package/src/lib/shared/on-scroll.directive.d.ts +0 -14
  245. package/src/lib/shared/scope-resolver.d.ts +0 -5
  246. package/src/lib/shared/shared.module.d.ts +0 -9
  247. package/src/lib/slider/slider.component.d.ts +0 -38
  248. package/src/lib/slider/slider.module.d.ts +0 -9
  249. package/src/lib/sortable-list/sortable-list.component.d.ts +0 -92
  250. package/src/lib/sortable-list/sortable-list.module.d.ts +0 -11
  251. package/src/v-angular/account-number/account-number.module.d.ts +0 -8
  252. package/src/v-angular/account-number/account-number.pipe.d.ts +0 -32
  253. package/src/v-angular/alert/alert.component.d.ts +0 -20
  254. package/src/v-angular/alert/alert.models.d.ts +0 -13
  255. package/src/v-angular/alert/alert.module.d.ts +0 -8
  256. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +0 -134
  257. package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +0 -7
  258. package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +0 -18
  259. package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +0 -10
  260. package/src/v-angular/button/button.component.d.ts +0 -62
  261. package/src/v-angular/button/button.module.d.ts +0 -10
  262. package/src/v-angular/card/card.component.d.ts +0 -5
  263. package/src/v-angular/card/card.module.d.ts +0 -8
  264. package/src/v-angular/character-countdown/character-countdown.directive.d.ts +0 -17
  265. package/src/v-angular/character-countdown/character-countdown.module.d.ts +0 -8
  266. package/src/v-angular/checkbox/checkbox.component.d.ts +0 -36
  267. package/src/v-angular/checkbox/checkbox.module.d.ts +0 -10
  268. package/src/v-angular/core/core.globals.d.ts +0 -13
  269. package/src/v-angular/core/core.utils.d.ts +0 -23
  270. package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +0 -36
  271. package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +0 -30
  272. package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +0 -113
  273. package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +0 -76
  274. package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +0 -169
  275. package/src/v-angular/datepicker/datepicker.globals.d.ts +0 -13
  276. package/src/v-angular/datepicker/datepicker.models.d.ts +0 -50
  277. package/src/v-angular/datepicker/datepicker.module.d.ts +0 -19
  278. package/src/v-angular/datepicker/datepicker.utils.d.ts +0 -46
  279. package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +0 -21
  280. package/src/v-angular/datepicker/models/dates.d.ts +0 -15
  281. package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +0 -8
  282. package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +0 -8
  283. package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +0 -7
  284. package/src/v-angular/drag-drop/drag-drop.component.d.ts +0 -131
  285. package/src/v-angular/drag-drop/drag-drop.models.d.ts +0 -49
  286. package/src/v-angular/drag-drop/drag-drop.module.d.ts +0 -13
  287. package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +0 -40
  288. package/src/v-angular/drag-drop/drag-drop.utils.d.ts +0 -33
  289. package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +0 -135
  290. package/src/v-angular/dropdown/dropdown-list/index.d.ts +0 -1
  291. package/src/v-angular/dropdown/dropdown.component.d.ts +0 -129
  292. package/src/v-angular/dropdown/dropdown.module.d.ts +0 -13
  293. package/src/v-angular/dropdown/typeahead/index.d.ts +0 -5
  294. package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +0 -40
  295. package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +0 -34
  296. package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +0 -61
  297. package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +0 -78
  298. package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +0 -11
  299. package/src/v-angular/external-link/external-link.directive.d.ts +0 -17
  300. package/src/v-angular/external-link/external-link.module.d.ts +0 -8
  301. package/src/v-angular/i18n/i18n.module.d.ts +0 -15
  302. package/src/v-angular/i18n/i18n.test.module.d.ts +0 -27
  303. package/src/v-angular/info-circle/info-circle.component.d.ts +0 -16
  304. package/src/v-angular/info-circle/info-circle.module.d.ts +0 -10
  305. package/src/v-angular/input/input.component.d.ts +0 -112
  306. package/src/v-angular/input/input.module.d.ts +0 -13
  307. package/src/v-angular/input-mask/config.d.ts +0 -6
  308. package/src/v-angular/input-mask/constants.d.ts +0 -2
  309. package/src/v-angular/input-mask/input-mask-format.pipe.d.ts +0 -8
  310. package/src/v-angular/input-mask/input-mask.directive.d.ts +0 -39
  311. package/src/v-angular/input-mask/input-mask.module.d.ts +0 -11
  312. package/src/v-angular/input-mask/input-mask.types.d.ts +0 -20
  313. package/src/v-angular/modal/dialog/dialog.component.d.ts +0 -72
  314. package/src/v-angular/modal/fold-out/fold-out.component.d.ts +0 -51
  315. package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +0 -6
  316. package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +0 -8
  317. package/src/v-angular/modal/modal.globals.d.ts +0 -13
  318. package/src/v-angular/modal/modal.module.d.ts +0 -15
  319. package/src/v-angular/modal/modal.types.d.ts +0 -6
  320. package/src/v-angular/modal/slide-out/slide-out.component.d.ts +0 -85
  321. package/src/v-angular/pagination/pagination.component.d.ts +0 -64
  322. package/src/v-angular/pagination/pagination.module.d.ts +0 -12
  323. package/src/v-angular/radio/radio-group/radio-group.component.d.ts +0 -42
  324. package/src/v-angular/radio/radio.component.d.ts +0 -63
  325. package/src/v-angular/radio/radio.module.d.ts +0 -11
  326. package/src/v-angular/slug/slug.module.d.ts +0 -8
  327. package/src/v-angular/slug/slug.pipe.d.ts +0 -12
  328. package/src/v-angular/table/table.component.d.ts +0 -248
  329. package/src/v-angular/table/table.directive.d.ts +0 -36
  330. package/src/v-angular/table/table.models.d.ts +0 -78
  331. package/src/v-angular/table/table.module.d.ts +0 -12
  332. package/src/v-angular/table/table.tools.d.ts +0 -5
  333. package/src/v-angular/table/tr-thook.pipe.d.ts +0 -7
  334. package/src/v-angular/tabs/tab.directive.d.ts +0 -37
  335. package/src/v-angular/tabs/tabs.component.d.ts +0 -65
  336. package/src/v-angular/tabs/tabs.models.d.ts +0 -25
  337. package/src/v-angular/tabs/tabs.module.d.ts +0 -11
  338. package/src/v-angular/textarea/textarea.component.d.ts +0 -57
  339. package/src/v-angular/textarea/textarea.module.d.ts +0 -12
  340. package/src/v-angular/toast/toast-message.service.d.ts +0 -19
  341. package/src/v-angular/toast/toast.component.d.ts +0 -20
  342. package/src/v-angular/toast/toast.models.d.ts +0 -18
  343. package/src/v-angular/toast/toast.module.d.ts +0 -10
  344. package/src/v-angular/tooltip/tooltip.directive.d.ts +0 -108
  345. package/src/v-angular/tooltip/tooltip.module.d.ts +0 -8
  346. package/src/v-angular/tooltip/tooltip.styles.d.ts +0 -11
  347. package/v-angular/account-number/account-number.module.d.ts +0 -8
  348. package/v-angular/account-number/account-number.pipe.d.ts +0 -32
  349. package/v-angular/account-number/index.d.ts +0 -2
  350. package/v-angular/alert/alert.component.d.ts +0 -20
  351. package/v-angular/alert/alert.models.d.ts +0 -13
  352. package/v-angular/alert/alert.module.d.ts +0 -8
  353. package/v-angular/alert/index.d.ts +0 -3
  354. package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +0 -134
  355. package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +0 -7
  356. package/v-angular/base-control-value-accessor/index.d.ts +0 -2
  357. package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +0 -18
  358. package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +0 -10
  359. package/v-angular/breadcrumbs/index.d.ts +0 -2
  360. package/v-angular/button/button.component.d.ts +0 -62
  361. package/v-angular/button/button.module.d.ts +0 -10
  362. package/v-angular/button/index.d.ts +0 -2
  363. package/v-angular/card/card.component.d.ts +0 -5
  364. package/v-angular/card/card.module.d.ts +0 -8
  365. package/v-angular/card/index.d.ts +0 -2
  366. package/v-angular/character-countdown/character-countdown.directive.d.ts +0 -17
  367. package/v-angular/character-countdown/character-countdown.module.d.ts +0 -8
  368. package/v-angular/character-countdown/index.d.ts +0 -2
  369. package/v-angular/checkbox/checkbox.component.d.ts +0 -36
  370. package/v-angular/checkbox/checkbox.module.d.ts +0 -10
  371. package/v-angular/checkbox/index.d.ts +0 -2
  372. package/v-angular/core/core.globals.d.ts +0 -13
  373. package/v-angular/core/core.utils.d.ts +0 -23
  374. package/v-angular/core/index.d.ts +0 -2
  375. package/v-angular/datepicker/components/calendar/calendar.component.d.ts +0 -36
  376. package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +0 -30
  377. package/v-angular/datepicker/components/date-input/date-input.component.d.ts +0 -113
  378. package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +0 -76
  379. package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +0 -169
  380. package/v-angular/datepicker/datepicker.globals.d.ts +0 -13
  381. package/v-angular/datepicker/datepicker.models.d.ts +0 -50
  382. package/v-angular/datepicker/datepicker.module.d.ts +0 -19
  383. package/v-angular/datepicker/datepicker.utils.d.ts +0 -46
  384. package/v-angular/datepicker/directives/calendar-date.directive.d.ts +0 -21
  385. package/v-angular/datepicker/index.d.ts +0 -13
  386. package/v-angular/datepicker/models/dates.d.ts +0 -15
  387. package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +0 -8
  388. package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +0 -8
  389. package/v-angular/datepicker/pipes/matches.pipe.d.ts +0 -7
  390. package/v-angular/drag-drop/drag-drop.component.d.ts +0 -131
  391. package/v-angular/drag-drop/drag-drop.models.d.ts +0 -49
  392. package/v-angular/drag-drop/drag-drop.module.d.ts +0 -13
  393. package/v-angular/drag-drop/drag-drop.pipes.d.ts +0 -40
  394. package/v-angular/drag-drop/drag-drop.utils.d.ts +0 -33
  395. package/v-angular/drag-drop/index.d.ts +0 -4
  396. package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +0 -135
  397. package/v-angular/dropdown/dropdown-list/index.d.ts +0 -1
  398. package/v-angular/dropdown/dropdown.component.d.ts +0 -129
  399. package/v-angular/dropdown/dropdown.module.d.ts +0 -13
  400. package/v-angular/dropdown/index.d.ts +0 -5
  401. package/v-angular/dropdown/typeahead/index.d.ts +0 -5
  402. package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +0 -40
  403. package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +0 -34
  404. package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +0 -61
  405. package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +0 -78
  406. package/v-angular/dropdown/typeahead/typeahead.module.d.ts +0 -11
  407. package/v-angular/external-link/external-link.directive.d.ts +0 -17
  408. package/v-angular/external-link/external-link.module.d.ts +0 -8
  409. package/v-angular/external-link/index.d.ts +0 -2
  410. package/v-angular/i18n/i18n.module.d.ts +0 -15
  411. package/v-angular/i18n/i18n.test.module.d.ts +0 -27
  412. package/v-angular/i18n/index.d.ts +0 -2
  413. package/v-angular/info-circle/index.d.ts +0 -2
  414. package/v-angular/info-circle/info-circle.component.d.ts +0 -16
  415. package/v-angular/info-circle/info-circle.module.d.ts +0 -10
  416. package/v-angular/input/index.d.ts +0 -2
  417. package/v-angular/input/input.component.d.ts +0 -112
  418. package/v-angular/input/input.module.d.ts +0 -13
  419. package/v-angular/input-mask/config.d.ts +0 -6
  420. package/v-angular/input-mask/constants.d.ts +0 -2
  421. package/v-angular/input-mask/index.d.ts +0 -5
  422. package/v-angular/input-mask/input-mask-format.pipe.d.ts +0 -8
  423. package/v-angular/input-mask/input-mask.directive.d.ts +0 -39
  424. package/v-angular/input-mask/input-mask.module.d.ts +0 -11
  425. package/v-angular/input-mask/input-mask.types.d.ts +0 -20
  426. package/v-angular/modal/dialog/dialog.component.d.ts +0 -72
  427. package/v-angular/modal/fold-out/fold-out.component.d.ts +0 -51
  428. package/v-angular/modal/fold-out/fold-out.directive.d.ts +0 -6
  429. package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +0 -8
  430. package/v-angular/modal/index.d.ts +0 -5
  431. package/v-angular/modal/modal.globals.d.ts +0 -13
  432. package/v-angular/modal/modal.module.d.ts +0 -15
  433. package/v-angular/modal/modal.types.d.ts +0 -6
  434. package/v-angular/modal/slide-out/slide-out.component.d.ts +0 -85
  435. package/v-angular/pagination/index.d.ts +0 -2
  436. package/v-angular/pagination/pagination.component.d.ts +0 -64
  437. package/v-angular/pagination/pagination.module.d.ts +0 -12
  438. package/v-angular/radio/index.d.ts +0 -3
  439. package/v-angular/radio/radio-group/radio-group.component.d.ts +0 -42
  440. package/v-angular/radio/radio.component.d.ts +0 -63
  441. package/v-angular/radio/radio.module.d.ts +0 -11
  442. package/v-angular/slug/index.d.ts +0 -2
  443. package/v-angular/slug/slug.module.d.ts +0 -8
  444. package/v-angular/slug/slug.pipe.d.ts +0 -12
  445. package/v-angular/table/index.d.ts +0 -5
  446. package/v-angular/table/table.component.d.ts +0 -248
  447. package/v-angular/table/table.directive.d.ts +0 -36
  448. package/v-angular/table/table.models.d.ts +0 -78
  449. package/v-angular/table/table.module.d.ts +0 -12
  450. package/v-angular/table/table.tools.d.ts +0 -5
  451. package/v-angular/table/tr-thook.pipe.d.ts +0 -7
  452. package/v-angular/tabs/index.d.ts +0 -4
  453. package/v-angular/tabs/tab.directive.d.ts +0 -37
  454. package/v-angular/tabs/tabs.component.d.ts +0 -65
  455. package/v-angular/tabs/tabs.models.d.ts +0 -25
  456. package/v-angular/tabs/tabs.module.d.ts +0 -11
  457. package/v-angular/textarea/index.d.ts +0 -2
  458. package/v-angular/textarea/textarea.component.d.ts +0 -57
  459. package/v-angular/textarea/textarea.module.d.ts +0 -12
  460. package/v-angular/toast/index.d.ts +0 -4
  461. package/v-angular/toast/toast-message.service.d.ts +0 -19
  462. package/v-angular/toast/toast.component.d.ts +0 -20
  463. package/v-angular/toast/toast.models.d.ts +0 -18
  464. package/v-angular/toast/toast.module.d.ts +0 -10
  465. package/v-angular/tooltip/index.d.ts +0 -2
  466. package/v-angular/tooltip/tooltip.directive.d.ts +0 -108
  467. package/v-angular/tooltip/tooltip.module.d.ts +0 -8
  468. package/v-angular/tooltip/tooltip.styles.d.ts +0 -11
  469. package/v-angular/v-angular.module.d.ts +0 -33
@@ -1 +1 @@
1
- {"version":3,"file":"sebgroup-green-angular-src-v-angular-drag-drop.mjs","sources":["../../../../libs/angular/src/v-angular/drag-drop/drag-drop.utils.ts","../../../../libs/angular/src/v-angular/drag-drop/drag-drop.pipes.ts","../../../../libs/angular/src/v-angular/drag-drop/drag-drop.component.ts","../../../../libs/angular/src/v-angular/drag-drop/drag-drop.component.html","../../../../libs/angular/src/v-angular/drag-drop/drag-drop.module.ts","../../../../libs/angular/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.ts"],"sourcesContent":["/* eslint-disable no-console */\nimport { Observable, throwError, timer } from 'rxjs'\nimport { finalize, mergeMap } from 'rxjs/operators'\n\nimport { APIFile, LocalFile } from './drag-drop.models'\n\n/**\n * Helper to extend the base file with {@link APIFile} defaults\n * @param file file base that will be extended with {@link APIFile} defaults\n * @param data extra data to override defaults\n */\nexport const extendFile = (\n file: File | undefined,\n ...data: Array<Partial<Omit<LocalFile, 'raw'> & APIFile>>\n): LocalFile & APIFile => {\n return Object.assign(\n {\n id: file ? btoa(file.name) : '',\n fileName: file ? file.name : 'na',\n status: '',\n statusReasonInformation: null,\n principal: '',\n uploadDate: (file\n ? new Date(file.lastModified)\n : new Date()\n ).toISOString(),\n registrarId: '',\n registrarName: '',\n progress: 0,\n uploadState: 'local',\n uploadRequests: undefined,\n raw: file,\n } as LocalFile & APIFile,\n ...data,\n )\n}\n\n/**\n * Checks if file matches allowed mime types\n * @param type file mime type\n * @param accept allowed mime types\n */\nexport const verifyAccept = (type: string, accept?: string) => {\n if (!accept) return true\n const regex = new RegExp(accept.replace(/\\*/g, '.*').replace(/\\s*,\\s*/g, '|'))\n return regex.test(type)\n}\n\n/**\n * Determines if browser supports drag and drop\n */\nexport const isDragDropAvailable = () => {\n const div = document.createElement('div')\n return (\n ('draggable' in div || ('ondragstart' in div && 'ondrop' in div)) &&\n 'FormData' in window &&\n 'FileReader' in window\n )\n}\n\n/**\n * Pick only specified keys from a given object\n * @param keys keys to pick from a given object\n * @param object to extract keys from\n */\nexport const pick = <T, K extends keyof T>(\n object: T,\n ...keys: K[]\n): Pick<T, K> => {\n const copy: any = {}\n keys.forEach((key) => {\n copy[key] = object[key]\n })\n return copy\n}\n\n/**\n * Will retry running the observable when an error occurs to a maximum limit, increasing delay between executions.\n * @param options specifies number of retries, scaling duration and statuses to exclude\n */\nexport const retryStrategy =\n ({\n maxRetryAttempts = 3,\n scalingDuration = 1000,\n excludedStatusCodes = [],\n }: {\n maxRetryAttempts?: number\n scalingDuration?: number\n excludedStatusCodes?: number[]\n } = {}) =>\n (attempts: Observable<any>) => {\n return attempts.pipe(\n mergeMap((error, i) => {\n const retryAttempt = i + 1\n // if maximum number of retries have been met\n // or response is a status code we don't wish to retry, throw error\n if (\n retryAttempt > maxRetryAttempts ||\n excludedStatusCodes.find((e) => e === error.status)\n ) {\n return throwError(() => error)\n }\n console.warn(\n `Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`,\n )\n return timer(retryAttempt * scalingDuration)\n }),\n finalize(() =>\n console.warn(\n `Failed after ${maxRetryAttempts} retry attempts, standing down.`,\n ),\n ),\n )\n }\n","import {\n inject,\n KeyValueChangeRecord,\n KeyValueChanges,\n KeyValueDiffer,\n KeyValueDiffers,\n Pipe,\n PipeTransform,\n} from '@angular/core'\n\n@Pipe({\n name: 'value', pure: false,\n standalone: false\n})\nexport class ValuePipe implements PipeTransform {\n constructor(private readonly differs: KeyValueDiffers) {}\n\n private differ!: KeyValueDiffer<any, any>\n private values: Array<any> = []\n\n transform<K, V>(input: null): null\n transform<V>(input: { [key: string]: V } | Map<string, V>): Array<V>\n transform<V>(\n input: { [key: string]: V } | Map<string, V> | null,\n ): Array<V> | null\n transform<K, V>(input: Map<K, V>): Array<V>\n transform<K, V>(input: Map<K, V> | null): Array<V> | null\n transform<K, V>(\n input: null | { [key: string]: V; [key: number]: V } | Map<K, V>,\n ): Array<V> | null {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null\n }\n\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create()\n }\n\n const differChanges: KeyValueChanges<K, V> | null = this.differ.diff(\n input as any,\n )\n\n if (differChanges) {\n this.values = []\n differChanges.forEachItem((r: KeyValueChangeRecord<K, V>) => {\n this.values.push(r.currentValue)\n })\n }\n return this.values\n }\n}\n\n/**\n * Stand-alone version of existing value pipe.\n *\n * Impure flag needed due to keep track of changes in complex values (such as objects or arrays).\n */\n@Pipe({\n name: 'valueImpure',\n pure: false,\n standalone: true,\n})\nexport class ValueImpurePipe implements PipeTransform {\n private readonly differs = inject(KeyValueDiffers)\n\n private differ!: KeyValueDiffer<any, any>\n private values: Array<any> = []\n\n transform<K, V>(input: null): null\n transform<V>(input: { [key: string]: V } | Map<string, V>): Array<V>\n transform<V>(\n input: { [key: string]: V } | Map<string, V> | null,\n ): Array<V> | null\n transform<K, V>(input: Map<K, V>): Array<V>\n transform<K, V>(input: Map<K, V> | null): Array<V> | null\n transform<K, V>(\n input: null | { [key: string]: V; [key: number]: V } | Map<K, V>,\n ): Array<V> | null {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null\n }\n\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create()\n }\n\n const differChanges: KeyValueChanges<K, V> | null = this.differ.diff(\n input as any,\n )\n\n if (differChanges) {\n this.values = []\n differChanges.forEachItem(\n ({ currentValue }: KeyValueChangeRecord<K, V>) => {\n this.values.push(currentValue)\n },\n )\n }\n return this.values\n }\n}\n","/* eslint-disable no-console */\nimport { HttpEventType } from '@angular/common/http'\nimport {\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n Output,\n ViewChild,\n} from '@angular/core'\nimport { timer } from 'rxjs'\nimport { filter, retryWhen, switchMap, take, tap } from 'rxjs/operators'\n\nimport {\n DialogEvent,\n NggvDialogComponent,\n} from '@sebgroup/green-angular/src/v-angular/modal'\nimport {\n extendFile,\n isDragDropAvailable,\n pick,\n retryStrategy,\n verifyAccept,\n} from './drag-drop.utils'\n\nimport type {\n APIFile,\n EventStateChange,\n FileService,\n LocalFile,\n StateMap,\n UploadState,\n} from './drag-drop.models'\n\nimport '@sebgroup/green-core/components/icon/icons/cloud-upload.js'\nimport '@sebgroup/green-core/components/icon/icons/cross-small.js'\nimport '@sebgroup/green-core/components/icon/icons/checkmark.js'\n\nexport type DragDropState = 'normal' | 'over' | 'uploading' | 'done'\n\n@Component({\n selector: 'nggv-drag-drop',\n templateUrl: './drag-drop.component.html',\n styleUrls: ['./drag-drop.component.scss'],\n standalone: false\n})\nexport class NggvDragDropComponent implements OnInit, OnDestroy {\n /** @internal */\n @ViewChild('deleteModalRef') deleteModalRef!: NggvDialogComponent\n\n /** Special property used for selecting DOM elements during automated UI testing. */\n @HostBinding('attr.data-thook') @Input() thook: string | null | undefined =\n 'drag-drop'\n\n /** Allowing selecting or dropping multiple files. */\n @Input() service: FileService | undefined\n\n /** Mime types allowed. */\n @Input() accept?: string\n\n /** Disables deletion or cancellation during defined states [local | uploading | aborted | uploaded | validating | error | deleted | done]. */\n @Input() disableRemove: UploadState[] = []\n\n /** File size limit in mega bytes. */\n @Input() fileLimit: number = 250 * 1024 * 1024\n\n /** Allowing selecting or dropping multiple files. */\n @Input() multiple = true\n\n /** Determines if list should be shown under upload, disabling list disables multiple upload. */\n @Input() list = true\n\n /** Frequency of requests which to send to the API requesting status updates. */\n @Input() throttle = 5000\n\n /** Maximum number of attempts to request a status update from the API if service is unreachable. */\n @Input() retryAttempts = 5\n\n /** If selection of multiple file should be possible with a checkbox.\n * @experimental work in progress and should not yet be used.\n * @internal\n */\n @Input() selectable = false\n\n /** Allows multiple values from `apiFile.status` to be mapped to a single file upload state. */\n @Input() stateMap: StateMap = {\n local: 'local',\n uploading: 'uploading',\n aborted: 'aborted',\n uploaded: 'uploaded',\n validating: 'validating',\n error: 'error',\n deleted: 'deleted',\n done: 'done',\n }\n\n /** Statuses allowed to be fetch during the initial load. Used to hide \"done\" states from list. */\n @Input() fetchStatuses: string[] = []\n\n /** Statuses allowed be shown when status is \"rejected\". Will fallback to generic message. `null` allows all. */\n @Input() errorCodes: string[] | null = null\n\n /** Event triggered on initialization and every time the \"uploadState\" for a file changes. */\n @Output() stateChange = new EventEmitter<EventStateChange>()\n\n /** Event triggered when view details is clicked. */\n @Output() detailsClick = new EventEmitter<LocalFile & APIFile>()\n\n /** @internal */\n isDragDropAvailable = isDragDropAvailable()\n /** @internal */\n componentState: DragDropState = 'normal'\n /** @internal */\n files: Map<string, LocalFile & APIFile> = new Map()\n /** @internal */\n lastFile: (LocalFile & APIFile) | undefined\n /** @internal */\n selected: string[] = []\n /** @internal */\n loading = false\n /** @internal */\n markedForDeletion: APIFile | undefined\n\n /**\n * Initialize the component and warn if service is not defined. Will also fetch files for the list if enabled.\n */\n ngOnInit() {\n if (!this.service) {\n return console.error(\n 'Drag and drop component will not work without the [service] property defined!',\n )\n }\n\n if (this.list) {\n this.service.fetchFiles(this.fetchStatuses).subscribe((apiFiles) => {\n for (const apiFile of apiFiles) {\n const extendedFile = extendFile(undefined, apiFile, {\n progress: 100,\n uploadState: this.determineUploadState(apiFile.status),\n internalStatusReasonCode: this.fallbackError(\n apiFile.internalStatusReasonCode,\n ),\n })\n this.files.set(extendedFile.id, extendedFile)\n this.stateChange.emit(\n pick(\n extendedFile,\n 'uploadState',\n 'fileName',\n 'id',\n 'status',\n 'internalStatusReasonCode',\n 'statusReasonInformation',\n ),\n )\n\n // Check if validation is required, then start polling\n if (\n extendedFile.uploadState === 'uploaded' ||\n extendedFile.uploadState === 'validating'\n ) {\n this.checkValidity(extendedFile, this.throttle)\n }\n }\n })\n }\n }\n\n /** Destroy all event listeners and polling running */\n ngOnDestroy() {\n this.files.forEach((file) => {\n file.uploadRequests?.unsubscribe()\n if (file.uploadState === 'uploading') {\n file.uploadState = 'aborted'\n file.internalStatusReasonCode = 'MFEFHM004'\n this.stateChange.emit(\n pick(\n file,\n 'uploadState',\n 'fileName',\n 'status',\n 'internalStatusReasonCode',\n ),\n )\n }\n })\n }\n\n /** @internal Warn user trying to leave page before all uploads are done. Custom message only works in older browsers. */\n @HostListener('window:beforeunload', ['$event'])\n onBeforeUnload(event: Event) {\n if (!this.allUploadingDone(this.files)) {\n const confirmationMessage = `You still have files uploading, are you sure you want to leave this page?`\n ;((event as any) || (window.event as any)).returnValue =\n confirmationMessage\n return confirmationMessage\n }\n return\n }\n\n /* Drag & Drop Events */\n\n /** @internal Event handler for when a file is held over the drop area */\n onDragEnter(event: DragEvent): void {\n if (!this.service) return\n event.preventDefault()\n // Update the visual state\n this.componentState = 'over'\n }\n\n /** @internal Event handler for when a file leaves the drop area */\n onDragLeave(event: DragEvent): void {\n if (!this.service) return\n event.preventDefault()\n this.componentState = 'normal'\n }\n\n /** @internal Event handler for when a file is dropped on the drop area or when `input` files are selected */\n onDrop(event: DragEvent | Event): void {\n if (!this.service) return\n event.preventDefault()\n this.componentState = 'normal'\n\n let files: FileList | undefined\n\n // Determine if files are from the drop event or input element\n if (event instanceof DragEvent && event.dataTransfer) {\n files = event.dataTransfer.files\n } else if (\n event.target &&\n event.target instanceof HTMLInputElement &&\n event.target.files\n ) {\n files = event.target.files\n }\n\n if (files) {\n const extendedFiles = Array.from(files, (file) => {\n let abort = false\n let statusCode: string | null = null\n // Check if file size is larger than limit\n if (file.size > this.fileLimit) {\n abort = true\n statusCode = 'MFEFHM003'\n }\n // Check if file type is not acceptable\n if (!verifyAccept(file.type, this.accept)) {\n abort = true\n statusCode = 'MFEFHM002'\n }\n // Add default values expected by the API\n const extendedFile = extendFile(file, {\n internalStatusReasonCode: statusCode,\n uploadState: (abort ? 'aborted' : 'local') as UploadState,\n })\n\n // Emit initial local upload event\n this.stateChange.emit({\n uploadState: 'local',\n fileName: extendedFile.fileName,\n })\n\n if (abort) {\n // Emit aborted upload event\n this.stateChange.emit({\n uploadState: 'aborted',\n fileName: extendedFile.fileName,\n status: 'aborted',\n internalStatusReasonCode: statusCode,\n })\n }\n\n return extendedFile\n })\n\n // Append to previous files\n let i = 0\n for (const file of extendedFiles) {\n // If multiple or list is false append only file then break loop\n if ((!this.multiple || !this.list) && i >= 1) break\n this.lastFile = file\n this.files.set(file.id, file)\n i++\n }\n\n // Clear file input so that same file can be uploaded\n if (\n event.target &&\n event.target instanceof HTMLInputElement &&\n event.target.files\n ) {\n event.target.value = ''\n }\n\n this.onSubmit()\n }\n }\n\n /** @internal Event trigger for when delete button is pressed */\n onRemove(id: string, state: UploadState): void {\n // Only allow removal in certain states\n if (!this.service || this.disableRemove.includes(state)) return\n const file = this.files.get(id)\n if (!file) return\n // Skip confirmation for aborted and deleted files\n if (\n file.uploadState === 'error' ||\n file.uploadState === 'aborted' ||\n file.uploadState === 'deleted'\n ) {\n this.onConfirmRemove({ original: undefined, payload: file })\n } else {\n this.markedForDeletion = file\n this.deleteModalRef.open()\n }\n }\n\n /** @internal */\n onConfirmRemove(event: DialogEvent<LocalFile & APIFile>) {\n const { payload: file } = event\n if (!file || !this.service) return\n\n // Abort upload and set local state to aborted to inform user\n switch (file.uploadState) {\n case 'local':\n case 'uploading':\n file.uploadRequests?.unsubscribe()\n file.uploadState = 'aborted'\n file.internalStatusReasonCode = 'MFEFHM004'\n this.stateChange.emit(\n pick(\n file,\n 'uploadState',\n 'fileName',\n 'status',\n 'internalStatusReasonCode',\n ),\n )\n break\n\n // Remove file from service then set local state to aborted to inform user\n case 'uploaded':\n case 'validating':\n this.service\n .removeFile(file.id)\n .subscribe({\n error: console.warn,\n })\n .add(() => {\n // Abort regardless of response from server\n file.uploadRequests?.unsubscribe()\n file.uploadState = 'aborted'\n file.internalStatusReasonCode = 'MFEFHM005'\n this.stateChange.emit(\n pick(\n file,\n 'uploadState',\n 'fileName',\n 'status',\n 'internalStatusReasonCode',\n ),\n )\n })\n break\n\n // Remove file from service then locally for \"completed\" states\n case 'error':\n case 'done':\n ;(this.service.removeFileFor\n ? this.service.removeFileFor(file)\n : this.service.removeFile(file.id)\n )\n .subscribe({\n error: console.warn,\n })\n .add(() => {\n // Remove regardless of response from server\n this.files.delete(file.id)\n const event = pick(\n file,\n 'uploadState',\n 'fileName',\n 'id',\n 'status',\n 'internalStatusReasonCode',\n 'statusReasonInformation',\n )\n event.uploadState = 'deleted'\n this.stateChange.emit(event)\n })\n break\n\n // Just remove the file locally to clean up\n case 'aborted':\n case 'deleted':\n default:\n this.files.delete(file.id)\n this.stateChange.emit({\n ...pick(\n file,\n 'uploadState',\n 'fileName',\n 'id',\n 'status',\n 'internalStatusReasonCode',\n 'statusReasonInformation',\n ),\n uploadState: 'deleted',\n })\n break\n }\n }\n\n /** @internal Event handler for when the files should be uploaded */\n onSubmit() {\n if (!this.files || !this.service) return\n // If list is not enabled update the component state to show progress\n if (!this.list) this.componentState = 'uploading'\n this.loading = true\n this.files.forEach((file) => {\n // Filter out all files that aren't currently considered local\n if (!file.raw || file.uploadState !== 'local') return\n file.uploadRequests = this.service!.uploadFile(file.raw!).subscribe({\n next: (event) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n // Update upload progress\n if (file.uploadState !== 'uploading') {\n file.uploadState = 'uploading'\n this.stateChange.emit(pick(file, 'uploadState', 'fileName'))\n }\n file.progress = Math.round(\n (100 * event.loaded) / (event.total || 100),\n )\n file.uploadState = 'uploading'\n break\n\n case HttpEventType.Response:\n if (event.body?.id) {\n // Remove old file id\n this.files.delete(file.id)\n // Update file with information from the API\n Object.assign(file, event.body)\n file.progress = 100\n file.uploadState = this.determineUploadState(file.status)\n // Update with new file id\n this.files.set(file.id, file)\n }\n\n this.stateChange.emit(\n pick(\n file,\n 'uploadState',\n 'fileName',\n 'id',\n 'status',\n 'statusReasonInformation',\n ),\n )\n\n // Check if validation is required, then start polling\n if (\n file.uploadState === 'uploaded' ||\n file.uploadState === 'validating'\n ) {\n this.checkValidity(file, this.throttle)\n } else this.setComponentStateDone()\n this.loading = false\n break\n }\n },\n error: (error) => {\n console.warn(error)\n file.uploadState = 'aborted'\n file.status = 'aborted'\n // todo: wrong\n file.statusReasonInformation = [\n { originatorId: 'local', reason: 'dragDrop.error.MFEFHM001' },\n ]\n this.stateChange.emit(\n pick(\n file,\n 'uploadState',\n 'fileName',\n 'id',\n 'status',\n 'statusReasonInformation',\n ),\n )\n this.loading = false\n },\n })\n })\n }\n\n /**\n * @internal\n * Using the state map convert `apiFile.state` to one of {@link UploadState}\n * @param apiState the state given by the file to be used for mapping\n */\n determineUploadState(apiState: string): UploadState {\n // Reverse so that later states override earlier\n const stateEntries = Object.entries(this.stateMap).reverse()\n for (const [uploadState, apiStates] of stateEntries) {\n if (this.uploadStateIsArray(apiStates)) {\n if (apiStates.includes(apiState)) return uploadState as any\n } else {\n if (apiStates === apiState) return uploadState as any\n }\n }\n return 'error'\n }\n\n /** @internal */\n uploadStateIsArray(state: string | string[]): state is string[] {\n return Array.isArray(state)\n }\n\n /** @internal used for translation templating parameters */\n translateParams(file: LocalFile & APIFile) {\n return { ...file, fileLimit: (this.fileLimit / 1024 / 1024).toFixed(3) }\n }\n\n /**\n * Poll the status endpoint to determine when file is valid\n * @param file file used to check state and update\n * @param delay how long each interval should wait before sending a request\n */\n private checkValidity(file: LocalFile & APIFile, delay: number) {\n if (!this.service) return\n file.uploadRequests = timer(0, delay)\n .pipe(\n switchMap(() => {\n const asyncFetchStatus =\n this.service && this.service.fetchStatusFor\n ? this.service.fetchStatusFor(file)\n : this.service!.fetchStatus(file.id)\n return asyncFetchStatus\n }),\n retryWhen(\n retryStrategy({\n maxRetryAttempts: this.retryAttempts,\n }),\n ),\n tap((fileStatus) => {\n // Continuously update file state to show step progress\n if (fileStatus) {\n // Emit event when status changes\n if (file.status !== fileStatus.status) {\n file.status = fileStatus.status\n file.internalStatusReasonCode = this.fallbackError(\n fileStatus.internalStatusReasonCode,\n )\n file.statusReasonInformation = fileStatus.statusReasonInformation\n file.uploadState = this.determineUploadState(fileStatus.status)\n this.stateChange.emit(\n pick(\n file,\n 'uploadState',\n 'fileName',\n 'id',\n 'status',\n 'internalStatusReasonCode',\n 'statusReasonInformation',\n ),\n )\n }\n }\n }),\n // Remove validation state\n filter(\n (apiFile) =>\n !!apiFile &&\n this.determineUploadState(apiFile.status) !== 'uploaded' &&\n this.determineUploadState(apiFile.status) !== 'validating',\n ),\n // Take first state after validation\n take(1),\n )\n .subscribe({\n next: () => {\n if (this.allValidationDone(this.files)) {\n this.setComponentStateDone()\n }\n },\n error: (err) => {\n console.warn(err)\n file.uploadState = 'aborted'\n file.status = 'aborted'\n file.internalStatusReasonCode = 'MFEFHM001'\n this.stateChange.emit(\n pick(\n file,\n 'uploadState',\n 'fileName',\n 'id',\n 'status',\n 'internalStatusReasonCode',\n ),\n )\n this.setComponentStateDone()\n },\n })\n }\n\n private fallbackError(code: string | null | undefined): string | null {\n if (this.errorCodes == null || (code && this.errorCodes.includes(code))) {\n return code ?? null\n } else {\n return 'MFEFHM001'\n }\n }\n\n /**\n * Check so that no files are still validating\n */\n private allValidationDone(files: Map<string, LocalFile>) {\n return Array.from(files.values()).every(\n (file) => file.uploadState !== 'validating',\n )\n }\n\n /**\n * Check so that no files are still uploading\n */\n private allUploadingDone(files: Map<string, LocalFile>) {\n return Array.from(files.values()).every(\n (file) => file.uploadState !== 'uploading',\n )\n }\n\n /**\n * Helper to update the component state to done and then back to normal\n */\n private setComponentStateDone() {\n if (!this.list) this.componentState = 'done'\n setTimeout(() => {\n if (this.componentState === 'done') this.componentState = 'normal'\n }, 3000)\n }\n}\n","<ng-container *transloco=\"let t\">\n <form enctype=\"multipart/form-data\" #dragDropForm>\n <div class=\"gds-drag-drop\">\n <input\n class=\"gds-drag-drop__input\"\n id=\"drag-drop\"\n type=\"file\"\n [accept]=\"accept\"\n [multiple]=\"multiple && list\"\n (change)=\"onDrop($event)\"\n />\n <label\n [ngClass]=\"{\n 'gds-drag-drop__label': true,\n 'gds-drag-drop__label--above': componentState === 'over',\n }\"\n for=\"drag-drop\"\n [attr.data-thook]=\"thook + '-picker'\"\n [attr.aria-busy]=\"loading\"\n (dragenter)=\"onDragEnter($event)\"\n (dragover)=\"onDragEnter($event)\"\n (dragleave)=\"onDragLeave($event)\"\n (dragend)=\"onDragLeave($event)\"\n (drop)=\"onDrop($event)\"\n [ngSwitch]=\"componentState\"\n >\n <!-- COMPONENT STATE NORMAL -->\n <ng-template [ngSwitchCase]=\"'normal'\">\n <gds-icon-cloud-upload *nggCoreElement></gds-icon-cloud-upload\n ><em>{{ t('dragDrop.label.fileChoose') }}</em>\n <ng-template [ngIf]=\"isDragDropAvailable\">\n {{ t('dragDrop.label.fileDrag') }}</ng-template\n >\n </ng-template>\n\n <!-- COMPONENT STATE OVER -->\n <ng-template [ngSwitchCase]=\"'over'\">\n <gds-icon-cloud-upload *nggCoreElement></gds-icon-cloud-upload\n >{{ t('dragDrop.label.fileDrop') }}\n </ng-template>\n\n <!-- COMPONENT STATE UPLOADING -->\n <ng-template [ngSwitchCase]=\"'uploading'\">\n <strong class=\"filename\">{{ lastFile?.fileName }}</strong>\n\n <!-- UPLOADING STATE -->\n <ng-template [ngIf]=\"lastFile?.uploadState === 'uploading'\">\n <ng-template\n [ngTemplateOutlet]=\"progressTemplate\"\n [ngTemplateOutletContext]=\"{\n file: lastFile,\n }\"\n ></ng-template>\n </ng-template>\n\n <!-- UPLOADED STATE -->\n <ng-template [ngIf]=\"lastFile?.uploadState === 'uploaded'\">\n <ng-template\n [ngTemplateOutlet]=\"progressTemplate\"\n [ngTemplateOutletContext]=\"{\n file: lastFile,\n text: t('dragDrop.text.fileStateUploaded'),\n }\"\n ></ng-template>\n </ng-template>\n\n <!-- VALIDATING STATE -->\n <ng-template [ngIf]=\"lastFile?.uploadState === 'validating'\">\n <ng-template\n [ngTemplateOutlet]=\"progressTemplate\"\n [ngTemplateOutletContext]=\"{\n file: lastFile,\n text: t('dragDrop.text.fileStateValidating'),\n }\"\n ></ng-template>\n </ng-template>\n </ng-template>\n\n <!-- COMPONENT STATE DONE -->\n <ng-template [ngSwitchCase]=\"'done'\">\n {{ t('dragDrop.label.fileUploaded', { filename: lastFile?.fileName })\n }}<gds-icon-checkmark *nggCoreElement></gds-icon-checkmark>\n </ng-template>\n </label>\n\n <!-- LIST -->\n <table\n class=\"gds-table file-list\"\n [attr.data-thook]=\"thook + '-file-list'\"\n *ngIf=\"list\"\n >\n <thead>\n <tr>\n <th *ngIf=\"selectable\">\n <div class=\"gds-field-checkbox-wrap\">\n <input\n type=\"checkbox\"\n aria-label=\"Field label\"\n id=\"select-all\"\n />\n <label for=\"select-all\"></label>\n </div>\n </th>\n <th class=\"gds-table__primary-col col-name\">\n {{ t('dragDrop.label.fileName') }}\n </th>\n <th class=\"col-status\">\n {{ t('dragDrop.label.fileStatus') }}\n </th>\n <th class=\"col-actions\"></th>\n </tr>\n </thead>\n <tbody>\n <tr\n [attr.data-thook]=\"thook + '-file'\"\n *ngFor=\"let file of files | value\"\n >\n <td *ngIf=\"selectable\">\n <div class=\"gds-field-checkbox-wrap\">\n <input\n type=\"checkbox\"\n aria-label=\"Field label\"\n [id]=\"'file-checkbox-' + file.id\"\n />\n <label [for]=\"'file-checkbox-' + file.id\"></label>\n </div>\n </td>\n <td\n class=\"gds-table__primary-col\"\n [attr.data-thook]=\"thook + '-file-name'\"\n >\n {{ file.fileName }}\n </td>\n <td\n [attr.data-thook]=\"thook + '-file-status'\"\n [ngSwitch]=\"file.uploadState\"\n >\n <!-- UPLOADING STATE -->\n <ng-template [ngSwitchCase]=\"'uploading'\">\n <ng-template\n [ngTemplateOutlet]=\"progressTemplate\"\n [ngTemplateOutletContext]=\"{\n file: file,\n }\"\n ></ng-template>\n </ng-template>\n\n <!-- UPLOADED STATE -->\n <ng-template [ngSwitchCase]=\"'uploaded'\">\n <ng-template\n [ngTemplateOutlet]=\"progressTemplate\"\n [ngTemplateOutletContext]=\"{\n file: file,\n text: t('dragDrop.text.fileStateUploaded'),\n }\"\n ></ng-template>\n </ng-template>\n\n <!-- VALIDATING STATE -->\n <ng-template [ngSwitchCase]=\"'validating'\">\n <ng-template\n [ngTemplateOutlet]=\"progressTemplate\"\n [ngTemplateOutletContext]=\"{\n file: file,\n text: t('dragDrop.text.fileStateValidating'),\n }\"\n ></ng-template>\n </ng-template>\n\n <!-- ABORTED STATE -->\n <ng-template [ngSwitchCase]=\"'aborted'\">\n <span\n class=\"error-text\"\n [transloco]=\"\n 'dragDrop.error.' + file.internalStatusReasonCode\n \"\n [translocoParams]=\"translateParams(file)\"\n *ngIf=\"file.internalStatusReasonCode\"\n ></span>\n </ng-template>\n\n <!-- ERROR STATE -->\n <ng-template [ngSwitchCase]=\"'error'\">\n <span\n class=\"error-text\"\n [transloco]=\"\n 'dragDrop.error.' + file.internalStatusReasonCode\n \"\n [translocoParams]=\"translateParams(file)\"\n *ngIf=\"file.internalStatusReasonCode\"\n ></span>\n <br />\n <a\n (click)=\"detailsClick.emit(file)\"\n style=\"cursor: pointer\"\n *ngIf=\"\n file.statusReasonInformation &&\n file.statusReasonInformation.length\n \"\n >\n {{ t('dragDrop.link.viewDetails') }}\n </a>\n </ng-template>\n\n <!-- DONE STATE -->\n <ng-template [ngSwitchCase]=\"'done'\">\n <span class=\"success-text\">{{\n t('dragDrop.text.fileStateDone')\n }}</span>\n </ng-template>\n </td>\n\n <td class=\"gds-table__numeric-col\">\n <a\n class=\"remove\"\n tabindex=\"0\"\n (click)=\"onRemove(file.id, file.uploadState)\"\n *ngIf=\"!disableRemove.includes(file.uploadState)\"\n >\n <gds-icon-cross-small *nggCoreElement></gds-icon-cross-small>\n </a>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n </form>\n\n <nggv-dialog\n #deleteModalRef\n [title]=\"t('dragDrop.text.fileCancelModalTitle')\"\n [content]=\"\n t('dragDrop.text.fileCancelModalContent', {\n name: markedForDeletion?.fileName,\n })\n \"\n [payload]=\"markedForDeletion\"\n [buttons]=\"{\n negative: 'dragDrop.text.fileCancelConfirm',\n positive: 'dragDrop.text.fileCancelDeny',\n }\"\n (nggvNegativeEvent)=\"onConfirmRemove($any($event))\"\n ></nggv-dialog>\n\n <!-- PROGRESS TEMPLATE -->\n\n <ng-template\n #progressTemplate\n let-file=\"\n file\"\n let-text=\"text\"\n >\n <div class=\"progress-wrapper\">\n <progress\n class=\"gds-progress-bar progress\"\n max=\"100\"\n [value]=\"file.progress\"\n >\n {{\n t('dragDrop.text.fileStateUploading', {\n uploaded:\n (file.raw?.size * (file.progress / 100)) / 1024 | number: '0.0-0',\n size: file.raw?.size / 1024 | number: '0.0-0',\n progress: file.progress,\n unit: 'kB',\n })\n }}\n </progress>\n <ng-template [ngIf]=\"stateMap.validating.length\">\n <div\n class=\"gds-progress-indicator indicator\"\n *ngIf=\"uploadStateIsArray(stateMap.validating); else singleValidation\"\n >\n <div\n class=\"gds-progress-indicator__step\"\n [class.-done]=\"i <= stateMap.validating.indexOf(file.status)\"\n *ngFor=\"let state of stateMap.validating; let i = index\"\n ></div>\n </div>\n </ng-template>\n <ng-template #singleValidation>\n <div class=\"gds-progress-indicator indicator\">\n <!-- eslint-disable @angular-eslint/template/eqeqeq -->\n <div\n class=\"gds-progress-indicator__step\"\n [class.-done]=\"file.status == stateMap.validating\"\n ></div>\n <!-- eslint-enable @angular-eslint/template/eqeqeq -->\n </div>\n </ng-template>\n </div>\n <span class=\"progress-text\">\n {{\n text ||\n t('dragDrop.text.fileStateUploading', {\n uploaded:\n (file.raw?.size * (file.progress / 100)) / 1024 | number: '0.0-0',\n size: file.raw?.size / 1024 | number: '0.0-0',\n progress: file.progress,\n unit: 'kB',\n })\n }}\n </span>\n </ng-template>\n</ng-container>\n","import { CommonModule } from '@angular/common'\nimport { HttpClientModule } from '@angular/common/http'\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'\nimport { TRANSLOCO_SCOPE, TranslocoModule } from '@jsverse/transloco'\n\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared'\nimport { NggvModalModule } from '@sebgroup/green-angular/src/v-angular/modal'\nimport { NggvDragDropComponent } from './drag-drop.component'\nimport { ValuePipe } from './drag-drop.pipes'\n\n@NgModule({\n imports: [\n HttpClientModule,\n TranslocoModule,\n NggvModalModule,\n NggCoreWrapperModule,\n CommonModule,\n ],\n declarations: [ValuePipe, NggvDragDropComponent],\n providers: [\n {\n provide: TRANSLOCO_SCOPE,\n useValue: 'dragDrop',\n },\n ],\n exports: [NggvDragDropComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class NggvDragDropModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i5.ValuePipe"],"mappings":"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"}
1
+ {"version":3,"file":"sebgroup-green-angular-src-v-angular-drag-drop.mjs","sources":["../tmp-esm2022/src/v-angular/drag-drop/drag-drop.utils.js","../tmp-esm2022/src/v-angular/drag-drop/drag-drop.pipes.js","../tmp-esm2022/src/v-angular/drag-drop/drag-drop.component.js","../tmp-esm2022/src/v-angular/drag-drop/drag-drop.module.js","../tmp-esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.js"],"sourcesContent":["/* eslint-disable no-console */\nimport { throwError, timer } from 'rxjs';\nimport { finalize, mergeMap } from 'rxjs/operators';\n/**\n * Helper to extend the base file with {@link APIFile} defaults\n * @param file file base that will be extended with {@link APIFile} defaults\n * @param data extra data to override defaults\n */\nexport const extendFile = (file, ...data) => {\n return Object.assign({\n id: file ? btoa(file.name) : '',\n fileName: file ? file.name : 'na',\n status: '',\n statusReasonInformation: null,\n principal: '',\n uploadDate: (file\n ? new Date(file.lastModified)\n : new Date()).toISOString(),\n registrarId: '',\n registrarName: '',\n progress: 0,\n uploadState: 'local',\n uploadRequests: undefined,\n raw: file,\n }, ...data);\n};\n/**\n * Checks if file matches allowed mime types\n * @param type file mime type\n * @param accept allowed mime types\n */\nexport const verifyAccept = (type, accept) => {\n if (!accept)\n return true;\n const regex = new RegExp(accept.replace(/\\*/g, '.*').replace(/\\s*,\\s*/g, '|'));\n return regex.test(type);\n};\n/**\n * Determines if browser supports drag and drop\n */\nexport const isDragDropAvailable = () => {\n const div = document.createElement('div');\n return (('draggable' in div || ('ondragstart' in div && 'ondrop' in div)) &&\n 'FormData' in window &&\n 'FileReader' in window);\n};\n/**\n * Pick only specified keys from a given object\n * @param keys keys to pick from a given object\n * @param object to extract keys from\n */\nexport const pick = (object, ...keys) => {\n const copy = {};\n keys.forEach((key) => {\n copy[key] = object[key];\n });\n return copy;\n};\n/**\n * Will retry running the observable when an error occurs to a maximum limit, increasing delay between executions.\n * @param options specifies number of retries, scaling duration and statuses to exclude\n */\nexport const retryStrategy = ({ maxRetryAttempts = 3, scalingDuration = 1000, excludedStatusCodes = [], } = {}) => (attempts) => {\n return attempts.pipe(mergeMap((error, i) => {\n const retryAttempt = i + 1;\n // if maximum number of retries have been met\n // or response is a status code we don't wish to retry, throw error\n if (retryAttempt > maxRetryAttempts ||\n excludedStatusCodes.find((e) => e === error.status)) {\n return throwError(() => error);\n }\n console.warn(`Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`);\n return timer(retryAttempt * scalingDuration);\n }), finalize(() => console.warn(`Failed after ${maxRetryAttempts} retry attempts, standing down.`)));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJhZy1kcm9wL2RyYWctZHJvcC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUluRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLElBQXNCLEVBQ3RCLEdBQUcsSUFBc0QsRUFDcEMsRUFBRTtJQUN2QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCO1FBQ0UsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2pDLE1BQU0sRUFBRSxFQUFFO1FBQ1YsdUJBQXVCLEVBQUUsSUFBSTtRQUM3QixTQUFTLEVBQUUsRUFBRTtRQUNiLFVBQVUsRUFBRSxDQUFDLElBQUk7WUFDZixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM3QixDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FDYixDQUFDLFdBQVcsRUFBRTtRQUNmLFdBQVcsRUFBRSxFQUFFO1FBQ2YsYUFBYSxFQUFFLEVBQUU7UUFDakIsUUFBUSxFQUFFLENBQUM7UUFDWCxXQUFXLEVBQUUsT0FBTztRQUNwQixjQUFjLEVBQUUsU0FBUztRQUN6QixHQUFHLEVBQUUsSUFBSTtLQUNhLEVBQ3hCLEdBQUcsSUFBSSxDQUNSLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLE1BQWUsRUFBRSxFQUFFO0lBQzVELElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzlFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN6QixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtJQUN0QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sQ0FDTCxDQUFDLFdBQVcsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksR0FBRyxJQUFJLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNqRSxVQUFVLElBQUksTUFBTTtRQUNwQixZQUFZLElBQUksTUFBTSxDQUN2QixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUNsQixNQUFTLEVBQ1QsR0FBRyxJQUFTLEVBQ0EsRUFBRTtJQUNkLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUN4QixDQUFDLEVBQ0MsZ0JBQWdCLEdBQUcsQ0FBQyxFQUNwQixlQUFlLEdBQUcsSUFBSSxFQUN0QixtQkFBbUIsR0FBRyxFQUFFLE1BS3RCLEVBQUUsRUFBRSxFQUFFLENBQ1YsQ0FBQyxRQUF5QixFQUFFLEVBQUU7SUFDNUIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNsQixRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQiw2Q0FBNkM7UUFDN0MsbUVBQW1FO1FBQ25FLElBQ0UsWUFBWSxHQUFHLGdCQUFnQjtZQUMvQixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQ25ELENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVixXQUFXLFlBQVksaUJBQWlCLFlBQVksR0FBRyxlQUFlLElBQUksQ0FDM0UsQ0FBQTtRQUNELE9BQU8sS0FBSyxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsQ0FBQTtJQUM5QyxDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFLENBQ1osT0FBTyxDQUFDLElBQUksQ0FDVixnQkFBZ0IsZ0JBQWdCLGlDQUFpQyxDQUNsRSxDQUNGLENBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGZpbmFsaXplLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBBUElGaWxlLCBMb2NhbEZpbGUgfSBmcm9tICcuL2RyYWctZHJvcC5tb2RlbHMnXG5cbi8qKlxuICogSGVscGVyIHRvIGV4dGVuZCB0aGUgYmFzZSBmaWxlIHdpdGgge0BsaW5rIEFQSUZpbGV9IGRlZmF1bHRzXG4gKiBAcGFyYW0gZmlsZSBmaWxlIGJhc2UgdGhhdCB3aWxsIGJlIGV4dGVuZGVkIHdpdGgge0BsaW5rIEFQSUZpbGV9IGRlZmF1bHRzXG4gKiBAcGFyYW0gZGF0YSBleHRyYSBkYXRhIHRvIG92ZXJyaWRlIGRlZmF1bHRzXG4gKi9cbmV4cG9ydCBjb25zdCBleHRlbmRGaWxlID0gKFxuICBmaWxlOiBGaWxlIHwgdW5kZWZpbmVkLFxuICAuLi5kYXRhOiBBcnJheTxQYXJ0aWFsPE9taXQ8TG9jYWxGaWxlLCAncmF3Jz4gJiBBUElGaWxlPj5cbik6IExvY2FsRmlsZSAmIEFQSUZpbGUgPT4ge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICB7XG4gICAgICBpZDogZmlsZSA/IGJ0b2EoZmlsZS5uYW1lKSA6ICcnLFxuICAgICAgZmlsZU5hbWU6IGZpbGUgPyBmaWxlLm5hbWUgOiAnbmEnLFxuICAgICAgc3RhdHVzOiAnJyxcbiAgICAgIHN0YXR1c1JlYXNvbkluZm9ybWF0aW9uOiBudWxsLFxuICAgICAgcHJpbmNpcGFsOiAnJyxcbiAgICAgIHVwbG9hZERhdGU6IChmaWxlXG4gICAgICAgID8gbmV3IERhdGUoZmlsZS5sYXN0TW9kaWZpZWQpXG4gICAgICAgIDogbmV3IERhdGUoKVxuICAgICAgKS50b0lTT1N0cmluZygpLFxuICAgICAgcmVnaXN0cmFySWQ6ICcnLFxuICAgICAgcmVnaXN0cmFyTmFtZTogJycsXG4gICAgICBwcm9ncmVzczogMCxcbiAgICAgIHVwbG9hZFN0YXRlOiAnbG9jYWwnLFxuICAgICAgdXBsb2FkUmVxdWVzdHM6IHVuZGVmaW5lZCxcbiAgICAgIHJhdzogZmlsZSxcbiAgICB9IGFzIExvY2FsRmlsZSAmIEFQSUZpbGUsXG4gICAgLi4uZGF0YSxcbiAgKVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBmaWxlIG1hdGNoZXMgYWxsb3dlZCBtaW1lIHR5cGVzXG4gKiBAcGFyYW0gdHlwZSBmaWxlIG1pbWUgdHlwZVxuICogQHBhcmFtIGFjY2VwdCBhbGxvd2VkIG1pbWUgdHlwZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHZlcmlmeUFjY2VwdCA9ICh0eXBlOiBzdHJpbmcsIGFjY2VwdD86IHN0cmluZykgPT4ge1xuICBpZiAoIWFjY2VwdCkgcmV0dXJuIHRydWVcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGFjY2VwdC5yZXBsYWNlKC9cXCovZywgJy4qJykucmVwbGFjZSgvXFxzKixcXHMqL2csICd8JykpXG4gIHJldHVybiByZWdleC50ZXN0KHR5cGUpXG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBicm93c2VyIHN1cHBvcnRzIGRyYWcgYW5kIGRyb3BcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRHJhZ0Ryb3BBdmFpbGFibGUgPSAoKSA9PiB7XG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIHJldHVybiAoXG4gICAgKCdkcmFnZ2FibGUnIGluIGRpdiB8fCAoJ29uZHJhZ3N0YXJ0JyBpbiBkaXYgJiYgJ29uZHJvcCcgaW4gZGl2KSkgJiZcbiAgICAnRm9ybURhdGEnIGluIHdpbmRvdyAmJlxuICAgICdGaWxlUmVhZGVyJyBpbiB3aW5kb3dcbiAgKVxufVxuXG4vKipcbiAqIFBpY2sgb25seSBzcGVjaWZpZWQga2V5cyBmcm9tIGEgZ2l2ZW4gb2JqZWN0XG4gKiBAcGFyYW0ga2V5cyBrZXlzIHRvIHBpY2sgZnJvbSBhIGdpdmVuIG9iamVjdFxuICogQHBhcmFtIG9iamVjdCB0byBleHRyYWN0IGtleXMgZnJvbVxuICovXG5leHBvcnQgY29uc3QgcGljayA9IDxULCBLIGV4dGVuZHMga2V5b2YgVD4oXG4gIG9iamVjdDogVCxcbiAgLi4ua2V5czogS1tdXG4pOiBQaWNrPFQsIEs+ID0+IHtcbiAgY29uc3QgY29weTogYW55ID0ge31cbiAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb3B5W2tleV0gPSBvYmplY3Rba2V5XVxuICB9KVxuICByZXR1cm4gY29weVxufVxuXG4vKipcbiAqIFdpbGwgcmV0cnkgcnVubmluZyB0aGUgb2JzZXJ2YWJsZSB3aGVuIGFuIGVycm9yIG9jY3VycyB0byBhIG1heGltdW0gbGltaXQsIGluY3JlYXNpbmcgZGVsYXkgYmV0d2VlbiBleGVjdXRpb25zLlxuICogQHBhcmFtIG9wdGlvbnMgc3BlY2lmaWVzIG51bWJlciBvZiByZXRyaWVzLCBzY2FsaW5nIGR1cmF0aW9uIGFuZCBzdGF0dXNlcyB0byBleGNsdWRlXG4gKi9cbmV4cG9ydCBjb25zdCByZXRyeVN0cmF0ZWd5ID1cbiAgKHtcbiAgICBtYXhSZXRyeUF0dGVtcHRzID0gMyxcbiAgICBzY2FsaW5nRHVyYXRpb24gPSAxMDAwLFxuICAgIGV4Y2x1ZGVkU3RhdHVzQ29kZXMgPSBbXSxcbiAgfToge1xuICAgIG1heFJldHJ5QXR0ZW1wdHM/OiBudW1iZXJcbiAgICBzY2FsaW5nRHVyYXRpb24/OiBudW1iZXJcbiAgICBleGNsdWRlZFN0YXR1c0NvZGVzPzogbnVtYmVyW11cbiAgfSA9IHt9KSA9PlxuICAoYXR0ZW1wdHM6IE9ic2VydmFibGU8YW55PikgPT4ge1xuICAgIHJldHVybiBhdHRlbXB0cy5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGVycm9yLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHJldHJ5QXR0ZW1wdCA9IGkgKyAxXG4gICAgICAgIC8vIGlmIG1heGltdW0gbnVtYmVyIG9mIHJldHJpZXMgaGF2ZSBiZWVuIG1ldFxuICAgICAgICAvLyBvciByZXNwb25zZSBpcyBhIHN0YXR1cyBjb2RlIHdlIGRvbid0IHdpc2ggdG8gcmV0cnksIHRocm93IGVycm9yXG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXRyeUF0dGVtcHQgPiBtYXhSZXRyeUF0dGVtcHRzIHx8XG4gICAgICAgICAgZXhjbHVkZWRTdGF0dXNDb2Rlcy5maW5kKChlKSA9PiBlID09PSBlcnJvci5zdGF0dXMpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgQXR0ZW1wdCAke3JldHJ5QXR0ZW1wdH06IHJldHJ5aW5nIGluICR7cmV0cnlBdHRlbXB0ICogc2NhbGluZ0R1cmF0aW9ufW1zYCxcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gdGltZXIocmV0cnlBdHRlbXB0ICogc2NhbGluZ0R1cmF0aW9uKVxuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PlxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYEZhaWxlZCBhZnRlciAke21heFJldHJ5QXR0ZW1wdHN9IHJldHJ5IGF0dGVtcHRzLCBzdGFuZGluZyBkb3duLmAsXG4gICAgICAgICksXG4gICAgICApLFxuICAgIClcbiAgfVxuIl19","import { inject, KeyValueDiffers, Pipe, } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ValuePipe {\n constructor(differs) {\n this.differs = differs;\n this.values = [];\n }\n transform(input) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n if (differChanges) {\n this.values = [];\n differChanges.forEachItem((r) => {\n this.values.push(r.currentValue);\n });\n }\n return this.values;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: ValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.9\", ngImport: i0, type: ValuePipe, isStandalone: false, name: \"value\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: ValuePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'value', pure: false,\n standalone: false\n }]\n }], ctorParameters: () => [{ type: i0.KeyValueDiffers }] });\n/**\n * Stand-alone version of existing value pipe.\n *\n * Impure flag needed due to keep track of changes in complex values (such as objects or arrays).\n */\nexport class ValueImpurePipe {\n constructor() {\n this.differs = inject(KeyValueDiffers);\n this.values = [];\n }\n transform(input) {\n if (!input || (!(input instanceof Map) && typeof input !== 'object')) {\n return null;\n }\n if (!this.differ) {\n // make a differ for whatever type we've been passed in\n this.differ = this.differs.find(input).create();\n }\n const differChanges = this.differ.diff(input);\n if (differChanges) {\n this.values = [];\n differChanges.forEachItem(({ currentValue }) => {\n this.values.push(currentValue);\n });\n }\n return this.values;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: ValueImpurePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }\n static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.3.9\", ngImport: i0, type: ValueImpurePipe, isStandalone: true, name: \"valueImpure\", pure: false }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: ValueImpurePipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'valueImpure',\n pure: false,\n standalone: true,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJhZy1kcm9wL2RyYWctZHJvcC5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUlOLGVBQWUsRUFDZixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUE7O0FBTXRCLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQTZCLE9BQXdCO1FBQXhCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBRzdDLFdBQU0sR0FBZSxFQUFFLENBQUE7SUFIeUIsQ0FBQztJQVl6RCxTQUFTLENBQ1AsS0FBZ0U7UUFFaEUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksR0FBRyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2pELENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBaUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2xFLEtBQVksQ0FDYixDQUFBO1FBRUQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUNoQixhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBNkIsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDbEMsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3BCLENBQUM7OEdBcENVLFNBQVM7NEdBQVQsU0FBUzs7MkZBQVQsU0FBUztrQkFKckIsSUFBSTttQkFBQztvQkFDRixJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLO29CQUMxQixVQUFVLEVBQUUsS0FBSztpQkFDcEI7O0FBd0NEOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sZUFBZTtJQUw1QjtRQU1tQixZQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBRzFDLFdBQU0sR0FBZSxFQUFFLENBQUE7S0FtQ2hDO0lBMUJDLFNBQVMsQ0FDUCxLQUFnRTtRQUVoRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxHQUFHLENBQUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3JFLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDakQsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFpQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbEUsS0FBWSxDQUNiLENBQUE7UUFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBQ2hCLGFBQWEsQ0FBQyxXQUFXLENBQ3ZCLENBQUMsRUFBRSxZQUFZLEVBQThCLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDaEMsQ0FBQyxDQUNGLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3BCLENBQUM7OEdBdENVLGVBQWU7NEdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFMM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaW5qZWN0LFxuICBLZXlWYWx1ZUNoYW5nZVJlY29yZCxcbiAgS2V5VmFsdWVDaGFuZ2VzLFxuICBLZXlWYWx1ZURpZmZlcixcbiAgS2V5VmFsdWVEaWZmZXJzLFxuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AUGlwZSh7XG4gICAgbmFtZTogJ3ZhbHVlJywgcHVyZTogZmFsc2UsXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgVmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzKSB7fVxuXG4gIHByaXZhdGUgZGlmZmVyITogS2V5VmFsdWVEaWZmZXI8YW55LCBhbnk+XG4gIHByaXZhdGUgdmFsdWVzOiBBcnJheTxhbnk+ID0gW11cblxuICB0cmFuc2Zvcm08SywgVj4oaW5wdXQ6IG51bGwpOiBudWxsXG4gIHRyYW5zZm9ybTxWPihpbnB1dDogeyBba2V5OiBzdHJpbmddOiBWIH0gfCBNYXA8c3RyaW5nLCBWPik6IEFycmF5PFY+XG4gIHRyYW5zZm9ybTxWPihcbiAgICBpbnB1dDogeyBba2V5OiBzdHJpbmddOiBWIH0gfCBNYXA8c3RyaW5nLCBWPiB8IG51bGwsXG4gICk6IEFycmF5PFY+IHwgbnVsbFxuICB0cmFuc2Zvcm08SywgVj4oaW5wdXQ6IE1hcDxLLCBWPik6IEFycmF5PFY+XG4gIHRyYW5zZm9ybTxLLCBWPihpbnB1dDogTWFwPEssIFY+IHwgbnVsbCk6IEFycmF5PFY+IHwgbnVsbFxuICB0cmFuc2Zvcm08SywgVj4oXG4gICAgaW5wdXQ6IG51bGwgfCB7IFtrZXk6IHN0cmluZ106IFY7IFtrZXk6IG51bWJlcl06IFYgfSB8IE1hcDxLLCBWPixcbiAgKTogQXJyYXk8Vj4gfCBudWxsIHtcbiAgICBpZiAoIWlucHV0IHx8ICghKGlucHV0IGluc3RhbmNlb2YgTWFwKSAmJiB0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGlmZmVyKSB7XG4gICAgICAvLyBtYWtlIGEgZGlmZmVyIGZvciB3aGF0ZXZlciB0eXBlIHdlJ3ZlIGJlZW4gcGFzc2VkIGluXG4gICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKGlucHV0KS5jcmVhdGUoKVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlckNoYW5nZXM6IEtleVZhbHVlQ2hhbmdlczxLLCBWPiB8IG51bGwgPSB0aGlzLmRpZmZlci5kaWZmKFxuICAgICAgaW5wdXQgYXMgYW55LFxuICAgIClcblxuICAgIGlmIChkaWZmZXJDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IFtdXG4gICAgICBkaWZmZXJDaGFuZ2VzLmZvckVhY2hJdGVtKChyOiBLZXlWYWx1ZUNoYW5nZVJlY29yZDxLLCBWPikgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlcy5wdXNoKHIuY3VycmVudFZhbHVlKVxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzXG4gIH1cbn1cblxuLyoqXG4gKiBTdGFuZC1hbG9uZSB2ZXJzaW9uIG9mIGV4aXN0aW5nIHZhbHVlIHBpcGUuXG4gKlxuICogSW1wdXJlIGZsYWcgbmVlZGVkIGR1ZSB0byBrZWVwIHRyYWNrIG9mIGNoYW5nZXMgaW4gY29tcGxleCB2YWx1ZXMgKHN1Y2ggYXMgb2JqZWN0cyBvciBhcnJheXMpLlxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICd2YWx1ZUltcHVyZScsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBWYWx1ZUltcHVyZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaWZmZXJzID0gaW5qZWN0KEtleVZhbHVlRGlmZmVycylcblxuICBwcml2YXRlIGRpZmZlciE6IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PlxuICBwcml2YXRlIHZhbHVlczogQXJyYXk8YW55PiA9IFtdXG5cbiAgdHJhbnNmb3JtPEssIFY+KGlucHV0OiBudWxsKTogbnVsbFxuICB0cmFuc2Zvcm08Vj4oaW5wdXQ6IHsgW2tleTogc3RyaW5nXTogViB9IHwgTWFwPHN0cmluZywgVj4pOiBBcnJheTxWPlxuICB0cmFuc2Zvcm08Vj4oXG4gICAgaW5wdXQ6IHsgW2tleTogc3RyaW5nXTogViB9IHwgTWFwPHN0cmluZywgVj4gfCBudWxsLFxuICApOiBBcnJheTxWPiB8IG51bGxcbiAgdHJhbnNmb3JtPEssIFY+KGlucHV0OiBNYXA8SywgVj4pOiBBcnJheTxWPlxuICB0cmFuc2Zvcm08SywgVj4oaW5wdXQ6IE1hcDxLLCBWPiB8IG51bGwpOiBBcnJheTxWPiB8IG51bGxcbiAgdHJhbnNmb3JtPEssIFY+KFxuICAgIGlucHV0OiBudWxsIHwgeyBba2V5OiBzdHJpbmddOiBWOyBba2V5OiBudW1iZXJdOiBWIH0gfCBNYXA8SywgVj4sXG4gICk6IEFycmF5PFY+IHwgbnVsbCB7XG4gICAgaWYgKCFpbnB1dCB8fCAoIShpbnB1dCBpbnN0YW5jZW9mIE1hcCkgJiYgdHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JykpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpZmZlcikge1xuICAgICAgLy8gbWFrZSBhIGRpZmZlciBmb3Igd2hhdGV2ZXIgdHlwZSB3ZSd2ZSBiZWVuIHBhc3NlZCBpblxuICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChpbnB1dCkuY3JlYXRlKClcbiAgICB9XG5cbiAgICBjb25zdCBkaWZmZXJDaGFuZ2VzOiBLZXlWYWx1ZUNoYW5nZXM8SywgVj4gfCBudWxsID0gdGhpcy5kaWZmZXIuZGlmZihcbiAgICAgIGlucHV0IGFzIGFueSxcbiAgICApXG5cbiAgICBpZiAoZGlmZmVyQ2hhbmdlcykge1xuICAgICAgdGhpcy52YWx1ZXMgPSBbXVxuICAgICAgZGlmZmVyQ2hhbmdlcy5mb3JFYWNoSXRlbShcbiAgICAgICAgKHsgY3VycmVudFZhbHVlIH06IEtleVZhbHVlQ2hhbmdlUmVjb3JkPEssIFY+KSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMucHVzaChjdXJyZW50VmFsdWUpXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlc1xuICB9XG59XG4iXX0=","/* eslint-disable no-console */\nimport { HttpEventType } from '@angular/common/http';\nimport { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, } from '@angular/core';\nimport { timer } from 'rxjs';\nimport { filter, retryWhen, switchMap, take, tap } from 'rxjs/operators';\nimport { NggvDialogComponent, } from '@sebgroup/green-angular/src/v-angular/modal';\nimport { extendFile, isDragDropAvailable, pick, retryStrategy, verifyAccept, } from './drag-drop.utils';\nimport '@sebgroup/green-core/components/icon/icons/cloud-upload.js';\nimport '@sebgroup/green-core/components/icon/icons/cross-small.js';\nimport '@sebgroup/green-core/components/icon/icons/checkmark.js';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@jsverse/transloco\";\nimport * as i2 from \"@sebgroup/green-angular/src/v-angular/modal\";\nimport * as i3 from \"@sebgroup/green-angular/src/lib/shared\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"./drag-drop.pipes\";\nexport class NggvDragDropComponent {\n constructor() {\n /** Special property used for selecting DOM elements during automated UI testing. */\n this.thook = 'drag-drop';\n /** Disables deletion or cancellation during defined states [local | uploading | aborted | uploaded | validating | error | deleted | done]. */\n this.disableRemove = [];\n /** File size limit in mega bytes. */\n this.fileLimit = 250 * 1024 * 1024;\n /** Allowing selecting or dropping multiple files. */\n this.multiple = true;\n /** Determines if list should be shown under upload, disabling list disables multiple upload. */\n this.list = true;\n /** Frequency of requests which to send to the API requesting status updates. */\n this.throttle = 5000;\n /** Maximum number of attempts to request a status update from the API if service is unreachable. */\n this.retryAttempts = 5;\n /** If selection of multiple file should be possible with a checkbox.\n * @experimental work in progress and should not yet be used.\n * @internal\n */\n this.selectable = false;\n /** Allows multiple values from `apiFile.status` to be mapped to a single file upload state. */\n this.stateMap = {\n local: 'local',\n uploading: 'uploading',\n aborted: 'aborted',\n uploaded: 'uploaded',\n validating: 'validating',\n error: 'error',\n deleted: 'deleted',\n done: 'done',\n };\n /** Statuses allowed to be fetch during the initial load. Used to hide \"done\" states from list. */\n this.fetchStatuses = [];\n /** Statuses allowed be shown when status is \"rejected\". Will fallback to generic message. `null` allows all. */\n this.errorCodes = null;\n /** Event triggered on initialization and every time the \"uploadState\" for a file changes. */\n this.stateChange = new EventEmitter();\n /** Event triggered when view details is clicked. */\n this.detailsClick = new EventEmitter();\n /** @internal */\n this.isDragDropAvailable = isDragDropAvailable();\n /** @internal */\n this.componentState = 'normal';\n /** @internal */\n this.files = new Map();\n /** @internal */\n this.selected = [];\n /** @internal */\n this.loading = false;\n }\n /**\n * Initialize the component and warn if service is not defined. Will also fetch files for the list if enabled.\n */\n ngOnInit() {\n if (!this.service) {\n return console.error('Drag and drop component will not work without the [service] property defined!');\n }\n if (this.list) {\n this.service.fetchFiles(this.fetchStatuses).subscribe((apiFiles) => {\n for (const apiFile of apiFiles) {\n const extendedFile = extendFile(undefined, apiFile, {\n progress: 100,\n uploadState: this.determineUploadState(apiFile.status),\n internalStatusReasonCode: this.fallbackError(apiFile.internalStatusReasonCode),\n });\n this.files.set(extendedFile.id, extendedFile);\n this.stateChange.emit(pick(extendedFile, 'uploadState', 'fileName', 'id', 'status', 'internalStatusReasonCode', 'statusReasonInformation'));\n // Check if validation is required, then start polling\n if (extendedFile.uploadState === 'uploaded' ||\n extendedFile.uploadState === 'validating') {\n this.checkValidity(extendedFile, this.throttle);\n }\n }\n });\n }\n }\n /** Destroy all event listeners and polling running */\n ngOnDestroy() {\n this.files.forEach((file) => {\n file.uploadRequests?.unsubscribe();\n if (file.uploadState === 'uploading') {\n file.uploadState = 'aborted';\n file.internalStatusReasonCode = 'MFEFHM004';\n this.stateChange.emit(pick(file, 'uploadState', 'fileName', 'status', 'internalStatusReasonCode'));\n }\n });\n }\n /** @internal Warn user trying to leave page before all uploads are done. Custom message only works in older browsers. */\n onBeforeUnload(event) {\n if (!this.allUploadingDone(this.files)) {\n const confirmationMessage = `You still have files uploading, are you sure you want to leave this page?`;\n (event || window.event).returnValue =\n confirmationMessage;\n return confirmationMessage;\n }\n return;\n }\n /* Drag & Drop Events */\n /** @internal Event handler for when a file is held over the drop area */\n onDragEnter(event) {\n if (!this.service)\n return;\n event.preventDefault();\n // Update the visual state\n this.componentState = 'over';\n }\n /** @internal Event handler for when a file leaves the drop area */\n onDragLeave(event) {\n if (!this.service)\n return;\n event.preventDefault();\n this.componentState = 'normal';\n }\n /** @internal Event handler for when a file is dropped on the drop area or when `input` files are selected */\n onDrop(event) {\n if (!this.service)\n return;\n event.preventDefault();\n this.componentState = 'normal';\n let files;\n // Determine if files are from the drop event or input element\n if (event instanceof DragEvent && event.dataTransfer) {\n files = event.dataTransfer.files;\n }\n else if (event.target &&\n event.target instanceof HTMLInputElement &&\n event.target.files) {\n files = event.target.files;\n }\n if (files) {\n const extendedFiles = Array.from(files, (file) => {\n let abort = false;\n let statusCode = null;\n // Check if file size is larger than limit\n if (file.size > this.fileLimit) {\n abort = true;\n statusCode = 'MFEFHM003';\n }\n // Check if file type is not acceptable\n if (!verifyAccept(file.type, this.accept)) {\n abort = true;\n statusCode = 'MFEFHM002';\n }\n // Add default values expected by the API\n const extendedFile = extendFile(file, {\n internalStatusReasonCode: statusCode,\n uploadState: (abort ? 'aborted' : 'local'),\n });\n // Emit initial local upload event\n this.stateChange.emit({\n uploadState: 'local',\n fileName: extendedFile.fileName,\n });\n if (abort) {\n // Emit aborted upload event\n this.stateChange.emit({\n uploadState: 'aborted',\n fileName: extendedFile.fileName,\n status: 'aborted',\n internalStatusReasonCode: statusCode,\n });\n }\n return extendedFile;\n });\n // Append to previous files\n let i = 0;\n for (const file of extendedFiles) {\n // If multiple or list is false append only file then break loop\n if ((!this.multiple || !this.list) && i >= 1)\n break;\n this.lastFile = file;\n this.files.set(file.id, file);\n i++;\n }\n // Clear file input so that same file can be uploaded\n if (event.target &&\n event.target instanceof HTMLInputElement &&\n event.target.files) {\n event.target.value = '';\n }\n this.onSubmit();\n }\n }\n /** @internal Event trigger for when delete button is pressed */\n onRemove(id, state) {\n // Only allow removal in certain states\n if (!this.service || this.disableRemove.includes(state))\n return;\n const file = this.files.get(id);\n if (!file)\n return;\n // Skip confirmation for aborted and deleted files\n if (file.uploadState === 'error' ||\n file.uploadState === 'aborted' ||\n file.uploadState === 'deleted') {\n this.onConfirmRemove({ original: undefined, payload: file });\n }\n else {\n this.markedForDeletion = file;\n this.deleteModalRef.open();\n }\n }\n /** @internal */\n onConfirmRemove(event) {\n const { payload: file } = event;\n if (!file || !this.service)\n return;\n // Abort upload and set local state to aborted to inform user\n switch (file.uploadState) {\n case 'local':\n case 'uploading':\n file.uploadRequests?.unsubscribe();\n file.uploadState = 'aborted';\n file.internalStatusReasonCode = 'MFEFHM004';\n this.stateChange.emit(pick(file, 'uploadState', 'fileName', 'status', 'internalStatusReasonCode'));\n break;\n // Remove file from service then set local state to aborted to inform user\n case 'uploaded':\n case 'validating':\n this.service\n .removeFile(file.id)\n .subscribe({\n error: console.warn,\n })\n .add(() => {\n // Abort regardless of response from server\n file.uploadRequests?.unsubscribe();\n file.uploadState = 'aborted';\n file.internalStatusReasonCode = 'MFEFHM005';\n this.stateChange.emit(pick(file, 'uploadState', 'fileName', 'status', 'internalStatusReasonCode'));\n });\n break;\n // Remove file from service then locally for \"completed\" states\n case 'error':\n case 'done':\n ;\n (this.service.removeFileFor\n ? this.service.removeFileFor(file)\n : this.service.removeFile(file.id))\n .subscribe({\n error: console.warn,\n })\n .add(() => {\n // Remove regardless of response from server\n this.files.delete(file.id);\n const event = pick(file, 'uploadState', 'fileName', 'id', 'status', 'internalStatusReasonCode', 'statusReasonInformation');\n event.uploadState = 'deleted';\n this.stateChange.emit(event);\n });\n break;\n // Just remove the file locally to clean up\n case 'aborted':\n case 'deleted':\n default:\n this.files.delete(file.id);\n this.stateChange.emit({\n ...pick(file, 'uploadState', 'fileName', 'id', 'status', 'internalStatusReasonCode', 'statusReasonInformation'),\n uploadState: 'deleted',\n });\n break;\n }\n }\n /** @internal Event handler for when the files should be uploaded */\n onSubmit() {\n if (!this.files || !this.service)\n return;\n // If list is not enabled update the component state to show progress\n if (!this.list)\n this.componentState = 'uploading';\n this.loading = true;\n this.files.forEach((file) => {\n // Filter out all files that aren't currently considered local\n if (!file.raw || file.uploadState !== 'local')\n return;\n file.uploadRequests = this.service.uploadFile(file.raw).subscribe({\n next: (event) => {\n switch (event.type) {\n case HttpEventType.UploadProgress:\n // Update upload progress\n if (file.uploadState !== 'uploading') {\n file.uploadState = 'uploading';\n this.stateChange.emit(pick(file, 'uploadState', 'fileName'));\n }\n file.progress = Math.round((100 * event.loaded) / (event.total || 100));\n file.uploadState = 'uploading';\n break;\n case HttpEventType.Response:\n if (event.body?.id) {\n // Remove old file id\n this.files.delete(file.id);\n // Update file with information from the API\n Object.assign(file, event.body);\n file.progress = 100;\n file.uploadState = this.determineUploadState(file.status);\n // Update with new file id\n this.files.set(file.id, file);\n }\n this.stateChange.emit(pick(file, 'uploadState', 'fileName', 'id', 'status', 'statusReasonInformation'));\n // Check if validation is required, then start polling\n if (file.uploadState === 'uploaded' ||\n file.uploadState === 'validating') {\n this.checkValidity(file, this.throttle);\n }\n else\n this.setComponentStateDone();\n this.loading = false;\n break;\n }\n },\n error: (error) => {\n console.warn(error);\n file.uploadState = 'aborted';\n file.status = 'aborted';\n // todo: wrong\n file.statusReasonInformation = [\n { originatorId: 'local', reason: 'dragDrop.error.MFEFHM001' },\n ];\n this.stateChange.emit(pick(file, 'uploadState', 'fileName', 'id', 'status', 'statusReasonInformation'));\n this.loading = false;\n },\n });\n });\n }\n /**\n * @internal\n * Using the state map convert `apiFile.state` to one of {@link UploadState}\n * @param apiState the state given by the file to be used for mapping\n */\n determineUploadState(apiState) {\n // Reverse so that later states override earlier\n const stateEntries = Object.entries(this.stateMap).reverse();\n for (const [uploadState, apiStates] of stateEntries) {\n if (this.uploadStateIsArray(apiStates)) {\n if (apiStates.includes(apiState))\n return uploadState;\n }\n else {\n if (apiStates === apiState)\n return uploadState;\n }\n }\n return 'error';\n }\n /** @internal */\n uploadStateIsArray(state) {\n return Array.isArray(state);\n }\n /** @internal used for translation templating parameters */\n translateParams(file) {\n return { ...file, fileLimit: (this.fileLimit / 1024 / 1024).toFixed(3) };\n }\n /**\n * Poll the status endpoint to determine when file is valid\n * @param file file used to check state and update\n * @param delay how long each interval should wait before sending a request\n */\n checkValidity(file, delay) {\n if (!this.service)\n return;\n file.uploadRequests = timer(0, delay)\n .pipe(switchMap(() => {\n const asyncFetchStatus = this.service && this.service.fetchStatusFor\n ? this.service.fetchStatusFor(file)\n : this.service.fetchStatus(file.id);\n return asyncFetchStatus;\n }), retryWhen(retryStrategy({\n maxRetryAttempts: this.retryAttempts,\n })), tap((fileStatus) => {\n // Continuously update file state to show step progress\n if (fileStatus) {\n // Emit event when status changes\n if (file.status !== fileStatus.status) {\n file.status = fileStatus.status;\n file.internalStatusReasonCode = this.fallbackError(fileStatus.internalStatusReasonCode);\n file.statusReasonInformation = fileStatus.statusReasonInformation;\n file.uploadState = this.determineUploadState(fileStatus.status);\n this.stateChange.emit(pick(file, 'uploadState', 'fileName', 'id', 'status', 'internalStatusReasonCode', 'statusReasonInformation'));\n }\n }\n }), \n // Remove validation state\n filter((apiFile) => !!apiFile &&\n this.determineUploadState(apiFile.status) !== 'uploaded' &&\n this.determineUploadState(apiFile.status) !== 'validating'), \n // Take first state after validation\n take(1))\n .subscribe({\n next: () => {\n if (this.allValidationDone(this.files)) {\n this.setComponentStateDone();\n }\n },\n error: (err) => {\n console.warn(err);\n file.uploadState = 'aborted';\n file.status = 'aborted';\n file.internalStatusReasonCode = 'MFEFHM001';\n this.stateChange.emit(pick(file, 'uploadState', 'fileName', 'id', 'status', 'internalStatusReasonCode'));\n this.setComponentStateDone();\n },\n });\n }\n fallbackError(code) {\n if (this.errorCodes == null || (code && this.errorCodes.includes(code))) {\n return code ?? null;\n }\n else {\n return 'MFEFHM001';\n }\n }\n /**\n * Check so that no files are still validating\n */\n allValidationDone(files) {\n return Array.from(files.values()).every((file) => file.uploadState !== 'validating');\n }\n /**\n * Check so that no files are still uploading\n */\n allUploadingDone(files) {\n return Array.from(files.values()).every((file) => file.uploadState !== 'uploading');\n }\n /**\n * Helper to update the component state to done and then back to normal\n */\n setComponentStateDone() {\n if (!this.list)\n this.componentState = 'done';\n setTimeout(() => {\n if (this.componentState === 'done')\n this.componentState = 'normal';\n }, 3000);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvDragDropComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.3.9\", type: NggvDragDropComponent, isStandalone: false, selector: \"nggv-drag-drop\", inputs: { thook: \"thook\", service: \"service\", accept: \"accept\", disableRemove: \"disableRemove\", fileLimit: \"fileLimit\", multiple: \"multiple\", list: \"list\", throttle: \"throttle\", retryAttempts: \"retryAttempts\", selectable: \"selectable\", stateMap: \"stateMap\", fetchStatuses: \"fetchStatuses\", errorCodes: \"errorCodes\" }, outputs: { stateChange: \"stateChange\", detailsClick: \"detailsClick\" }, host: { listeners: { \"window:beforeunload\": \"onBeforeUnload($event)\" }, properties: { \"attr.data-thook\": \"this.thook\" } }, viewQueries: [{ propertyName: \"deleteModalRef\", first: true, predicate: [\"deleteModalRef\"], descendants: true }], ngImport: i0, template: \"<ng-container *transloco=\\\"let t\\\">\\n <form enctype=\\\"multipart/form-data\\\" #dragDropForm>\\n <div class=\\\"gds-drag-drop\\\">\\n <input\\n class=\\\"gds-drag-drop__input\\\"\\n id=\\\"drag-drop\\\"\\n type=\\\"file\\\"\\n [accept]=\\\"accept\\\"\\n [multiple]=\\\"multiple && list\\\"\\n (change)=\\\"onDrop($event)\\\"\\n />\\n <label\\n [ngClass]=\\\"{\\n 'gds-drag-drop__label': true,\\n 'gds-drag-drop__label--above': componentState === 'over',\\n }\\\"\\n for=\\\"drag-drop\\\"\\n [attr.data-thook]=\\\"thook + '-picker'\\\"\\n [attr.aria-busy]=\\\"loading\\\"\\n (dragenter)=\\\"onDragEnter($event)\\\"\\n (dragover)=\\\"onDragEnter($event)\\\"\\n (dragleave)=\\\"onDragLeave($event)\\\"\\n (dragend)=\\\"onDragLeave($event)\\\"\\n (drop)=\\\"onDrop($event)\\\"\\n [ngSwitch]=\\\"componentState\\\"\\n >\\n <!-- COMPONENT STATE NORMAL -->\\n <ng-template [ngSwitchCase]=\\\"'normal'\\\">\\n <gds-icon-cloud-upload *nggCoreElement></gds-icon-cloud-upload\\n ><em>{{ t('dragDrop.label.fileChoose') }}</em>\\n <ng-template [ngIf]=\\\"isDragDropAvailable\\\">\\n {{ t('dragDrop.label.fileDrag') }}</ng-template\\n >\\n </ng-template>\\n\\n <!-- COMPONENT STATE OVER -->\\n <ng-template [ngSwitchCase]=\\\"'over'\\\">\\n <gds-icon-cloud-upload *nggCoreElement></gds-icon-cloud-upload\\n >{{ t('dragDrop.label.fileDrop') }}\\n </ng-template>\\n\\n <!-- COMPONENT STATE UPLOADING -->\\n <ng-template [ngSwitchCase]=\\\"'uploading'\\\">\\n <strong class=\\\"filename\\\">{{ lastFile?.fileName }}</strong>\\n\\n <!-- UPLOADING STATE -->\\n <ng-template [ngIf]=\\\"lastFile?.uploadState === 'uploading'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: lastFile,\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- UPLOADED STATE -->\\n <ng-template [ngIf]=\\\"lastFile?.uploadState === 'uploaded'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: lastFile,\\n text: t('dragDrop.text.fileStateUploaded'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- VALIDATING STATE -->\\n <ng-template [ngIf]=\\\"lastFile?.uploadState === 'validating'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: lastFile,\\n text: t('dragDrop.text.fileStateValidating'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n </ng-template>\\n\\n <!-- COMPONENT STATE DONE -->\\n <ng-template [ngSwitchCase]=\\\"'done'\\\">\\n {{ t('dragDrop.label.fileUploaded', { filename: lastFile?.fileName })\\n }}<gds-icon-checkmark *nggCoreElement></gds-icon-checkmark>\\n </ng-template>\\n </label>\\n\\n <!-- LIST -->\\n <table\\n class=\\\"gds-table file-list\\\"\\n [attr.data-thook]=\\\"thook + '-file-list'\\\"\\n *ngIf=\\\"list\\\"\\n >\\n <thead>\\n <tr>\\n <th *ngIf=\\\"selectable\\\">\\n <div class=\\\"gds-field-checkbox-wrap\\\">\\n <input\\n type=\\\"checkbox\\\"\\n aria-label=\\\"Field label\\\"\\n id=\\\"select-all\\\"\\n />\\n <label for=\\\"select-all\\\"></label>\\n </div>\\n </th>\\n <th class=\\\"gds-table__primary-col col-name\\\">\\n {{ t('dragDrop.label.fileName') }}\\n </th>\\n <th class=\\\"col-status\\\">\\n {{ t('dragDrop.label.fileStatus') }}\\n </th>\\n <th class=\\\"col-actions\\\"></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n [attr.data-thook]=\\\"thook + '-file'\\\"\\n *ngFor=\\\"let file of files | value\\\"\\n >\\n <td *ngIf=\\\"selectable\\\">\\n <div class=\\\"gds-field-checkbox-wrap\\\">\\n <input\\n type=\\\"checkbox\\\"\\n aria-label=\\\"Field label\\\"\\n [id]=\\\"'file-checkbox-' + file.id\\\"\\n />\\n <label [for]=\\\"'file-checkbox-' + file.id\\\"></label>\\n </div>\\n </td>\\n <td\\n class=\\\"gds-table__primary-col\\\"\\n [attr.data-thook]=\\\"thook + '-file-name'\\\"\\n >\\n {{ file.fileName }}\\n </td>\\n <td\\n [attr.data-thook]=\\\"thook + '-file-status'\\\"\\n [ngSwitch]=\\\"file.uploadState\\\"\\n >\\n <!-- UPLOADING STATE -->\\n <ng-template [ngSwitchCase]=\\\"'uploading'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: file,\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- UPLOADED STATE -->\\n <ng-template [ngSwitchCase]=\\\"'uploaded'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: file,\\n text: t('dragDrop.text.fileStateUploaded'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- VALIDATING STATE -->\\n <ng-template [ngSwitchCase]=\\\"'validating'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: file,\\n text: t('dragDrop.text.fileStateValidating'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- ABORTED STATE -->\\n <ng-template [ngSwitchCase]=\\\"'aborted'\\\">\\n <span\\n class=\\\"error-text\\\"\\n [transloco]=\\\"\\n 'dragDrop.error.' + file.internalStatusReasonCode\\n \\\"\\n [translocoParams]=\\\"translateParams(file)\\\"\\n *ngIf=\\\"file.internalStatusReasonCode\\\"\\n ></span>\\n </ng-template>\\n\\n <!-- ERROR STATE -->\\n <ng-template [ngSwitchCase]=\\\"'error'\\\">\\n <span\\n class=\\\"error-text\\\"\\n [transloco]=\\\"\\n 'dragDrop.error.' + file.internalStatusReasonCode\\n \\\"\\n [translocoParams]=\\\"translateParams(file)\\\"\\n *ngIf=\\\"file.internalStatusReasonCode\\\"\\n ></span>\\n <br />\\n <a\\n (click)=\\\"detailsClick.emit(file)\\\"\\n style=\\\"cursor: pointer\\\"\\n *ngIf=\\\"\\n file.statusReasonInformation &&\\n file.statusReasonInformation.length\\n \\\"\\n >\\n {{ t('dragDrop.link.viewDetails') }}\\n </a>\\n </ng-template>\\n\\n <!-- DONE STATE -->\\n <ng-template [ngSwitchCase]=\\\"'done'\\\">\\n <span class=\\\"success-text\\\">{{\\n t('dragDrop.text.fileStateDone')\\n }}</span>\\n </ng-template>\\n </td>\\n\\n <td class=\\\"gds-table__numeric-col\\\">\\n <a\\n class=\\\"remove\\\"\\n tabindex=\\\"0\\\"\\n (click)=\\\"onRemove(file.id, file.uploadState)\\\"\\n *ngIf=\\\"!disableRemove.includes(file.uploadState)\\\"\\n >\\n <gds-icon-cross-small *nggCoreElement></gds-icon-cross-small>\\n </a>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </form>\\n\\n <nggv-dialog\\n #deleteModalRef\\n [title]=\\\"t('dragDrop.text.fileCancelModalTitle')\\\"\\n [content]=\\\"\\n t('dragDrop.text.fileCancelModalContent', {\\n name: markedForDeletion?.fileName,\\n })\\n \\\"\\n [payload]=\\\"markedForDeletion\\\"\\n [buttons]=\\\"{\\n negative: 'dragDrop.text.fileCancelConfirm',\\n positive: 'dragDrop.text.fileCancelDeny',\\n }\\\"\\n (nggvNegativeEvent)=\\\"onConfirmRemove($any($event))\\\"\\n ></nggv-dialog>\\n\\n <!-- PROGRESS TEMPLATE -->\\n\\n <ng-template\\n #progressTemplate\\n let-file=\\\"\\n file\\\"\\n let-text=\\\"text\\\"\\n >\\n <div class=\\\"progress-wrapper\\\">\\n <progress\\n class=\\\"gds-progress-bar progress\\\"\\n max=\\\"100\\\"\\n [value]=\\\"file.progress\\\"\\n >\\n {{\\n t('dragDrop.text.fileStateUploading', {\\n uploaded:\\n (file.raw?.size * (file.progress / 100)) / 1024 | number: '0.0-0',\\n size: file.raw?.size / 1024 | number: '0.0-0',\\n progress: file.progress,\\n unit: 'kB',\\n })\\n }}\\n </progress>\\n <ng-template [ngIf]=\\\"stateMap.validating.length\\\">\\n <div\\n class=\\\"gds-progress-indicator indicator\\\"\\n *ngIf=\\\"uploadStateIsArray(stateMap.validating); else singleValidation\\\"\\n >\\n <div\\n class=\\\"gds-progress-indicator__step\\\"\\n [class.-done]=\\\"i <= stateMap.validating.indexOf(file.status)\\\"\\n *ngFor=\\\"let state of stateMap.validating; let i = index\\\"\\n ></div>\\n </div>\\n </ng-template>\\n <ng-template #singleValidation>\\n <div class=\\\"gds-progress-indicator indicator\\\">\\n <!-- eslint-disable @angular-eslint/template/eqeqeq -->\\n <div\\n class=\\\"gds-progress-indicator__step\\\"\\n [class.-done]=\\\"file.status == stateMap.validating\\\"\\n ></div>\\n <!-- eslint-enable @angular-eslint/template/eqeqeq -->\\n </div>\\n </ng-template>\\n </div>\\n <span class=\\\"progress-text\\\">\\n {{\\n text ||\\n t('dragDrop.text.fileStateUploading', {\\n uploaded:\\n (file.raw?.size * (file.progress / 100)) / 1024 | number: '0.0-0',\\n size: file.raw?.size / 1024 | number: '0.0-0',\\n progress: file.progress,\\n unit: 'kB',\\n })\\n }}\\n </span>\\n </ng-template>\\n</ng-container>\\n\", styles: [\":host .gds-drag-drop{width:100%}:host .gds-drag-drop__input{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}:host .gds-drag-drop__label{display:flex;justify-content:center;align-items:center;gap:.5rem;border:2px dashed #868686;font-weight:500;padding:2.25em 1.5em;overflow-wrap:anywhere}:host .gds-drag-drop__input+.gds-drag-drop__label em{font-style:normal;color:#0092e1;cursor:pointer}:host .gds-drag-drop table,:host .gds-drag-drop .gds-table{margin-top:2.25em}:host .gds-table{width:100%;font-family:SEBSansSerif,Arial,sans-serif;border-spacing:0}:host .gds-table th,:host .gds-table td{text-align:left;border-bottom:1px solid #e9e9e9}:host .gds-table thead{color:#333;font-size:1em}:host .gds-table thead tr{min-height:2em}:host .gds-table thead th,:host .gds-table thead td{border-bottom:1px solid #cecece;font-weight:500}:host .gds-table tbody{font-size:1em}:host .gds-table tbody tr{height:2.5em;border-bottom:1px solid #adadad}:host .gds-table tbody tr:hover td,:host .gds-table tbody tr:hover th{background-color:#f8f8f8}:host .gds-table tfoot{font-weight:500;font-size:1em}:host .gds-table tfoot tr{height:2.5em}:host .gds-table tfoot td{border-top:1px solid #cecece;border-bottom-width:0}:host tr .gds-table__numeric-col{text-align:right}:host tr .gds-table__negative-col{color:#bb000c}:host tr .gds-table__primary-col{color:#000}:host .gds-table__sortable-col{cursor:pointer;white-space:nowrap;margin-left:.5em}:host .gds-table__sortable-col:after{content:\\\"\\\";display:inline-block;background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23adadad' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23adadad' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;margin-left:.25rem;width:.625rem;height:1rem;vertical-align:text-bottom}:host .gds-table__sortable-col:hover:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23cecece' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23cecece' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--asc:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23adadad' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23007ac7' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--asc:hover:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23cecece' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%2341b0ee' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--desc:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23007ac7' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23adadad' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--desc:hover:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%2341b0ee' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23cecece' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table .gds-field-checkbox-wrap{width:2.5rem}:host .gds-table .gds-field-checkbox-wrap label{box-shadow:none!important}:host .gds-table--fixed-l-col{overflow:auto;display:block;position:relative;max-width:100%}:host .gds-table--fixed-l-col td,:host .gds-table--fixed-l-col th{width:auto!important;min-width:150px}:host .gds-table--fixed-l-col td:first-child,:host .gds-table--fixed-l-col th:first-child{position:sticky;left:0;background-color:#fff;border-right:1px solid #e9e9e9}:host .gds-table--fixed-l-col thead th{top:0;z-index:1;position:sticky;background-color:#fff}:host .gds-table--fixed-l-col thead th:first-child{z-index:2}:host .gds-progress-bar{appearance:none;height:.3125rem;width:100%;position:relative;overflow:hidden;color:#45b400;border-width:0;background-color:#e9e9e9}:host .gds-progress-bar:before{display:block;position:absolute;content:\\\"\\\";left:-200px;width:200px;height:.3125rem;background-color:#45b400;animation:gds-progressbar-loading 2s linear infinite}:host .gds-progress-bar::-webkit-progress-value{background-color:transparent}:host .gds-progress-bar::-moz-progress-bar{background-color:transparent}:host .gds-progress-bar::-ms-fill{background-color:transparent;border-width:0}:host .gds-progress-bar::-webkit-progress-bar{background-color:#e9e9e9}@keyframes gds-progressbar-loading{0%{left:-30%;width:30%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}:host .gds-progress-bar[value]:before{content:none}:host .gds-progress-bar[value]::-webkit-progress-value{background-color:#45b400}:host .gds-progress-bar[value]::-moz-progress-bar{background-color:#45b400}:host .gds-progress-bar[value]::-ms-fill{background-color:#45b400}:host .gds-progress-indicator{display:flex;width:100%}:host .gds-progress-indicator__step{flex-grow:1;height:.5rem;margin-right:.125rem;background-color:#e9e9e9}:host .gds-progress-indicator__step.-done{background-color:#45b400}:host .gds-progress-indicator__step:last-child{margin-right:0}:host .file-list th:first-child,:host .file-list td:first-child{width:auto}:host .filename{display:block;margin-bottom:.5rem}:host .col-name{width:40%}:host .col-status{width:30%}:host .col-actions{width:.1%}:host .progress-wrapper{display:flex}:host .progress,:host .indicator{height:.5rem}:host .gds-progress-indicator__step{margin-right:0}:host .progress{color:#45b400}:host .progress::-webkit-progress-value{background-color:#45b400}:host .progress::-moz-progress-bar{background-color:#45b400}:host .progress::-ms-fill{background-color:#45b400}:host .progress-text{display:block;margin-top:.125rem}:host .error-text{color:#bb000c}:host .success-text{color:#308800}:host .remove{padding:0 .5rem;font-size:1.5em;color:#868686;cursor:pointer;display:grid;place-content:center}:host .remove:hover,:host .remove:focus{color:#bb000c}\\n\"], dependencies: [{ kind: \"directive\", type: i1.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"component\", type: i2.NggvDialogComponent, selector: \"nggv-dialog\", inputs: [\"thook\", \"shown\", \"initiallyShown\", \"heading\", \"title\", \"content\", \"autoClose\", \"payload\", \"dialogTitleId\", \"dialogBodyId\", \"closeModalOnEscape\", \"closeButtonAriaLabel\", \"buttons\"], outputs: [\"nggvCloseEvent\", \"nggvPositiveEvent\", \"nggvNeutralEvent\", \"nggvNegativeEvent\", \"nggvDangerEvent\"], exportAs: [\"dialog\"] }, { kind: \"directive\", type: i3.NggCoreElementDirective, selector: \"[nggCoreElement]\" }, { kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i4.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"directive\", type: i4.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i4.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"pipe\", type: i4.DecimalPipe, name: \"number\" }, { kind: \"pipe\", type: i5.ValuePipe, name: \"value\" }] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvDragDropComponent, decorators: [{\n type: Component,\n args: [{ selector: 'nggv-drag-drop', standalone: false, template: \"<ng-container *transloco=\\\"let t\\\">\\n <form enctype=\\\"multipart/form-data\\\" #dragDropForm>\\n <div class=\\\"gds-drag-drop\\\">\\n <input\\n class=\\\"gds-drag-drop__input\\\"\\n id=\\\"drag-drop\\\"\\n type=\\\"file\\\"\\n [accept]=\\\"accept\\\"\\n [multiple]=\\\"multiple && list\\\"\\n (change)=\\\"onDrop($event)\\\"\\n />\\n <label\\n [ngClass]=\\\"{\\n 'gds-drag-drop__label': true,\\n 'gds-drag-drop__label--above': componentState === 'over',\\n }\\\"\\n for=\\\"drag-drop\\\"\\n [attr.data-thook]=\\\"thook + '-picker'\\\"\\n [attr.aria-busy]=\\\"loading\\\"\\n (dragenter)=\\\"onDragEnter($event)\\\"\\n (dragover)=\\\"onDragEnter($event)\\\"\\n (dragleave)=\\\"onDragLeave($event)\\\"\\n (dragend)=\\\"onDragLeave($event)\\\"\\n (drop)=\\\"onDrop($event)\\\"\\n [ngSwitch]=\\\"componentState\\\"\\n >\\n <!-- COMPONENT STATE NORMAL -->\\n <ng-template [ngSwitchCase]=\\\"'normal'\\\">\\n <gds-icon-cloud-upload *nggCoreElement></gds-icon-cloud-upload\\n ><em>{{ t('dragDrop.label.fileChoose') }}</em>\\n <ng-template [ngIf]=\\\"isDragDropAvailable\\\">\\n {{ t('dragDrop.label.fileDrag') }}</ng-template\\n >\\n </ng-template>\\n\\n <!-- COMPONENT STATE OVER -->\\n <ng-template [ngSwitchCase]=\\\"'over'\\\">\\n <gds-icon-cloud-upload *nggCoreElement></gds-icon-cloud-upload\\n >{{ t('dragDrop.label.fileDrop') }}\\n </ng-template>\\n\\n <!-- COMPONENT STATE UPLOADING -->\\n <ng-template [ngSwitchCase]=\\\"'uploading'\\\">\\n <strong class=\\\"filename\\\">{{ lastFile?.fileName }}</strong>\\n\\n <!-- UPLOADING STATE -->\\n <ng-template [ngIf]=\\\"lastFile?.uploadState === 'uploading'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: lastFile,\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- UPLOADED STATE -->\\n <ng-template [ngIf]=\\\"lastFile?.uploadState === 'uploaded'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: lastFile,\\n text: t('dragDrop.text.fileStateUploaded'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- VALIDATING STATE -->\\n <ng-template [ngIf]=\\\"lastFile?.uploadState === 'validating'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: lastFile,\\n text: t('dragDrop.text.fileStateValidating'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n </ng-template>\\n\\n <!-- COMPONENT STATE DONE -->\\n <ng-template [ngSwitchCase]=\\\"'done'\\\">\\n {{ t('dragDrop.label.fileUploaded', { filename: lastFile?.fileName })\\n }}<gds-icon-checkmark *nggCoreElement></gds-icon-checkmark>\\n </ng-template>\\n </label>\\n\\n <!-- LIST -->\\n <table\\n class=\\\"gds-table file-list\\\"\\n [attr.data-thook]=\\\"thook + '-file-list'\\\"\\n *ngIf=\\\"list\\\"\\n >\\n <thead>\\n <tr>\\n <th *ngIf=\\\"selectable\\\">\\n <div class=\\\"gds-field-checkbox-wrap\\\">\\n <input\\n type=\\\"checkbox\\\"\\n aria-label=\\\"Field label\\\"\\n id=\\\"select-all\\\"\\n />\\n <label for=\\\"select-all\\\"></label>\\n </div>\\n </th>\\n <th class=\\\"gds-table__primary-col col-name\\\">\\n {{ t('dragDrop.label.fileName') }}\\n </th>\\n <th class=\\\"col-status\\\">\\n {{ t('dragDrop.label.fileStatus') }}\\n </th>\\n <th class=\\\"col-actions\\\"></th>\\n </tr>\\n </thead>\\n <tbody>\\n <tr\\n [attr.data-thook]=\\\"thook + '-file'\\\"\\n *ngFor=\\\"let file of files | value\\\"\\n >\\n <td *ngIf=\\\"selectable\\\">\\n <div class=\\\"gds-field-checkbox-wrap\\\">\\n <input\\n type=\\\"checkbox\\\"\\n aria-label=\\\"Field label\\\"\\n [id]=\\\"'file-checkbox-' + file.id\\\"\\n />\\n <label [for]=\\\"'file-checkbox-' + file.id\\\"></label>\\n </div>\\n </td>\\n <td\\n class=\\\"gds-table__primary-col\\\"\\n [attr.data-thook]=\\\"thook + '-file-name'\\\"\\n >\\n {{ file.fileName }}\\n </td>\\n <td\\n [attr.data-thook]=\\\"thook + '-file-status'\\\"\\n [ngSwitch]=\\\"file.uploadState\\\"\\n >\\n <!-- UPLOADING STATE -->\\n <ng-template [ngSwitchCase]=\\\"'uploading'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: file,\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- UPLOADED STATE -->\\n <ng-template [ngSwitchCase]=\\\"'uploaded'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: file,\\n text: t('dragDrop.text.fileStateUploaded'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- VALIDATING STATE -->\\n <ng-template [ngSwitchCase]=\\\"'validating'\\\">\\n <ng-template\\n [ngTemplateOutlet]=\\\"progressTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{\\n file: file,\\n text: t('dragDrop.text.fileStateValidating'),\\n }\\\"\\n ></ng-template>\\n </ng-template>\\n\\n <!-- ABORTED STATE -->\\n <ng-template [ngSwitchCase]=\\\"'aborted'\\\">\\n <span\\n class=\\\"error-text\\\"\\n [transloco]=\\\"\\n 'dragDrop.error.' + file.internalStatusReasonCode\\n \\\"\\n [translocoParams]=\\\"translateParams(file)\\\"\\n *ngIf=\\\"file.internalStatusReasonCode\\\"\\n ></span>\\n </ng-template>\\n\\n <!-- ERROR STATE -->\\n <ng-template [ngSwitchCase]=\\\"'error'\\\">\\n <span\\n class=\\\"error-text\\\"\\n [transloco]=\\\"\\n 'dragDrop.error.' + file.internalStatusReasonCode\\n \\\"\\n [translocoParams]=\\\"translateParams(file)\\\"\\n *ngIf=\\\"file.internalStatusReasonCode\\\"\\n ></span>\\n <br />\\n <a\\n (click)=\\\"detailsClick.emit(file)\\\"\\n style=\\\"cursor: pointer\\\"\\n *ngIf=\\\"\\n file.statusReasonInformation &&\\n file.statusReasonInformation.length\\n \\\"\\n >\\n {{ t('dragDrop.link.viewDetails') }}\\n </a>\\n </ng-template>\\n\\n <!-- DONE STATE -->\\n <ng-template [ngSwitchCase]=\\\"'done'\\\">\\n <span class=\\\"success-text\\\">{{\\n t('dragDrop.text.fileStateDone')\\n }}</span>\\n </ng-template>\\n </td>\\n\\n <td class=\\\"gds-table__numeric-col\\\">\\n <a\\n class=\\\"remove\\\"\\n tabindex=\\\"0\\\"\\n (click)=\\\"onRemove(file.id, file.uploadState)\\\"\\n *ngIf=\\\"!disableRemove.includes(file.uploadState)\\\"\\n >\\n <gds-icon-cross-small *nggCoreElement></gds-icon-cross-small>\\n </a>\\n </td>\\n </tr>\\n </tbody>\\n </table>\\n </div>\\n </form>\\n\\n <nggv-dialog\\n #deleteModalRef\\n [title]=\\\"t('dragDrop.text.fileCancelModalTitle')\\\"\\n [content]=\\\"\\n t('dragDrop.text.fileCancelModalContent', {\\n name: markedForDeletion?.fileName,\\n })\\n \\\"\\n [payload]=\\\"markedForDeletion\\\"\\n [buttons]=\\\"{\\n negative: 'dragDrop.text.fileCancelConfirm',\\n positive: 'dragDrop.text.fileCancelDeny',\\n }\\\"\\n (nggvNegativeEvent)=\\\"onConfirmRemove($any($event))\\\"\\n ></nggv-dialog>\\n\\n <!-- PROGRESS TEMPLATE -->\\n\\n <ng-template\\n #progressTemplate\\n let-file=\\\"\\n file\\\"\\n let-text=\\\"text\\\"\\n >\\n <div class=\\\"progress-wrapper\\\">\\n <progress\\n class=\\\"gds-progress-bar progress\\\"\\n max=\\\"100\\\"\\n [value]=\\\"file.progress\\\"\\n >\\n {{\\n t('dragDrop.text.fileStateUploading', {\\n uploaded:\\n (file.raw?.size * (file.progress / 100)) / 1024 | number: '0.0-0',\\n size: file.raw?.size / 1024 | number: '0.0-0',\\n progress: file.progress,\\n unit: 'kB',\\n })\\n }}\\n </progress>\\n <ng-template [ngIf]=\\\"stateMap.validating.length\\\">\\n <div\\n class=\\\"gds-progress-indicator indicator\\\"\\n *ngIf=\\\"uploadStateIsArray(stateMap.validating); else singleValidation\\\"\\n >\\n <div\\n class=\\\"gds-progress-indicator__step\\\"\\n [class.-done]=\\\"i <= stateMap.validating.indexOf(file.status)\\\"\\n *ngFor=\\\"let state of stateMap.validating; let i = index\\\"\\n ></div>\\n </div>\\n </ng-template>\\n <ng-template #singleValidation>\\n <div class=\\\"gds-progress-indicator indicator\\\">\\n <!-- eslint-disable @angular-eslint/template/eqeqeq -->\\n <div\\n class=\\\"gds-progress-indicator__step\\\"\\n [class.-done]=\\\"file.status == stateMap.validating\\\"\\n ></div>\\n <!-- eslint-enable @angular-eslint/template/eqeqeq -->\\n </div>\\n </ng-template>\\n </div>\\n <span class=\\\"progress-text\\\">\\n {{\\n text ||\\n t('dragDrop.text.fileStateUploading', {\\n uploaded:\\n (file.raw?.size * (file.progress / 100)) / 1024 | number: '0.0-0',\\n size: file.raw?.size / 1024 | number: '0.0-0',\\n progress: file.progress,\\n unit: 'kB',\\n })\\n }}\\n </span>\\n </ng-template>\\n</ng-container>\\n\", styles: [\":host .gds-drag-drop{width:100%}:host .gds-drag-drop__input{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}:host .gds-drag-drop__label{display:flex;justify-content:center;align-items:center;gap:.5rem;border:2px dashed #868686;font-weight:500;padding:2.25em 1.5em;overflow-wrap:anywhere}:host .gds-drag-drop__input+.gds-drag-drop__label em{font-style:normal;color:#0092e1;cursor:pointer}:host .gds-drag-drop table,:host .gds-drag-drop .gds-table{margin-top:2.25em}:host .gds-table{width:100%;font-family:SEBSansSerif,Arial,sans-serif;border-spacing:0}:host .gds-table th,:host .gds-table td{text-align:left;border-bottom:1px solid #e9e9e9}:host .gds-table thead{color:#333;font-size:1em}:host .gds-table thead tr{min-height:2em}:host .gds-table thead th,:host .gds-table thead td{border-bottom:1px solid #cecece;font-weight:500}:host .gds-table tbody{font-size:1em}:host .gds-table tbody tr{height:2.5em;border-bottom:1px solid #adadad}:host .gds-table tbody tr:hover td,:host .gds-table tbody tr:hover th{background-color:#f8f8f8}:host .gds-table tfoot{font-weight:500;font-size:1em}:host .gds-table tfoot tr{height:2.5em}:host .gds-table tfoot td{border-top:1px solid #cecece;border-bottom-width:0}:host tr .gds-table__numeric-col{text-align:right}:host tr .gds-table__negative-col{color:#bb000c}:host tr .gds-table__primary-col{color:#000}:host .gds-table__sortable-col{cursor:pointer;white-space:nowrap;margin-left:.5em}:host .gds-table__sortable-col:after{content:\\\"\\\";display:inline-block;background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23adadad' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23adadad' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;margin-left:.25rem;width:.625rem;height:1rem;vertical-align:text-bottom}:host .gds-table__sortable-col:hover:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23cecece' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23cecece' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--asc:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23adadad' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23007ac7' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--asc:hover:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23cecece' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%2341b0ee' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--desc:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%23007ac7' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23adadad' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table__sortable-col--desc:hover:after{background-image:url(\\\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 644'%3E%3Cpath fill='%2341b0ee' transform='translate(0 260)' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'/%3E%3Cpath fill='%23cecece' transform='translate(0 -120)' d='M240.971 130.524l194.343 194.343c9.373 9.373 9.373 24.569 0 33.941l-22.667 22.667c-9.357 9.357-24.522 9.375-33.901.04L224 227.495 69.255 381.516c-9.379 9.335-24.544 9.317-33.901-.04l-22.667-22.667c-9.373-9.373-9.373-24.569 0-33.941L207.03 130.525c9.372-9.373 24.568-9.373 33.941-.001z'/%3E%3C/svg%3E\\\")}:host .gds-table .gds-field-checkbox-wrap{width:2.5rem}:host .gds-table .gds-field-checkbox-wrap label{box-shadow:none!important}:host .gds-table--fixed-l-col{overflow:auto;display:block;position:relative;max-width:100%}:host .gds-table--fixed-l-col td,:host .gds-table--fixed-l-col th{width:auto!important;min-width:150px}:host .gds-table--fixed-l-col td:first-child,:host .gds-table--fixed-l-col th:first-child{position:sticky;left:0;background-color:#fff;border-right:1px solid #e9e9e9}:host .gds-table--fixed-l-col thead th{top:0;z-index:1;position:sticky;background-color:#fff}:host .gds-table--fixed-l-col thead th:first-child{z-index:2}:host .gds-progress-bar{appearance:none;height:.3125rem;width:100%;position:relative;overflow:hidden;color:#45b400;border-width:0;background-color:#e9e9e9}:host .gds-progress-bar:before{display:block;position:absolute;content:\\\"\\\";left:-200px;width:200px;height:.3125rem;background-color:#45b400;animation:gds-progressbar-loading 2s linear infinite}:host .gds-progress-bar::-webkit-progress-value{background-color:transparent}:host .gds-progress-bar::-moz-progress-bar{background-color:transparent}:host .gds-progress-bar::-ms-fill{background-color:transparent;border-width:0}:host .gds-progress-bar::-webkit-progress-bar{background-color:#e9e9e9}@keyframes gds-progressbar-loading{0%{left:-30%;width:30%}50%{width:30%}70%{width:70%}80%{left:50%}95%{left:120%}to{left:100%}}:host .gds-progress-bar[value]:before{content:none}:host .gds-progress-bar[value]::-webkit-progress-value{background-color:#45b400}:host .gds-progress-bar[value]::-moz-progress-bar{background-color:#45b400}:host .gds-progress-bar[value]::-ms-fill{background-color:#45b400}:host .gds-progress-indicator{display:flex;width:100%}:host .gds-progress-indicator__step{flex-grow:1;height:.5rem;margin-right:.125rem;background-color:#e9e9e9}:host .gds-progress-indicator__step.-done{background-color:#45b400}:host .gds-progress-indicator__step:last-child{margin-right:0}:host .file-list th:first-child,:host .file-list td:first-child{width:auto}:host .filename{display:block;margin-bottom:.5rem}:host .col-name{width:40%}:host .col-status{width:30%}:host .col-actions{width:.1%}:host .progress-wrapper{display:flex}:host .progress,:host .indicator{height:.5rem}:host .gds-progress-indicator__step{margin-right:0}:host .progress{color:#45b400}:host .progress::-webkit-progress-value{background-color:#45b400}:host .progress::-moz-progress-bar{background-color:#45b400}:host .progress::-ms-fill{background-color:#45b400}:host .progress-text{display:block;margin-top:.125rem}:host .error-text{color:#bb000c}:host .success-text{color:#308800}:host .remove{padding:0 .5rem;font-size:1.5em;color:#868686;cursor:pointer;display:grid;place-content:center}:host .remove:hover,:host .remove:focus{color:#bb000c}\\n\"] }]\n }], propDecorators: { deleteModalRef: [{\n type: ViewChild,\n args: ['deleteModalRef']\n }], thook: [{\n type: HostBinding,\n args: ['attr.data-thook']\n }, {\n type: Input\n }], service: [{\n type: Input\n }], accept: [{\n type: Input\n }], disableRemove: [{\n type: Input\n }], fileLimit: [{\n type: Input\n }], multiple: [{\n type: Input\n }], list: [{\n type: Input\n }], throttle: [{\n type: Input\n }], retryAttempts: [{\n type: Input\n }], selectable: [{\n type: Input\n }], stateMap: [{\n type: Input\n }], fetchStatuses: [{\n type: Input\n }], errorCodes: [{\n type: Input\n }], stateChange: [{\n type: Output\n }], detailsClick: [{\n type: Output\n }], onBeforeUnload: [{\n type: HostListener,\n args: ['window:beforeunload', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2RyYWctZHJvcC9kcmFnLWRyb3AuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJhZy1kcm9wL2RyYWctZHJvcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFBO0FBQ3BELE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUE7QUFDdEIsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQTtBQUM1QixPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBRXhFLE9BQU8sRUFFTCxtQkFBbUIsR0FDcEIsTUFBTSw2Q0FBNkMsQ0FBQTtBQUNwRCxPQUFPLEVBQ0wsVUFBVSxFQUNWLG1CQUFtQixFQUNuQixJQUFJLEVBQ0osYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLG1CQUFtQixDQUFBO0FBVzFCLE9BQU8sNERBQTRELENBQUE7QUFDbkUsT0FBTywyREFBMkQsQ0FBQTtBQUNsRSxPQUFPLHlEQUF5RCxDQUFBOzs7Ozs7O0FBVWhFLE1BQU0sT0FBTyxxQkFBcUI7SUFObEM7UUFVRSxvRkFBb0Y7UUFDM0MsVUFBSyxHQUM1QyxXQUFXLENBQUE7UUFRYiw4SUFBOEk7UUFDckksa0JBQWEsR0FBa0IsRUFBRSxDQUFBO1FBRTFDLHFDQUFxQztRQUM1QixjQUFTLEdBQVcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUE7UUFFOUMscURBQXFEO1FBQzVDLGFBQVEsR0FBRyxJQUFJLENBQUE7UUFFeEIsZ0dBQWdHO1FBQ3ZGLFNBQUksR0FBRyxJQUFJLENBQUE7UUFFcEIsZ0ZBQWdGO1FBQ3ZFLGFBQVEsR0FBRyxJQUFJLENBQUE7UUFFeEIsb0dBQW9HO1FBQzNGLGtCQUFhLEdBQUcsQ0FBQyxDQUFBO1FBRTFCOzs7V0FHRztRQUNNLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFFM0IsK0ZBQStGO1FBQ3RGLGFBQVEsR0FBYTtZQUM1QixLQUFLLEVBQUUsT0FBTztZQUNkLFNBQVMsRUFBRSxXQUFXO1lBQ3RCLE9BQU8sRUFBRSxTQUFTO1lBQ2xCLFFBQVEsRUFBRSxVQUFVO1lBQ3BCLFVBQVUsRUFBRSxZQUFZO1lBQ3hCLEtBQUssRUFBRSxPQUFPO1lBQ2QsT0FBTyxFQUFFLFNBQVM7WUFDbEIsSUFBSSxFQUFFLE1BQU07U0FDYixDQUFBO1FBRUQsa0dBQWtHO1FBQ3pGLGtCQUFhLEdBQWEsRUFBRSxDQUFBO1FBRXJDLGdIQUFnSDtRQUN2RyxlQUFVLEdBQW9CLElBQUksQ0FBQTtRQUUzQyw2RkFBNkY7UUFDbkYsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBb0IsQ0FBQTtRQUU1RCxvREFBb0Q7UUFDMUMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBdUIsQ0FBQTtRQUVoRSxnQkFBZ0I7UUFDaEIsd0JBQW1CLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQTtRQUMzQyxnQkFBZ0I7UUFDaEIsbUJBQWMsR0FBa0IsUUFBUSxDQUFBO1FBQ3hDLGdCQUFnQjtRQUNoQixVQUFLLEdBQXFDLElBQUksR0FBRyxFQUFFLENBQUE7UUFHbkQsZ0JBQWdCO1FBQ2hCLGFBQVEsR0FBYSxFQUFFLENBQUE7UUFDdkIsZ0JBQWdCO1FBQ2hCLFlBQU8sR0FBRyxLQUFLLENBQUE7S0F5Z0JoQjtJQXJnQkM7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQ2xCLCtFQUErRSxDQUNoRixDQUFBO1FBQ0gsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNqRSxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO29CQUMvQixNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRTt3QkFDbEQsUUFBUSxFQUFFLEdBQUc7d0JBQ2IsV0FBVyxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO3dCQUN0RCx3QkFBd0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUMxQyxPQUFPLENBQUMsd0JBQXdCLENBQ2pDO3FCQUNGLENBQUMsQ0FBQTtvQkFDRixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFBO29CQUM3QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUNGLFlBQVksRUFDWixhQUFhLEVBQ2IsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsMEJBQTBCLEVBQzFCLHlCQUF5QixDQUMxQixDQUNGLENBQUE7b0JBRUQsc0RBQXNEO29CQUN0RCxJQUNFLFlBQVksQ0FBQyxXQUFXLEtBQUssVUFBVTt3QkFDdkMsWUFBWSxDQUFDLFdBQVcsS0FBSyxZQUFZLEVBQ3pDLENBQUM7d0JBQ0QsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO29CQUNqRCxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzFCLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUE7WUFDbEMsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO2dCQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQTtnQkFDNUIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLFdBQVcsQ0FBQTtnQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FDRixJQUFJLEVBQ0osYUFBYSxFQUNiLFVBQVUsRUFDVixRQUFRLEVBQ1IsMEJBQTBCLENBQzNCLENBQ0YsQ0FBQTtZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCx5SEFBeUg7SUFFekgsY0FBYyxDQUFDLEtBQVk7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLG1CQUFtQixHQUFHLDJFQUEyRSxDQUN0RztZQUFBLENBQUUsS0FBYSxJQUFLLE1BQU0sQ0FBQyxLQUFhLENBQUMsQ0FBQyxXQUFXO2dCQUNwRCxtQkFBbUIsQ0FBQTtZQUNyQixPQUFPLG1CQUFtQixDQUFBO1FBQzVCLENBQUM7UUFDRCxPQUFNO0lBQ1IsQ0FBQztJQUVELHdCQUF3QjtJQUV4Qix5RUFBeUU7SUFDekUsV0FBVyxDQUFDLEtBQWdCO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFDekIsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFBO1FBQ3RCLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQTtJQUM5QixDQUFDO0lBRUQsbUVBQW1FO0lBQ25FLFdBQVcsQ0FBQyxLQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsNkdBQTZHO0lBQzdHLE1BQU0sQ0FBQyxLQUF3QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU87WUFBRSxPQUFNO1FBQ3pCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUN0QixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQTtRQUU5QixJQUFJLEtBQTJCLENBQUE7UUFFL0IsOERBQThEO1FBQzlELElBQUksS0FBSyxZQUFZLFNBQVMsSUFBSSxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDckQsS0FBSyxHQUFHLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFBO1FBQ2xDLENBQUM7YUFBTSxJQUNMLEtBQUssQ0FBQyxNQUFNO1lBQ1osS0FBSyxDQUFDLE1BQU0sWUFBWSxnQkFBZ0I7WUFDeEMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQ2xCLENBQUM7WUFDRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUE7UUFDNUIsQ0FBQztRQUVELElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixNQUFNLGFBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO2dCQUMvQyxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUE7Z0JBQ2pCLElBQUksVUFBVSxHQUFrQixJQUFJLENBQUE7Z0JBQ3BDLDBDQUEwQztnQkFDMUMsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDL0IsS0FBSyxHQUFHLElBQUksQ0FBQTtvQkFDWixVQUFVLEdBQUcsV0FBVyxDQUFBO2dCQUMxQixDQUFDO2dCQUNELHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO29CQUMxQyxLQUFLLEdBQUcsSUFBSSxDQUFBO29CQUNaLFVBQVUsR0FBRyxXQUFXLENBQUE7Z0JBQzFCLENBQUM7Z0JBQ0QseUNBQXlDO2dCQUN6QyxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFO29CQUNwQyx3QkFBd0IsRUFBRSxVQUFVO29CQUNwQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFnQjtpQkFDMUQsQ0FBQyxDQUFBO2dCQUVGLGtDQUFrQztnQkFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLFdBQVcsRUFBRSxPQUFPO29CQUNwQixRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7aUJBQ2hDLENBQUMsQ0FBQTtnQkFFRixJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLDRCQUE0QjtvQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7d0JBQ3BCLFdBQVcsRUFBRSxTQUFTO3dCQUN0QixRQUFRLEVBQUUsWUFBWSxDQUFDLFFBQVE7d0JBQy9CLE1BQU0sRUFBRSxTQUFTO3dCQUNqQix3QkFBd0IsRUFBRSxVQUFVO3FCQUNyQyxDQUFDLENBQUE7Z0JBQ0osQ0FBQztnQkFFRCxPQUFPLFlBQVksQ0FBQTtZQUNyQixDQUFDLENBQUMsQ0FBQTtZQUVGLDJCQUEyQjtZQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDVCxLQUFLLE1BQU0sSUFBSSxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUNqQyxnRUFBZ0U7Z0JBQ2hFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQUUsTUFBSztnQkFDbkQsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUE7Z0JBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQzdCLENBQUMsRUFBRSxDQUFBO1lBQ0wsQ0FBQztZQUVELHFEQUFxRDtZQUNyRCxJQUNFLEtBQUssQ0FBQyxNQUFNO2dCQUNaLEtBQUssQ0FBQyxNQUFNLFlBQVksZ0JBQWdCO2dCQUN4QyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFDbEIsQ0FBQztnQkFDRCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUE7WUFDekIsQ0FBQztZQUVELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQTtRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxRQUFRLENBQUMsRUFBVSxFQUFFLEtBQWtCO1FBQ3JDLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFNO1FBQy9ELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQy9CLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTTtRQUNqQixrREFBa0Q7UUFDbEQsSUFDRSxJQUFJLENBQUMsV0FBVyxLQUFLLE9BQU87WUFDNUIsSUFBSSxDQUFDLFdBQVcsS0FBSyxTQUFTO1lBQzlCLElBQUksQ0FBQyxXQUFXLEtBQUssU0FBUyxFQUM5QixDQUFDO1lBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7UUFDOUQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFBO1lBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDNUIsQ0FBQztJQUNILENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsZUFBZSxDQUFDLEtBQXVDO1FBQ3JELE1BQU0sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFBO1FBQy9CLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFFbEMsNkRBQTZEO1FBQzdELFFBQVEsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pCLEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxXQUFXO2dCQUNkLElBQUksQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUE7Z0JBQ2xDLElBQUksQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFBO2dCQUM1QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsV0FBVyxDQUFBO2dCQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUNGLElBQUksRUFDSixhQUFhLEVBQ2IsVUFBVSxFQUNWLFFBQVEsRUFDUiwwQkFBMEIsQ0FDM0IsQ0FDRixDQUFBO2dCQUNELE1BQUs7WUFFUCwwRUFBMEU7WUFDMUUsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxZQUFZO2dCQUNmLElBQUksQ0FBQyxPQUFPO3FCQUNULFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3FCQUNuQixTQUFTLENBQUM7b0JBQ1QsS0FBSyxFQUFFLE9BQU8sQ0FBQyxJQUFJO2lCQUNwQixDQUFDO3FCQUNELEdBQUcsQ0FBQyxHQUFHLEVBQUU7b0JBQ1IsMkNBQTJDO29CQUMzQyxJQUFJLENBQUMsY0FBYyxFQUFFLFdBQVcsRUFBRSxDQUFBO29CQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQTtvQkFDNUIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLFdBQVcsQ0FBQTtvQkFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ25CLElBQUksQ0FDRixJQUFJLEVBQ0osYUFBYSxFQUNiLFVBQVUsRUFDVixRQUFRLEVBQ1IsMEJBQTBCLENBQzNCLENBQ0YsQ0FBQTtnQkFDSCxDQUFDLENBQUMsQ0FBQTtnQkFDSixNQUFLO1lBRVAsK0RBQStEO1lBQy9ELEtBQUssT0FBTyxDQUFDO1lBQ2IsS0FBSyxNQUFNO2dCQUNULENBQUM7Z0JBQUEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWE7b0JBQzFCLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUM7b0JBQ2xDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQ25DO3FCQUNFLFNBQVMsQ0FBQztvQkFDVCxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUk7aUJBQ3BCLENBQUM7cUJBQ0QsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDUiw0Q0FBNEM7b0JBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtvQkFDMUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUNoQixJQUFJLEVBQ0osYUFBYSxFQUNiLFVBQVUsRUFDVixJQUFJLEVBQ0osUUFBUSxFQUNSLDBCQUEwQixFQUMxQix5QkFBeUIsQ0FDMUIsQ0FBQTtvQkFDRCxLQUFLLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQTtvQkFDN0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7Z0JBQzlCLENBQUMsQ0FBQyxDQUFBO2dCQUNKLE1BQUs7WUFFUCwyQ0FBMkM7WUFDM0MsS0FBSyxTQUFTLENBQUM7WUFDZixLQUFLLFNBQVMsQ0FBQztZQUNmO2dCQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ3BCLEdBQUcsSUFBSSxDQUNMLElBQUksRUFDSixhQUFhLEVBQ2IsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsMEJBQTBCLEVBQzFCLHlCQUF5QixDQUMxQjtvQkFDRCxXQUFXLEVBQUUsU0FBUztpQkFDdkIsQ0FBQyxDQUFBO2dCQUNGLE1BQUs7UUFDVCxDQUFDO0lBQ0gsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUFFLE9BQU07UUFDeEMscUVBQXFFO1FBQ3JFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFBO1FBQ2pELElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFBO1FBQ25CLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDMUIsOERBQThEO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEtBQUssT0FBTztnQkFBRSxPQUFNO1lBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztnQkFDbEUsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2QsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7d0JBQ25CLEtBQUssYUFBYSxDQUFDLGNBQWM7NEJBQy9CLHlCQUF5Qjs0QkFDekIsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO2dDQUNyQyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQTtnQ0FDOUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQTs0QkFDOUQsQ0FBQzs0QkFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQ3hCLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLENBQzVDLENBQUE7NEJBQ0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUE7NEJBQzlCLE1BQUs7d0JBRVAsS0FBSyxhQUFhLENBQUMsUUFBUTs0QkFDekIsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDO2dDQUNuQixxQkFBcUI7Z0NBQ3JCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQTtnQ0FDMUIsNENBQTRDO2dDQUM1QyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7Z0NBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFBO2dDQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7Z0NBQ3pELDBCQUEwQjtnQ0FDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQTs0QkFDL0IsQ0FBQzs0QkFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUNGLElBQUksRUFDSixhQUFhLEVBQ2IsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IseUJBQXlCLENBQzFCLENBQ0YsQ0FBQTs0QkFFRCxzREFBc0Q7NEJBQ3RELElBQ0UsSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVO2dDQUMvQixJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksRUFDakMsQ0FBQztnQ0FDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7NEJBQ3pDLENBQUM7O2dDQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFBOzRCQUNuQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTs0QkFDcEIsTUFBSztvQkFDVCxDQUFDO2dCQUNILENBQUM7Z0JBQ0QsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQTtvQkFDbkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7b0JBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBO29CQUN2QixjQUFjO29CQUNkLElBQUksQ0FBQyx1QkFBdUIsR0FBRzt3QkFDN0IsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSwwQkFBMEIsRUFBRTtxQkFDOUQsQ0FBQTtvQkFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUNGLElBQUksRUFDSixhQUFhLEVBQ2IsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IseUJBQXlCLENBQzFCLENBQ0YsQ0FBQTtvQkFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQTtnQkFDdEIsQ0FBQzthQUNGLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxvQkFBb0IsQ0FBQyxRQUFnQjtRQUNuQyxnREFBZ0Q7UUFDaEQsTUFBTSxZQUFZLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDNUQsS0FBSyxNQUFNLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3BELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7b0JBQUUsT0FBTyxXQUFrQixDQUFBO1lBQzdELENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLFNBQVMsS0FBSyxRQUFRO29CQUFFLE9BQU8sV0FBa0IsQ0FBQTtZQUN2RCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFBO0lBQ2hCLENBQUM7SUFFRCxnQkFBZ0I7SUFDaEIsa0JBQWtCLENBQUMsS0FBd0I7UUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsZUFBZSxDQUFDLElBQXlCO1FBQ3ZDLE9BQU8sRUFBRSxHQUFHLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtJQUMxRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGFBQWEsQ0FBQyxJQUF5QixFQUFFLEtBQWE7UUFDNUQsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTTtRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDO2FBQ2xDLElBQUksQ0FDSCxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2IsTUFBTSxnQkFBZ0IsR0FDcEIsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWM7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7WUFDeEMsT0FBTyxnQkFBZ0IsQ0FBQTtRQUN6QixDQUFDLENBQUMsRUFDRixTQUFTLENBQ1AsYUFBYSxDQUFDO1lBQ1osZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGFBQWE7U0FDckMsQ0FBQyxDQUNILEVBQ0QsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDakIsdURBQXVEO1lBQ3ZELElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQ2YsaUNBQWlDO2dCQUNqQyxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUN0QyxJQUFJLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUE7b0JBQy9CLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUNoRCxVQUFVLENBQUMsd0JBQXdCLENBQ3BDLENBQUE7b0JBQ0QsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyx1QkFBdUIsQ0FBQTtvQkFDakUsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFBO29CQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUNGLElBQUksRUFDSixhQUFhLEVBQ2IsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsMEJBQTBCLEVBQzFCLHlCQUF5QixDQUMxQixDQUNGLENBQUE7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUM7UUFDRiwwQkFBMEI7UUFDMUIsTUFBTSxDQUNKLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FDVixDQUFDLENBQUMsT0FBTztZQUNULElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssVUFBVTtZQUN4RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLFlBQVksQ0FDN0Q7UUFDRCxvQ0FBb0M7UUFDcEMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNSO2FBQ0EsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLEdBQUcsRUFBRTtnQkFDVCxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDdkMsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUE7Z0JBQzlCLENBQUM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2IsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDakIsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7Z0JBQzVCLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFBO2dCQUN2QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsV0FBVyxDQUFBO2dCQUMzQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FDbkIsSUFBSSxDQUNGLElBQUksRUFDSixhQUFhLEVBQ2IsVUFBVSxFQUNWLElBQUksRUFDSixRQUFRLEVBQ1IsMEJBQTBCLENBQzNCLENBQ0YsQ0FBQTtnQkFDRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQTtZQUM5QixDQUFDO1NBQ0YsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVPLGFBQWEsQ0FBQyxJQUErQjtRQUNuRCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxPQUFPLElBQUksSUFBSSxJQUFJLENBQUE7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLFdBQVcsQ0FBQTtRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssaUJBQWlCLENBQUMsS0FBNkI7UUFDckQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FDckMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssWUFBWSxDQUM1QyxDQUFBO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ssZ0JBQWdCLENBQUMsS0FBNkI7UUFDcEQsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FDckMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUMzQyxDQUFBO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0sscUJBQXFCO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTtZQUFFLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFBO1FBQzVDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssTUFBTTtnQkFBRSxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQTtRQUNwRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFDVixDQUFDOzhHQWpsQlUscUJBQXFCO2tHQUFyQixxQkFBcUIsNnJCQ2pEbEMsZzJVQWlUQTs7MkZEaFFhLHFCQUFxQjtrQkFOakMsU0FBUzsrQkFDSSxnQkFBZ0IsY0FHZCxLQUFLOztzQkFJbEIsU0FBUzt1QkFBQyxnQkFBZ0I7O3NCQUcxQixXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSzs7c0JBSXJDLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQU1MLEtBQUs7O3NCQUdMLEtBQUs7O3NCQVlMLEtBQUs7O3NCQUdMLEtBQUs7O3NCQUdMLE1BQU07O3NCQUdOLE1BQU07O3NCQW1GTixZQUFZO3VCQUFDLHFCQUFxQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0IHsgSHR0cEV2ZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyB0aW1lciB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyBmaWx0ZXIsIHJldHJ5V2hlbiwgc3dpdGNoTWFwLCB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHtcbiAgRGlhbG9nRXZlbnQsXG4gIE5nZ3ZEaWFsb2dDb21wb25lbnQsXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvbW9kYWwnXG5pbXBvcnQge1xuICBleHRlbmRGaWxlLFxuICBpc0RyYWdEcm9wQXZhaWxhYmxlLFxuICBwaWNrLFxuICByZXRyeVN0cmF0ZWd5LFxuICB2ZXJpZnlBY2NlcHQsXG59IGZyb20gJy4vZHJhZy1kcm9wLnV0aWxzJ1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFQSUZpbGUsXG4gIEV2ZW50U3RhdGVDaGFuZ2UsXG4gIEZpbGVTZXJ2aWNlLFxuICBMb2NhbEZpbGUsXG4gIFN0YXRlTWFwLFxuICBVcGxvYWRTdGF0ZSxcbn0gZnJvbSAnLi9kcmFnLWRyb3AubW9kZWxzJ1xuXG5pbXBvcnQgJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvaWNvbi9pY29ucy9jbG91ZC11cGxvYWQuanMnXG5pbXBvcnQgJ0BzZWJncm91cC9ncmVlbi1jb3JlL2NvbXBvbmVudHMvaWNvbi9pY29ucy9jcm9zcy1zbWFsbC5qcydcbmltcG9ydCAnQHNlYmdyb3VwL2dyZWVuLWNvcmUvY29tcG9uZW50cy9pY29uL2ljb25zL2NoZWNrbWFyay5qcydcblxuZXhwb3J0IHR5cGUgRHJhZ0Ryb3BTdGF0ZSA9ICdub3JtYWwnIHwgJ292ZXInIHwgJ3VwbG9hZGluZycgfCAnZG9uZSdcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ2d2LWRyYWctZHJvcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyYWctZHJvcC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHJhZy1kcm9wLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyYWdEcm9wQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAvKiogQGludGVybmFsICovXG4gIEBWaWV3Q2hpbGQoJ2RlbGV0ZU1vZGFsUmVmJykgZGVsZXRlTW9kYWxSZWYhOiBOZ2d2RGlhbG9nQ29tcG9uZW50XG5cbiAgLyoqIFNwZWNpYWwgcHJvcGVydHkgdXNlZCBmb3Igc2VsZWN0aW5nIERPTSBlbGVtZW50cyBkdXJpbmcgYXV0b21hdGVkIFVJIHRlc3RpbmcuICovXG4gIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLXRob29rJykgQElucHV0KCkgdGhvb2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQgPVxuICAgICdkcmFnLWRyb3AnXG5cbiAgLyoqIEFsbG93aW5nIHNlbGVjdGluZyBvciBkcm9wcGluZyBtdWx0aXBsZSBmaWxlcy4gKi9cbiAgQElucHV0KCkgc2VydmljZTogRmlsZVNlcnZpY2UgfCB1bmRlZmluZWRcblxuICAvKiogTWltZSB0eXBlcyBhbGxvd2VkLiAqL1xuICBASW5wdXQoKSBhY2NlcHQ/OiBzdHJpbmdcblxuICAvKiogRGlzYWJsZXMgZGVsZXRpb24gb3IgY2FuY2VsbGF0aW9uIGR1cmluZyBkZWZpbmVkIHN0YXRlcyBbbG9jYWwgfCB1cGxvYWRpbmcgfCBhYm9ydGVkIHwgdXBsb2FkZWQgfCB2YWxpZGF0aW5nIHwgZXJyb3IgfCBkZWxldGVkIHwgZG9uZV0uICovXG4gIEBJbnB1dCgpIGRpc2FibGVSZW1vdmU6IFVwbG9hZFN0YXRlW10gPSBbXVxuXG4gIC8qKiBGaWxlIHNpemUgbGltaXQgaW4gbWVnYSBieXRlcy4gKi9cbiAgQElucHV0KCkgZmlsZUxpbWl0OiBudW1iZXIgPSAyNTAgKiAxMDI0ICogMTAyNFxuXG4gIC8qKiBBbGxvd2luZyBzZWxlY3Rpbmcgb3IgZHJvcHBpbmcgbXVsdGlwbGUgZmlsZXMuICovXG4gIEBJbnB1dCgpIG11bHRpcGxlID0gdHJ1ZVxuXG4gIC8qKiBEZXRlcm1pbmVzIGlmIGxpc3Qgc2hvdWxkIGJlIHNob3duIHVuZGVyIHVwbG9hZCwgZGlzYWJsaW5nIGxpc3QgZGlzYWJsZXMgbXVsdGlwbGUgdXBsb2FkLiAqL1xuICBASW5wdXQoKSBsaXN0ID0gdHJ1ZVxuXG4gIC8qKiBGcmVxdWVuY3kgb2YgcmVxdWVzdHMgd2hpY2ggdG8gc2VuZCB0byB0aGUgQVBJIHJlcXVlc3Rpbmcgc3RhdHVzIHVwZGF0ZXMuICovXG4gIEBJbnB1dCgpIHRocm90dGxlID0gNTAwMFxuXG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiBhdHRlbXB0cyB0byByZXF1ZXN0IGEgc3RhdHVzIHVwZGF0ZSBmcm9tIHRoZSBBUEkgaWYgc2VydmljZSBpcyB1bnJlYWNoYWJsZS4gKi9cbiAgQElucHV0KCkgcmV0cnlBdHRlbXB0cyA9IDVcblxuICAvKiogSWYgc2VsZWN0aW9uIG9mIG11bHRpcGxlIGZpbGUgc2hvdWxkIGJlIHBvc3NpYmxlIHdpdGggYSBjaGVja2JveC5cbiAgICogQGV4cGVyaW1lbnRhbCB3b3JrIGluIHByb2dyZXNzIGFuZCBzaG91bGQgbm90IHlldCBiZSB1c2VkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGFibGUgPSBmYWxzZVxuXG4gIC8qKiBBbGxvd3MgbXVsdGlwbGUgdmFsdWVzIGZyb20gYGFwaUZpbGUuc3RhdHVzYCB0byBiZSBtYXBwZWQgdG8gYSBzaW5nbGUgZmlsZSB1cGxvYWQgc3RhdGUuICovXG4gIEBJbnB1dCgpIHN0YXRlTWFwOiBTdGF0ZU1hcCA9IHtcbiAgICBsb2NhbDogJ2xvY2FsJyxcbiAgICB1cGxvYWRpbmc6ICd1cGxvYWRpbmcnLFxuICAgIGFib3J0ZWQ6ICdhYm9ydGVkJyxcbiAgICB1cGxvYWRlZDogJ3VwbG9hZGVkJyxcbiAgICB2YWxpZGF0aW5nOiAndmFsaWRhdGluZycsXG4gICAgZXJyb3I6ICdlcnJvcicsXG4gICAgZGVsZXRlZDogJ2RlbGV0ZWQnLFxuICAgIGRvbmU6ICdkb25lJyxcbiAgfVxuXG4gIC8qKiBTdGF0dXNlcyBhbGxvd2VkIHRvIGJlIGZldGNoIGR1cmluZyB0aGUgaW5pdGlhbCBsb2FkLiBVc2VkIHRvIGhpZGUgXCJkb25lXCIgc3RhdGVzIGZyb20gbGlzdC4gKi9cbiAgQElucHV0KCkgZmV0Y2hTdGF0dXNlczogc3RyaW5nW10gPSBbXVxuXG4gIC8qKiBTdGF0dXNlcyBhbGxvd2VkIGJlIHNob3duIHdoZW4gc3RhdHVzIGlzIFwicmVqZWN0ZWRcIi4gV2lsbCBmYWxsYmFjayB0byBnZW5lcmljIG1lc3NhZ2UuIGBudWxsYCBhbGxvd3MgYWxsLiAqL1xuICBASW5wdXQoKSBlcnJvckNvZGVzOiBzdHJpbmdbXSB8IG51bGwgPSBudWxsXG5cbiAgLyoqIEV2ZW50IHRyaWdnZXJlZCBvbiBpbml0aWFsaXphdGlvbiBhbmQgZXZlcnkgdGltZSB0aGUgXCJ1cGxvYWRTdGF0ZVwiIGZvciBhIGZpbGUgY2hhbmdlcy4gKi9cbiAgQE91dHB1dCgpIHN0YXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudFN0YXRlQ2hhbmdlPigpXG5cbiAgLyoqIEV2ZW50IHRyaWdnZXJlZCB3aGVuIHZpZXcgZGV0YWlscyBpcyBjbGlja2VkLiAqL1xuICBAT3V0cHV0KCkgZGV0YWlsc0NsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxMb2NhbEZpbGUgJiBBUElGaWxlPigpXG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBpc0RyYWdEcm9wQXZhaWxhYmxlID0gaXNEcmFnRHJvcEF2YWlsYWJsZSgpXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY29tcG9uZW50U3RhdGU6IERyYWdEcm9wU3RhdGUgPSAnbm9ybWFsJ1xuICAvKiogQGludGVybmFsICovXG4gIGZpbGVzOiBNYXA8c3RyaW5nLCBMb2NhbEZpbGUgJiBBUElGaWxlPiA9IG5ldyBNYXAoKVxuICAvKiogQGludGVybmFsICovXG4gIGxhc3RGaWxlOiAoTG9jYWxGaWxlICYgQVBJRmlsZSkgfCB1bmRlZmluZWRcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzZWxlY3RlZDogc3RyaW5nW10gPSBbXVxuICAvKiogQGludGVybmFsICovXG4gIGxvYWRpbmcgPSBmYWxzZVxuICAvKiogQGludGVybmFsICovXG4gIG1hcmtlZEZvckRlbGV0aW9uOiBBUElGaWxlIHwgdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIGNvbXBvbmVudCBhbmQgd2FybiBpZiBzZXJ2aWNlIGlzIG5vdCBkZWZpbmVkLiBXaWxsIGFsc28gZmV0Y2ggZmlsZXMgZm9yIHRoZSBsaXN0IGlmIGVuYWJsZWQuXG4gICAqL1xuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZSkge1xuICAgICAgcmV0dXJuIGNvbnNvbGUuZXJyb3IoXG4gICAgICAgICdEcmFnIGFuZCBkcm9wIGNvbXBvbmVudCB3aWxsIG5vdCB3b3JrIHdpdGhvdXQgdGhlIFtzZXJ2aWNlXSBwcm9wZXJ0eSBkZWZpbmVkIScsXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGlzdCkge1xuICAgICAgdGhpcy5zZXJ2aWNlLmZldGNoRmlsZXModGhpcy5mZXRjaFN0YXR1c2VzKS5zdWJzY3JpYmUoKGFwaUZpbGVzKSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgYXBpRmlsZSBvZiBhcGlGaWxlcykge1xuICAgICAgICAgIGNvbnN0IGV4dGVuZGVkRmlsZSA9IGV4dGVuZEZpbGUodW5kZWZpbmVkLCBhcGlGaWxlLCB7XG4gICAgICAgICAgICBwcm9ncmVzczogMTAwLFxuICAgICAgICAgICAgdXBsb2FkU3RhdGU6IHRoaXMuZGV0ZXJtaW5lVXBsb2FkU3RhdGUoYXBpRmlsZS5zdGF0dXMpLFxuICAgICAgICAgICAgaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlOiB0aGlzLmZhbGxiYWNrRXJyb3IoXG4gICAgICAgICAgICAgIGFwaUZpbGUuaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIHRoaXMuZmlsZXMuc2V0KGV4dGVuZGVkRmlsZS5pZCwgZXh0ZW5kZWRGaWxlKVxuICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdChcbiAgICAgICAgICAgIHBpY2soXG4gICAgICAgICAgICAgIGV4dGVuZGVkRmlsZSxcbiAgICAgICAgICAgICAgJ3VwbG9hZFN0YXRlJyxcbiAgICAgICAgICAgICAgJ2ZpbGVOYW1lJyxcbiAgICAgICAgICAgICAgJ2lkJyxcbiAgICAgICAgICAgICAgJ3N0YXR1cycsXG4gICAgICAgICAgICAgICdpbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGUnLFxuICAgICAgICAgICAgICAnc3RhdHVzUmVhc29uSW5mb3JtYXRpb24nLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG5cbiAgICAgICAgICAvLyBDaGVjayBpZiB2YWxpZGF0aW9uIGlzIHJlcXVpcmVkLCB0aGVuIHN0YXJ0IHBvbGxpbmdcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBleHRlbmRlZEZpbGUudXBsb2FkU3RhdGUgPT09ICd1cGxvYWRlZCcgfHxcbiAgICAgICAgICAgIGV4dGVuZGVkRmlsZS51cGxvYWRTdGF0ZSA9PT0gJ3ZhbGlkYXRpbmcnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmNoZWNrVmFsaWRpdHkoZXh0ZW5kZWRGaWxlLCB0aGlzLnRocm90dGxlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKiogRGVzdHJveSBhbGwgZXZlbnQgbGlzdGVuZXJzIGFuZCBwb2xsaW5nIHJ1bm5pbmcgKi9cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5maWxlcy5mb3JFYWNoKChmaWxlKSA9PiB7XG4gICAgICBmaWxlLnVwbG9hZFJlcXVlc3RzPy51bnN1YnNjcmliZSgpXG4gICAgICBpZiAoZmlsZS51cGxvYWRTdGF0ZSA9PT0gJ3VwbG9hZGluZycpIHtcbiAgICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9ICdhYm9ydGVkJ1xuICAgICAgICBmaWxlLmludGVybmFsU3RhdHVzUmVhc29uQ29kZSA9ICdNRkVGSE0wMDQnXG4gICAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdChcbiAgICAgICAgICBwaWNrKFxuICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgICd1cGxvYWRTdGF0ZScsXG4gICAgICAgICAgICAnZmlsZU5hbWUnLFxuICAgICAgICAgICAgJ3N0YXR1cycsXG4gICAgICAgICAgICAnaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlJyxcbiAgICAgICAgICApLFxuICAgICAgICApXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgV2FybiB1c2VyIHRyeWluZyB0byBsZWF2ZSBwYWdlIGJlZm9yZSBhbGwgdXBsb2FkcyBhcmUgZG9uZS4gQ3VzdG9tIG1lc3NhZ2Ugb25seSB3b3JrcyBpbiBvbGRlciBicm93c2Vycy4gKi9cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmJlZm9yZXVubG9hZCcsIFsnJGV2ZW50J10pXG4gIG9uQmVmb3JlVW5sb2FkKGV2ZW50OiBFdmVudCkge1xuICAgIGlmICghdGhpcy5hbGxVcGxvYWRpbmdEb25lKHRoaXMuZmlsZXMpKSB7XG4gICAgICBjb25zdCBjb25maXJtYXRpb25NZXNzYWdlID0gYFlvdSBzdGlsbCBoYXZlIGZpbGVzIHVwbG9hZGluZywgYXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGxlYXZlIHRoaXMgcGFnZT9gXG4gICAgICA7KChldmVudCBhcyBhbnkpIHx8ICh3aW5kb3cuZXZlbnQgYXMgYW55KSkucmV0dXJuVmFsdWUgPVxuICAgICAgICBjb25maXJtYXRpb25NZXNzYWdlXG4gICAgICByZXR1cm4gY29uZmlybWF0aW9uTWVzc2FnZVxuICAgIH1cbiAgICByZXR1cm5cbiAgfVxuXG4gIC8qIERyYWcgJiBEcm9wIEV2ZW50cyAqL1xuXG4gIC8qKiBAaW50ZXJuYWwgRXZlbnQgaGFuZGxlciBmb3Igd2hlbiBhIGZpbGUgaXMgaGVsZCBvdmVyIHRoZSBkcm9wIGFyZWEgKi9cbiAgb25EcmFnRW50ZXIoZXZlbnQ6IERyYWdFdmVudCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zZXJ2aWNlKSByZXR1cm5cbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgLy8gVXBkYXRlIHRoZSB2aXN1YWwgc3RhdGVcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlID0gJ292ZXInXG4gIH1cblxuICAvKiogQGludGVybmFsIEV2ZW50IGhhbmRsZXIgZm9yIHdoZW4gYSBmaWxlIGxlYXZlcyB0aGUgZHJvcCBhcmVhICovXG4gIG9uRHJhZ0xlYXZlKGV2ZW50OiBEcmFnRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VydmljZSkgcmV0dXJuXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgIHRoaXMuY29tcG9uZW50U3RhdGUgPSAnbm9ybWFsJ1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCBFdmVudCBoYW5kbGVyIGZvciB3aGVuIGEgZmlsZSBpcyBkcm9wcGVkIG9uIHRoZSBkcm9wIGFyZWEgb3Igd2hlbiBgaW5wdXRgIGZpbGVzIGFyZSBzZWxlY3RlZCAqL1xuICBvbkRyb3AoZXZlbnQ6IERyYWdFdmVudCB8IEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UpIHJldHVyblxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICB0aGlzLmNvbXBvbmVudFN0YXRlID0gJ25vcm1hbCdcblxuICAgIGxldCBmaWxlczogRmlsZUxpc3QgfCB1bmRlZmluZWRcblxuICAgIC8vIERldGVybWluZSBpZiBmaWxlcyBhcmUgZnJvbSB0aGUgZHJvcCBldmVudCBvciBpbnB1dCBlbGVtZW50XG4gICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgRHJhZ0V2ZW50ICYmIGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgICAgZmlsZXMgPSBldmVudC5kYXRhVHJhbnNmZXIuZmlsZXNcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgZXZlbnQudGFyZ2V0ICYmXG4gICAgICBldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50ICYmXG4gICAgICBldmVudC50YXJnZXQuZmlsZXNcbiAgICApIHtcbiAgICAgIGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzXG4gICAgfVxuXG4gICAgaWYgKGZpbGVzKSB7XG4gICAgICBjb25zdCBleHRlbmRlZEZpbGVzID0gQXJyYXkuZnJvbShmaWxlcywgKGZpbGUpID0+IHtcbiAgICAgICAgbGV0IGFib3J0ID0gZmFsc2VcbiAgICAgICAgbGV0IHN0YXR1c0NvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gICAgICAgIC8vIENoZWNrIGlmIGZpbGUgc2l6ZSBpcyBsYXJnZXIgdGhhbiBsaW1pdFxuICAgICAgICBpZiAoZmlsZS5zaXplID4gdGhpcy5maWxlTGltaXQpIHtcbiAgICAgICAgICBhYm9ydCA9IHRydWVcbiAgICAgICAgICBzdGF0dXNDb2RlID0gJ01GRUZITTAwMydcbiAgICAgICAgfVxuICAgICAgICAvLyBDaGVjayBpZiBmaWxlIHR5cGUgaXMgbm90IGFjY2VwdGFibGVcbiAgICAgICAgaWYgKCF2ZXJpZnlBY2NlcHQoZmlsZS50eXBlLCB0aGlzLmFjY2VwdCkpIHtcbiAgICAgICAgICBhYm9ydCA9IHRydWVcbiAgICAgICAgICBzdGF0dXNDb2RlID0gJ01GRUZITTAwMidcbiAgICAgICAgfVxuICAgICAgICAvLyBBZGQgZGVmYXVsdCB2YWx1ZXMgZXhwZWN0ZWQgYnkgdGhlIEFQSVxuICAgICAgICBjb25zdCBleHRlbmRlZEZpbGUgPSBleHRlbmRGaWxlKGZpbGUsIHtcbiAgICAgICAgICBpbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGU6IHN0YXR1c0NvZGUsXG4gICAgICAgICAgdXBsb2FkU3RhdGU6IChhYm9ydCA/ICdhYm9ydGVkJyA6ICdsb2NhbCcpIGFzIFVwbG9hZFN0YXRlLFxuICAgICAgICB9KVxuXG4gICAgICAgIC8vIEVtaXQgaW5pdGlhbCBsb2NhbCB1cGxvYWQgZXZlbnRcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICB1cGxvYWRTdGF0ZTogJ2xvY2FsJyxcbiAgICAgICAgICBmaWxlTmFtZTogZXh0ZW5kZWRGaWxlLmZpbGVOYW1lLFxuICAgICAgICB9KVxuXG4gICAgICAgIGlmIChhYm9ydCkge1xuICAgICAgICAgIC8vIEVtaXQgYWJvcnRlZCB1cGxvYWQgZXZlbnRcbiAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgdXBsb2FkU3RhdGU6ICdhYm9ydGVkJyxcbiAgICAgICAgICAgIGZpbGVOYW1lOiBleHRlbmRlZEZpbGUuZmlsZU5hbWUsXG4gICAgICAgICAgICBzdGF0dXM6ICdhYm9ydGVkJyxcbiAgICAgICAgICAgIGludGVybmFsU3RhdHVzUmVhc29uQ29kZTogc3RhdHVzQ29kZSxcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGV4dGVuZGVkRmlsZVxuICAgICAgfSlcblxuICAgICAgLy8gQXBwZW5kIHRvIHByZXZpb3VzIGZpbGVzXG4gICAgICBsZXQgaSA9IDBcbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBleHRlbmRlZEZpbGVzKSB7XG4gICAgICAgIC8vIElmIG11bHRpcGxlIG9yIGxpc3QgaXMgZmFsc2UgYXBwZW5kIG9ubHkgZmlsZSB0aGVuIGJyZWFrIGxvb3BcbiAgICAgICAgaWYgKCghdGhpcy5tdWx0aXBsZSB8fCAhdGhpcy5saXN0KSAmJiBpID49IDEpIGJyZWFrXG4gICAgICAgIHRoaXMubGFzdEZpbGUgPSBmaWxlXG4gICAgICAgIHRoaXMuZmlsZXMuc2V0KGZpbGUuaWQsIGZpbGUpXG4gICAgICAgIGkrK1xuICAgICAgfVxuXG4gICAgICAvLyBDbGVhciBmaWxlIGlucHV0IHNvIHRoYXQgc2FtZSBmaWxlIGNhbiBiZSB1cGxvYWRlZFxuICAgICAgaWYgKFxuICAgICAgICBldmVudC50YXJnZXQgJiZcbiAgICAgICAgZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCAmJlxuICAgICAgICBldmVudC50YXJnZXQuZmlsZXNcbiAgICAgICkge1xuICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSAnJ1xuICAgICAgfVxuXG4gICAgICB0aGlzLm9uU3VibWl0KClcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsIEV2ZW50IHRyaWdnZXIgZm9yIHdoZW4gZGVsZXRlIGJ1dHRvbiBpcyBwcmVzc2VkICovXG4gIG9uUmVtb3ZlKGlkOiBzdHJpbmcsIHN0YXRlOiBVcGxvYWRTdGF0ZSk6IHZvaWQge1xuICAgIC8vIE9ubHkgYWxsb3cgcmVtb3ZhbCBpbiBjZXJ0YWluIHN0YXRlc1xuICAgIGlmICghdGhpcy5zZXJ2aWNlIHx8IHRoaXMuZGlzYWJsZVJlbW92ZS5pbmNsdWRlcyhzdGF0ZSkpIHJldHVyblxuICAgIGNvbnN0IGZpbGUgPSB0aGlzLmZpbGVzLmdldChpZClcbiAgICBpZiAoIWZpbGUpIHJldHVyblxuICAgIC8vIFNraXAgY29uZmlybWF0aW9uIGZvciBhYm9ydGVkIGFuZCBkZWxldGVkIGZpbGVzXG4gICAgaWYgKFxuICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9PT0gJ2Vycm9yJyB8fFxuICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9PT0gJ2Fib3J0ZWQnIHx8XG4gICAgICBmaWxlLnVwbG9hZFN0YXRlID09PSAnZGVsZXRlZCdcbiAgICApIHtcbiAgICAgIHRoaXMub25Db25maXJtUmVtb3ZlKHsgb3JpZ2luYWw6IHVuZGVmaW5lZCwgcGF5bG9hZDogZmlsZSB9KVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1hcmtlZEZvckRlbGV0aW9uID0gZmlsZVxuICAgICAgdGhpcy5kZWxldGVNb2RhbFJlZi5vcGVuKClcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uQ29uZmlybVJlbW92ZShldmVudDogRGlhbG9nRXZlbnQ8TG9jYWxGaWxlICYgQVBJRmlsZT4pIHtcbiAgICBjb25zdCB7IHBheWxvYWQ6IGZpbGUgfSA9IGV2ZW50XG4gICAgaWYgKCFmaWxlIHx8ICF0aGlzLnNlcnZpY2UpIHJldHVyblxuXG4gICAgLy8gQWJvcnQgdXBsb2FkIGFuZCBzZXQgbG9jYWwgc3RhdGUgdG8gYWJvcnRlZCB0byBpbmZvcm0gdXNlclxuICAgIHN3aXRjaCAoZmlsZS51cGxvYWRTdGF0ZSkge1xuICAgICAgY2FzZSAnbG9jYWwnOlxuICAgICAgY2FzZSAndXBsb2FkaW5nJzpcbiAgICAgICAgZmlsZS51cGxvYWRSZXF1ZXN0cz8udW5zdWJzY3JpYmUoKVxuICAgICAgICBmaWxlLnVwbG9hZFN0YXRlID0gJ2Fib3J0ZWQnXG4gICAgICAgIGZpbGUuaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlID0gJ01GRUZITTAwNCdcbiAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KFxuICAgICAgICAgIHBpY2soXG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgJ3VwbG9hZFN0YXRlJyxcbiAgICAgICAgICAgICdmaWxlTmFtZScsXG4gICAgICAgICAgICAnc3RhdHVzJyxcbiAgICAgICAgICAgICdpbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGUnLFxuICAgICAgICAgICksXG4gICAgICAgIClcbiAgICAgICAgYnJlYWtcblxuICAgICAgLy8gUmVtb3ZlIGZpbGUgZnJvbSBzZXJ2aWNlIHRoZW4gc2V0IGxvY2FsIHN0YXRlIHRvIGFib3J0ZWQgdG8gaW5mb3JtIHVzZXJcbiAgICAgIGNhc2UgJ3VwbG9hZGVkJzpcbiAgICAgIGNhc2UgJ3ZhbGlkYXRpbmcnOlxuICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAucmVtb3ZlRmlsZShmaWxlLmlkKVxuICAgICAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgZXJyb3I6IGNvbnNvbGUud2FybixcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5hZGQoKCkgPT4ge1xuICAgICAgICAgICAgLy8gQWJvcnQgcmVnYXJkbGVzcyBvZiByZXNwb25zZSBmcm9tIHNlcnZlclxuICAgICAgICAgICAgZmlsZS51cGxvYWRSZXF1ZXN0cz8udW5zdWJzY3JpYmUoKVxuICAgICAgICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9ICdhYm9ydGVkJ1xuICAgICAgICAgICAgZmlsZS5pbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGUgPSAnTUZFRkhNMDA1J1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KFxuICAgICAgICAgICAgICBwaWNrKFxuICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgJ3VwbG9hZFN0YXRlJyxcbiAgICAgICAgICAgICAgICAnZmlsZU5hbWUnLFxuICAgICAgICAgICAgICAgICdzdGF0dXMnLFxuICAgICAgICAgICAgICAgICdpbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGUnLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vIFJlbW92ZSBmaWxlIGZyb20gc2VydmljZSB0aGVuIGxvY2FsbHkgZm9yIFwiY29tcGxldGVkXCIgc3RhdGVzXG4gICAgICBjYXNlICdlcnJvcic6XG4gICAgICBjYXNlICdkb25lJzpcbiAgICAgICAgOyh0aGlzLnNlcnZpY2UucmVtb3ZlRmlsZUZvclxuICAgICAgICAgID8gdGhpcy5zZXJ2aWNlLnJlbW92ZUZpbGVGb3IoZmlsZSlcbiAgICAgICAgICA6IHRoaXMuc2VydmljZS5yZW1vdmVGaWxlKGZpbGUuaWQpXG4gICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGVycm9yOiBjb25zb2xlLndhcm4sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuYWRkKCgpID0+IHtcbiAgICAgICAgICAgIC8vIFJlbW92ZSByZWdhcmRsZXNzIG9mIHJlc3BvbnNlIGZyb20gc2VydmVyXG4gICAgICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlLmlkKVxuICAgICAgICAgICAgY29uc3QgZXZlbnQgPSBwaWNrKFxuICAgICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgICAndXBsb2FkU3RhdGUnLFxuICAgICAgICAgICAgICAnZmlsZU5hbWUnLFxuICAgICAgICAgICAgICAnaWQnLFxuICAgICAgICAgICAgICAnc3RhdHVzJyxcbiAgICAgICAgICAgICAgJ2ludGVybmFsU3RhdHVzUmVhc29uQ29kZScsXG4gICAgICAgICAgICAgICdzdGF0dXNSZWFzb25JbmZvcm1hdGlvbicsXG4gICAgICAgICAgICApXG4gICAgICAgICAgICBldmVudC51cGxvYWRTdGF0ZSA9ICdkZWxldGVkJ1xuICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KGV2ZW50KVxuICAgICAgICAgIH0pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIC8vIEp1c3QgcmVtb3ZlIHRoZSBmaWxlIGxvY2FsbHkgdG8gY2xlYW4gdXBcbiAgICAgIGNhc2UgJ2Fib3J0ZWQnOlxuICAgICAgY2FzZSAnZGVsZXRlZCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlLmlkKVxuICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgIC4uLnBpY2soXG4gICAgICAgICAgICBmaWxlLFxuICAgICAgICAgICAgJ3VwbG9hZFN0YXRlJyxcbiAgICAgICAgICAgICdmaWxlTmFtZScsXG4gICAgICAgICAgICAnaWQnLFxuICAgICAgICAgICAgJ3N0YXR1cycsXG4gICAgICAgICAgICAnaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlJyxcbiAgICAgICAgICAgICdzdGF0dXNSZWFzb25JbmZvcm1hdGlvbicsXG4gICAgICAgICAgKSxcbiAgICAgICAgICB1cGxvYWRTdGF0ZTogJ2RlbGV0ZWQnLFxuICAgICAgICB9KVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgRXZlbnQgaGFuZGxlciBmb3Igd2hlbiB0aGUgZmlsZXMgc2hvdWxkIGJlIHVwbG9hZGVkICovXG4gIG9uU3VibWl0KCkge1xuICAgIGlmICghdGhpcy5maWxlcyB8fCAhdGhpcy5zZXJ2aWNlKSByZXR1cm5cbiAgICAvLyBJZiBsaXN0IGlzIG5vdCBlbmFibGVkIHVwZGF0ZSB0aGUgY29tcG9uZW50IHN0YXRlIHRvIHNob3cgcHJvZ3Jlc3NcbiAgICBpZiAoIXRoaXMubGlzdCkgdGhpcy5jb21wb25lbnRTdGF0ZSA9ICd1cGxvYWRpbmcnXG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZVxuICAgIHRoaXMuZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4ge1xuICAgICAgLy8gRmlsdGVyIG91dCBhbGwgZmlsZXMgdGhhdCBhcmVuJ3QgY3VycmVudGx5IGNvbnNpZGVyZWQgbG9jYWxcbiAgICAgIGlmICghZmlsZS5yYXcgfHwgZmlsZS51cGxvYWRTdGF0ZSAhPT0gJ2xvY2FsJykgcmV0dXJuXG4gICAgICBmaWxlLnVwbG9hZFJlcXVlc3RzID0gdGhpcy5zZXJ2aWNlIS51cGxvYWRGaWxlKGZpbGUucmF3ISkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3M6XG4gICAgICAgICAgICAgIC8vIFVwZGF0ZSB1cGxvYWQgcHJvZ3Jlc3NcbiAgICAgICAgICAgICAgaWYgKGZpbGUudXBsb2FkU3RhdGUgIT09ICd1cGxvYWRpbmcnKSB7XG4gICAgICAgICAgICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9ICd1cGxvYWRpbmcnXG4gICAgICAgICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KHBpY2soZmlsZSwgJ3VwbG9hZFN0YXRlJywgJ2ZpbGVOYW1lJykpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZmlsZS5wcm9ncmVzcyA9IE1hdGgucm91bmQoXG4gICAgICAgICAgICAgICAgKDEwMCAqIGV2ZW50LmxvYWRlZCkgLyAoZXZlbnQudG90YWwgfHwgMTAwKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICBmaWxlLnVwbG9hZFN0YXRlID0gJ3VwbG9hZGluZydcbiAgICAgICAgICAgICAgYnJlYWtcblxuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxuICAgICAgICAgICAgICBpZiAoZXZlbnQuYm9keT8uaWQpIHtcbiAgICAgICAgICAgICAgICAvLyBSZW1vdmUgb2xkIGZpbGUgaWRcbiAgICAgICAgICAgICAgICB0aGlzLmZpbGVzLmRlbGV0ZShmaWxlLmlkKVxuICAgICAgICAgICAgICAgIC8vIFVwZGF0ZSBmaWxlIHdpdGggaW5mb3JtYXRpb24gZnJvbSB0aGUgQVBJXG4gICAgICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihmaWxlLCBldmVudC5ib2R5KVxuICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSAxMDBcbiAgICAgICAgICAgICAgICBmaWxlLnVwbG9hZFN0YXRlID0gdGhpcy5kZXRlcm1pbmVVcGxvYWRTdGF0ZShmaWxlLnN0YXR1cylcbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgd2l0aCBuZXcgZmlsZSBpZFxuICAgICAgICAgICAgICAgIHRoaXMuZmlsZXMuc2V0KGZpbGUuaWQsIGZpbGUpXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoXG4gICAgICAgICAgICAgICAgcGljayhcbiAgICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgICAndXBsb2FkU3RhdGUnLFxuICAgICAgICAgICAgICAgICAgJ2ZpbGVOYW1lJyxcbiAgICAgICAgICAgICAgICAgICdpZCcsXG4gICAgICAgICAgICAgICAgICAnc3RhdHVzJyxcbiAgICAgICAgICAgICAgICAgICdzdGF0dXNSZWFzb25JbmZvcm1hdGlvbicsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgIC8vIENoZWNrIGlmIHZhbGlkYXRpb24gaXMgcmVxdWlyZWQsIHRoZW4gc3RhcnQgcG9sbGluZ1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9PT0gJ3VwbG9hZGVkJyB8fFxuICAgICAgICAgICAgICAgIGZpbGUudXBsb2FkU3RhdGUgPT09ICd2YWxpZGF0aW5nJ1xuICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrVmFsaWRpdHkoZmlsZSwgdGhpcy50aHJvdHRsZSlcbiAgICAgICAgICAgICAgfSBlbHNlIHRoaXMuc2V0Q29tcG9uZW50U3RhdGVEb25lKClcbiAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2VcbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLndhcm4oZXJyb3IpXG4gICAgICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9ICdhYm9ydGVkJ1xuICAgICAgICAgIGZpbGUuc3RhdHVzID0gJ2Fib3J0ZWQnXG4gICAgICAgICAgLy8gdG9kbzogd3JvbmdcbiAgICAgICAgICBmaWxlLnN0YXR1c1JlYXNvbkluZm9ybWF0aW9uID0gW1xuICAgICAgICAgICAgeyBvcmlnaW5hdG9ySWQ6ICdsb2NhbCcsIHJlYXNvbjogJ2RyYWdEcm9wLmVycm9yLk1GRUZITTAwMScgfSxcbiAgICAgICAgICBdXG4gICAgICAgICAgdGhpcy5zdGF0ZUNoYW5nZS5lbWl0KFxuICAgICAgICAgICAgcGljayhcbiAgICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgICAgJ3VwbG9hZFN0YXRlJyxcbiAgICAgICAgICAgICAgJ2ZpbGVOYW1lJyxcbiAgICAgICAgICAgICAgJ2lkJyxcbiAgICAgICAgICAgICAgJ3N0YXR1cycsXG4gICAgICAgICAgICAgICdzdGF0dXNSZWFzb25JbmZvcm1hdGlvbicsXG4gICAgICAgICAgICApLFxuICAgICAgICAgIClcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBVc2luZyB0aGUgc3RhdGUgbWFwIGNvbnZlcnQgYGFwaUZpbGUuc3RhdGVgIHRvIG9uZSBvZiB7QGxpbmsgVXBsb2FkU3RhdGV9XG4gICAqIEBwYXJhbSBhcGlTdGF0ZSB0aGUgc3RhdGUgZ2l2ZW4gYnkgdGhlIGZpbGUgdG8gYmUgdXNlZCBmb3IgbWFwcGluZ1xuICAgKi9cbiAgZGV0ZXJtaW5lVXBsb2FkU3RhdGUoYXBpU3RhdGU6IHN0cmluZyk6IFVwbG9hZFN0YXRlIHtcbiAgICAvLyBSZXZlcnNlIHNvIHRoYXQgbGF0ZXIgc3RhdGVzIG92ZXJyaWRlIGVhcmxpZXJcbiAgICBjb25zdCBzdGF0ZUVudHJpZXMgPSBPYmplY3QuZW50cmllcyh0aGlzLnN0YXRlTWFwKS5yZXZlcnNlKClcbiAgICBmb3IgKGNvbnN0IFt1cGxvYWRTdGF0ZSwgYXBpU3RhdGVzXSBvZiBzdGF0ZUVudHJpZXMpIHtcbiAgICAgIGlmICh0aGlzLnVwbG9hZFN0YXRlSXNBcnJheShhcGlTdGF0ZXMpKSB7XG4gICAgICAgIGlmIChhcGlTdGF0ZXMuaW5jbHVkZXMoYXBpU3RhdGUpKSByZXR1cm4gdXBsb2FkU3RhdGUgYXMgYW55XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXBpU3RhdGVzID09PSBhcGlTdGF0ZSkgcmV0dXJuIHVwbG9hZFN0YXRlIGFzIGFueVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gJ2Vycm9yJ1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB1cGxvYWRTdGF0ZUlzQXJyYXkoc3RhdGU6IHN0cmluZyB8IHN0cmluZ1tdKTogc3RhdGUgaXMgc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHN0YXRlKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCB1c2VkIGZvciB0cmFuc2xhdGlvbiB0ZW1wbGF0aW5nIHBhcmFtZXRlcnMgKi9cbiAgdHJhbnNsYXRlUGFyYW1zKGZpbGU6IExvY2FsRmlsZSAmIEFQSUZpbGUpIHtcbiAgICByZXR1cm4geyAuLi5maWxlLCBmaWxlTGltaXQ6ICh0aGlzLmZpbGVMaW1pdCAvIDEwMjQgLyAxMDI0KS50b0ZpeGVkKDMpIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQb2xsIHRoZSBzdGF0dXMgZW5kcG9pbnQgdG8gZGV0ZXJtaW5lIHdoZW4gZmlsZSBpcyB2YWxpZFxuICAgKiBAcGFyYW0gZmlsZSBmaWxlIHVzZWQgdG8gY2hlY2sgc3RhdGUgYW5kIHVwZGF0ZVxuICAgKiBAcGFyYW0gZGVsYXkgaG93IGxvbmcgZWFjaCBpbnRlcnZhbCBzaG91bGQgd2FpdCBiZWZvcmUgc2VuZGluZyBhIHJlcXVlc3RcbiAgICovXG4gIHByaXZhdGUgY2hlY2tWYWxpZGl0eShmaWxlOiBMb2NhbEZpbGUgJiBBUElGaWxlLCBkZWxheTogbnVtYmVyKSB7XG4gICAgaWYgKCF0aGlzLnNlcnZpY2UpIHJldHVyblxuICAgIGZpbGUudXBsb2FkUmVxdWVzdHMgPSB0aW1lcigwLCBkZWxheSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGFzeW5jRmV0Y2hTdGF0dXMgPVxuICAgICAgICAgICAgdGhpcy5zZXJ2aWNlICYmIHRoaXMuc2VydmljZS5mZXRjaFN0YXR1c0ZvclxuICAgICAgICAgICAgICA/IHRoaXMuc2VydmljZS5mZXRjaFN0YXR1c0ZvcihmaWxlKVxuICAgICAgICAgICAgICA6IHRoaXMuc2VydmljZSEuZmV0Y2hTdGF0dXMoZmlsZS5pZClcbiAgICAgICAgICByZXR1cm4gYXN5bmNGZXRjaFN0YXR1c1xuICAgICAgICB9KSxcbiAgICAgICAgcmV0cnlXaGVuKFxuICAgICAgICAgIHJldHJ5U3RyYXRlZ3koe1xuICAgICAgICAgICAgbWF4UmV0cnlBdHRlbXB0czogdGhpcy5yZXRyeUF0dGVtcHRzLFxuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgICB0YXAoKGZpbGVTdGF0dXMpID0+IHtcbiAgICAgICAgICAvLyBDb250aW51b3VzbHkgdXBkYXRlIGZpbGUgc3RhdGUgdG8gc2hvdyBzdGVwIHByb2dyZXNzXG4gICAgICAgICAgaWYgKGZpbGVTdGF0dXMpIHtcbiAgICAgICAgICAgIC8vIEVtaXQgZXZlbnQgd2hlbiBzdGF0dXMgY2hhbmdlc1xuICAgICAgICAgICAgaWYgKGZpbGUuc3RhdHVzICE9PSBmaWxlU3RhdHVzLnN0YXR1cykge1xuICAgICAgICAgICAgICBmaWxlLnN0YXR1cyA9IGZpbGVTdGF0dXMuc3RhdHVzXG4gICAgICAgICAgICAgIGZpbGUuaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlID0gdGhpcy5mYWxsYmFja0Vycm9yKFxuICAgICAgICAgICAgICAgIGZpbGVTdGF0dXMuaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIGZpbGUuc3RhdHVzUmVhc29uSW5mb3JtYXRpb24gPSBmaWxlU3RhdHVzLnN0YXR1c1JlYXNvbkluZm9ybWF0aW9uXG4gICAgICAgICAgICAgIGZpbGUudXBsb2FkU3RhdGUgPSB0aGlzLmRldGVybWluZVVwbG9hZFN0YXRlKGZpbGVTdGF0dXMuc3RhdHVzKVxuICAgICAgICAgICAgICB0aGlzLnN0YXRlQ2hhbmdlLmVtaXQoXG4gICAgICAgICAgICAgICAgcGljayhcbiAgICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgICAndXBsb2FkU3RhdGUnLFxuICAgICAgICAgICAgICAgICAgJ2ZpbGVOYW1lJyxcbiAgICAgICAgICAgICAgICAgICdpZCcsXG4gICAgICAgICAgICAgICAgICAnc3RhdHVzJyxcbiAgICAgICAgICAgICAgICAgICdpbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGUnLFxuICAgICAgICAgICAgICAgICAgJ3N0YXR1c1JlYXNvbkluZm9ybWF0aW9uJyxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgLy8gUmVtb3ZlIHZhbGlkYXRpb24gc3RhdGVcbiAgICAgICAgZmlsdGVyKFxuICAgICAgICAgIChhcGlGaWxlKSA9PlxuICAgICAgICAgICAgISFhcGlGaWxlICYmXG4gICAgICAgICAgICB0aGlzLmRldGVybWluZVVwbG9hZFN0YXRlKGFwaUZpbGUuc3RhdHVzKSAhPT0gJ3VwbG9hZGVkJyAmJlxuICAgICAgICAgICAgdGhpcy5kZXRlcm1pbmVVcGxvYWRTdGF0ZShhcGlGaWxlLnN0YXR1cykgIT09ICd2YWxpZGF0aW5nJyxcbiAgICAgICAgKSxcbiAgICAgICAgLy8gVGFrZSBmaXJzdCBzdGF0ZSBhZnRlciB2YWxpZGF0aW9uXG4gICAgICAgIHRha2UoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmFsbFZhbGlkYXRpb25Eb25lKHRoaXMuZmlsZXMpKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvbXBvbmVudFN0YXRlRG9uZSgpXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUud2FybihlcnIpXG4gICAgICAgICAgZmlsZS51cGxvYWRTdGF0ZSA9ICdhYm9ydGVkJ1xuICAgICAgICAgIGZpbGUuc3RhdHVzID0gJ2Fib3J0ZWQnXG4gICAgICAgICAgZmlsZS5pbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGUgPSAnTUZFRkhNMDAxJ1xuICAgICAgICAgIHRoaXMuc3RhdGVDaGFuZ2UuZW1pdChcbiAgICAgICAgICAgIHBpY2soXG4gICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICd1cGxvYWRTdGF0ZScsXG4gICAgICAgICAgICAgICdmaWxlTmFtZScsXG4gICAgICAgICAgICAgICdpZCcsXG4gICAgICAgICAgICAgICdzdGF0dXMnLFxuICAgICAgICAgICAgICAnaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlJyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKVxuICAgICAgICAgIHRoaXMuc2V0Q29tcG9uZW50U3RhdGVEb25lKClcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGZhbGxiYWNrRXJyb3IoY29kZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICh0aGlzLmVycm9yQ29kZXMgPT0gbnVsbCB8fCAoY29kZSAmJiB0aGlzLmVycm9yQ29kZXMuaW5jbHVkZXMoY29kZSkpKSB7XG4gICAgICByZXR1cm4gY29kZSA/PyBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnTUZFRkhNMDAxJ1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBzbyB0aGF0IG5vIGZpbGVzIGFyZSBzdGlsbCB2YWxpZGF0aW5nXG4gICAqL1xuICBwcml2YXRlIGFsbFZhbGlkYXRpb25Eb25lKGZpbGVzOiBNYXA8c3RyaW5nLCBMb2NhbEZpbGU+KSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oZmlsZXMudmFsdWVzKCkpLmV2ZXJ5KFxuICAgICAgKGZpbGUpID0+IGZpbGUudXBsb2FkU3RhdGUgIT09ICd2YWxpZGF0aW5nJyxcbiAgICApXG4gIH1cblxuICAvKipcbiAgICogQ2hlY2sgc28gdGhhdCBubyBmaWxlcyBhcmUgc3RpbGwgdXBsb2FkaW5nXG4gICAqL1xuICBwcml2YXRlIGFsbFVwbG9hZGluZ0RvbmUoZmlsZXM6IE1hcDxzdHJpbmcsIExvY2FsRmlsZT4pIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShmaWxlcy52YWx1ZXMoKSkuZXZlcnkoXG4gICAgICAoZmlsZSkgPT4gZmlsZS51cGxvYWRTdGF0ZSAhPT0gJ3VwbG9hZGluZycsXG4gICAgKVxuICB9XG5cbiAgLyoqXG4gICAqIEhlbHBlciB0byB1cGRhdGUgdGhlIGNvbXBvbmVudCBzdGF0ZSB0byBkb25lIGFuZCB0aGVuIGJhY2sgdG8gbm9ybWFsXG4gICAqL1xuICBwcml2YXRlIHNldENvbXBvbmVudFN0YXRlRG9uZSgpIHtcbiAgICBpZiAoIXRoaXMubGlzdCkgdGhpcy5jb21wb25lbnRTdGF0ZSA9ICdkb25lJ1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuY29tcG9uZW50U3RhdGUgPT09ICdkb25lJykgdGhpcy5jb21wb25lbnRTdGF0ZSA9ICdub3JtYWwnXG4gICAgfSwgMzAwMClcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgPGZvcm0gZW5jdHlwZT1cIm11bHRpcGFydC9mb3JtLWRhdGFcIiAjZHJhZ0Ryb3BGb3JtPlxuICAgIDxkaXYgY2xhc3M9XCJnZHMtZHJhZy1kcm9wXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgY2xhc3M9XCJnZHMtZHJhZy1kcm9wX19pbnB1dFwiXG4gICAgICAgIGlkPVwiZHJhZy1kcm9wXCJcbiAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICBbYWNjZXB0XT1cImFjY2VwdFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZSAmJiBsaXN0XCJcbiAgICAgICAgKGNoYW5nZSk9XCJvbkRyb3AoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPGxhYmVsXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnZ2RzLWRyYWctZHJvcF9fbGFiZWwnOiB0cnVlLFxuICAgICAgICAgICdnZHMtZHJhZy1kcm9wX19sYWJlbC0tYWJvdmUnOiBjb21wb25lbnRTdGF0ZSA9PT0gJ292ZXInLFxuICAgICAgICB9XCJcbiAgICAgICAgZm9yPVwiZHJhZy1kcm9wXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctcGlja2VyJ1wiXG4gICAgICAgIFthdHRyLmFyaWEtYnVzeV09XCJsb2FkaW5nXCJcbiAgICAgICAgKGRyYWdlbnRlcik9XCJvbkRyYWdFbnRlcigkZXZlbnQpXCJcbiAgICAgICAgKGRyYWdvdmVyKT1cIm9uRHJhZ0VudGVyKCRldmVudClcIlxuICAgICAgICAoZHJhZ2xlYXZlKT1cIm9uRHJhZ0xlYXZlKCRldmVudClcIlxuICAgICAgICAoZHJhZ2VuZCk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcbiAgICAgICAgKGRyb3ApPVwib25Ecm9wKCRldmVudClcIlxuICAgICAgICBbbmdTd2l0Y2hdPVwiY29tcG9uZW50U3RhdGVcIlxuICAgICAgPlxuICAgICAgICA8IS0tIENPTVBPTkVOVCBTVEFURSBOT1JNQUwgLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidub3JtYWwnXCI+XG4gICAgICAgICAgPGdkcy1pY29uLWNsb3VkLXVwbG9hZCAqbmdnQ29yZUVsZW1lbnQ+PC9nZHMtaWNvbi1jbG91ZC11cGxvYWRcbiAgICAgICAgICA+PGVtPnt7IHQoJ2RyYWdEcm9wLmxhYmVsLmZpbGVDaG9vc2UnKSB9fTwvZW0+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImlzRHJhZ0Ryb3BBdmFpbGFibGVcIj5cbiAgICAgICAgICAgIHt7IHQoJ2RyYWdEcm9wLmxhYmVsLmZpbGVEcmFnJykgfX08L25nLXRlbXBsYXRlXG4gICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDwhLS0gQ09NUE9ORU5UIFNUQVRFIE9WRVIgLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidvdmVyJ1wiPlxuICAgICAgICAgIDxnZHMtaWNvbi1jbG91ZC11cGxvYWQgKm5nZ0NvcmVFbGVtZW50PjwvZ2RzLWljb24tY2xvdWQtdXBsb2FkXG4gICAgICAgICAgPnt7IHQoJ2RyYWdEcm9wLmxhYmVsLmZpbGVEcm9wJykgfX1cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8IS0tIENPTVBPTkVOVCBTVEFURSBVUExPQURJTkcgLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIid1cGxvYWRpbmcnXCI+XG4gICAgICAgICAgPHN0cm9uZyBjbGFzcz1cImZpbGVuYW1lXCI+e3sgbGFzdEZpbGU/LmZpbGVOYW1lIH19PC9zdHJvbmc+XG5cbiAgICAgICAgICA8IS0tIFVQTE9BRElORyBTVEFURSAtLT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwibGFzdEZpbGU/LnVwbG9hZFN0YXRlID09PSAndXBsb2FkaW5nJ1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb2dyZXNzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgIGZpbGU6IGxhc3RGaWxlLFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICA8IS0tIFVQTE9BREVEIFNUQVRFIC0tPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJsYXN0RmlsZT8udXBsb2FkU3RhdGUgPT09ICd1cGxvYWRlZCdcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9ncmVzc1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICBmaWxlOiBsYXN0RmlsZSxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0KCdkcmFnRHJvcC50ZXh0LmZpbGVTdGF0ZVVwbG9hZGVkJyksXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgIDwhLS0gVkFMSURBVElORyBTVEFURSAtLT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwibGFzdEZpbGU/LnVwbG9hZFN0YXRlID09PSAndmFsaWRhdGluZydcIj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJwcm9ncmVzc1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICBmaWxlOiBsYXN0RmlsZSxcbiAgICAgICAgICAgICAgICB0ZXh0OiB0KCdkcmFnRHJvcC50ZXh0LmZpbGVTdGF0ZVZhbGlkYXRpbmcnKSxcbiAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDwhLS0gQ09NUE9ORU5UIFNUQVRFIERPTkUgLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidkb25lJ1wiPlxuICAgICAgICAgIHt7IHQoJ2RyYWdEcm9wLmxhYmVsLmZpbGVVcGxvYWRlZCcsIHsgZmlsZW5hbWU6IGxhc3RGaWxlPy5maWxlTmFtZSB9KVxuICAgICAgICAgIH19PGdkcy1pY29uLWNoZWNrbWFyayAqbmdnQ29yZUVsZW1lbnQ+PC9nZHMtaWNvbi1jaGVja21hcms+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2xhYmVsPlxuXG4gICAgICA8IS0tIExJU1QgLS0+XG4gICAgICA8dGFibGVcbiAgICAgICAgY2xhc3M9XCJnZHMtdGFibGUgZmlsZS1saXN0XCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZmlsZS1saXN0J1wiXG4gICAgICAgICpuZ0lmPVwibGlzdFwiXG4gICAgICA+XG4gICAgICAgIDx0aGVhZD5cbiAgICAgICAgICA8dHI+XG4gICAgICAgICAgICA8dGggKm5nSWY9XCJzZWxlY3RhYmxlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZHMtZmllbGQtY2hlY2tib3gtd3JhcFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGaWVsZCBsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBpZD1cInNlbGVjdC1hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlbGVjdC1hbGxcIj48L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJnZHMtdGFibGVfX3ByaW1hcnktY29sIGNvbC1uYW1lXCI+XG4gICAgICAgICAgICAgIHt7IHQoJ2RyYWdEcm9wLmxhYmVsLmZpbGVOYW1lJykgfX1cbiAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICA8dGggY2xhc3M9XCJjb2wtc3RhdHVzXCI+XG4gICAgICAgICAgICAgIHt7IHQoJ2RyYWdEcm9wLmxhYmVsLmZpbGVTdGF0dXMnKSB9fVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIDx0aCBjbGFzcz1cImNvbC1hY3Rpb25zXCI+PC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RoZWFkPlxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgPHRyXG4gICAgICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1maWxlJ1wiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlcyB8IHZhbHVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3RhYmxlXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZHMtZmllbGQtY2hlY2tib3gtd3JhcFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJGaWVsZCBsYWJlbFwiXG4gICAgICAgICAgICAgICAgICBbaWRdPVwiJ2ZpbGUtY2hlY2tib3gtJyArIGZpbGUuaWRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiJ2ZpbGUtY2hlY2tib3gtJyArIGZpbGUuaWRcIj48L2xhYmVsPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgY2xhc3M9XCJnZHMtdGFibGVfX3ByaW1hcnktY29sXCJcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZmlsZS1uYW1lJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IGZpbGUuZmlsZU5hbWUgfX1cbiAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICA8dGRcbiAgICAgICAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctZmlsZS1zdGF0dXMnXCJcbiAgICAgICAgICAgICAgW25nU3dpdGNoXT1cImZpbGUudXBsb2FkU3RhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8IS0tIFVQTE9BRElORyBTVEFURSAtLT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ3VwbG9hZGluZydcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb2dyZXNzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICAgICAgICAgIDwhLS0gVVBMT0FERUQgU1RBVEUgLS0+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIid1cGxvYWRlZCdcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb2dyZXNzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdCgnZHJhZ0Ryb3AudGV4dC5maWxlU3RhdGVVcGxvYWRlZCcpLFxuICAgICAgICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgPCEtLSBWQUxJREFUSU5HIFNUQVRFIC0tPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nU3dpdGNoQ2FzZV09XCIndmFsaWRhdGluZydcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInByb2dyZXNzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZSxcbiAgICAgICAgICAgICAgICAgICAgdGV4dDogdCgnZHJhZ0Ryb3AudGV4dC5maWxlU3RhdGVWYWxpZGF0aW5nJyksXG4gICAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICA8IS0tIEFCT1JURUQgU1RBVEUgLS0+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidhYm9ydGVkJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVycm9yLXRleHRcIlxuICAgICAgICAgICAgICAgICAgW3RyYW5zbG9jb109XCJcbiAgICAgICAgICAgICAgICAgICAgJ2RyYWdEcm9wLmVycm9yLicgKyBmaWxlLmludGVybmFsU3RhdHVzUmVhc29uQ29kZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFt0cmFuc2xvY29QYXJhbXNdPVwidHJhbnNsYXRlUGFyYW1zKGZpbGUpXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZS5pbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGVcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgPCEtLSBFUlJPUiBTVEFURSAtLT5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1N3aXRjaENhc2VdPVwiJ2Vycm9yJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImVycm9yLXRleHRcIlxuICAgICAgICAgICAgICAgICAgW3RyYW5zbG9jb109XCJcbiAgICAgICAgICAgICAgICAgICAgJ2RyYWdEcm9wLmVycm9yLicgKyBmaWxlLmludGVybmFsU3RhdHVzUmVhc29uQ29kZVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIFt0cmFuc2xvY29QYXJhbXNdPVwidHJhbnNsYXRlUGFyYW1zKGZpbGUpXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwiZmlsZS5pbnRlcm5hbFN0YXR1c1JlYXNvbkNvZGVcIlxuICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJyIC8+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJkZXRhaWxzQ2xpY2suZW1pdChmaWxlKVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cImN1cnNvcjogcG9pbnRlclwiXG4gICAgICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgICAgICBmaWxlLnN0YXR1c1JlYXNvbkluZm9ybWF0aW9uICYmXG4gICAgICAgICAgICAgICAgICAgIGZpbGUuc3RhdHVzUmVhc29uSW5mb3JtYXRpb24ubGVuZ3RoXG4gICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IHQoJ2RyYWdEcm9wLmxpbmsudmlld0RldGFpbHMnKSB9fVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICA8IS0tIERPTkUgU1RBVEUgLS0+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdTd2l0Y2hDYXNlXT1cIidkb25lJ1wiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VjY2Vzcy10ZXh0XCI+e3tcbiAgICAgICAgICAgICAgICAgIHQoJ2RyYWdEcm9wLnRleHQuZmlsZVN0YXRlRG9uZScpXG4gICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L3RkPlxuXG4gICAgICAgICAgICA8dGQgY2xhc3M9XCJnZHMtdGFibGVfX251bWVyaWMtY29sXCI+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJyZW1vdmVcIlxuICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlKGZpbGUuaWQsIGZpbGUudXBsb2FkU3RhdGUpXCJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIiFkaXNhYmxlUmVtb3ZlLmluY2x1ZGVzKGZpbGUudXBsb2FkU3RhdGUpXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxnZHMtaWNvbi1jcm9zcy1zbWFsbCAqbmdnQ29yZUVsZW1lbnQ+PC9nZHMtaWNvbi1jcm9zcy1zbWFsbD5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3Rib2R5PlxuICAgICAgPC90YWJsZT5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuXG4gIDxuZ2d2LWRpYWxvZ1xuICAgICNkZWxldGVNb2RhbFJlZlxuICAgIFt0aXRsZV09XCJ0KCdkcmFnRHJvcC50ZXh0LmZpbGVDYW5jZWxNb2RhbFRpdGxlJylcIlxuICAgIFtjb250ZW50XT1cIlxuICAgICAgdCgnZHJhZ0Ryb3AudGV4dC5maWxlQ2FuY2VsTW9kYWxDb250ZW50Jywge1xuICAgICAgICBuYW1lOiBtYXJrZWRGb3JEZWxldGlvbj8uZmlsZU5hbWUsXG4gICAgICB9KVxuICAgIFwiXG4gICAgW3BheWxvYWRdPVwibWFya2VkRm9yRGVsZXRpb25cIlxuICAgIFtidXR0b25zXT1cIntcbiAgICAgIG5lZ2F0aXZlOiAnZHJhZ0Ryb3AudGV4dC5maWxlQ2FuY2VsQ29uZmlybScsXG4gICAgICBwb3NpdGl2ZTogJ2RyYWdEcm9wLnRleHQuZmlsZUNhbmNlbERlbnknLFxuICAgIH1cIlxuICAgIChuZ2d2TmVnYXRpdmVFdmVudCk9XCJvbkNvbmZpcm1SZW1vdmUoJGFueSgkZXZlbnQpKVwiXG4gID48L25nZ3YtZGlhbG9nPlxuXG4gIDwhLS0gUFJPR1JFU1MgVEVNUExBVEUgLS0+XG5cbiAgPG5nLXRlbXBsYXRlXG4gICAgI3Byb2dyZXNzVGVtcGxhdGVcbiAgICBsZXQtZmlsZT1cIlxuICAgIGZpbGVcIlxuICAgIGxldC10ZXh0PVwidGV4dFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3Mtd3JhcHBlclwiPlxuICAgICAgPHByb2dyZXNzXG4gICAgICAgIGNsYXNzPVwiZ2RzLXByb2dyZXNzLWJhciBwcm9ncmVzc1wiXG4gICAgICAgIG1heD1cIjEwMFwiXG4gICAgICAgIFt2YWx1ZV09XCJmaWxlLnByb2dyZXNzXCJcbiAgICAgID5cbiAgICAgICAge3tcbiAgICAgICAgICB0KCdkcmFnRHJvcC50ZXh0LmZpbGVTdGF0ZVVwbG9hZGluZycsIHtcbiAgICAgICAgICAgIHVwbG9hZGVkOlxuICAgICAgICAgICAgICAoZmlsZS5yYXc/LnNpemUgKiAoZmlsZS5wcm9ncmVzcyAvIDEwMCkpIC8gMTAyNCB8IG51bWJlcjogJzAuMC0wJyxcbiAgICAgICAgICAgIHNpemU6IGZpbGUucmF3Py5zaXplIC8gMTAyNCB8IG51bWJlcjogJzAuMC0wJyxcbiAgICAgICAgICAgIHByb2dyZXNzOiBmaWxlLnByb2dyZXNzLFxuICAgICAgICAgICAgdW5pdDogJ2tCJyxcbiAgICAgICAgICB9KVxuICAgICAgICB9fVxuICAgICAgPC9wcm9ncmVzcz5cbiAgICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJzdGF0ZU1hcC52YWxpZGF0aW5nLmxlbmd0aFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJnZHMtcHJvZ3Jlc3MtaW5kaWNhdG9yIGluZGljYXRvclwiXG4gICAgICAgICAgKm5nSWY9XCJ1cGxvYWRTdGF0ZUlzQXJyYXkoc3RhdGVNYXAudmFsaWRhdGluZyk7IGVsc2Ugc2luZ2xlVmFsaWRhdGlvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImdkcy1wcm9ncmVzcy1pbmRpY2F0b3JfX3N0ZXBcIlxuICAgICAgICAgICAgW2NsYXNzLi1kb25lXT1cImkgPD0gc3RhdGVNYXAudmFsaWRhdGluZy5pbmRleE9mKGZpbGUuc3RhdHVzKVwiXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgc3RhdGUgb2Ygc3RhdGVNYXAudmFsaWRhdGluZzsgbGV0IGkgPSBpbmRleFwiXG4gICAgICAgICAgPjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8bmctdGVtcGxhdGUgI3NpbmdsZVZhbGlkYXRpb24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJnZHMtcHJvZ3Jlc3MtaW5kaWNhdG9yIGluZGljYXRvclwiPlxuICAgICAgICAgIDwhLS0gZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2VxZXFlcSAtLT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cImdkcy1wcm9ncmVzcy1pbmRpY2F0b3JfX3N0ZXBcIlxuICAgICAgICAgICAgW2NsYXNzLi1kb25lXT1cImZpbGUuc3RhdHVzID09IHN0YXRlTWFwLnZhbGlkYXRpbmdcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICA8IS0tIGVzbGludC1lbmFibGUgQGFuZ3VsYXItZXNsaW50L3RlbXBsYXRlL2VxZXFlcSAtLT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICAgIDxzcGFuIGNsYXNzPVwicHJvZ3Jlc3MtdGV4dFwiPlxuICAgICAge3tcbiAgICAgICAgdGV4dCB8fFxuICAgICAgICAgIHQoJ2RyYWdEcm9wLnRleHQuZmlsZVN0YXRlVXBsb2FkaW5nJywge1xuICAgICAgICAgICAgdXBsb2FkZWQ6XG4gICAgICAgICAgICAgIChmaWxlLnJhdz8uc2l6ZSAqIChmaWxlLnByb2dyZXNzIC8gMTAwKSkgLyAxMDI0IHwgbnVtYmVyOiAnMC4wLTAnLFxuICAgICAgICAgICAgc2l6ZTogZmlsZS5yYXc/LnNpemUgLyAxMDI0IHwgbnVtYmVyOiAnMC4wLTAnLFxuICAgICAgICAgICAgcHJvZ3Jlc3M6IGZpbGUucHJvZ3Jlc3MsXG4gICAgICAgICAgICB1bml0OiAna0InLFxuICAgICAgICAgIH0pXG4gICAgICB9fVxuICAgIDwvc3Bhbj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19","import { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { TRANSLOCO_SCOPE, TranslocoModule } from '@jsverse/transloco';\nimport { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';\nimport { NggvModalModule } from '@sebgroup/green-angular/src/v-angular/modal';\nimport { NggvDragDropComponent } from './drag-drop.component';\nimport { ValuePipe } from './drag-drop.pipes';\nimport * as i0 from \"@angular/core\";\nexport class NggvDragDropModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvDragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvDragDropModule, declarations: [ValuePipe, NggvDragDropComponent], imports: [HttpClientModule,\n TranslocoModule,\n NggvModalModule,\n NggCoreWrapperModule,\n CommonModule], exports: [NggvDragDropComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvDragDropModule, providers: [\n {\n provide: TRANSLOCO_SCOPE,\n useValue: 'dragDrop',\n },\n ], imports: [HttpClientModule,\n TranslocoModule,\n NggvModalModule,\n NggCoreWrapperModule,\n CommonModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.9\", ngImport: i0, type: NggvDragDropModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n HttpClientModule,\n TranslocoModule,\n NggvModalModule,\n NggCoreWrapperModule,\n CommonModule,\n ],\n declarations: [ValuePipe, NggvDragDropComponent],\n providers: [\n {\n provide: TRANSLOCO_SCOPE,\n useValue: 'dragDrop',\n },\n ],\n exports: [NggvDragDropComponent],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2RyYWctZHJvcC9kcmFnLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7QUFvQjdDLE1BQU0sT0FBTyxrQkFBa0I7OEdBQWxCLGtCQUFrQjsrR0FBbEIsa0JBQWtCLGlCQVZkLFNBQVMsRUFBRSxxQkFBcUIsYUFON0MsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLFlBQVksYUFTSixxQkFBcUI7K0dBR3BCLGtCQUFrQixhQVRsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixRQUFRLEVBQUUsVUFBVTthQUNyQjtTQUNGLFlBWkMsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLFlBQVk7OzJGQVlILGtCQUFrQjtrQkFsQjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxTQUFTLEVBQUUscUJBQXFCLENBQUM7b0JBQ2hELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsUUFBUSxFQUFFLFVBQVU7eUJBQ3JCO3FCQUNGO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbydcblxuaW1wb3J0IHsgTmdnQ29yZVdyYXBwZXJNb2R1bGUgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvbGliL3NoYXJlZCdcbmltcG9ydCB7IE5nZ3ZNb2RhbE1vZHVsZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvbW9kYWwnXG5pbXBvcnQgeyBOZ2d2RHJhZ0Ryb3BDb21wb25lbnQgfSBmcm9tICcuL2RyYWctZHJvcC5jb21wb25lbnQnXG5pbXBvcnQgeyBWYWx1ZVBpcGUgfSBmcm9tICcuL2RyYWctZHJvcC5waXBlcydcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgVHJhbnNsb2NvTW9kdWxlLFxuICAgIE5nZ3ZNb2RhbE1vZHVsZSxcbiAgICBOZ2dDb3JlV3JhcHBlck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1ZhbHVlUGlwZSwgTmdndkRyYWdEcm9wQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVFJBTlNMT0NPX1NDT1BFLFxuICAgICAgdXNlVmFsdWU6ICdkcmFnRHJvcCcsXG4gICAgfSxcbiAgXSxcbiAgZXhwb3J0czogW05nZ3ZEcmFnRHJvcENvbXBvbmVudF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyYWdEcm9wTW9kdWxlIHt9XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ViZ3JvdXAtZ3JlZW4tYW5ndWxhci1zcmMtdi1hbmd1bGFyLWRyYWctZHJvcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2RyYWctZHJvcC9zZWJncm91cC1ncmVlbi1hbmd1bGFyLXNyYy12LWFuZ3VsYXItZHJhZy1kcm9wLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i5.ValuePipe"],"mappings":"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"}