@colijnit/transaction 12.1.100 → 12.1.102

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 (315) hide show
  1. package/bundles/colijnit-transaction.umd.js +2968 -2949
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +409 -400
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +410 -401
  6. package/esm2015/lib/cache/service/business-object-cache-manager.service.js +1 -1
  7. package/esm2015/lib/cache/service/select-single-parameterized-cache.service.js +47 -0
  8. package/esm2015/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.js +7 -5
  9. package/esm2015/lib/component/core/base/transaction-base.component.js +37 -5
  10. package/esm2015/lib/component/core/base/transaction-filter-popup-base.component.js +8 -13
  11. package/esm2015/lib/component/core/base/transaction-grid-base.component.js +7 -18
  12. package/esm2015/lib/component/core/base/transaction-input-field-base.component.js +3 -11
  13. package/esm2015/lib/component/core/directive/overlay.directive.js +1 -2
  14. package/esm2015/lib/component/deposit-payment/deposit-payment.component.js +6 -5
  15. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.js +4 -12
  16. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.js +4 -15
  17. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.js +2 -2
  18. package/esm2015/lib/component/editable-label/editable-label.component.js +1 -1
  19. package/esm2015/lib/component/payment/payment.component.js +62 -14
  20. package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.component.js +1 -3
  21. package/esm2015/lib/component/relation/relation-general/relation-general.component.js +3 -1
  22. package/esm2015/lib/component/relation/relation-general/relation-general.module.js +4 -2
  23. package/esm2015/lib/component/search/search-filter-panel/search-filter-panel.component.js +2 -2
  24. package/esm2015/lib/component/search/search.component.js +2 -2
  25. package/esm2015/lib/component/transaction-card/transaction-card/transaction-card.component.js +18 -7
  26. package/esm2015/lib/component/transaction-card/transaction-card/transaction-card.module.js +9 -11
  27. package/esm2015/lib/component/transaction-card/transaction-card-footer/transaction-card-footer.component.js +3 -14
  28. package/esm2015/lib/component/transaction-card/transaction-card-header/transaction-card-header.component.js +4 -18
  29. package/esm2015/lib/component/transaction-card/transaction-card-invoice/transaction-card-invoice.component.js +2 -2
  30. package/esm2015/lib/component/transaction-card/transaction-card-order-delivery/transaction-card-order-delivery.component.js +2 -2
  31. package/esm2015/lib/component/transaction-card/transaction-card-purchase-overview/transaction-card-purchase-overview.component.js +11 -23
  32. package/esm2015/lib/component/transaction-card/transaction-card-receive-goods/transaction-card-receive-goods.component.js +2 -2
  33. package/esm2015/lib/component/transaction-card/transaction-card-sales-overview/transaction-card-sales-overview.component.js +8 -27
  34. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.js +3 -14
  35. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.component.js +23 -6
  36. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.js +4 -2
  37. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.js +3 -17
  38. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +10 -23
  39. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +7 -18
  40. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +26 -16
  41. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +28 -24
  42. package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.js +17 -6
  43. package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +19 -8
  44. package/esm2015/lib/component/transaction-header-fields/transaction-header-currency.component.js +24 -12
  45. package/esm2015/lib/component/transaction-header-fields/transaction-header-definitive.component.js +3 -11
  46. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.component.js +10 -13
  47. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.js +4 -12
  48. package/esm2015/lib/component/transaction-header-fields/transaction-header-deposit-amount.component.js +1 -12
  49. package/esm2015/lib/component/transaction-header-fields/transaction-header-deposit-percentage.component.js +1 -12
  50. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-amount.component.js +1 -12
  51. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.js +1 -12
  52. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.js +1 -12
  53. package/esm2015/lib/component/transaction-header-fields/transaction-header-hold-codes.component.js +5 -11
  54. package/esm2015/lib/component/transaction-header-fields/transaction-header-marketing.component.js +5 -11
  55. package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.js +4 -15
  56. package/esm2015/lib/component/transaction-header-fields/transaction-header-payment-condition.component.js +4 -15
  57. package/esm2015/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.js +1 -12
  58. package/esm2015/lib/component/transaction-header-fields/transaction-header-price-kind.component.js +9 -19
  59. package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.component.js +1 -12
  60. package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.component.js +1 -12
  61. package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.component.js +1 -12
  62. package/esm2015/lib/component/transaction-header-fields/transaction-header-sales-person.component.js +3 -14
  63. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +10 -22
  64. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.js +11 -25
  65. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.module.js +12 -12
  66. package/esm2015/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line-base.component.js +19 -17
  67. package/esm2015/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line.component.js +10 -7
  68. package/esm2015/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line.module.js +12 -12
  69. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js +20 -8
  70. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.module.js +5 -7
  71. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line-base.component.js +15 -19
  72. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.js +10 -7
  73. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.js +2 -2
  74. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +59 -62
  75. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.js +4 -3
  76. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line-base.component.js +24 -25
  77. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +42 -42
  78. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.js +4 -3
  79. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.js +10 -22
  80. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.component.js +7 -5
  81. package/esm2015/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.module.js +4 -3
  82. package/esm2015/lib/component/transaction-line/transaction-purchase-overview-line/transaction-purchase-overview-line.component.js +55 -67
  83. package/esm2015/lib/component/transaction-line/transaction-purchase-overview-line/transaction-purchase-overview-line.module.js +4 -2
  84. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line-base.component.js +5 -20
  85. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.js +7 -5
  86. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.module.js +14 -14
  87. package/esm2015/lib/component/transaction-line/transaction-text-line/transaction-text-line.component.js +1 -15
  88. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.js +28 -14
  89. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.js +4 -2
  90. package/esm2015/lib/component/transaction-line-delivery-history/transaction-line-delivery-history.component.js +34 -0
  91. package/esm2015/lib/component/transaction-line-delivery-history/transaction-line-delivery-history.module.js +25 -0
  92. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.component.js +3 -13
  93. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.component.js +24 -24
  94. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +5 -11
  95. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-button.component.js +19 -23
  96. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +1 -12
  97. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +7 -13
  98. package/esm2015/lib/component/transaction-line-fields/transaction-line-description.component.js +7 -18
  99. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.component.js +1 -12
  100. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-button.component.js +3 -13
  101. package/esm2015/lib/component/transaction-line-fields/transaction-line-drop-shipment-button.component.js +38 -32
  102. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.component.js +1 -12
  103. package/esm2015/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.js +3 -11
  104. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +5 -11
  105. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.component.js +1 -12
  106. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.js +1 -12
  107. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.component.js +1 -12
  108. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.component.js +1 -12
  109. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +33 -18
  110. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.component.js +19 -6
  111. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat-button.component.js +12 -18
  112. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +5 -11
  113. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.js +20 -24
  114. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.js +21 -4
  115. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.js +19 -6
  116. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +5 -11
  117. package/esm2015/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.js +32 -45
  118. package/esm2015/lib/component/transaction-line-invoice-history/transaction-line-invoice-history.component.js +34 -0
  119. package/esm2015/lib/component/transaction-line-invoice-history/transaction-line-invoice-history.module.js +25 -0
  120. package/esm2015/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.js +22 -37
  121. package/esm2015/lib/component/transaction-line-purchase-receive-goods/transaction-line-purchase-receive-goods.component.js +43 -36
  122. package/esm2015/lib/component/transaction-line-sales-allocation/transaction-line-sales-allocation.component.js +25 -17
  123. package/esm2015/lib/component/transaction-line-sales-delivery/transaction-line-sales-delivery.component.js +49 -0
  124. package/esm2015/lib/component/transaction-line-sales-delivery/transaction-line-sales-delivery.module.js +21 -0
  125. package/esm2015/lib/component/transaction-line-sales-invoice/transaction-line-sales-invoice.component.js +49 -0
  126. package/esm2015/lib/component/transaction-line-sales-invoice/transaction-line-sales-invoice.module.js +21 -0
  127. package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.component.js +13 -1
  128. package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.js +6 -2
  129. package/esm2015/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.js +33 -42
  130. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +10 -22
  131. package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +4 -3
  132. package/esm2015/lib/component/transaction-print-package-sticker/transaction-print-package-sticker.component.js +4 -15
  133. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.js +5 -19
  134. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-invoice/transaction-quick-access-invoice.component.js +22 -28
  135. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.js +4 -18
  136. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.js +15 -29
  137. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.js +12 -20
  138. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.js +10 -18
  139. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.js +10 -18
  140. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.js +6 -20
  141. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.js +4 -12
  142. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.js +7 -6
  143. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.js +12 -12
  144. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.js +32 -44
  145. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.js +26 -30
  146. package/esm2015/lib/component/transaction-send-documents/transaction-send-documents.component.js +12 -23
  147. package/esm2015/lib/component/transaction-tile/transaction-tile.component.js +4 -18
  148. package/esm2015/lib/res/dictionary/dictionaries.js +2 -2
  149. package/esm2015/lib/service/payment.service.js +25 -11
  150. package/esm2015/lib/service/pending-reason.service.js +4 -12
  151. package/esm2015/lib/service/relation.service.js +10 -1
  152. package/esm2015/lib/service/transaction-base.service.js +3 -38
  153. package/esm2015/lib/service/transaction-connector-adapter.service.js +30 -4
  154. package/esm2015/lib/service/transaction-connector.service.js +16 -14
  155. package/esm2015/lib/service/transaction-event.service.js +2 -1
  156. package/esm2015/lib/service/transaction.service.js +28 -30
  157. package/esm2015/lib/transaction-version.js +3 -3
  158. package/fesm2015/colijnit-transaction.js +2928 -2946
  159. package/fesm2015/colijnit-transaction.js.map +1 -1
  160. package/lib/cache/service/business-object-cache-manager.service.d.ts +2 -2
  161. package/lib/cache/service/select-single-parameterized-cache.service.d.ts +19 -0
  162. package/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.d.ts +6 -6
  163. package/lib/component/core/base/transaction-base.component.d.ts +18 -3
  164. package/lib/component/core/base/transaction-filter-popup-base.component.d.ts +3 -8
  165. package/lib/component/core/base/transaction-grid-base.component.d.ts +5 -12
  166. package/lib/component/core/base/transaction-input-field-base.component.d.ts +0 -5
  167. package/lib/component/deposit-payment/deposit-payment.component.d.ts +5 -4
  168. package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.d.ts +0 -5
  169. package/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_layout.scss +2 -5
  170. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.d.ts +0 -7
  171. package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/style/_layout.scss +1 -1
  172. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_layout.scss +3 -3
  173. package/lib/component/editable-label/editable-label.component.d.ts +1 -1
  174. package/lib/component/payment/payment.component.d.ts +4 -0
  175. package/lib/component/payment/style/_layout.scss +6 -0
  176. package/lib/component/payment/style/_material-definition.scss +5 -0
  177. package/lib/component/payment/style/_theme.scss +3 -0
  178. package/lib/component/relation/relation-general/relation-general.component.d.ts +2 -0
  179. package/lib/component/relation/relation-general/style/_material-definition.scss +1 -1
  180. package/lib/component/transaction-card/transaction-card/transaction-card.component.d.ts +10 -3
  181. package/lib/component/transaction-card/transaction-card-footer/transaction-card-footer.component.d.ts +0 -7
  182. package/lib/component/transaction-card/transaction-card-header/transaction-card-header.component.d.ts +0 -9
  183. package/lib/component/transaction-card/transaction-card-purchase-overview/transaction-card-purchase-overview.component.d.ts +0 -9
  184. package/lib/component/transaction-card/transaction-card-sales-overview/transaction-card-sales-overview.component.d.ts +1 -13
  185. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.d.ts +0 -7
  186. package/lib/component/transaction-grid/transaction-grid/transaction-grid.component.d.ts +15 -3
  187. package/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.d.ts +1 -0
  188. package/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.d.ts +0 -9
  189. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.d.ts +0 -9
  190. package/lib/component/transaction-header/transaction-header-order/style/_layout.scss +1 -0
  191. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.d.ts +0 -7
  192. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +16 -10
  193. package/lib/component/transaction-header/transaction-header-relation/style/_layout.scss +3 -0
  194. package/lib/component/transaction-header/transaction-header-relation/style/_material-definition.scss +2 -1
  195. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +11 -5
  196. package/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.d.ts +10 -3
  197. package/lib/component/transaction-header-fields/transaction-header-branch.component.d.ts +11 -5
  198. package/lib/component/transaction-header-fields/transaction-header-currency.component.d.ts +14 -7
  199. package/lib/component/transaction-header-fields/transaction-header-definitive.component.d.ts +0 -5
  200. package/lib/component/transaction-header-fields/transaction-header-delivery-method.component.d.ts +6 -8
  201. package/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.d.ts +0 -5
  202. package/lib/component/transaction-header-fields/transaction-header-deposit-amount.component.d.ts +0 -5
  203. package/lib/component/transaction-header-fields/transaction-header-deposit-percentage.component.d.ts +0 -5
  204. package/lib/component/transaction-header-fields/transaction-header-discount-amount.component.d.ts +0 -5
  205. package/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.d.ts +0 -5
  206. package/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.d.ts +0 -5
  207. package/lib/component/transaction-header-fields/transaction-header-hold-codes.component.d.ts +0 -5
  208. package/lib/component/transaction-header-fields/transaction-header-marketing.component.d.ts +0 -5
  209. package/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.d.ts +0 -7
  210. package/lib/component/transaction-header-fields/transaction-header-payment-condition.component.d.ts +1 -8
  211. package/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.d.ts +0 -5
  212. package/lib/component/transaction-header-fields/transaction-header-price-kind.component.d.ts +3 -10
  213. package/lib/component/transaction-header-fields/transaction-header-reference.component.d.ts +0 -5
  214. package/lib/component/transaction-header-fields/transaction-header-relation-reference.component.d.ts +0 -5
  215. package/lib/component/transaction-header-fields/transaction-header-remarks.component.d.ts +0 -5
  216. package/lib/component/transaction-header-fields/transaction-header-sales-person.component.d.ts +0 -7
  217. package/lib/component/transaction-line/transaction-base-line/style/_layout.scss +1 -0
  218. package/lib/component/transaction-line/transaction-base-line/style/_material-definition.scss +1 -0
  219. package/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.d.ts +0 -9
  220. package/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.d.ts +1 -11
  221. package/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line-base.component.d.ts +3 -9
  222. package/lib/component/transaction-line/transaction-line/transaction-line.component.d.ts +10 -3
  223. package/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line-base.component.d.ts +3 -11
  224. package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.d.ts +6 -14
  225. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line-base.component.d.ts +4 -11
  226. package/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line-base.component.d.ts +3 -12
  227. package/lib/component/transaction-line/transaction-purchase-order-line/transaction-purchase-order-line.component.d.ts +1 -1
  228. package/lib/component/transaction-line/transaction-purchase-overview-line/transaction-purchase-overview-line.component.d.ts +3 -12
  229. package/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line-base.component.d.ts +0 -11
  230. package/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.d.ts +2 -2
  231. package/lib/component/transaction-line/transaction-text-line/transaction-text-line.component.d.ts +0 -7
  232. package/lib/component/transaction-line-checkbox-list/style/_layout.scss +18 -2
  233. package/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.d.ts +6 -5
  234. package/lib/component/transaction-line-delivery-history/style/_layout.scss +4 -0
  235. package/lib/component/transaction-line-delivery-history/style/_material-definition.scss +0 -0
  236. package/lib/component/transaction-line-delivery-history/style/_theme.scss +4 -0
  237. package/lib/component/transaction-line-delivery-history/style/material.scss +4 -0
  238. package/lib/component/transaction-line-delivery-history/transaction-line-delivery-history.component.d.ts +5 -0
  239. package/lib/component/transaction-line-delivery-history/transaction-line-delivery-history.module.d.ts +2 -0
  240. package/lib/component/transaction-line-fields/transaction-line-amount.component.d.ts +0 -5
  241. package/lib/component/transaction-line-fields/transaction-line-commission-button.component.d.ts +4 -7
  242. package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +0 -5
  243. package/lib/component/transaction-line-fields/transaction-line-delivery-button.component.d.ts +3 -8
  244. package/lib/component/transaction-line-fields/transaction-line-delivery-date.component.d.ts +0 -5
  245. package/lib/component/transaction-line-fields/transaction-line-delivery-method.component.d.ts +0 -5
  246. package/lib/component/transaction-line-fields/transaction-line-description.component.d.ts +3 -10
  247. package/lib/component/transaction-line-fields/transaction-line-discount-amount.component.d.ts +0 -5
  248. package/lib/component/transaction-line-fields/transaction-line-discount-button.component.d.ts +0 -6
  249. package/lib/component/transaction-line-fields/transaction-line-drop-shipment-button.component.d.ts +12 -6
  250. package/lib/component/transaction-line-fields/transaction-line-line-discount.component.d.ts +0 -5
  251. package/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.d.ts +0 -5
  252. package/lib/component/transaction-line-fields/transaction-line-price-list.component.d.ts +0 -5
  253. package/lib/component/transaction-line-fields/transaction-line-quantity.component.d.ts +0 -5
  254. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.d.ts +0 -5
  255. package/lib/component/transaction-line-fields/transaction-line-reference.component.d.ts +0 -5
  256. package/lib/component/transaction-line-fields/transaction-line-special-discount.component.d.ts +0 -5
  257. package/lib/component/transaction-line-fields/transaction-line-supplier-button.component.d.ts +13 -3
  258. package/lib/component/transaction-line-fields/transaction-line-supplier.component.d.ts +10 -3
  259. package/lib/component/transaction-line-fields/transaction-line-vat-button.component.d.ts +2 -7
  260. package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +0 -5
  261. package/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.d.ts +3 -8
  262. package/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.d.ts +13 -3
  263. package/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.d.ts +10 -3
  264. package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +0 -5
  265. package/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.d.ts +5 -19
  266. package/lib/component/transaction-line-invoice-history/style/_layout.scss +4 -0
  267. package/lib/component/transaction-line-invoice-history/style/_material-definition.scss +0 -0
  268. package/lib/component/transaction-line-invoice-history/style/_theme.scss +4 -0
  269. package/lib/component/transaction-line-invoice-history/style/material.scss +4 -0
  270. package/lib/component/transaction-line-invoice-history/transaction-line-invoice-history.component.d.ts +5 -0
  271. package/lib/component/transaction-line-invoice-history/transaction-line-invoice-history.module.d.ts +2 -0
  272. package/lib/component/transaction-line-purchase-confirmation/transaction-line-purchase-confirmation.component.d.ts +5 -17
  273. package/lib/component/transaction-line-purchase-receive-goods/transaction-line-purchase-receive-goods.component.d.ts +20 -17
  274. package/lib/component/transaction-line-sales-allocation/transaction-line-sales-allocation.component.d.ts +11 -7
  275. package/lib/component/transaction-line-sales-delivery/style/_layout.scss +4 -0
  276. package/lib/component/transaction-line-sales-delivery/style/_material-definition.scss +0 -0
  277. package/lib/component/transaction-line-sales-delivery/style/_theme.scss +4 -0
  278. package/lib/component/transaction-line-sales-delivery/style/material.scss +4 -0
  279. package/lib/component/transaction-line-sales-delivery/transaction-line-sales-delivery.component.d.ts +9 -0
  280. package/lib/component/transaction-line-sales-delivery/transaction-line-sales-delivery.module.d.ts +2 -0
  281. package/lib/component/transaction-line-sales-invoice/style/_layout.scss +4 -0
  282. package/lib/component/transaction-line-sales-invoice/style/_material-definition.scss +0 -0
  283. package/lib/component/transaction-line-sales-invoice/style/_theme.scss +4 -0
  284. package/lib/component/transaction-line-sales-invoice/style/material.scss +4 -0
  285. package/lib/component/transaction-line-sales-invoice/transaction-line-sales-invoice.component.d.ts +9 -0
  286. package/lib/component/transaction-line-sales-invoice/transaction-line-sales-invoice.module.d.ts +2 -0
  287. package/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.d.ts +9 -17
  288. package/lib/component/transaction-lines/style/_material-definition.scss +1 -0
  289. package/lib/component/transaction-lines/transaction-lines.component.d.ts +1 -10
  290. package/lib/component/transaction-print-package-sticker/transaction-print-package-sticker.component.d.ts +0 -7
  291. package/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.d.ts +0 -9
  292. package/lib/component/transaction-quick-access/transaction-quick-access-invoice/transaction-quick-access-invoice.component.d.ts +5 -11
  293. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.d.ts +0 -9
  294. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.d.ts +2 -10
  295. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.d.ts +3 -9
  296. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.d.ts +0 -5
  297. package/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.d.ts +0 -5
  298. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.d.ts +0 -9
  299. package/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.d.ts +0 -5
  300. package/lib/component/transaction-search/transaction-filter/transaction-filter/style/_layout.scss +8 -2
  301. package/lib/component/transaction-search/transaction-filter/transaction-filter/style/_material-definition.scss +3 -3
  302. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.d.ts +3 -3
  303. package/lib/component/transaction-send-documents/transaction-send-documents.component.d.ts +0 -9
  304. package/lib/component/transaction-tile/transaction-tile.component.d.ts +0 -9
  305. package/lib/res/dictionary/dictionaries.d.ts +1 -0
  306. package/lib/service/payment.service.d.ts +8 -3
  307. package/lib/service/pending-reason.service.d.ts +1 -1
  308. package/lib/service/relation.service.d.ts +1 -0
  309. package/lib/service/transaction-base.service.d.ts +0 -1
  310. package/lib/service/transaction-connector-adapter.service.d.ts +6 -2
  311. package/lib/service/transaction-connector.service.d.ts +4 -4
  312. package/lib/service/transaction-event.service.d.ts +4 -0
  313. package/lib/service/transaction.service.d.ts +6 -1
  314. package/lib/style/_variables.scss +1 -1
  315. package/package.json +4 -4
@@ -1,26 +1,27 @@
1
1
  import { __awaiter } from "tslib";
2
- import { Component, HostBinding, ViewEncapsulation } from "@angular/core";
3
- import { TransactionBaseComponent } from "../core/base/transaction-base.component";
4
- import { TransactionTypeCategory } from "../../enum/transaction-type-category.enum";
5
- import { PurchaseOrderLineReceiptDetails } from "@colijnit/transactionapi/build/model/purchase-order-line-receipt-details.bo";
6
- import { ReceiveGoodsForPurchaseOrderRequest } from "@colijnit/transactionapi/build/model/receive-goods-for-purchase-order-request.bo";
7
- import { FormMasterService } from "@colijnit/corecomponents_v12";
8
- import { IconCacheService } from "../../service/icon-cache.service";
9
- import { TransactionService } from "../../service/transaction.service";
10
- import { DialogService } from "../../service/dialog.service";
11
- import { TransactionEventService } from "../../service/transaction-event.service";
12
- import { ReceiveGoodsForPurchaseOrderCorrectionRequest } from "@colijnit/transactionapi/build/model/receive-goods-for-purchase-order-correction-request.bo";
13
- import { PurchaseOrderLineReceiptCorrectionDetails } from "@colijnit/transactionapi/build/model/purchase-order-line-receipt-correction-details.bo";
2
+ import { ChangeDetectorRef, Component, HostBinding, ViewEncapsulation } from '@angular/core';
3
+ import { TransactionBaseComponent } from '../core/base/transaction-base.component';
4
+ import { TransactionTypeCategory } from '../../enum/transaction-type-category.enum';
5
+ import { PurchaseOrderLineReceiptDetails } from '@colijnit/transactionapi/build/model/purchase-order-line-receipt-details.bo';
6
+ import { ReceiveGoodsForPurchaseOrderRequest } from '@colijnit/transactionapi/build/model/receive-goods-for-purchase-order-request.bo';
7
+ import { FormMasterService } from '@colijnit/corecomponents_v12';
8
+ import { IconCacheService } from '../../service/icon-cache.service';
9
+ import { TransactionService } from '../../service/transaction.service';
10
+ import { TransactionEventService } from '../../service/transaction-event.service';
11
+ import { ReceiveGoodsForPurchaseOrderCorrectionRequest } from '@colijnit/transactionapi/build/model/receive-goods-for-purchase-order-correction-request.bo';
12
+ import { PurchaseOrderLineReceiptCorrectionDetails } from '@colijnit/transactionapi/build/model/purchase-order-line-receipt-correction-details.bo';
14
13
  import { DictionaryService } from '../../service/dictionary.service';
14
+ import { TransactionImageService } from '../../service/transaction-image.service';
15
15
  export class TransactionLinePurchaseReceiveGoodsComponent extends TransactionBaseComponent {
16
- constructor(dictionaryService, iconCacheService, transactionService, _formMaster, _dialogService, _transactionEventService) {
17
- super(dictionaryService, transactionService);
18
- this.dictionaryService = dictionaryService;
16
+ constructor(transactionEventService, service, iconCacheService, dictionaryService, imageService, changeDetector, _formMaster) {
17
+ super(transactionEventService, iconCacheService, imageService, dictionaryService, service, changeDetector);
18
+ this.transactionEventService = transactionEventService;
19
+ this.service = service;
19
20
  this.iconCacheService = iconCacheService;
20
- this.transactionService = transactionService;
21
+ this.dictionaryService = dictionaryService;
22
+ this.imageService = imageService;
23
+ this.changeDetector = changeDetector;
21
24
  this._formMaster = _formMaster;
22
- this._dialogService = _dialogService;
23
- this._transactionEventService = _transactionEventService;
24
25
  this.transactionTypeCategory = TransactionTypeCategory;
25
26
  this.request = new ReceiveGoodsForPurchaseOrderRequest();
26
27
  this.receiptDetails = new PurchaseOrderLineReceiptDetails();
@@ -28,16 +29,19 @@ export class TransactionLinePurchaseReceiveGoodsComponent extends TransactionBas
28
29
  this.returnStockMode = false;
29
30
  this.availableStockCollection = [];
30
31
  this._subs = [];
31
- this._subs.push(this._transactionEventService.transactionLineChanged.subscribe((transLine) => {
32
+ }
33
+ showClass() {
34
+ return true;
35
+ }
36
+ ngOnInit() {
37
+ this._subs.push(this.transactionEventService.transactionLineChanged.subscribe((transLine) => {
32
38
  if (transLine.lineNr === this.transactionLine.lineNr) {
33
39
  this._handleTransactionLineSet(transLine);
34
40
  }
35
41
  }));
36
42
  }
37
- showClass() {
38
- return true;
39
- }
40
43
  ngOnDestroy() {
44
+ super.ngOnDestroy();
41
45
  this._subs.forEach(s => s.unsubscribe());
42
46
  }
43
47
  submit() {
@@ -126,11 +130,12 @@ export class TransactionLinePurchaseReceiveGoodsComponent extends TransactionBas
126
130
  }
127
131
  TransactionLinePurchaseReceiveGoodsComponent.decorators = [
128
132
  { type: Component, args: [{
129
- selector: "co-transaction-line-purchase-receive-goods",
133
+ selector: 'co-transaction-line-purchase-receive-goods',
130
134
  template: `
131
135
  <co-form>
132
136
  <div class="header-wrapper">
133
- <div class="details-header" [textContent]="returnStockMode ? ('RETURN_DETAILS' | localize | uppercase) : ('RECEIPT_DETAILS' | localize | uppercase)"></div>
137
+ <div class="details-header"
138
+ [textContent]="returnStockMode ? ('RETURN_DETAILS' | localize | uppercase) : ('RECEIPT_DETAILS' | localize | uppercase)"></div>
134
139
  <co-transaction-line-statusbar class="status-bar-wrapper"
135
140
  [transactionLine]="transactionLine"
136
141
  [transactionInfo]="transactionInfo"
@@ -196,17 +201,18 @@ TransactionLinePurchaseReceiveGoodsComponent.decorators = [
196
201
  </div>
197
202
  </co-form>
198
203
  <div class="commit-button-wrapper">
199
- <div class="commit-button clickable" *ngIf="!readonly" (click)="handleSaveDetailsEdit()" [class.disabled]="receiptDetails.quantityToReceive === 0">
204
+ <div class="commit-button clickable" *ngIf="!readonly" (click)="handleSaveDetailsEdit()"
205
+ [class.disabled]="receiptDetails.quantityToReceive === 0">
200
206
  <span class="commit-text" [textContent]="returnStockMode ? ('RETURN_STOCK' | localize) : ('RECEIVE' | localize)"></span>
201
207
  </div>
202
208
  </div>
203
209
  <co-transaction-receiving-goods-history *ngIf="transactionLine.amount >= 0"
204
- [goodsReceiptHistory]="goodsReceiptHistory"
205
- (deleteRow)="handleDeleteSelectedRow($event)"
210
+ [goodsReceiptHistory]="goodsReceiptHistory"
211
+ (deleteRow)="handleDeleteSelectedRow($event)"
206
212
  ></co-transaction-receiving-goods-history>
207
213
  <co-transaction-available-stock-grid *ngIf="transactionLine.amount < 0"
208
- [collection]="availableStockCollection"
209
- (selectStock)="handleSelectStock($event)"
214
+ [collection]="availableStockCollection"
215
+ (selectStock)="handleSelectStock($event)"
210
216
  ></co-transaction-available-stock-grid>
211
217
  `,
212
218
  providers: [
@@ -216,14 +222,15 @@ TransactionLinePurchaseReceiveGoodsComponent.decorators = [
216
222
  },] }
217
223
  ];
218
224
  TransactionLinePurchaseReceiveGoodsComponent.ctorParameters = () => [
219
- { type: DictionaryService },
220
- { type: IconCacheService },
225
+ { type: TransactionEventService },
221
226
  { type: TransactionService },
222
- { type: FormMasterService },
223
- { type: DialogService },
224
- { type: TransactionEventService }
227
+ { type: IconCacheService },
228
+ { type: DictionaryService },
229
+ { type: TransactionImageService },
230
+ { type: ChangeDetectorRef },
231
+ { type: FormMasterService }
225
232
  ];
226
233
  TransactionLinePurchaseReceiveGoodsComponent.propDecorators = {
227
- showClass: [{ type: HostBinding, args: ["class.co-transaction-line-purchase-receive-goods",] }]
234
+ showClass: [{ type: HostBinding, args: ['class.co-transaction-line-purchase-receive-goods',] }]
228
235
  };
229
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1yZWNlaXZlLWdvb2RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtcHVyY2hhc2UtcmVjZWl2ZS1nb29kcy90cmFuc2FjdGlvbi1saW5lLXB1cmNoYXNlLXJlY2VpdmUtZ29vZHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUM1SCxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSxrRkFBa0YsQ0FBQztBQUVySSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHaEYsT0FBTyxFQUFDLDZDQUE2QyxFQUFDLE1BQU0sNkZBQTZGLENBQUM7QUFDMUosT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0sd0ZBQXdGLENBQUM7QUFHakosT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUEyRm5FLE1BQU0sT0FBTyw0Q0FB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LGtCQUFrQixDQUFDLDZDQUE2QyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEssQ0FBQztLQUFBOzs7WUFyTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0Q0FBNEM7Z0JBQ3RELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUZUO2dCQUNELFNBQVMsRUFBRTtvQkFDVCxpQkFBaUI7aUJBQ2xCO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUExRk8saUJBQWlCO1lBVmpCLGdCQUFnQjtZQUNoQixrQkFBa0I7WUFGbEIsaUJBQWlCO1lBR2pCLGFBQWE7WUFDYix1QkFBdUI7Ozt3QkFxRzVCLFdBQVcsU0FBQyxrREFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSG9zdEJpbmRpbmcsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tIFwiLi4vLi4vZW51bS90cmFuc2FjdGlvbi10eXBlLWNhdGVnb3J5LmVudW1cIjtcclxuaW1wb3J0IHtQdXJjaGFzZU9yZGVyTGluZVJlY2VpcHREZXRhaWxzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLW9yZGVyLWxpbmUtcmVjZWlwdC1kZXRhaWxzLmJvXCI7XHJcbmltcG9ydCB7UmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlclJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVjZWl2ZS1nb29kcy1mb3ItcHVyY2hhc2Utb3JkZXItcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtMb2dpc3RpY2FsU3RhdGVEZXRhaWx9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbG9naXN0aWNhbC1zdGF0ZS1kZXRhaWwuYm9cIjtcclxuaW1wb3J0IHtSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyQ29ycmVjdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVjZWl2ZS1nb29kcy1mb3ItcHVyY2hhc2Utb3JkZXItY29ycmVjdGlvbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0Q29ycmVjdGlvbkRldGFpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcHVyY2hhc2Utb3JkZXItbGluZS1yZWNlaXB0LWNvcnJlY3Rpb24tZGV0YWlscy5ib1wiO1xyXG5pbXBvcnQge0F2YWlsYWJsZVN0b2NrfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2F2YWlsYWJsZS1zdG9jay5ib1wiO1xyXG5pbXBvcnQge0dvb2RzUmVjZWlwdEhpc3Rvcnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ29vZHMtcmVjZWlwdC1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmUtcHVyY2hhc2UtcmVjZWl2ZS1nb29kc1wiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZm9ybT5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtaGVhZGVyXCIgW3RleHRDb250ZW50XT1cInJldHVyblN0b2NrTW9kZSA/ICgnUkVUVVJOX0RFVEFJTFMnIHwgbG9jYWxpemUgfCB1cHBlcmNhc2UpIDogKCdSRUNFSVBUX0RFVEFJTFMnIHwgbG9jYWxpemUgfCB1cHBlcmNhc2UpXCI+PC9kaXY+XHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyIGNsYXNzPVwic3RhdHVzLWJhci13cmFwcGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJ0cmFuc2FjdGlvbkxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25JbmZvXT1cInRyYW5zYWN0aW9uSW5mb1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3RpdmVDYXRlZ29yeV09XCJ0cmFuc2FjdGlvblR5cGVDYXRlZ29yeS5QdXJjaGFzZU9yZGVyUmVjZWl2ZWRHb29kc1wiPjwvY28tdHJhbnNhY3Rpb24tbGluZS1zdGF0dXNiYXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1ucy13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtY29sdW1uXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHMtYW1vdW50XCI+XHJcbiAgICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyIGNsYXNzPVwiYW1vdW50LW51bWJlci1waWNrZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cInJldHVyblN0b2NrTW9kZSA/IHJldHVybk1heFRvUmVjZWl2ZSA6IHRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvUmVjZWl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cInJlY2VpcHREZXRhaWxzLnNlcmlhbE5yID8gMSA6IHJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEhcmVjZWlwdERldGFpbHMuc2VyaWFsTnIgfHwgcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDAgfHwgIXJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiEhcmVjZWlwdERldGFpbHMuc2VyaWFsTnIgfHwgcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDAgfHwgIXJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICA+PC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBjbGFzcz1cImRldGFpbHMtaW5wdXRcIiBbKG1vZGVsKV09XCJyZWNlaXB0RGV0YWlscy53YXJlaG91c2VOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJ0cmFuc2FjdGlvbkxpbmUud2FyZWhvdXNlTnVtYmVyICE9PSB1bmRlZmluZWQgfHwgcmVhZG9ubHkgfHwgcmV0dXJuU3RvY2tNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cmFuc2FjdGlvbkxpbmUud2FyZWhvdXNlTnVtYmVyICE9PSB1bmRlZmluZWQgfHwgcmV0dXJuU3RvY2tNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cmFuc2FjdGlvbkxpbmUuaXNXYXJlaG91c2VSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dBUkVIT1VTRScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDwhLS0gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFyZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yICYmIHRyYW5zYWN0aW9uTGluZS5pc0xvY2F0aW9uUmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkXCIgW3RleHRDb250ZW50XT1cIicqJ1wiPjwvc3Bhbj4tLT5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWxvY2F0aW9uLWJ1dHRvblxyXG4gICAgICAgICAgICAgIFtsb2NhdGlvbk5yXT1cInJlY2VpcHREZXRhaWxzLmxvY2F0aW9uTnJcIlxyXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZXR1cm5TdG9ja01vZGUgfHwgcmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDBcIlxyXG4gICAgICAgICAgICAgIChsb2NhdGlvbk5yQ2hhbmdlKT1cInJlY2VpcHREZXRhaWxzLmxvY2F0aW9uTnIgPSAkZXZlbnRcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtd2FyZWhvdXNlLWxvY2F0aW9uLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIXJldHVyblN0b2NrTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJyZXF1ZXN0LnBhY2tpbmdTbGlwTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidQQUNLSU5HX1NMSVAnIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXItd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRpdmlkZXJcIj48L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1jb2x1bW5cIj5cclxuICAgICAgICAgIDxjby1pbnB1dC1kYXRlIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJyZXF1ZXN0LnJlY2VpdmVkRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgPjwvY28taW5wdXQtZGF0ZT5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzQmF0Y2hOclJlcXVpcmVkXCIgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCIgWyhtb2RlbCldPVwicmVjZWlwdERldGFpbHMuYmF0Y2hOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCByZXR1cm5TdG9ja01vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInJldHVyblN0b2NrTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJhbnNhY3Rpb25MaW5lLmlzQmF0Y2hOclJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQkFUQ0hfTlVNQkVSJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuaXNTZXJpYWxOclJlcXVpcmVkXCIgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCIgWyhtb2RlbCldPVwicmVjZWlwdERldGFpbHMuc2VyaWFsTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgcmV0dXJuU3RvY2tNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZXR1cm5TdG9ja01vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRyYW5zYWN0aW9uTGluZS5pc1NlcmlhbE5yUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidTRVJJQUxfTlVNQkVSJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvY28tZm9ybT5cclxuICAgIDxkaXYgY2xhc3M9XCJjb21taXQtYnV0dG9uLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbW1pdC1idXR0b24gY2xpY2thYmxlXCIgKm5nSWY9XCIhcmVhZG9ubHlcIiAoY2xpY2spPVwiaGFuZGxlU2F2ZURldGFpbHNFZGl0KClcIiBbY2xhc3MuZGlzYWJsZWRdPVwicmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDBcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1pdC10ZXh0XCIgW3RleHRDb250ZW50XT1cInJldHVyblN0b2NrTW9kZSA/ICgnUkVUVVJOX1NUT0NLJyB8IGxvY2FsaXplKSA6ICgnUkVDRUlWRScgfCBsb2NhbGl6ZSlcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tdHJhbnNhY3Rpb24tcmVjZWl2aW5nLWdvb2RzLWhpc3RvcnkgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuYW1vdW50ID49IDBcIlxyXG4gICAgICBbZ29vZHNSZWNlaXB0SGlzdG9yeV09XCJnb29kc1JlY2VpcHRIaXN0b3J5XCJcclxuICAgICAgKGRlbGV0ZVJvdyk9XCJoYW5kbGVEZWxldGVTZWxlY3RlZFJvdygkZXZlbnQpXCJcclxuICAgID48L2NvLXRyYW5zYWN0aW9uLXJlY2VpdmluZy1nb29kcy1oaXN0b3J5PlxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWF2YWlsYWJsZS1zdG9jay1ncmlkICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmFtb3VudCA8IDBcIlxyXG4gICAgICBbY29sbGVjdGlvbl09XCJhdmFpbGFibGVTdG9ja0NvbGxlY3Rpb25cIlxyXG4gICAgIChzZWxlY3RTdG9jayk9XCJoYW5kbGVTZWxlY3RTdG9jaygkZXZlbnQpXCJcclxuICAgID48L2NvLXRyYW5zYWN0aW9uLWF2YWlsYWJsZS1zdG9jay1ncmlkPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lUHVyY2hhc2VSZWNlaXZlR29vZHNDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvblR5cGVDYXRlZ29yeTogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmUtcHVyY2hhc2UtcmVjZWl2ZS1nb29kc1wiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZXF1ZXN0OiBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdCA9IG5ldyBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdCgpO1xyXG4gIHB1YmxpYyByZWNlaXB0RGV0YWlsczogUHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0RGV0YWlscyA9IG5ldyBQdXJjaGFzZU9yZGVyTGluZVJlY2VpcHREZXRhaWxzKCk7XHJcbiAgcHVibGljIGdvb2RzUmVjZWlwdEhpc3Rvcnk6IExvZ2lzdGljYWxTdGF0ZURldGFpbFtdID0gW107XHJcbiAgcHVibGljIHJldHVybk1heFRvUmVjZWl2ZTogbnVtYmVyO1xyXG4gIHB1YmxpYyBzZWxlY3RlZExvY2F0aW9uOiBzdHJpbmc7XHJcbiAgcHVibGljIHJldHVyblN0b2NrTW9kZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBhdmFpbGFibGVTdG9ja0NvbGxlY3Rpb246IEF2YWlsYWJsZVN0b2NrW10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mb3JtTWFzdGVyOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVDaGFuZ2VkLnN1YnNjcmliZSgodHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSA9PiB7XHJcbiAgICAgICAgaWYgKHRyYW5zTGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlVHJhbnNhY3Rpb25MaW5lU2V0KHRyYW5zTGluZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdWJtaXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybU1hc3Rlci5zdWJtaXRTbGF2ZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBsb2NhdGlvblJlcXVpcmVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb25MaW5lLmlzTG9jYXRpb25SZXF1aXJlZCB8fFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5pc0JhdGNoTnJSZXF1aXJlZCB8fFxyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uTGluZS5pc1NlcmlhbE5yUmVxdWlyZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0R29vZHNSZWNlaXB0SGlzdG9yeSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEdvb2RzUmVjZWlwdEhpc3RvcnkodGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcilcclxuICAgICAgLnRoZW4oKHJlc3VsdDogR29vZHNSZWNlaXB0SGlzdG9yeSkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ29vZHNSZWNlaXB0SGlzdG9yeSA9IHJlc3VsdC5nb29kc1JlY2VpcHRIaXN0b3J5O1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTYXZlRGV0YWlsc0VkaXQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFsaWQgPSB0aGlzLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IFJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJSZXF1ZXN0ID0gdGhpcy5yZXF1ZXN0O1xyXG4gICAgICB0aGlzLnJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlID0gdGhpcy5yZXR1cm5TdG9ja01vZGUgP1xyXG4gICAgICAgIC10aGlzLnJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlIDogdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZTtcclxuICAgICAgcmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICAgIHJlcXVlc3QucHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0RGV0YWlsc0RUT1MgPSBbdGhpcy5yZWNlaXB0RGV0YWlsc107XHJcbiAgICAgIHJlcXVlc3QucHJpbnRlck5hbWUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5wcmludGVyTmFtZSA/IHRoaXMudHJhbnNhY3Rpb25MaW5lLnByaW50ZXJOYW1lIDogdGhpcy50cmFuc2FjdGlvbkluZm8ucHJpbnRlck5hbWU7XHJcbiAgICAgIHJlcXVlc3QucmVwb3J0SWQgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5yZXBvcnRJZCA/IHRoaXMudHJhbnNhY3Rpb25MaW5lLnJlcG9ydElkIDogdGhpcy50cmFuc2FjdGlvbkluZm8ucmVwb3J0SWQ7XHJcbiAgICAgIHJlcXVlc3QuY29waWVzID0gdGhpcy50cmFuc2FjdGlvbkxpbmUuc3RpY2tlckFtb3VudDtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlcih0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy50cmFuc2FjdGlvbkluZm8udmVyc2lvbiwgcmVxdWVzdCkudGhlbigoKSA9PiB7XHJcbiAgICAgICAgaWYgKHRoaXMucmV0dXJuU3RvY2tNb2RlKSB7XHJcbiAgICAgICAgICB0aGlzLl9nZXRBdmFpbGFibGVTdG9jaygpO1xyXG4gICAgICAgICAgdGhpcy5yZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgaGFuZGxlRGVsZXRlU2VsZWN0ZWRSb3cocm93OiBMb2dpc3RpY2FsU3RhdGVEZXRhaWwpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGlmIChyb3cgJiYgcm93LnR5cGUgIT09ICdjb3JyZWN0aW9uJykge1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyQ29ycmVjdGlvblJlcXVlc3QgPSBuZXcgUmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlckNvcnJlY3Rpb25SZXF1ZXN0KCk7XHJcbiAgICAgIGNvbnN0IGNvcnJlY3Rpb25EZXRhaWxzOiBQdXJjaGFzZU9yZGVyTGluZVJlY2VpcHRDb3JyZWN0aW9uRGV0YWlscyA9IG5ldyBQdXJjaGFzZU9yZGVyTGluZVJlY2VpcHRDb3JyZWN0aW9uRGV0YWlscygpO1xyXG4gICAgICByZXF1ZXN0LmFsbG93ZWRUb1JlbW92ZVBpY2tlZEFsbG9jYXRpb25zID0gZmFsc2U7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICByZXF1ZXN0LnB1cmNoYXNlT3JkZXJMaW5lUmVjZWlwdENvcnJlY3Rpb25EZXRhaWxzRFRPUyA9IFtjb3JyZWN0aW9uRGV0YWlsc107XHJcbiAgICAgIGNvcnJlY3Rpb25EZXRhaWxzLmxpbmVOciA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcjtcclxuICAgICAgY29ycmVjdGlvbkRldGFpbHMucXVhbnRpdHlUb0NvcnJlY3QgPSByb3cucXVhbnRpdHk7XHJcbiAgICAgIGNvcnJlY3Rpb25EZXRhaWxzLmRvY3VtZW50SWQgPSByb3cuZG9jdW1lbnRJZDtcclxuICAgICAgY29ycmVjdGlvbkRldGFpbHMuZG9jdW1lbnRMaW5lTnIgPSByb3cubGluZU51bWJlcjtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UucmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlckNvcnJlY3Rpb24odGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMudHJhbnNhY3Rpb25JbmZvLnZlcnNpb24sIHJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0R29vZHNSZWNlaXB0SGlzdG9yeSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTZWxlY3RTdG9jayhhdmFpbGFibGVTdG9jazogQXZhaWxhYmxlU3RvY2spOiB2b2lkIHtcclxuICAgIGNvbnN0IG1heFRvUmV0dXJuID0gdGhpcy50cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb1JlY2VpdmUgPCAwID8gTWF0aC5hYnModGhpcy50cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb1JlY2VpdmUpIDogdGhpcy50cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb1JlY2VpdmU7XHJcbiAgICB0aGlzLnJldHVybk1heFRvUmVjZWl2ZSA9IG1heFRvUmV0dXJuID4gYXZhaWxhYmxlU3RvY2suYXZhaWxhYmxlUXVhbnRpdHkgPyBhdmFpbGFibGVTdG9jay5hdmFpbGFibGVRdWFudGl0eSA6IG1heFRvUmV0dXJuO1xyXG4gICAgdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA9IHRoaXMucmV0dXJuTWF4VG9SZWNlaXZlO1xyXG4gICAgdGhpcy5yZWNlaXB0RGV0YWlscy53YXJlaG91c2VOciA9IGF2YWlsYWJsZVN0b2NrLndhcmVob3VzZU51bWJlcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMubG9jYXRpb25OciA9IGF2YWlsYWJsZVN0b2NrLmxvY2F0aW9uTnVtYmVyO1xyXG4gICAgdGhpcy5zZWxlY3RlZExvY2F0aW9uID0gdGhpcy5yZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yO1xyXG4gICAgdGhpcy5yZWNlaXB0RGV0YWlscy5zZXJpYWxOciA9IGF2YWlsYWJsZVN0b2NrLnNlcmlhbE51bWJlcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMuYmF0Y2hOciA9IGF2YWlsYWJsZVN0b2NrLmJhdGNoTnVtYmVyO1xyXG4gICAgdGhpcy5yZWNlaXB0RGV0YWlscy5saW5lTnIgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnI7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25MaW5lU2V0KCkge1xyXG4gICAgdGhpcy5faGFuZGxlVHJhbnNhY3Rpb25MaW5lU2V0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hhbmRsZVRyYW5zYWN0aW9uTGluZVNldCh0cmFuc0xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiB2b2lkIHtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMud2FyZWhvdXNlTnIgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS53YXJlaG91c2VOdW1iZXI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmxpbmVOciA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvUmVjZWl2ZTtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMubG9jYXRpb25OciA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxvY2F0aW9uTnI7XHJcbiAgICB0aGlzLnJldHVyblN0b2NrTW9kZSA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUuYW1vdW50IDwgMDtcclxuICAgIHRoaXMuZ2V0R29vZHNSZWNlaXB0SGlzdG9yeSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfZ2V0QXZhaWxhYmxlU3RvY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmF2YWlsYWJsZVN0b2NrQ29sbGVjdGlvbiA9IGF3YWl0IHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEF2YWlsYWJsZVN0b2NrR3JvdXBlZEJ5V0xCU0J5VHJhbnNJZExpbmVOcih0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKTtcclxuICB9XHJcbn1cclxuIl19
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1yZWNlaXZlLWdvb2RzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtcHVyY2hhc2UtcmVjZWl2ZS1nb29kcy90cmFuc2FjdGlvbi1saW5lLXB1cmNoYXNlLXJlY2VpdmUtZ29vZHMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBVSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNsRixPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUM1SCxPQUFPLEVBQUMsbUNBQW1DLEVBQUMsTUFBTSxrRkFBa0YsQ0FBQztBQUVySSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUVyRSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUdoRixPQUFPLEVBQ0wsNkNBQTZDLEVBQzlDLE1BQU0sNkZBQTZGLENBQUM7QUFDckcsT0FBTyxFQUNMLHlDQUF5QyxFQUMxQyxNQUFNLHdGQUF3RixDQUFDO0FBR2hHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBNkZo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S0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDekQsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVhLGtCQUFrQjs7WUFDOUIsSUFBSSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sSUFBSSxDQUFDLGtCQUFrQixDQUFDLDZDQUE2QyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEssQ0FBQztLQUFBOzs7WUE1TkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSw0Q0FBNEM7Z0JBQ3RELFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtRlQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXhHTyx1QkFBdUI7WUFGdkIsa0JBQWtCO1lBRGxCLGdCQUFnQjtZQWNoQixpQkFBaUI7WUFDakIsdUJBQXVCO1lBdEJ2QixpQkFBaUI7WUFNakIsaUJBQWlCOzs7d0JBZ0h0QixXQUFXLFNBQUMsa0RBQWtEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tICcuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSBmcm9tICcuLi8uLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bSc7XHJcbmltcG9ydCB7UHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0RGV0YWlsc30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLW9yZGVyLWxpbmUtcmVjZWlwdC1kZXRhaWxzLmJvJztcclxuaW1wb3J0IHtSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdH0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlY2VpdmUtZ29vZHMtZm9yLXB1cmNoYXNlLW9yZGVyLXJlcXVlc3QuYm8nO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25FdmVudFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZSc7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ibyc7XHJcbmltcG9ydCB7TG9naXN0aWNhbFN0YXRlRGV0YWlsfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbG9naXN0aWNhbC1zdGF0ZS1kZXRhaWwuYm8nO1xyXG5pbXBvcnQge1xyXG4gIFJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJDb3JyZWN0aW9uUmVxdWVzdFxyXG59IGZyb20gJ0Bjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWNlaXZlLWdvb2RzLWZvci1wdXJjaGFzZS1vcmRlci1jb3JyZWN0aW9uLXJlcXVlc3QuYm8nO1xyXG5pbXBvcnQge1xyXG4gIFB1cmNoYXNlT3JkZXJMaW5lUmVjZWlwdENvcnJlY3Rpb25EZXRhaWxzXHJcbn0gZnJvbSAnQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLW9yZGVyLWxpbmUtcmVjZWlwdC1jb3JyZWN0aW9uLWRldGFpbHMuYm8nO1xyXG5pbXBvcnQge0F2YWlsYWJsZVN0b2NrfSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYXZhaWxhYmxlLXN0b2NrLmJvJztcclxuaW1wb3J0IHtHb29kc1JlY2VpcHRIaXN0b3J5fSBmcm9tICdAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ29vZHMtcmVjZWlwdC1oaXN0b3J5LmJvJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjby10cmFuc2FjdGlvbi1saW5lLXB1cmNoYXNlLXJlY2VpdmUtZ29vZHMnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8Y28tZm9ybT5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtaGVhZGVyXCJcclxuICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCJyZXR1cm5TdG9ja01vZGUgPyAoJ1JFVFVSTl9ERVRBSUxTJyB8IGxvY2FsaXplIHwgdXBwZXJjYXNlKSA6ICgnUkVDRUlQVF9ERVRBSUxTJyB8IGxvY2FsaXplIHwgdXBwZXJjYXNlKVwiPjwvZGl2PlxyXG4gICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXN0YXR1c2JhciBjbGFzcz1cInN0YXR1cy1iYXItd3JhcHBlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uSW5mb109XCJ0cmFuc2FjdGlvbkluZm9cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWN0aXZlQ2F0ZWdvcnldPVwidHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHNcIj48L2NvLXRyYW5zYWN0aW9uLWxpbmUtc3RhdHVzYmFyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnMtd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzLWNvbHVtblwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtdG90YWxzLWFtb3VudFwiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cImFtb3VudC1udW1iZXItcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJyZXR1cm5TdG9ja01vZGUgPyByZXR1cm5NYXhUb1JlY2VpdmUgOiB0cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb1JlY2VpdmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJyZWNlaXB0RGV0YWlscy5zZXJpYWxOciA/IDEgOiByZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCIhIXJlY2VpcHREZXRhaWxzLnNlcmlhbE5yIHx8IHJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlID09PSAwIHx8ICFyZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSB8fCByZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIXJlY2VpcHREZXRhaWxzLnNlcmlhbE5yIHx8IHJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlID09PSAwIHx8ICFyZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCIgWyhtb2RlbCldPVwicmVjZWlwdERldGFpbHMud2FyZWhvdXNlTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJhbnNhY3Rpb25MaW5lLndhcmVob3VzZU51bWJlciAhPT0gdW5kZWZpbmVkIHx8IHJlYWRvbmx5IHx8IHJldHVyblN0b2NrTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJhbnNhY3Rpb25MaW5lLndhcmVob3VzZU51bWJlciAhPT0gdW5kZWZpbmVkIHx8IHJldHVyblN0b2NrTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJhbnNhY3Rpb25MaW5lLmlzV2FyZWhvdXNlUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidXQVJFSE9VU0UnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8IS0tICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhcmVjZWlwdERldGFpbHMubG9jYXRpb25OciAmJiB0cmFuc2FjdGlvbkxpbmUuaXNMb2NhdGlvblJlcXVpcmVkXCIgY2xhc3M9XCJyZXF1aXJlZFwiIFt0ZXh0Q29udGVudF09XCInKidcIj48L3NwYW4+LS0+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1sb2NhdGlvbi1idXR0b25cclxuICAgICAgICAgICAgICBbbG9jYXRpb25Ocl09XCJyZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yXCJcclxuICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmV0dXJuU3RvY2tNb2RlIHx8IHJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlID09PSAwXCJcclxuICAgICAgICAgICAgICAobG9jYXRpb25OckNoYW5nZSk9XCJyZWNlaXB0RGV0YWlscy5sb2NhdGlvbk5yID0gJGV2ZW50XCI+PC9jby10cmFuc2FjdGlvbi1saW5lLXdhcmVob3VzZS1sb2NhdGlvbi1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIiFyZXR1cm5TdG9ja01vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwicmVxdWVzdC5wYWNraW5nU2xpcE5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInUEFDS0lOR19TTElQJyB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtY29sdW1uXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtZGF0ZSBjbGFzcz1cImRldGFpbHMtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwicmVxdWVzdC5yZWNlaXZlZERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgID48L2NvLWlucHV0LWRhdGU+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0JhdGNoTnJSZXF1aXJlZFwiIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cInJlY2VpcHREZXRhaWxzLmJhdGNoTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHkgfHwgcmV0dXJuU3RvY2tNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZXR1cm5TdG9ja01vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRyYW5zYWN0aW9uTGluZS5pc0JhdGNoTnJSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIX05VTUJFUicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzU2VyaWFsTnJSZXF1aXJlZFwiIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cInJlY2VpcHREZXRhaWxzLnNlcmlhbE5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IHJldHVyblN0b2NrTW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwicmV0dXJuU3RvY2tNb2RlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cmFuc2FjdGlvbkxpbmUuaXNTZXJpYWxOclJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VSSUFMX05VTUJFUicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2NvLWZvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWl0LWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb21taXQtYnV0dG9uIGNsaWNrYWJsZVwiICpuZ0lmPVwiIXJlYWRvbmx5XCIgKGNsaWNrKT1cImhhbmRsZVNhdmVEZXRhaWxzRWRpdCgpXCJcclxuICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwicmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPT09IDBcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImNvbW1pdC10ZXh0XCIgW3RleHRDb250ZW50XT1cInJldHVyblN0b2NrTW9kZSA/ICgnUkVUVVJOX1NUT0NLJyB8IGxvY2FsaXplKSA6ICgnUkVDRUlWRScgfCBsb2NhbGl6ZSlcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tdHJhbnNhY3Rpb24tcmVjZWl2aW5nLWdvb2RzLWhpc3RvcnkgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuYW1vdW50ID49IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtnb29kc1JlY2VpcHRIaXN0b3J5XT1cImdvb2RzUmVjZWlwdEhpc3RvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkZWxldGVSb3cpPVwiaGFuZGxlRGVsZXRlU2VsZWN0ZWRSb3coJGV2ZW50KVwiXHJcbiAgICA+PC9jby10cmFuc2FjdGlvbi1yZWNlaXZpbmctZ29vZHMtaGlzdG9yeT5cclxuICAgIDxjby10cmFuc2FjdGlvbi1hdmFpbGFibGUtc3RvY2stZ3JpZCAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5hbW91bnQgPCAwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sbGVjdGlvbl09XCJhdmFpbGFibGVTdG9ja0NvbGxlY3Rpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RTdG9jayk9XCJoYW5kbGVTZWxlY3RTdG9jaygkZXZlbnQpXCJcclxuICAgID48L2NvLXRyYW5zYWN0aW9uLWF2YWlsYWJsZS1zdG9jay1ncmlkPlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lUHVyY2hhc2VSZWNlaXZlR29vZHNDb21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHB1YmxpYyByZWFkb25seSB0cmFuc2FjdGlvblR5cGVDYXRlZ29yeTogdHlwZW9mIFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5ID0gVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnk7XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1wdXJjaGFzZS1yZWNlaXZlLWdvb2RzJylcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVxdWVzdDogUmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlclJlcXVlc3QgPSBuZXcgUmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlclJlcXVlc3QoKTtcclxuICBwdWJsaWMgcmVjZWlwdERldGFpbHM6IFB1cmNoYXNlT3JkZXJMaW5lUmVjZWlwdERldGFpbHMgPSBuZXcgUHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0RGV0YWlscygpO1xyXG4gIHB1YmxpYyBnb29kc1JlY2VpcHRIaXN0b3J5OiBMb2dpc3RpY2FsU3RhdGVEZXRhaWxbXSA9IFtdO1xyXG4gIHB1YmxpYyByZXR1cm5NYXhUb1JlY2VpdmU6IG51bWJlcjtcclxuICBwdWJsaWMgc2VsZWN0ZWRMb2NhdGlvbjogc3RyaW5nO1xyXG4gIHB1YmxpYyByZXR1cm5TdG9ja01vZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgYXZhaWxhYmxlU3RvY2tDb2xsZWN0aW9uOiBBdmFpbGFibGVTdG9ja1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBkaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIF9mb3JtTWFzdGVyOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICApIHtcclxuICAgIHN1cGVyKHRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCBpbWFnZVNlcnZpY2UsIGRpY3Rpb25hcnlTZXJ2aWNlLCBzZXJ2aWNlLCBjaGFuZ2VEZXRlY3Rvcik7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMucHVzaChcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVDaGFuZ2VkLnN1YnNjcmliZSgodHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSA9PiB7XHJcbiAgICAgICAgaWYgKHRyYW5zTGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlVHJhbnNhY3Rpb25MaW5lU2V0KHRyYW5zTGluZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Zvcm1NYXN0ZXIuc3VibWl0U2xhdmVzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYXRpb25SZXF1aXJlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLnRyYW5zYWN0aW9uTGluZS5pc0xvY2F0aW9uUmVxdWlyZWQgfHxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUuaXNCYXRjaE5yUmVxdWlyZWQgfHxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbkxpbmUuaXNTZXJpYWxOclJlcXVpcmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEdvb2RzUmVjZWlwdEhpc3RvcnkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRHb29kc1JlY2VpcHRIaXN0b3J5KHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpXHJcbiAgICAgIC50aGVuKChyZXN1bHQ6IEdvb2RzUmVjZWlwdEhpc3RvcnkpID0+IHtcclxuICAgICAgICB0aGlzLmdvb2RzUmVjZWlwdEhpc3RvcnkgPSByZXN1bHQuZ29vZHNSZWNlaXB0SGlzdG9yeTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2F2ZURldGFpbHNFZGl0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9SZWNlaXZlID09PSAwKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHZhbGlkID0gdGhpcy5zdWJtaXQoKTtcclxuICAgIGlmICh2YWxpZCkge1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdCA9IHRoaXMucmVxdWVzdDtcclxuICAgICAgdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA9IHRoaXMucmV0dXJuU3RvY2tNb2RlID9cclxuICAgICAgICAtdGhpcy5yZWNlaXB0RGV0YWlscy5xdWFudGl0eVRvUmVjZWl2ZSA6IHRoaXMucmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmU7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICByZXF1ZXN0LnB1cmNoYXNlT3JkZXJMaW5lUmVjZWlwdERldGFpbHNEVE9TID0gW3RoaXMucmVjZWlwdERldGFpbHNdO1xyXG4gICAgICByZXF1ZXN0LnByaW50ZXJOYW1lID0gdGhpcy50cmFuc2FjdGlvbkxpbmUucHJpbnRlck5hbWUgPyB0aGlzLnRyYW5zYWN0aW9uTGluZS5wcmludGVyTmFtZSA6IHRoaXMudHJhbnNhY3Rpb25JbmZvLnByaW50ZXJOYW1lO1xyXG4gICAgICByZXF1ZXN0LnJlcG9ydElkID0gdGhpcy50cmFuc2FjdGlvbkxpbmUucmVwb3J0SWQgPyB0aGlzLnRyYW5zYWN0aW9uTGluZS5yZXBvcnRJZCA6IHRoaXMudHJhbnNhY3Rpb25JbmZvLnJlcG9ydElkO1xyXG4gICAgICByZXF1ZXN0LmNvcGllcyA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLnN0aWNrZXJBbW91bnQ7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXIodGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMudHJhbnNhY3Rpb25JbmZvLnZlcnNpb24sIHJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnJldHVyblN0b2NrTW9kZSkge1xyXG4gICAgICAgICAgdGhpcy5fZ2V0QXZhaWxhYmxlU3RvY2soKTtcclxuICAgICAgICAgIHRoaXMucmVjZWlwdERldGFpbHMubG9jYXRpb25OciA9IHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGhhbmRsZURlbGV0ZVNlbGVjdGVkUm93KHJvdzogTG9naXN0aWNhbFN0YXRlRGV0YWlsKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBpZiAocm93ICYmIHJvdy50eXBlICE9PSAnY29ycmVjdGlvbicpIHtcclxuICAgICAgY29uc3QgcmVxdWVzdDogUmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlckNvcnJlY3Rpb25SZXF1ZXN0ID0gbmV3IFJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJDb3JyZWN0aW9uUmVxdWVzdCgpO1xyXG4gICAgICBjb25zdCBjb3JyZWN0aW9uRGV0YWlsczogUHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0Q29ycmVjdGlvbkRldGFpbHMgPSBuZXcgUHVyY2hhc2VPcmRlckxpbmVSZWNlaXB0Q29ycmVjdGlvbkRldGFpbHMoKTtcclxuICAgICAgcmVxdWVzdC5hbGxvd2VkVG9SZW1vdmVQaWNrZWRBbGxvY2F0aW9ucyA9IGZhbHNlO1xyXG4gICAgICByZXF1ZXN0LnRyYW5zSWQgPSB0aGlzLnRyYW5zYWN0aW9uSW5mby5pZDtcclxuICAgICAgcmVxdWVzdC5wdXJjaGFzZU9yZGVyTGluZVJlY2VpcHRDb3JyZWN0aW9uRGV0YWlsc0RUT1MgPSBbY29ycmVjdGlvbkRldGFpbHNdO1xyXG4gICAgICBjb3JyZWN0aW9uRGV0YWlscy5saW5lTnIgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnI7XHJcbiAgICAgIGNvcnJlY3Rpb25EZXRhaWxzLnF1YW50aXR5VG9Db3JyZWN0ID0gcm93LnF1YW50aXR5O1xyXG4gICAgICBjb3JyZWN0aW9uRGV0YWlscy5kb2N1bWVudElkID0gcm93LmRvY3VtZW50SWQ7XHJcbiAgICAgIGNvcnJlY3Rpb25EZXRhaWxzLmRvY3VtZW50TGluZU5yID0gcm93LmxpbmVOdW1iZXI7XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLnJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJDb3JyZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uLCByZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmdldEdvb2RzUmVjZWlwdEhpc3RvcnkoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0U3RvY2soYXZhaWxhYmxlU3RvY2s6IEF2YWlsYWJsZVN0b2NrKTogdm9pZCB7XHJcbiAgICBjb25zdCBtYXhUb1JldHVybiA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9SZWNlaXZlIDwgMCA/IE1hdGguYWJzKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9SZWNlaXZlKSA6IHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9SZWNlaXZlO1xyXG4gICAgdGhpcy5yZXR1cm5NYXhUb1JlY2VpdmUgPSBtYXhUb1JldHVybiA+IGF2YWlsYWJsZVN0b2NrLmF2YWlsYWJsZVF1YW50aXR5ID8gYXZhaWxhYmxlU3RvY2suYXZhaWxhYmxlUXVhbnRpdHkgOiBtYXhUb1JldHVybjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMucXVhbnRpdHlUb1JlY2VpdmUgPSB0aGlzLnJldHVybk1heFRvUmVjZWl2ZTtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMud2FyZWhvdXNlTnIgPSBhdmFpbGFibGVTdG9jay53YXJlaG91c2VOdW1iZXI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmxvY2F0aW9uTnIgPSBhdmFpbGFibGVTdG9jay5sb2NhdGlvbk51bWJlcjtcclxuICAgIHRoaXMuc2VsZWN0ZWRMb2NhdGlvbiA9IHRoaXMucmVjZWlwdERldGFpbHMubG9jYXRpb25OcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMuc2VyaWFsTnIgPSBhdmFpbGFibGVTdG9jay5zZXJpYWxOdW1iZXI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmJhdGNoTnIgPSBhdmFpbGFibGVTdG9jay5iYXRjaE51bWJlcjtcclxuICAgIHRoaXMucmVjZWlwdERldGFpbHMubGluZU5yID0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uTGluZVNldCgpIHtcclxuICAgIHRoaXMuX2hhbmRsZVRyYW5zYWN0aW9uTGluZVNldCh0aGlzLnRyYW5zYWN0aW9uTGluZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVUcmFuc2FjdGlvbkxpbmVTZXQodHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLndhcmVob3VzZU5yID0gdGhpcy50cmFuc2FjdGlvbkxpbmUud2FyZWhvdXNlTnVtYmVyO1xyXG4gICAgdGhpcy5yZWNlaXB0RGV0YWlscy5saW5lTnIgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnI7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLnF1YW50aXR5VG9SZWNlaXZlID0gdGhpcy50cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb1JlY2VpdmU7XHJcbiAgICB0aGlzLnJlY2VpcHREZXRhaWxzLmxvY2F0aW9uTnIgPSB0aGlzLnRyYW5zYWN0aW9uTGluZS5sb2NhdGlvbk5yO1xyXG4gICAgdGhpcy5yZXR1cm5TdG9ja01vZGUgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmFtb3VudCA8IDA7XHJcbiAgICB0aGlzLmdldEdvb2RzUmVjZWlwdEhpc3RvcnkoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2dldEF2YWlsYWJsZVN0b2NrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5hdmFpbGFibGVTdG9ja0NvbGxlY3Rpb24gPSBhd2FpdCB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRBdmFpbGFibGVTdG9ja0dyb3VwZWRCeVdMQlNCeVRyYW5zSWRMaW5lTnIodGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { Component, HostBinding, ViewEncapsulation } from "@angular/core";
2
+ import { ChangeDetectorRef, Component, HostBinding, ViewEncapsulation } from '@angular/core';
3
3
  import { FormMasterService } from "@colijnit/corecomponents_v12";
4
4
  import { TransactionBaseComponent } from "../core/base/transaction-base.component";
5
5
  import { AllocateGoodsForSalesOrderRequest } from "@colijnit/transactionapi/build/model/allocate-goods-for-sales-order-request";
@@ -11,29 +11,35 @@ import { AllocateGoodsForSalesOrderCorrectionRequest } from "@colijnit/transacti
11
11
  import { SalesOrderLineAllocationCorrectionDetails } from "@colijnit/transactionapi/build/model/sales-order-line-allocation-correction-details";
12
12
  import { TransactionEventService } from "../../service/transaction-event.service";
13
13
  import { DictionaryService } from '../../service/dictionary.service';
14
+ import { TransactionImageService } from '../../service/transaction-image.service';
14
15
  export class TransactionLineSalesAllocationComponent extends TransactionBaseComponent {
15
- constructor(dictionaryService, iconCacheService, transactionService, _formMaster, _dialogService, _transactionEventService) {
16
- super(dictionaryService, transactionService);
17
- this.dictionaryService = dictionaryService;
16
+ constructor(transactionEventService, service, iconCacheService, dialogService, dictionaryService, imageService, changeDetector, _formMaster) {
17
+ super(transactionEventService, iconCacheService, imageService, dictionaryService, service, changeDetector);
18
+ this.transactionEventService = transactionEventService;
19
+ this.service = service;
18
20
  this.iconCacheService = iconCacheService;
19
- this.transactionService = transactionService;
21
+ this.dialogService = dialogService;
22
+ this.dictionaryService = dictionaryService;
23
+ this.imageService = imageService;
24
+ this.changeDetector = changeDetector;
20
25
  this._formMaster = _formMaster;
21
- this._dialogService = _dialogService;
22
- this._transactionEventService = _transactionEventService;
23
26
  this.allocationRequest = new AllocateGoodsForSalesOrderRequest();
24
27
  this.allocationDetails = new SalesOrderLineAllocationDetails();
25
28
  this.goodsAllocationHistory = [];
26
29
  this._subs = [];
27
- this._subs.push(this._transactionEventService.transactionLineChanged.subscribe((transLine) => {
30
+ }
31
+ showClass() {
32
+ return true;
33
+ }
34
+ ngOnInit() {
35
+ this._subs.push(this.transactionEventService.transactionLineChanged.subscribe((transLine) => {
28
36
  if (transLine.lineNr === this.transactionLine.lineNr) {
29
37
  this._handleTransactionLineSet(transLine);
30
38
  }
31
39
  }));
32
40
  }
33
- showClass() {
34
- return true;
35
- }
36
41
  ngOnDestroy() {
42
+ super.ngOnDestroy();
37
43
  this._subs.forEach(s => s.unsubscribe());
38
44
  }
39
45
  submit() {
@@ -82,7 +88,7 @@ export class TransactionLineSalesAllocationComponent extends TransactionBaseComp
82
88
  }
83
89
  openWarehouseLocationDialog() {
84
90
  if (this.transactionLine.articleLineStatus.quantityToAllocate > 0) {
85
- this._dialogService.showWarehouseLocation(this.allocationDetails.warehouseNr, true, true, true, this.transactionLine)
91
+ this.dialogService.showWarehouseLocation(this.allocationDetails.warehouseNr, true, true, true, this.transactionLine)
86
92
  .then(() => this.allocationDetails.locationNr = this.transactionLine.locationNr);
87
93
  }
88
94
  }
@@ -165,14 +171,16 @@ TransactionLineSalesAllocationComponent.decorators = [
165
171
  },] }
166
172
  ];
167
173
  TransactionLineSalesAllocationComponent.ctorParameters = () => [
168
- { type: DictionaryService },
169
- { type: IconCacheService },
174
+ { type: TransactionEventService },
170
175
  { type: TransactionService },
171
- { type: FormMasterService },
176
+ { type: IconCacheService },
172
177
  { type: DialogService },
173
- { type: TransactionEventService }
178
+ { type: DictionaryService },
179
+ { type: TransactionImageService },
180
+ { type: ChangeDetectorRef },
181
+ { type: FormMasterService }
174
182
  ];
175
183
  TransactionLineSalesAllocationComponent.propDecorators = {
176
184
  showClass: [{ type: HostBinding, args: ["class.co-transaction-line-sales-allocation",] }]
177
185
  };
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zYWxlcy1hbGxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2FsZXMtYWxsb2NhdGlvbi90cmFuc2FjdGlvbi1saW5lLXNhbGVzLWFsbG9jYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBYSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUNqRixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSw2RUFBNkUsQ0FBQztBQUM5SCxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQUV6SCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFDLDJDQUEyQyxFQUFDLE1BQU0sd0ZBQXdGLENBQUM7QUFDbkosT0FBTyxFQUFDLHlDQUF5QyxFQUFDLE1BQU0scUZBQXFGLENBQUM7QUFFOUksT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFHaEYsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFvRW5FLE1BQU0sT0FBTyx1Q0FBd0MsU0FBUSx3QkFBd0I7SUFjbkYsWUFDWSxpQkFBb0MsRUFDdkMsZ0JBQWtDLEVBQy9CLGtCQUFzQyxFQUN4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QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzNGO0lBQ0gsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixJQUFJLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxTQUE4QjtRQUM5RCxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLGtCQUFrQixDQUFDO1FBQ3pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEdBQUcsU0FBUyxDQUFDLGVBQWUsQ0FBQztRQUMvRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7UUFDakQsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7SUFDbkMsQ0FBQzs7O1lBcEtGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0NBQXNDO2dCQUNoRCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwRFQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQW5FTyxpQkFBaUI7WUFUakIsZ0JBQWdCO1lBQ2hCLGtCQUFrQjtZQU5sQixpQkFBaUI7WUFPakIsYUFBYTtZQUliLHVCQUF1Qjs7O3dCQThFNUIsV0FBVyxTQUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBIb3N0QmluZGluZywgT25EZXN0cm95LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb3JlL2Jhc2UvdHJhbnNhY3Rpb24tYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlclJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYWxsb2NhdGUtZ29vZHMtZm9yLXNhbGVzLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtTYWxlc09yZGVyTGluZUFsbG9jYXRpb25EZXRhaWxzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3NhbGVzLW9yZGVyLWxpbmUtYWxsb2NhdGlvbi1kZXRhaWxzXCI7XHJcbmltcG9ydCB7TG9naXN0aWNhbFN0YXRlRGV0YWlsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xvZ2lzdGljYWwtc3RhdGUtZGV0YWlsLmJvXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlckNvcnJlY3Rpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FsbG9jYXRlLWdvb2RzLWZvci1zYWxlcy1vcmRlci1jb3JyZWN0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtTYWxlc09yZGVyTGluZUFsbG9jYXRpb25Db3JyZWN0aW9uRGV0YWlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9zYWxlcy1vcmRlci1saW5lLWFsbG9jYXRpb24tY29ycmVjdGlvbi1kZXRhaWxzXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi1ldmVudC5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcclxuaW1wb3J0IHtHb29kc0FsbG9jYXRpb25IaXN0b3J5fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2dvb2RzLWFsbG9jYXRpb24taGlzdG9yeS5ib1wiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lLXNhbGVzLWFsbG9jYXRpb25cIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGNvLWZvcm0+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzLWhlYWRlclwiIFt0ZXh0Q29udGVudF09XCInQUxMT0NBVEVfREVUQUlMUycgfCBsb2NhbGl6ZSB8IHVwcGVyY2FzZVwiPjwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29sdW1ucy13cmFwcGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtY29sdW1uXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCBjbGFzcz1cImRldGFpbHMtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21heF09XCJhbGxvY2F0aW9uRGV0YWlscy5xdWFudGl0eVRvQWxsb2NhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwiYWxsb2NhdGlvbkRldGFpbHMuc2VyaWFsTnIgPyAxIDogYWxsb2NhdGlvbkRldGFpbHMucXVhbnRpdHlUb0FsbG9jYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhIWFsbG9jYXRpb25EZXRhaWxzLnNlcmlhbE5yIHx8IGFsbG9jYXRpb25EZXRhaWxzLnF1YW50aXR5VG9BbGxvY2F0ZSA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwiISFhbGxvY2F0aW9uRGV0YWlscy5zZXJpYWxOciB8fCBhbGxvY2F0aW9uRGV0YWlscy5xdWFudGl0eVRvQWxsb2NhdGUgPT09IDAgfHwgcmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQU1PVU5UJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCIgWyhtb2RlbCldPVwiYWxsb2NhdGlvbkRldGFpbHMud2FyZWhvdXNlTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJhbnNhY3Rpb25MaW5lLndhcmVob3VzZU51bWJlciAhPT0gdW5kZWZpbmVkIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0cmFuc2FjdGlvbkxpbmUud2FyZWhvdXNlTnVtYmVyICE9PSB1bmRlZmluZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRyYW5zYWN0aW9uTGluZS5pc1dhcmVob3VzZVJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInV0FSRUhPVVNFJyB8IGxvY2FsaXplXCI+PC9jby1pbnB1dC10ZXh0PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImxvY2F0aW9uLXdyYXBwZXJcIiBbY2xhc3MuY2xpY2thYmxlXT1cInRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvQWxsb2NhdGUgPiAwXCIgKGNsaWNrKT1cIm9wZW5XYXJlaG91c2VMb2NhdGlvbkRpYWxvZygpXCI+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWFsbG9jYXRpb25EZXRhaWxzLmxvY2F0aW9uTnIgJiYgdHJhbnNhY3Rpb25MaW5lLmlzTG9jYXRpb25SZXF1aXJlZFwiIGNsYXNzPVwicmVxdWlyZWRcIiBbdGV4dENvbnRlbnRdPVwiJyonXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8Y28taWNvbiAqbmdJZj1cImFsbG9jYXRpb25EZXRhaWxzLmxvY2F0aW9uTnJcIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlNoZWx2ZXNMaWdodClcIj48L2NvLWljb24+XHJcbiAgICAgICAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cImFsbG9jYXRpb25EZXRhaWxzLmxvY2F0aW9uTnIgPyBhbGxvY2F0aW9uRGV0YWlscy5sb2NhdGlvbk5yIDogKCdMT0NBVElPTicgfCBsb2NhbGl6ZSlcIj48L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkaXZpZGVyXCI+PC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImRldGFpbHMtY29sdW1uXCI+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc0JhdGNoTnJSZXF1aXJlZFwiIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cImFsbG9jYXRpb25EZXRhaWxzLmJhdGNoTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVBcnJvd0J1dHRvbnNdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRyYW5zYWN0aW9uTGluZS5pc0JhdGNoTnJSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0JBVENIX05VTUJFUicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0ICpuZ0lmPVwidHJhbnNhY3Rpb25MaW5lLmlzU2VyaWFsTnJSZXF1aXJlZFwiIGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cImFsbG9jYXRpb25EZXRhaWxzLnNlcmlhbE5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cmFuc2FjdGlvbkxpbmUuaXNTZXJpYWxOclJlcXVpcmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU0VSSUFMX05VTUJFUicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2NvLWZvcm0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tbWl0LWJ1dHRvbi13cmFwcGVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb21taXQtYnV0dG9uXCIgKm5nSWY9XCIhcmVhZG9ubHlcIlxyXG4gICAgICAgICAgIFtjbGFzcy5jbGlja2FibGVdPVwiYWxsb2NhdGlvbkRldGFpbHMucXVhbnRpdHlUb0FsbG9jYXRlID4gMFwiXHJcbiAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImFsbG9jYXRpb25EZXRhaWxzLnF1YW50aXR5VG9BbGxvY2F0ZSA9PT0gMFwiXHJcbiAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVNhdmVEZXRhaWxzRWRpdCgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJjb21taXQtdGV4dFwiIFt0ZXh0Q29udGVudF09XCInQUxMT0NBVEUnIHwgbG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tdHJhbnNhY3Rpb24tYWxsb2NhdGUtZ29vZHMtaGlzdG9yeVxyXG4gICAgICBbZ29vZHNBbGxvY2F0aW9uSGlzdG9yeV09XCJnb29kc0FsbG9jYXRpb25IaXN0b3J5XCJcclxuICAgICAgKGRlbGV0ZVJvdyk9XCJoYW5kbGVEZWxldGVTZWxlY3RlZFJvdygkZXZlbnQpXCJcclxuICAgID48L2NvLXRyYW5zYWN0aW9uLWFsbG9jYXRlLWdvb2RzLWhpc3Rvcnk+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIEZvcm1NYXN0ZXJTZXJ2aWNlXHJcbiAgXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVTYWxlc0FsbG9jYXRpb25Db21wb25lbnQgZXh0ZW5kcyBUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgYWxsb2NhdGlvblJlcXVlc3Q6IEFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyUmVxdWVzdCA9IG5ldyBBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlclJlcXVlc3QoKTtcclxuICBwdWJsaWMgYWxsb2NhdGlvbkRldGFpbHM6IFNhbGVzT3JkZXJMaW5lQWxsb2NhdGlvbkRldGFpbHMgPSBuZXcgU2FsZXNPcmRlckxpbmVBbGxvY2F0aW9uRGV0YWlscygpO1xyXG5cclxuICBwdWJsaWMgZ29vZHNBbGxvY2F0aW9uSGlzdG9yeTogTG9naXN0aWNhbFN0YXRlRGV0YWlsW10gPSBbXTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1zYWxlcy1hbGxvY2F0aW9uXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9mb3JtTWFzdGVyOiBGb3JtTWFzdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIF90cmFuc2FjdGlvbkV2ZW50U2VydmljZTogVHJhbnNhY3Rpb25FdmVudFNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKGRpY3Rpb25hcnlTZXJ2aWNlLCB0cmFuc2FjdGlvblNlcnZpY2UpO1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKFxyXG4gICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50U2VydmljZS50cmFuc2FjdGlvbkxpbmVDaGFuZ2VkLnN1YnNjcmliZSgodHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSA9PiB7XHJcbiAgICAgICAgaWYgKHRyYW5zTGluZS5saW5lTnIgPT09IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcikge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlVHJhbnNhY3Rpb25MaW5lU2V0KHRyYW5zTGluZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5fc3Vicy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdWJtaXQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZm9ybU1hc3Rlci5zdWJtaXRTbGF2ZXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kc0FsbG9jYXRpb25IaXN0b3J5KCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuZ2V0R29vZHNBbGxvY2F0aW9uSGlzdG9yeSh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKVxyXG4gICAgICAudGhlbigocmVzdWx0OiBHb29kc0FsbG9jYXRpb25IaXN0b3J5KSA9PiB7XHJcbiAgICAgICAgdGhpcy5nb29kc0FsbG9jYXRpb25IaXN0b3J5ID0gcmVzdWx0Lmdvb2RzQWxsb2NhdGlvbkhpc3Rvcnk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNhdmVEZXRhaWxzRWRpdCgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTGluZVN0YXR1cy5xdWFudGl0eVRvQWxsb2NhdGUgPT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgY29uc3QgdmFsaWQgPSB0aGlzLnN1Ym1pdCgpO1xyXG4gICAgaWYgKHZhbGlkKSB7XHJcbiAgICAgIGNvbnN0IHJlcXVlc3Q6IEFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyUmVxdWVzdCA9IHRoaXMuYWxsb2NhdGlvblJlcXVlc3Q7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICByZXF1ZXN0LnNhbGVzT3JkZXJMaW5lQWxsb2NhdGlvbkRldGFpbHNEVE9TID0gW3RoaXMuYWxsb2NhdGlvbkRldGFpbHNdO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5hbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlcih0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgdGhpcy50cmFuc2FjdGlvbkluZm8udmVyc2lvbiwgcmVxdWVzdCkudGhlbigoc3VjY2VzcykgPT4ge1xyXG4gICAgICAgIGlmIChzdWNjZXNzKSB7XHJcbiAgICAgICAgICB0aGlzLmFsbG9jYXRpb25EZXRhaWxzLmxvY2F0aW9uTnIgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgICB0aGlzLmdldEdvb2RzQWxsb2NhdGlvbkhpc3RvcnkoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZURlbGV0ZVNlbGVjdGVkUm93KHJvdzogTG9naXN0aWNhbFN0YXRlRGV0YWlsKTogdm9pZCB7XHJcbiAgICBpZiAocm93ICYmIHJvdy50eXBlICE9PSAnY29ycmVjdGlvbicpIHtcclxuICAgICAgY29uc3QgcmVxdWVzdDogQWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJDb3JyZWN0aW9uUmVxdWVzdCA9IG5ldyBBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlckNvcnJlY3Rpb25SZXF1ZXN0KCk7XHJcbiAgICAgIGNvbnN0IGNvcnJlY3Rpb25EZXRhaWxzOiBTYWxlc09yZGVyTGluZUFsbG9jYXRpb25Db3JyZWN0aW9uRGV0YWlscyA9IG5ldyBTYWxlc09yZGVyTGluZUFsbG9jYXRpb25Db3JyZWN0aW9uRGV0YWlscygpO1xyXG4gICAgICByZXF1ZXN0LmFsbG93ZWRUb1JlbW92ZVBpY2tlZEFsbG9jYXRpb25zID0gZmFsc2U7XHJcbiAgICAgIHJlcXVlc3QudHJhbnNJZCA9IHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkO1xyXG4gICAgICByZXF1ZXN0LnNhbGVzT3JkZXJMaW5lQWxsb2NhdGlvbkNvcnJlY3Rpb25EZXRhaWxzRFRPUyA9IFtjb3JyZWN0aW9uRGV0YWlsc107XHJcbiAgICAgIGNvcnJlY3Rpb25EZXRhaWxzLmxpbmVOciA9IHRoaXMudHJhbnNhY3Rpb25MaW5lLmxpbmVOcjtcclxuICAgICAgY29ycmVjdGlvbkRldGFpbHMucXVhbnRpdHlUb0NvcnJlY3QgPSByb3cucXVhbnRpdHk7XHJcbiAgICAgIGNvcnJlY3Rpb25EZXRhaWxzLmRvY3VtZW50SWQgPSByb3cuZG9jdW1lbnRJZDtcclxuICAgICAgY29ycmVjdGlvbkRldGFpbHMuZG9jdW1lbnRMaW5lTnIgPSByb3cubGluZU51bWJlcjtcclxuICAgICAgdGhpcy50cmFuc2FjdGlvblNlcnZpY2UuYWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJDb3JyZWN0aW9uKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uLCByZXF1ZXN0KS50aGVuKCgpID0+IHtcclxuICAgICAgICB0aGlzLmdldEdvb2RzQWxsb2NhdGlvbkhpc3RvcnkoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlbldhcmVob3VzZUxvY2F0aW9uRGlhbG9nKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9BbGxvY2F0ZSA+IDApIHtcclxuICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93V2FyZWhvdXNlTG9jYXRpb24odGhpcy5hbGxvY2F0aW9uRGV0YWlscy53YXJlaG91c2VOciwgdHJ1ZSwgdHJ1ZSwgdHJ1ZSwgdGhpcy50cmFuc2FjdGlvbkxpbmUpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4gdGhpcy5hbGxvY2F0aW9uRGV0YWlscy5sb2NhdGlvbk5yID0gKDxhbnk+dGhpcy50cmFuc2FjdGlvbkxpbmUpLmxvY2F0aW9uTnIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHRyYW5zYWN0aW9uTGluZVNldCgpIHtcclxuICAgIHRoaXMuX2hhbmRsZVRyYW5zYWN0aW9uTGluZVNldCh0aGlzLnRyYW5zYWN0aW9uTGluZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVUcmFuc2FjdGlvbkxpbmVTZXQodHJhbnNMaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogdm9pZCB7XHJcbiAgICB0aGlzLmFsbG9jYXRpb25EZXRhaWxzLnF1YW50aXR5VG9BbGxvY2F0ZSA9IHRyYW5zTGluZS5xdWFudGl0eVRvQWxsb2NhdGU7XHJcbiAgICB0aGlzLmFsbG9jYXRpb25EZXRhaWxzLndhcmVob3VzZU5yID0gdHJhbnNMaW5lLndhcmVob3VzZU51bWJlcjtcclxuICAgIHRoaXMuYWxsb2NhdGlvbkRldGFpbHMubGluZU5yID0gdHJhbnNMaW5lLmxpbmVOcjtcclxuICAgIHRoaXMuZ2V0R29vZHNBbGxvY2F0aW9uSGlzdG9yeSgpO1xyXG4gIH1cclxufVxyXG4iXX0=
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zYWxlcy1hbGxvY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2FsZXMtYWxsb2NhdGlvbi90cmFuc2FjdGlvbi1saW5lLXNhbGVzLWFsbG9jYXRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBcUIsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDakYsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sNkVBQTZFLENBQUM7QUFDOUgsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sMEVBQTBFLENBQUM7QUFFekgsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDckUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQywyQ0FBMkMsRUFBQyxNQUFNLHdGQUF3RixDQUFDO0FBQ25KLE9BQU8sRUFBQyx5Q0FBeUMsRUFBQyxNQUFNLHFGQUFxRixDQUFDO0FBRTlJLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBR2hGLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBb0VoRixNQUFNLE9BQU8sdUNBQXdDLFNB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QUFDLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gXCJAY29saWpuaXQvY29yZWNvbXBvbmVudHNfdjEyXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FsbG9jYXRlLWdvb2RzLWZvci1zYWxlcy1vcmRlci1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7U2FsZXNPcmRlckxpbmVBbGxvY2F0aW9uRGV0YWlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9zYWxlcy1vcmRlci1saW5lLWFsbG9jYXRpb24tZGV0YWlsc1wiO1xyXG5pbXBvcnQge0xvZ2lzdGljYWxTdGF0ZURldGFpbH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9sb2dpc3RpY2FsLXN0YXRlLWRldGFpbC5ib1wiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7QWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJDb3JyZWN0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hbGxvY2F0ZS1nb29kcy1mb3Itc2FsZXMtb3JkZXItY29ycmVjdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7U2FsZXNPcmRlckxpbmVBbGxvY2F0aW9uQ29ycmVjdGlvbkRldGFpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvc2FsZXMtb3JkZXItbGluZS1hbGxvY2F0aW9uLWNvcnJlY3Rpb24tZGV0YWlsc1wiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7R29vZHNBbGxvY2F0aW9uSGlzdG9yeX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nb29kcy1hbGxvY2F0aW9uLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uSW1hZ2VTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZS1zYWxlcy1hbGxvY2F0aW9uXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxjby1mb3JtPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGV0YWlscy1oZWFkZXJcIiBbdGV4dENvbnRlbnRdPVwiJ0FMTE9DQVRFX0RFVEFJTFMnIHwgbG9jYWxpemUgfCB1cHBlcmNhc2VcIj48L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImNvbHVtbnMtd3JhcHBlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzLWNvbHVtblwiPlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgY2xhc3M9XCJkZXRhaWxzLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFttYXhdPVwiYWxsb2NhdGlvbkRldGFpbHMucXVhbnRpdHlUb0FsbG9jYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFsobW9kZWwpXT1cImFsbG9jYXRpb25EZXRhaWxzLnNlcmlhbE5yID8gMSA6IGFsbG9jYXRpb25EZXRhaWxzLnF1YW50aXR5VG9BbGxvY2F0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiISFhbGxvY2F0aW9uRGV0YWlscy5zZXJpYWxOciB8fCBhbGxvY2F0aW9uRGV0YWlscy5xdWFudGl0eVRvQWxsb2NhdGUgPT09IDBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cIiEhYWxsb2NhdGlvbkRldGFpbHMuc2VyaWFsTnIgfHwgYWxsb2NhdGlvbkRldGFpbHMucXVhbnRpdHlUb0FsbG9jYXRlID09PSAwIHx8IHJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwiMVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0FNT1VOVCcgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0IGNsYXNzPVwiZGV0YWlscy1pbnB1dFwiIFsobW9kZWwpXT1cImFsbG9jYXRpb25EZXRhaWxzLndhcmVob3VzZU5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRyYW5zYWN0aW9uTGluZS53YXJlaG91c2VOdW1iZXIgIT09IHVuZGVmaW5lZCB8fCByZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwidHJhbnNhY3Rpb25MaW5lLndhcmVob3VzZU51bWJlciAhPT0gdW5kZWZpbmVkXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cmFuc2FjdGlvbkxpbmUuaXNXYXJlaG91c2VSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1dBUkVIT1VTRScgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi13cmFwcGVyXCIgW2NsYXNzLmNsaWNrYWJsZV09XCJ0cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0FsbG9jYXRlID4gMFwiIChjbGljayk9XCJvcGVuV2FyZWhvdXNlTG9jYXRpb25EaWFsb2coKVwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFhbGxvY2F0aW9uRGV0YWlscy5sb2NhdGlvbk5yICYmIHRyYW5zYWN0aW9uTGluZS5pc0xvY2F0aW9uUmVxdWlyZWRcIiBjbGFzcz1cInJlcXVpcmVkXCIgW3RleHRDb250ZW50XT1cIicqJ1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgPGNvLWljb24gKm5nSWY9XCJhbGxvY2F0aW9uRGV0YWlscy5sb2NhdGlvbk5yXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5TaGVsdmVzTGlnaHQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IFt0ZXh0Q29udGVudF09XCJhbGxvY2F0aW9uRGV0YWlscy5sb2NhdGlvbk5yID8gYWxsb2NhdGlvbkRldGFpbHMubG9jYXRpb25OciA6ICgnTE9DQVRJT04nIHwgbG9jYWxpemUpXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlci13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGl2aWRlclwiPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZXRhaWxzLWNvbHVtblwiPlxyXG4gICAgICAgICAgPGNvLWlucHV0LXRleHQgKm5nSWY9XCJ0cmFuc2FjdGlvbkxpbmUuaXNCYXRjaE5yUmVxdWlyZWRcIiBjbGFzcz1cImRldGFpbHMtaW5wdXRcIiBbKG1vZGVsKV09XCJhbGxvY2F0aW9uRGV0YWlscy5iYXRjaE5yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlQXJyb3dCdXR0b25zXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cmFuc2FjdGlvbkxpbmUuaXNCYXRjaE5yUmVxdWlyZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidCQVRDSF9OVU1CRVInIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgICA8Y28taW5wdXQtdGV4dCAqbmdJZj1cInRyYW5zYWN0aW9uTGluZS5pc1NlcmlhbE5yUmVxdWlyZWRcIiBjbGFzcz1cImRldGFpbHMtaW5wdXRcIiBbKG1vZGVsKV09XCJhbGxvY2F0aW9uRGV0YWlscy5zZXJpYWxOclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCInbnVtYmVyJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZUFycm93QnV0dG9uc109XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwidHJhbnNhY3Rpb25MaW5lLmlzU2VyaWFsTnJSZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NFUklBTF9OVU1CRVInIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9jby1mb3JtPlxyXG4gICAgPGRpdiBjbGFzcz1cImNvbW1pdC1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29tbWl0LWJ1dHRvblwiICpuZ0lmPVwiIXJlYWRvbmx5XCJcclxuICAgICAgICAgICBbY2xhc3MuY2xpY2thYmxlXT1cImFsbG9jYXRpb25EZXRhaWxzLnF1YW50aXR5VG9BbGxvY2F0ZSA+IDBcIlxyXG4gICAgICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJhbGxvY2F0aW9uRGV0YWlscy5xdWFudGl0eVRvQWxsb2NhdGUgPT09IDBcIlxyXG4gICAgICAgICAgIChjbGljayk9XCJoYW5kbGVTYXZlRGV0YWlsc0VkaXQoKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiY29tbWl0LXRleHRcIiBbdGV4dENvbnRlbnRdPVwiJ0FMTE9DQVRFJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWFsbG9jYXRlLWdvb2RzLWhpc3RvcnlcclxuICAgICAgW2dvb2RzQWxsb2NhdGlvbkhpc3RvcnldPVwiZ29vZHNBbGxvY2F0aW9uSGlzdG9yeVwiXHJcbiAgICAgIChkZWxldGVSb3cpPVwiaGFuZGxlRGVsZXRlU2VsZWN0ZWRSb3coJGV2ZW50KVwiXHJcbiAgICA+PC9jby10cmFuc2FjdGlvbi1hbGxvY2F0ZS1nb29kcy1oaXN0b3J5PlxyXG4gIGAsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICBGb3JtTWFzdGVyU2VydmljZVxyXG4gIF0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lU2FsZXNBbGxvY2F0aW9uQ29tcG9uZW50IGV4dGVuZHMgVHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICBwdWJsaWMgYWxsb2NhdGlvblJlcXVlc3Q6IEFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyUmVxdWVzdCA9IG5ldyBBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlclJlcXVlc3QoKTtcclxuICBwdWJsaWMgYWxsb2NhdGlvbkRldGFpbHM6IFNhbGVzT3JkZXJMaW5lQWxsb2NhdGlvbkRldGFpbHMgPSBuZXcgU2FsZXNPcmRlckxpbmVBbGxvY2F0aW9uRGV0YWlscygpO1xyXG5cclxuICBwdWJsaWMgZ29vZHNBbGxvY2F0aW9uSGlzdG9yeTogTG9naXN0aWNhbFN0YXRlRGV0YWlsW10gPSBbXTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1zYWxlcy1hbGxvY2F0aW9uXCIpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgdHJhbnNhY3Rpb25FdmVudFNlcnZpY2U6IFRyYW5zYWN0aW9uRXZlbnRTZXJ2aWNlLFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIGltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBfZm9ybU1hc3RlcjogRm9ybU1hc3RlclNlcnZpY2UsXHJcbiAgKSB7XHJcbiAgICBzdXBlcih0cmFuc2FjdGlvbkV2ZW50U2VydmljZSwgaWNvbkNhY2hlU2VydmljZSwgaW1hZ2VTZXJ2aWNlLCBkaWN0aW9uYXJ5U2VydmljZSwgc2VydmljZSwgY2hhbmdlRGV0ZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2goXHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25FdmVudFNlcnZpY2UudHJhbnNhY3Rpb25MaW5lQ2hhbmdlZC5zdWJzY3JpYmUoKHRyYW5zTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbykgPT4ge1xyXG4gICAgICAgIGlmICh0cmFuc0xpbmUubGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZVRyYW5zYWN0aW9uTGluZVNldCh0cmFuc0xpbmUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN1Ym1pdCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLl9mb3JtTWFzdGVyLnN1Ym1pdFNsYXZlcygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEdvb2RzQWxsb2NhdGlvbkhpc3RvcnkoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRHb29kc0FsbG9jYXRpb25IaXN0b3J5KHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpXHJcbiAgICAgIC50aGVuKChyZXN1bHQ6IEdvb2RzQWxsb2NhdGlvbkhpc3RvcnkpID0+IHtcclxuICAgICAgICB0aGlzLmdvb2RzQWxsb2NhdGlvbkhpc3RvcnkgPSByZXN1bHQuZ29vZHNBbGxvY2F0aW9uSGlzdG9yeTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2F2ZURldGFpbHNFZGl0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVMaW5lU3RhdHVzLnF1YW50aXR5VG9BbGxvY2F0ZSA9PT0gMCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBjb25zdCB2YWxpZCA9IHRoaXMuc3VibWl0KCk7XHJcbiAgICBpZiAodmFsaWQpIHtcclxuICAgICAgY29uc3QgcmVxdWVzdDogQWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJSZXF1ZXN0ID0gdGhpcy5hbGxvY2F0aW9uUmVxdWVzdDtcclxuICAgICAgcmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICAgIHJlcXVlc3Quc2FsZXNPcmRlckxpbmVBbGxvY2F0aW9uRGV0YWlsc0RUT1MgPSBbdGhpcy5hbGxvY2F0aW9uRGV0YWlsc107XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCB0aGlzLnRyYW5zYWN0aW9uSW5mby52ZXJzaW9uLCByZXF1ZXN0KS50aGVuKChzdWNjZXNzKSA9PiB7XHJcbiAgICAgICAgaWYgKHN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuYWxsb2NhdGlvbkRldGFpbHMubG9jYXRpb25OciA9IHVuZGVmaW5lZDtcclxuICAgICAgICAgIHRoaXMuZ2V0R29vZHNBbGxvY2F0aW9uSGlzdG9yeSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRGVsZXRlU2VsZWN0ZWRSb3cocm93OiBMb2dpc3RpY2FsU3RhdGVEZXRhaWwpOiB2b2lkIHtcclxuICAgIGlmIChyb3cgJiYgcm93LnR5cGUgIT09ICdjb3JyZWN0aW9uJykge1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlckNvcnJlY3Rpb25SZXF1ZXN0ID0gbmV3IEFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyQ29ycmVjdGlvblJlcXVlc3QoKTtcclxuICAgICAgY29uc3QgY29ycmVjdGlvbkRldGFpbHM6IFNhbGVzT3JkZXJMaW5lQWxsb2NhdGlvbkNvcnJlY3Rpb25EZXRhaWxzID0gbmV3IFNhbGVzT3JkZXJMaW5lQWxsb2NhdGlvbkNvcnJlY3Rpb25EZXRhaWxzKCk7XHJcbiAgICAgIHJlcXVlc3QuYWxsb3dlZFRvUmVtb3ZlUGlja2VkQWxsb2NhdGlvbnMgPSBmYWxzZTtcclxuICAgICAgcmVxdWVzdC50cmFuc0lkID0gdGhpcy50cmFuc2FjdGlvbkluZm8uaWQ7XHJcbiAgICAgIHJlcXVlc3Quc2FsZXNPcmRlckxpbmVBbGxvY2F0aW9uQ29ycmVjdGlvbkRldGFpbHNEVE9TID0gW2NvcnJlY3Rpb25EZXRhaWxzXTtcclxuICAgICAgY29ycmVjdGlvbkRldGFpbHMubGluZU5yID0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yO1xyXG4gICAgICBjb3JyZWN0aW9uRGV0YWlscy5xdWFudGl0eVRvQ29ycmVjdCA9IHJvdy5xdWFudGl0eTtcclxuICAgICAgY29ycmVjdGlvbkRldGFpbHMuZG9jdW1lbnRJZCA9IHJvdy5kb2N1bWVudElkO1xyXG4gICAgICBjb3JyZWN0aW9uRGV0YWlscy5kb2N1bWVudExpbmVOciA9IHJvdy5saW5lTnVtYmVyO1xyXG4gICAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5hbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlckNvcnJlY3Rpb24odGhpcy50cmFuc2FjdGlvbkluZm8uaWQsIHRoaXMudHJhbnNhY3Rpb25JbmZvLnZlcnNpb24sIHJlcXVlc3QpLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZ2V0R29vZHNBbGxvY2F0aW9uSGlzdG9yeSgpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuV2FyZWhvdXNlTG9jYXRpb25EaWFsb2coKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZUxpbmVTdGF0dXMucXVhbnRpdHlUb0FsbG9jYXRlID4gMCkge1xyXG4gICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1dhcmVob3VzZUxvY2F0aW9uKHRoaXMuYWxsb2NhdGlvbkRldGFpbHMud2FyZWhvdXNlTnIsIHRydWUsIHRydWUsIHRydWUsIHRoaXMudHJhbnNhY3Rpb25MaW5lKVxyXG4gICAgICAgIC50aGVuKCgpID0+IHRoaXMuYWxsb2NhdGlvbkRldGFpbHMubG9jYXRpb25OciA9ICg8YW55PnRoaXMudHJhbnNhY3Rpb25MaW5lKS5sb2NhdGlvbk5yKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCB0cmFuc2FjdGlvbkxpbmVTZXQoKSB7XHJcbiAgICB0aGlzLl9oYW5kbGVUcmFuc2FjdGlvbkxpbmVTZXQodGhpcy50cmFuc2FjdGlvbkxpbmUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGFuZGxlVHJhbnNhY3Rpb25MaW5lU2V0KHRyYW5zTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IHZvaWQge1xyXG4gICAgdGhpcy5hbGxvY2F0aW9uRGV0YWlscy5xdWFudGl0eVRvQWxsb2NhdGUgPSB0cmFuc0xpbmUucXVhbnRpdHlUb0FsbG9jYXRlO1xyXG4gICAgdGhpcy5hbGxvY2F0aW9uRGV0YWlscy53YXJlaG91c2VOciA9IHRyYW5zTGluZS53YXJlaG91c2VOdW1iZXI7XHJcbiAgICB0aGlzLmFsbG9jYXRpb25EZXRhaWxzLmxpbmVOciA9IHRyYW5zTGluZS5saW5lTnI7XHJcbiAgICB0aGlzLmdldEdvb2RzQWxsb2NhdGlvbkhpc3RvcnkoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,49 @@
1
+ import { Component, HostBinding, ViewEncapsulation } from "@angular/core";
2
+ import { TransactionBaseComponent } from "../core/base/transaction-base.component";
3
+ import { LayoutCode } from "@colijnit/transactionapi/build/enum/layout-code.enum";
4
+ import { LogisticalStateDetail } from "@colijnit/transactionapi/build/model/logistical-state-detail.bo";
5
+ export class TransactionLineSalesDeliveryComponent extends TransactionBaseComponent {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.goodsDeliveryHistory = [];
9
+ }
10
+ showClass() {
11
+ return true;
12
+ }
13
+ ngOnInit() {
14
+ this.transactionService.getHistoricDocuments(this.transactionInfo.id, LayoutCode.DeliveryNote)
15
+ .then((result) => {
16
+ this._parseReports(result);
17
+ });
18
+ }
19
+ _parseReports(reports) {
20
+ reports.forEach((report) => {
21
+ for (let line of report.reportTransactionLines) {
22
+ if (line.lineNr === this.transactionLine.lineNr) {
23
+ const detail = new LogisticalStateDetail();
24
+ detail.warehouseNumber = line.wareHouseNr;
25
+ detail.date = line.deliveryDate;
26
+ detail.quantity = line.amount;
27
+ detail.reference = line.reference;
28
+ detail.username = line.user;
29
+ this.goodsDeliveryHistory.push(detail);
30
+ }
31
+ }
32
+ });
33
+ }
34
+ }
35
+ TransactionLineSalesDeliveryComponent.decorators = [
36
+ { type: Component, args: [{
37
+ selector: "co-transaction-line-sales-delivery",
38
+ template: `
39
+ <co-transaction-line-delivery-history
40
+ [goodsDeliveryHistory]="goodsDeliveryHistory"
41
+ ></co-transaction-line-delivery-history>
42
+ `,
43
+ encapsulation: ViewEncapsulation.None
44
+ },] }
45
+ ];
46
+ TransactionLineSalesDeliveryComponent.propDecorators = {
47
+ showClass: [{ type: HostBinding, args: ["class.co-transaction-line-sales-delivery",] }]
48
+ };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zYWxlcy1kZWxpdmVyeS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lLXNhbGVzLWRlbGl2ZXJ5L3RyYW5zYWN0aW9uLWxpbmUtc2FsZXMtZGVsaXZlcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFVLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQUVoRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQVd0RyxNQUFNLE9BQU8scUNBQXNDLFNBQVEsd0JBQXdCO0lBVG5GOztRQVdTLHlCQUFvQixHQUE0QixFQUFFLENBQUM7SUE2QjVELENBQUM7SUExQlEsU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQzthQUMzRixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQXlCO1FBQzdDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUU7WUFDekMsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsc0JBQXNCLEVBQUU7Z0JBQzlDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtvQkFDL0MsTUFBTSxNQUFNLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztvQkFDbEUsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO29CQUMxQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQ2hDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDOUIsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUNsQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQzVCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3hDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXZDRixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9DQUFvQztnQkFDOUMsUUFBUSxFQUFFOzs7O0tBSVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7Ozt3QkFLRSxXQUFXLFNBQUMsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0xheW91dENvZGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9sYXlvdXQtY29kZS5lbnVtXCI7XHJcbmltcG9ydCB7SGlzdG9yaWNSZXBvcnR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvaGlzdG9yaWMtcmVwb3J0LmJvXCI7XHJcbmltcG9ydCB7TG9naXN0aWNhbFN0YXRlRGV0YWlsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2xvZ2lzdGljYWwtc3RhdGUtZGV0YWlsLmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmUtc2FsZXMtZGVsaXZlcnlcIixcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtZGVsaXZlcnktaGlzdG9yeVxyXG4gICAgICAgICAgW2dvb2RzRGVsaXZlcnlIaXN0b3J5XT1cImdvb2RzRGVsaXZlcnlIaXN0b3J5XCJcclxuICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWhpc3Rvcnk+XHJcbiAgICBgLFxyXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lU2FsZXNEZWxpdmVyeUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBnb29kc0RlbGl2ZXJ5SGlzdG9yeTogTG9naXN0aWNhbFN0YXRlRGV0YWlsW10gPSBbXTtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuY28tdHJhbnNhY3Rpb24tbGluZS1zYWxlcy1kZWxpdmVyeVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3MoKSB7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25TZXJ2aWNlLmdldEhpc3RvcmljRG9jdW1lbnRzKHRoaXMudHJhbnNhY3Rpb25JbmZvLmlkLCBMYXlvdXRDb2RlLkRlbGl2ZXJ5Tm90ZSlcclxuICAgICAgLnRoZW4oKHJlc3VsdCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX3BhcnNlUmVwb3J0cyhyZXN1bHQpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3BhcnNlUmVwb3J0cyhyZXBvcnRzOiBIaXN0b3JpY1JlcG9ydFtdKTogdm9pZCB7XHJcbiAgICByZXBvcnRzLmZvckVhY2goKHJlcG9ydDogSGlzdG9yaWNSZXBvcnQpID0+IHtcclxuICAgICAgZm9yIChsZXQgbGluZSBvZiByZXBvcnQucmVwb3J0VHJhbnNhY3Rpb25MaW5lcykge1xyXG4gICAgICAgIGlmIChsaW5lLmxpbmVOciA9PT0gdGhpcy50cmFuc2FjdGlvbkxpbmUubGluZU5yKSB7XHJcbiAgICAgICAgICBjb25zdCBkZXRhaWw6IExvZ2lzdGljYWxTdGF0ZURldGFpbCA9IG5ldyBMb2dpc3RpY2FsU3RhdGVEZXRhaWwoKTtcclxuICAgICAgICAgIGRldGFpbC53YXJlaG91c2VOdW1iZXIgPSBsaW5lLndhcmVIb3VzZU5yO1xyXG4gICAgICAgICAgZGV0YWlsLmRhdGUgPSBsaW5lLmRlbGl2ZXJ5RGF0ZTtcclxuICAgICAgICAgIGRldGFpbC5xdWFudGl0eSA9IGxpbmUuYW1vdW50O1xyXG4gICAgICAgICAgZGV0YWlsLnJlZmVyZW5jZSA9IGxpbmUucmVmZXJlbmNlO1xyXG4gICAgICAgICAgZGV0YWlsLnVzZXJuYW1lID0gbGluZS51c2VyO1xyXG4gICAgICAgICAgdGhpcy5nb29kc0RlbGl2ZXJ5SGlzdG9yeS5wdXNoKGRldGFpbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,21 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { TransactionLineSalesDeliveryComponent } from "./transaction-line-sales-delivery.component";
4
+ import { TransactionLineDeliveryHistoryModule } from "../transaction-line-delivery-history/transaction-line-delivery-history.module";
5
+ export class TransactionLineSalesDeliveryModule {
6
+ }
7
+ TransactionLineSalesDeliveryModule.decorators = [
8
+ { type: NgModule, args: [{
9
+ imports: [
10
+ CommonModule,
11
+ TransactionLineDeliveryHistoryModule
12
+ ],
13
+ declarations: [
14
+ TransactionLineSalesDeliveryComponent
15
+ ],
16
+ exports: [
17
+ TransactionLineSalesDeliveryComponent
18
+ ]
19
+ },] }
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zYWxlcy1kZWxpdmVyeS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lLXNhbGVzLWRlbGl2ZXJ5L3RyYW5zYWN0aW9uLWxpbmUtc2FsZXMtZGVsaXZlcnkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ2xHLE9BQU8sRUFDSCxvQ0FBb0MsRUFDdkMsTUFBTSwrRUFBK0UsQ0FBQztBQWN2RixNQUFNLE9BQU8sa0NBQWtDOzs7WUFaOUMsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLG9DQUFvQztpQkFDdkM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLHFDQUFxQztpQkFDeEM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLHFDQUFxQztpQkFDeEM7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2FsZXNEZWxpdmVyeUNvbXBvbmVudH0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tbGluZS1zYWxlcy1kZWxpdmVyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtcclxuICAgIFRyYW5zYWN0aW9uTGluZURlbGl2ZXJ5SGlzdG9yeU1vZHVsZVxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1saW5lLWRlbGl2ZXJ5LWhpc3RvcnkvdHJhbnNhY3Rpb24tbGluZS1kZWxpdmVyeS1oaXN0b3J5Lm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25MaW5lRGVsaXZlcnlIaXN0b3J5TW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgVHJhbnNhY3Rpb25MaW5lU2FsZXNEZWxpdmVyeUNvbXBvbmVudFxyXG4gICAgXSxcclxuICAgIGV4cG9ydHM6IFtcclxuICAgICAgICBUcmFuc2FjdGlvbkxpbmVTYWxlc0RlbGl2ZXJ5Q29tcG9uZW50XHJcbiAgICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVTYWxlc0RlbGl2ZXJ5TW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { Component, HostBinding, ViewEncapsulation } from "@angular/core";
2
+ import { TransactionBaseComponent } from "../core/base/transaction-base.component";
3
+ import { LogisticalStateDetail } from "@colijnit/transactionapi/build/model/logistical-state-detail.bo";
4
+ import { LayoutCode } from "@colijnit/transactionapi/build/enum/layout-code.enum";
5
+ export class TransactionLineSalesInvoiceComponent extends TransactionBaseComponent {
6
+ constructor() {
7
+ super(...arguments);
8
+ this.goodsInvoiceHistory = [];
9
+ }
10
+ showClass() {
11
+ return true;
12
+ }
13
+ ngOnInit() {
14
+ this.transactionService.getHistoricDocuments(this.transactionInfo.id, LayoutCode.Invoice)
15
+ .then((result) => {
16
+ this._parseReports(result);
17
+ });
18
+ }
19
+ _parseReports(reports) {
20
+ reports.forEach((report) => {
21
+ for (let line of report.reportTransactionLines) {
22
+ if (line.lineNr === this.transactionLine.lineNr) {
23
+ const detail = new LogisticalStateDetail();
24
+ detail.warehouseNumber = line.wareHouseNr;
25
+ detail.date = line.deliveryDate;
26
+ detail.quantity = line.amount;
27
+ detail.reference = line.reference;
28
+ detail.username = line.user;
29
+ this.goodsInvoiceHistory.push(detail);
30
+ }
31
+ }
32
+ });
33
+ }
34
+ }
35
+ TransactionLineSalesInvoiceComponent.decorators = [
36
+ { type: Component, args: [{
37
+ selector: "co-transaction-line-sales-invoice",
38
+ template: `
39
+ <co-transaction-line-invoice-history
40
+ [goodsInvoiceHistory]="goodsInvoiceHistory"
41
+ ></co-transaction-line-invoice-history>
42
+ `,
43
+ encapsulation: ViewEncapsulation.None
44
+ },] }
45
+ ];
46
+ TransactionLineSalesInvoiceComponent.propDecorators = {
47
+ showClass: [{ type: HostBinding, args: ["class.co-transaction-line-sales-invoice",] }]
48
+ };
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zYWxlcy1pbnZvaWNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2FsZXMtaW52b2ljZS90cmFuc2FjdGlvbi1saW5lLXNhbGVzLWludm9pY2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsV0FBVyxFQUFVLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLGlFQUFpRSxDQUFDO0FBQ3RHLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxzREFBc0QsQ0FBQztBQVloRixNQUFNLE9BQU8sb0NBQXFDLFNBQVEsd0JBQXdCO0lBVGxGOztRQVdTLHdCQUFtQixHQUE0QixFQUFFLENBQUM7SUE4QjNELENBQUM7SUEzQlEsU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQzthQUN0RixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNmLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sYUFBYSxDQUFDLE9BQXlCO1FBQzdDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFzQixFQUFFLEVBQUU7WUFDekMsS0FBSyxJQUFJLElBQUksSUFBSSxNQUFNLENBQUMsc0JBQXNCLEVBQUU7Z0JBQzlDLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRTtvQkFDL0MsTUFBTSxNQUFNLEdBQTBCLElBQUkscUJBQXFCLEVBQUUsQ0FBQztvQkFDbEUsTUFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO29CQUMxQyxNQUFNLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUM7b0JBQ2hDLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztvQkFDOUIsTUFBTSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO29CQUNsQyxNQUFNLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7b0JBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQ3ZDO2FBQ0Y7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OztZQXZDRixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG1DQUFtQztnQkFDN0MsUUFBUSxFQUFFOzs7O0tBSVQ7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDeEM7Ozt3QkFLRSxXQUFXLFNBQUMseUNBQXlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2NvcmUvYmFzZS90cmFuc2FjdGlvbi1iYXNlLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0xvZ2lzdGljYWxTdGF0ZURldGFpbH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9sb2dpc3RpY2FsLXN0YXRlLWRldGFpbC5ib1wiO1xyXG5pbXBvcnQge0xheW91dENvZGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9sYXlvdXQtY29kZS5lbnVtXCI7XHJcbmltcG9ydCB7SGlzdG9yaWNSZXBvcnR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvaGlzdG9yaWMtcmVwb3J0LmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmUtc2FsZXMtaW52b2ljZVwiLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICAgICAgICA8Y28tdHJhbnNhY3Rpb24tbGluZS1pbnZvaWNlLWhpc3RvcnlcclxuICAgICAgICAgIFtnb29kc0ludm9pY2VIaXN0b3J5XT1cImdvb2RzSW52b2ljZUhpc3RvcnlcIlxyXG4gICAgICAgID48L2NvLXRyYW5zYWN0aW9uLWxpbmUtaW52b2ljZS1oaXN0b3J5PlxyXG4gICAgYCxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZVNhbGVzSW52b2ljZUNvbXBvbmVudCBleHRlbmRzIFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIHB1YmxpYyBnb29kc0ludm9pY2VIaXN0b3J5OiBMb2dpc3RpY2FsU3RhdGVEZXRhaWxbXSA9IFtdO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5jby10cmFuc2FjdGlvbi1saW5lLXNhbGVzLWludm9pY2VcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uU2VydmljZS5nZXRIaXN0b3JpY0RvY3VtZW50cyh0aGlzLnRyYW5zYWN0aW9uSW5mby5pZCwgTGF5b3V0Q29kZS5JbnZvaWNlKVxyXG4gICAgICAudGhlbigocmVzdWx0KSA9PiB7XHJcbiAgICAgICAgdGhpcy5fcGFyc2VSZXBvcnRzKHJlc3VsdCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcGFyc2VSZXBvcnRzKHJlcG9ydHM6IEhpc3RvcmljUmVwb3J0W10pOiB2b2lkIHtcclxuICAgIHJlcG9ydHMuZm9yRWFjaCgocmVwb3J0OiBIaXN0b3JpY1JlcG9ydCkgPT4ge1xyXG4gICAgICBmb3IgKGxldCBsaW5lIG9mIHJlcG9ydC5yZXBvcnRUcmFuc2FjdGlvbkxpbmVzKSB7XHJcbiAgICAgICAgaWYgKGxpbmUubGluZU5yID09PSB0aGlzLnRyYW5zYWN0aW9uTGluZS5saW5lTnIpIHtcclxuICAgICAgICAgIGNvbnN0IGRldGFpbDogTG9naXN0aWNhbFN0YXRlRGV0YWlsID0gbmV3IExvZ2lzdGljYWxTdGF0ZURldGFpbCgpO1xyXG4gICAgICAgICAgZGV0YWlsLndhcmVob3VzZU51bWJlciA9IGxpbmUud2FyZUhvdXNlTnI7XHJcbiAgICAgICAgICBkZXRhaWwuZGF0ZSA9IGxpbmUuZGVsaXZlcnlEYXRlO1xyXG4gICAgICAgICAgZGV0YWlsLnF1YW50aXR5ID0gbGluZS5hbW91bnQ7XHJcbiAgICAgICAgICBkZXRhaWwucmVmZXJlbmNlID0gbGluZS5yZWZlcmVuY2U7XHJcbiAgICAgICAgICBkZXRhaWwudXNlcm5hbWUgPSBsaW5lLnVzZXI7XHJcbiAgICAgICAgICB0aGlzLmdvb2RzSW52b2ljZUhpc3RvcnkucHVzaChkZXRhaWwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { NgModule } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { TransactionLineSalesInvoiceComponent } from "./transaction-line-sales-invoice.component";
4
+ import { TransactionLineInvoiceHistoryModule } from "../transaction-line-invoice-history/transaction-line-invoice-history.module";
5
+ export class TransactionLineSalesInvoiceModule {
6
+ }
7
+ TransactionLineSalesInvoiceModule.decorators = [
8
+ { type: NgModule, args: [{
9
+ imports: [
10
+ CommonModule,
11
+ TransactionLineInvoiceHistoryModule
12
+ ],
13
+ declarations: [
14
+ TransactionLineSalesInvoiceComponent
15
+ ],
16
+ exports: [
17
+ TransactionLineSalesInvoiceComponent
18
+ ]
19
+ },] }
20
+ ];
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1zYWxlcy1pbnZvaWNlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY29tcG9uZW50L3RyYW5zYWN0aW9uLWxpbmUtc2FsZXMtaW52b2ljZS90cmFuc2FjdGlvbi1saW5lLXNhbGVzLWludm9pY2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ2hHLE9BQU8sRUFDSCxtQ0FBbUMsRUFDdEMsTUFBTSw2RUFBNkUsQ0FBQztBQWNyRixNQUFNLE9BQU8saUNBQWlDOzs7WUFaN0MsUUFBUSxTQUFDO2dCQUNOLE9BQU8sRUFBRTtvQkFDTCxZQUFZO29CQUNaLG1DQUFtQztpQkFDdEM7Z0JBQ0QsWUFBWSxFQUFFO29CQUNWLG9DQUFvQztpQkFDdkM7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLG9DQUFvQztpQkFDdkM7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lU2FsZXNJbnZvaWNlQ29tcG9uZW50fSBmcm9tIFwiLi90cmFuc2FjdGlvbi1saW5lLXNhbGVzLWludm9pY2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7XHJcbiAgICBUcmFuc2FjdGlvbkxpbmVJbnZvaWNlSGlzdG9yeU1vZHVsZVxyXG59IGZyb20gXCIuLi90cmFuc2FjdGlvbi1saW5lLWludm9pY2UtaGlzdG9yeS90cmFuc2FjdGlvbi1saW5lLWludm9pY2UtaGlzdG9yeS5tb2R1bGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uTGluZUludm9pY2VIaXN0b3J5TW9kdWxlXHJcbiAgICBdLFxyXG4gICAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICAgICAgVHJhbnNhY3Rpb25MaW5lU2FsZXNJbnZvaWNlQ29tcG9uZW50XHJcbiAgICBdLFxyXG4gICAgZXhwb3J0czogW1xyXG4gICAgICAgIFRyYW5zYWN0aW9uTGluZVNhbGVzSW52b2ljZUNvbXBvbmVudFxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lU2FsZXNJbnZvaWNlTW9kdWxlIHtcclxufVxyXG4iXX0=