@colijnit/transaction 12.1.79 → 12.1.80

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 (1928) hide show
  1. package/README.md +10 -13
  2. package/bundles/colijnit-transaction.umd.js +25560 -0
  3. package/bundles/colijnit-transaction.umd.js.map +1 -0
  4. package/colijnit-transaction.d.ts +350 -0
  5. package/colijnit-transaction.metadata.json +1 -0
  6. package/esm2015/colijnit-transaction.js +351 -0
  7. package/esm2015/lib/assets/dictionary/text.properties.js +751 -0
  8. package/esm2015/lib/cache/cache-field.js +75 -0
  9. package/esm2015/lib/cache/parameter-cache-field.js +54 -0
  10. package/esm2015/lib/cache/service/business-object-cache-manager.service.js +150 -0
  11. package/esm2015/lib/cache/service/select-multiple-cache.service.js +38 -0
  12. package/esm2015/lib/cache/service/select-multiple-parameterized-cache.service.js +47 -0
  13. package/esm2015/lib/cache/service/select-single-cache.service.js +30 -0
  14. package/esm2015/lib/component/animated-checkbox/animated-checkbox.component.js +27 -0
  15. package/esm2015/lib/component/animated-checkbox/animated-checkbox.module.js +21 -0
  16. package/esm2015/lib/component/avatar/avatar.component.js +106 -0
  17. package/esm2015/lib/component/avatar/avatar.module.js +21 -0
  18. package/esm2015/lib/component/checkout/checkout-login/checkout-login.component.js +106 -0
  19. package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +47 -0
  20. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +267 -0
  21. package/esm2015/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.js +101 -0
  22. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +235 -0
  23. package/esm2015/lib/component/checkout/checkout.component.js +180 -0
  24. package/esm2015/lib/component/checkout/checkout.module.js +124 -0
  25. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +67 -0
  26. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.module.js +25 -0
  27. package/esm2015/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.js +83 -0
  28. package/esm2015/lib/component/core/base/components/characteristic-answer/characteristic-answer.module.js +26 -0
  29. package/esm2015/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.js +41 -0
  30. package/esm2015/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.js +21 -0
  31. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.js +47 -0
  32. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.js +19 -0
  33. package/esm2015/lib/component/core/base/components/warehouse/warehouse.component.js +64 -0
  34. package/esm2015/lib/component/core/base/components/warehouse/warehouse.module.js +26 -0
  35. package/esm2015/lib/component/core/base/dialog-base.component.js +6 -0
  36. package/esm2015/lib/component/core/base/dialog-transaction-base.component.js +40 -0
  37. package/esm2015/lib/component/core/base/dynamic-base-component.js +8 -0
  38. package/esm2015/lib/component/core/base/transaction-base.component.js +160 -0
  39. package/esm2015/lib/component/core/base/transaction-filter-base.component.js +61 -0
  40. package/esm2015/lib/component/core/base/transaction-filter-content-base.component.js +44 -0
  41. package/esm2015/lib/component/core/base/transaction-filter-popup-base.component.js +103 -0
  42. package/esm2015/lib/component/core/base/transaction-grid-base.component.js +51 -0
  43. package/esm2015/lib/component/core/base/transaction-input-field-base.component.js +55 -0
  44. package/esm2015/lib/component/core/base/transaction-search-grid-base.component.js +25 -0
  45. package/esm2015/lib/component/core/base/transaction-search-tile-base.component.js +28 -0
  46. package/esm2015/lib/component/core/core.module.js +50 -0
  47. package/esm2015/lib/component/core/directive/lazy-render-master.directive.js +43 -0
  48. package/esm2015/lib/component/core/directive/lazy-render.directive.js +29 -0
  49. package/esm2015/lib/component/core/enum/app-popup-button-type.enum.js +11 -0
  50. package/esm2015/lib/component/core/enum/app-popup-type.enum.js +8 -0
  51. package/esm2015/lib/component/core/icon/icon.component.js +31 -0
  52. package/esm2015/lib/component/core/image-display/image-display.component.js +29 -0
  53. package/esm2015/lib/component/core/relation/customer-groups.component.js +46 -0
  54. package/esm2015/lib/component/core/stock-status-indicator/stock-status-indicator.component.js +24 -0
  55. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +47 -0
  56. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.module.js +26 -0
  57. package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +47 -0
  58. package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.module.js +23 -0
  59. package/esm2015/lib/component/dialog/dialog-header-search/dialog-header-search.component.js +37 -0
  60. package/esm2015/lib/component/dialog/dialog-header-search/dialog-header-search.module.js +23 -0
  61. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.js +37 -0
  62. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.js +28 -0
  63. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.js +78 -0
  64. package/esm2015/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.module.js +29 -0
  65. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.component.js +36 -0
  66. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.module.js +28 -0
  67. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.component.js +37 -0
  68. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.module.js +28 -0
  69. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.js +95 -0
  70. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.js +36 -0
  71. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.js +36 -0
  72. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.js +28 -0
  73. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.js +37 -0
  74. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.js +28 -0
  75. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.js +37 -0
  76. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.js +28 -0
  77. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.js +37 -0
  78. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.module.js +28 -0
  79. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.js +80 -0
  80. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.module.js +31 -0
  81. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.component.js +44 -0
  82. package/esm2015/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.module.js +28 -0
  83. package/esm2015/lib/component/discount/discount.component.js +110 -0
  84. package/esm2015/lib/component/discount/discount.module.js +29 -0
  85. package/esm2015/lib/component/down-payment/down-payment.component.js +71 -0
  86. package/esm2015/lib/component/down-payment/down-payment.module.js +27 -0
  87. package/esm2015/lib/component/editable-label/editable-label.component.js +65 -0
  88. package/esm2015/lib/component/editable-label/editable-label.module.js +21 -0
  89. package/esm2015/lib/component/loader/loader.component.js +51 -0
  90. package/esm2015/lib/component/loader/loader.module.js +19 -0
  91. package/esm2015/lib/component/payment/payment.component.js +242 -0
  92. package/esm2015/lib/component/payment/payment.module.js +37 -0
  93. package/esm2015/lib/component/payment-qr-code/payment-qr-code.component.js +23 -0
  94. package/esm2015/lib/component/payment-qr-code/payment-qr-code.module.js +23 -0
  95. package/esm2015/lib/component/payment-tile/payment-tile.component.js +34 -0
  96. package/esm2015/lib/component/payment-tile/payment-tile.module.js +25 -0
  97. package/esm2015/lib/component/quick-send-button/quick-send-button.component.js +50 -0
  98. package/esm2015/lib/component/quick-send-button/quick-send-button.module.js +27 -0
  99. package/esm2015/lib/component/relation/relation-address/relation-address.component.js +111 -0
  100. package/esm2015/lib/component/relation/relation-address/relation-address.module.js +29 -0
  101. package/esm2015/lib/component/relation/relation-address-select/relation-address-select.component.js +145 -0
  102. package/esm2015/lib/component/relation/relation-address-select/relation-address-select.module.js +33 -0
  103. package/esm2015/lib/component/relation/relation-address-tile/relation-address-tile.component.js +65 -0
  104. package/esm2015/lib/component/relation/relation-address-tile/relation-address-tile.module.js +32 -0
  105. package/esm2015/lib/component/relation/relation-addresses/relation-addresses.component.js +112 -0
  106. package/esm2015/lib/component/relation/relation-addresses/relation-addresses.module.js +34 -0
  107. package/esm2015/lib/component/relation/relation-base.component.js +31 -0
  108. package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.component.js +65 -0
  109. package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.module.js +24 -0
  110. package/esm2015/lib/component/relation/relation-general/relation-general.component.js +231 -0
  111. package/esm2015/lib/component/relation/relation-general/relation-general.module.js +27 -0
  112. package/esm2015/lib/component/relation/relation-preferences/relation-preferences.component.js +68 -0
  113. package/esm2015/lib/component/relation/relation-preferences/relation-preferences.module.js +21 -0
  114. package/esm2015/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.js +30 -0
  115. package/esm2015/lib/component/relation/relation-suggestions-list/relation-suggestions-list.module.js +21 -0
  116. package/esm2015/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.js +33 -0
  117. package/esm2015/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.module.js +19 -0
  118. package/esm2015/lib/component/relation/relation-type/relation-type.component.js +47 -0
  119. package/esm2015/lib/component/relation/relation-type/relation-type.module.js +23 -0
  120. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +165 -0
  121. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.module.js +34 -0
  122. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +126 -0
  123. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +30 -0
  124. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +69 -0
  125. package/esm2015/lib/component/shopping-cart/shopping-cart.module.js +27 -0
  126. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +58 -0
  127. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.module.js +29 -0
  128. package/esm2015/lib/component/stepper/component/stepper-step.component.js +40 -0
  129. package/esm2015/lib/component/stepper/stepper.component.js +126 -0
  130. package/esm2015/lib/component/stepper/stepper.module.js +29 -0
  131. package/esm2015/lib/component/tile/tile.component.js +32 -0
  132. package/esm2015/lib/component/tile/tile.module.js +19 -0
  133. package/esm2015/lib/component/toast/toast.component.js +36 -0
  134. package/esm2015/lib/component/toast/toast.module.js +19 -0
  135. package/esm2015/lib/component/transaction/transaction.component.js +174 -0
  136. package/esm2015/lib/component/transaction/transaction.module.js +67 -0
  137. package/esm2015/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.component.js +81 -0
  138. package/esm2015/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.module.js +25 -0
  139. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.js +37 -0
  140. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.js +73 -0
  141. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.js +40 -0
  142. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.component.js +57 -0
  143. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.module.js +35 -0
  144. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.js +137 -0
  145. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.js +34 -0
  146. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +113 -0
  147. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.js +33 -0
  148. package/esm2015/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.component.js +94 -0
  149. package/esm2015/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.module.js +24 -0
  150. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +55 -0
  151. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.js +30 -0
  152. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.component.js +82 -0
  153. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.module.js +19 -0
  154. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.js +90 -0
  155. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.js +28 -0
  156. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.js +117 -0
  157. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.js +48 -0
  158. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.js +51 -0
  159. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.js +29 -0
  160. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.js +155 -0
  161. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.js +34 -0
  162. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +50 -0
  163. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.module.js +31 -0
  164. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +135 -0
  165. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.js +48 -0
  166. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +56 -0
  167. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.js +33 -0
  168. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +122 -0
  169. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +35 -0
  170. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +229 -0
  171. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +46 -0
  172. package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.js +62 -0
  173. package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.module.js +23 -0
  174. package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +78 -0
  175. package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.module.js +26 -0
  176. package/esm2015/lib/component/transaction-header-fields/transaction-header-definitive.component.js +48 -0
  177. package/esm2015/lib/component/transaction-header-fields/transaction-header-definitive.module.js +23 -0
  178. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-date.component.js +53 -0
  179. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-date.module.js +23 -0
  180. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.component.js +97 -0
  181. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-method.module.js +29 -0
  182. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.js +74 -0
  183. package/esm2015/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.module.js +23 -0
  184. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-amount.component.js +59 -0
  185. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-amount.module.js +23 -0
  186. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-button.component.js +57 -0
  187. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-button.module.js +25 -0
  188. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.js +59 -0
  189. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-percentage.module.js +23 -0
  190. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.js +60 -0
  191. package/esm2015/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.module.js +23 -0
  192. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.js +58 -0
  193. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-amount.module.js +23 -0
  194. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.js +58 -0
  195. package/esm2015/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.module.js +23 -0
  196. package/esm2015/lib/component/transaction-header-fields/transaction-header-marketing.component.js +51 -0
  197. package/esm2015/lib/component/transaction-header-fields/transaction-header-marketing.module.js +26 -0
  198. package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.js +54 -0
  199. package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.module.js +23 -0
  200. package/esm2015/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.js +61 -0
  201. package/esm2015/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.module.js +23 -0
  202. package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.component.js +57 -0
  203. package/esm2015/lib/component/transaction-header-fields/transaction-header-reference.module.js +23 -0
  204. package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.component.js +57 -0
  205. package/esm2015/lib/component/transaction-header-fields/transaction-header-relation-reference.module.js +23 -0
  206. package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.component.js +57 -0
  207. package/esm2015/lib/component/transaction-header-fields/transaction-header-remarks.module.js +23 -0
  208. package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.js +49 -0
  209. package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.js +23 -0
  210. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +92 -0
  211. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.module.js +26 -0
  212. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/service/transaction-allocate-goods.service.js +63 -0
  213. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.js +111 -0
  214. package/esm2015/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.module.js +33 -0
  215. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.component.js +110 -0
  216. package/esm2015/lib/component/transaction-line/transaction-line/transaction-line.module.js +21 -0
  217. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.js +15 -0
  218. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.js +124 -0
  219. package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.js +36 -0
  220. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +93 -0
  221. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.js +63 -0
  222. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +103 -0
  223. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.js +46 -0
  224. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/service/transaction-receive-goods.service.js +68 -0
  225. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.js +122 -0
  226. package/esm2015/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.module.js +36 -0
  227. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +192 -0
  228. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.js +30 -0
  229. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.js +55 -0
  230. package/esm2015/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.js +25 -0
  231. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.component.js +52 -0
  232. package/esm2015/lib/component/transaction-line-fields/transaction-line-amount.module.js +21 -0
  233. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.component.js +57 -0
  234. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.module.js +23 -0
  235. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +56 -0
  236. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.module.js +26 -0
  237. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-button.component.js +63 -0
  238. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-button.module.js +23 -0
  239. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.js +33 -0
  240. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.js +23 -0
  241. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +64 -0
  242. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.module.js +23 -0
  243. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +53 -0
  244. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.module.js +26 -0
  245. package/esm2015/lib/component/transaction-line-fields/transaction-line-description.component.js +68 -0
  246. package/esm2015/lib/component/transaction-line-fields/transaction-line-description.module.js +24 -0
  247. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.component.js +57 -0
  248. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.module.js +23 -0
  249. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-button.component.js +58 -0
  250. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-button.module.js +25 -0
  251. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.component.js +57 -0
  252. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.module.js +23 -0
  253. package/esm2015/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.js +90 -0
  254. package/esm2015/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.module.js +23 -0
  255. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +52 -0
  256. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.module.js +26 -0
  257. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.component.js +41 -0
  258. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.module.js +23 -0
  259. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.js +57 -0
  260. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.js +23 -0
  261. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.component.js +55 -0
  262. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.module.js +23 -0
  263. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.component.js +57 -0
  264. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.module.js +23 -0
  265. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +60 -0
  266. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.module.js +28 -0
  267. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.component.js +57 -0
  268. package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.module.js +25 -0
  269. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat-button.component.js +60 -0
  270. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat-button.module.js +21 -0
  271. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +49 -0
  272. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.module.js +28 -0
  273. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.js +65 -0
  274. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-button.module.js +23 -0
  275. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.js +58 -0
  276. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.module.js +21 -0
  277. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.js +48 -0
  278. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse-location.module.js +23 -0
  279. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +52 -0
  280. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.module.js +27 -0
  281. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.component.js +23 -0
  282. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.module.js +21 -0
  283. package/esm2015/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.js +99 -0
  284. package/esm2015/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.module.js +27 -0
  285. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +118 -0
  286. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +41 -0
  287. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +114 -0
  288. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.js +60 -0
  289. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +119 -0
  290. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.js +35 -0
  291. package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.component.js +81 -0
  292. package/esm2015/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.js +25 -0
  293. package/esm2015/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.js +95 -0
  294. package/esm2015/lib/component/transaction-line-statusbar/transaction-line-statusbar.module.js +23 -0
  295. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +172 -0
  296. package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +32 -0
  297. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.js +87 -0
  298. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.js +41 -0
  299. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.js +69 -0
  300. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.module.js +25 -0
  301. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.js +44 -0
  302. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.js +29 -0
  303. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.js +65 -0
  304. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.module.js +28 -0
  305. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.js +56 -0
  306. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.js +28 -0
  307. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.js +137 -0
  308. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.js +31 -0
  309. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.js +128 -0
  310. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.module.js +29 -0
  311. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.js +91 -0
  312. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.js +27 -0
  313. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.js +110 -0
  314. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.js +78 -0
  315. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.js +30 -0
  316. package/esm2015/lib/component/transaction-search/service/filter-request.service.js +172 -0
  317. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +114 -0
  318. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.js +96 -0
  319. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.module.js +19 -0
  320. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.js +56 -0
  321. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.js +34 -0
  322. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.js +56 -0
  323. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.js +34 -0
  324. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.js +42 -0
  325. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.js +19 -0
  326. package/esm2015/lib/component/transaction-search/transaction-filter-content/enum/search-placeholder.enum.js +27 -0
  327. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.js +143 -0
  328. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.js +29 -0
  329. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.js +236 -0
  330. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.js +35 -0
  331. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.js +225 -0
  332. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.js +34 -0
  333. 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 +133 -0
  334. 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.module.js +29 -0
  335. 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 +235 -0
  336. 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.module.js +35 -0
  337. 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 +248 -0
  338. 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.module.js +34 -0
  339. package/esm2015/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.js +55 -0
  340. package/esm2015/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.js +26 -0
  341. package/esm2015/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.js +64 -0
  342. package/esm2015/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.module.js +23 -0
  343. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.js +81 -0
  344. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.module.js +19 -0
  345. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.js +84 -0
  346. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.js +25 -0
  347. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.js +84 -0
  348. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.js +27 -0
  349. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.js +126 -0
  350. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.js +27 -0
  351. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +119 -0
  352. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +44 -0
  353. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.js +67 -0
  354. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.js +29 -0
  355. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.js +74 -0
  356. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.js +32 -0
  357. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.js +89 -0
  358. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.js +19 -0
  359. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.component.js +79 -0
  360. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.module.js +23 -0
  361. package/esm2015/lib/component/transaction-search/transaction-search.component.js +146 -0
  362. package/esm2015/lib/component/transaction-search/transaction-search.module.js +32 -0
  363. package/esm2015/lib/component/transaction-side-panel-edit-request-details/components/allocation-request.component.js +139 -0
  364. package/esm2015/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.js +194 -0
  365. package/esm2015/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.component.js +51 -0
  366. package/esm2015/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.module.js +35 -0
  367. package/esm2015/lib/component/transaction-tile/transaction-tile.component.js +116 -0
  368. package/esm2015/lib/component/transaction-tile/transaction-tile.module.js +30 -0
  369. package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +59 -0
  370. package/esm2015/lib/component/transaction-totals/transaction-totals.module.js +25 -0
  371. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.component.js +61 -0
  372. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.module.js +23 -0
  373. package/esm2015/lib/enum/content-view-mode.enum.js +11 -0
  374. package/esm2015/lib/enum/direction.enum.js +9 -0
  375. package/esm2015/lib/enum/icon.enum.js +84 -0
  376. package/esm2015/lib/enum/language-code.enum.js +8 -0
  377. package/esm2015/lib/enum/order-discount-type.enum.js +7 -0
  378. package/esm2015/lib/enum/position-grid-row.enum.js +6 -0
  379. package/esm2015/lib/enum/search-view-mode.enum.js +7 -0
  380. package/esm2015/lib/enum/searchbar-view-mode.enum.js +7 -0
  381. package/esm2015/lib/enum/status-type.enum.js +7 -0
  382. package/esm2015/lib/enum/time-size.type.js +10 -0
  383. package/esm2015/lib/enum/transaction-type-category.enum.js +17 -0
  384. package/esm2015/lib/interface/dialog-response.interface.js +2 -0
  385. package/esm2015/lib/model/down-payment-view-model.js +7 -0
  386. package/esm2015/lib/model/extended-transaction-line-view-model.js +4 -0
  387. package/esm2015/lib/model/filter-item.viewmodel.js +9 -0
  388. package/esm2015/lib/model/filter-viewmodel.js +11 -0
  389. package/esm2015/lib/model/icon-svg.js +83 -0
  390. package/esm2015/lib/model/payment.viewmodel.js +6 -0
  391. package/esm2015/lib/model/received-goods-view-model.js +11 -0
  392. package/esm2015/lib/model/relation-any-type.js +3 -0
  393. package/esm2015/lib/model/standard-text.js +3 -0
  394. package/esm2015/lib/model/text-value-container.js +3 -0
  395. package/esm2015/lib/model/transaction-bar-button.js +2 -0
  396. package/esm2015/lib/model/transaction-search-result.js +3 -0
  397. package/esm2015/lib/pipe/append.pipe.js +17 -0
  398. package/esm2015/lib/pipe/co-currency.pipe.js +47 -0
  399. package/esm2015/lib/pipe/date-duration.pipe.js +57 -0
  400. package/esm2015/lib/pipe/delivery-time.pipe.js +36 -0
  401. package/esm2015/lib/pipe/localize.pipe.js +28 -0
  402. package/esm2015/lib/pipe/pipe.module.js +37 -0
  403. package/esm2015/lib/pipe/safe-html.pipe.js +19 -0
  404. package/esm2015/lib/pipe/safe-style.pipe.js +19 -0
  405. package/esm2015/lib/service/article-connector.service.js +106 -0
  406. package/esm2015/lib/service/article.service.js +33 -0
  407. package/esm2015/lib/service/dialog.service.js +137 -0
  408. package/esm2015/lib/service/dictionary.service.js +76 -0
  409. package/esm2015/lib/service/dynamic-component.service.js +93 -0
  410. package/esm2015/lib/service/error.service.js +68 -0
  411. package/esm2015/lib/service/icon-cache.service.js +51 -0
  412. package/esm2015/lib/service/options.service.js +71 -0
  413. package/esm2015/lib/service/payment.service.js +105 -0
  414. package/esm2015/lib/service/pending-reason.service.js +337 -0
  415. package/esm2015/lib/service/relation-connector.service.js +222 -0
  416. package/esm2015/lib/service/relation.service.js +158 -0
  417. package/esm2015/lib/service/shared-connector.service.js +53 -0
  418. package/esm2015/lib/service/shared.service.js +42 -0
  419. package/esm2015/lib/service/transaction-connector-adapter.service.js +1830 -0
  420. package/esm2015/lib/service/transaction-connector.service.js +670 -0
  421. package/esm2015/lib/service/transaction-event.service.js +35 -0
  422. package/esm2015/lib/service/transaction-image.service.js +53 -0
  423. package/esm2015/lib/service/transaction-mapping.service.js +178 -0
  424. package/esm2015/lib/service/transaction.service.js +793 -0
  425. package/esm2015/public_api.js +46 -0
  426. package/fesm2015/colijnit-transaction.js +25050 -0
  427. package/fesm2015/colijnit-transaction.js.map +1 -0
  428. package/lib/assets/dictionary/text.properties.d.ts +3 -0
  429. package/lib/cache/cache-field.d.ts +25 -0
  430. package/lib/cache/parameter-cache-field.d.ts +11 -0
  431. package/lib/cache/service/business-object-cache-manager.service.d.ts +58 -0
  432. package/lib/cache/service/select-multiple-cache.service.d.ts +15 -0
  433. package/lib/cache/service/select-multiple-parameterized-cache.service.d.ts +19 -0
  434. package/lib/cache/service/select-single-cache.service.d.ts +12 -0
  435. package/lib/component/animated-checkbox/animated-checkbox.component.d.ts +5 -0
  436. package/lib/component/animated-checkbox/animated-checkbox.module.d.ts +2 -0
  437. package/{projects/transaction/src/lib → lib}/component/animated-checkbox/style/_layout.scss +0 -0
  438. package/{projects/transaction/src/lib → lib}/component/animated-checkbox/style/_material-definition.scss +0 -0
  439. package/{projects/transaction/src/lib → lib}/component/animated-checkbox/style/_theme.scss +0 -0
  440. package/{projects/transaction/src/lib → lib}/component/animated-checkbox/style/material.scss +0 -0
  441. package/lib/component/avatar/avatar.component.d.ts +31 -0
  442. package/lib/component/avatar/avatar.module.d.ts +2 -0
  443. package/{projects/transaction/src/lib → lib}/component/avatar/style/_layout.scss +0 -0
  444. package/{projects/transaction/src/lib → lib}/component/avatar/style/_material-definition.scss +0 -0
  445. package/{projects/transaction/src/lib → lib}/component/avatar/style/_theme.scss +0 -0
  446. package/{projects/transaction/src/lib → lib}/component/avatar/style/material.scss +0 -0
  447. package/lib/component/checkout/checkout-login/checkout-login.component.d.ts +21 -0
  448. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-login/checkout-login.component.scss +0 -0
  449. package/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +11 -0
  450. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
  451. package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +65 -0
  452. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +0 -0
  453. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-delivery-edit/style/_material-definition.scss +0 -0
  454. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-delivery-edit/style/_theme.scss +0 -0
  455. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-delivery-edit/style/material.scss +0 -0
  456. package/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.d.ts +21 -0
  457. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-payment/style/_layout.scss +0 -0
  458. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-payment/style/_material-definition.scss +0 -0
  459. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-payment/style/_theme.scss +0 -0
  460. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-payment/style/material.scss +0 -0
  461. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +44 -0
  462. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-relation-edit/style/_layout.scss +0 -0
  463. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +0 -0
  464. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-relation-edit/style/_theme.scss +0 -0
  465. package/{projects/transaction/src/lib → lib}/component/checkout/checkout-overview-relation-edit/style/material.scss +0 -0
  466. package/lib/component/checkout/checkout.component.d.ts +48 -0
  467. package/lib/component/checkout/checkout.module.d.ts +2 -0
  468. package/{projects/transaction/src/lib → lib}/component/checkout/style/_layout.scss +0 -0
  469. package/{projects/transaction/src/lib → lib}/component/checkout/style/_material-definition.scss +0 -0
  470. package/{projects/transaction/src/lib → lib}/component/checkout/style/_theme.scss +0 -0
  471. package/{projects/transaction/src/lib → lib}/component/checkout/style/material.scss +0 -0
  472. package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +18 -0
  473. package/lib/component/confirmation-dialog/confirmation-dialog.module.d.ts +2 -0
  474. package/{projects/transaction/src/lib → lib}/component/confirmation-dialog/style/_layout.scss +0 -0
  475. package/{projects/transaction/src/lib → lib}/component/confirmation-dialog/style/_material-definition.scss +0 -0
  476. package/{projects/transaction/src/lib → lib}/component/confirmation-dialog/style/_theme.scss +0 -0
  477. package/{projects/transaction/src/lib → lib}/component/confirmation-dialog/style/material.scss +0 -0
  478. package/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.d.ts +21 -0
  479. package/lib/component/core/base/components/characteristic-answer/characteristic-answer.module.d.ts +2 -0
  480. package/{projects/transaction/src/lib → lib}/component/core/base/components/characteristic-answer/style/_layout.scss +0 -0
  481. package/{projects/transaction/src/lib → lib}/component/core/base/components/characteristic-answer/style/_material-definition.scss +0 -0
  482. package/{projects/transaction/src/lib → lib}/component/core/base/components/characteristic-answer/style/_theme.scss +0 -0
  483. package/{projects/transaction/src/lib → lib}/component/core/base/components/characteristic-answer/style/material.scss +0 -0
  484. package/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.d.ts +13 -0
  485. package/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.d.ts +2 -0
  486. package/{projects/transaction/src/lib → lib}/component/core/base/components/default-ok-cancel-buttons/style/_layout.scss +0 -0
  487. package/{projects/transaction/src/lib → lib}/component/core/base/components/default-ok-cancel-buttons/style/_material-definition.scss +0 -0
  488. package/{projects/transaction/src/lib → lib}/component/core/base/components/default-ok-cancel-buttons/style/_theme.scss +0 -0
  489. package/{projects/transaction/src/lib → lib}/component/core/base/components/default-ok-cancel-buttons/style/material.scss +0 -0
  490. package/{projects/transaction/src/lib → lib}/component/core/base/components/transaction-header-block/style/_layout.scss +0 -0
  491. package/{projects/transaction/src/lib → lib}/component/core/base/components/transaction-header-block/style/_material-definition.scss +0 -0
  492. package/{projects/transaction/src/lib → lib}/component/core/base/components/transaction-header-block/style/_theme.scss +0 -0
  493. package/{projects/transaction/src/lib → lib}/component/core/base/components/transaction-header-block/style/material.scss +0 -0
  494. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.d.ts +10 -0
  495. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.d.ts +2 -0
  496. package/{projects/transaction/src/lib → lib}/component/core/base/components/warehouse/style/_layout.scss +0 -0
  497. package/{projects/transaction/src/lib → lib}/component/core/base/components/warehouse/style/_material-definition.scss +0 -0
  498. package/{projects/transaction/src/lib → lib}/component/core/base/components/warehouse/style/_theme.scss +0 -0
  499. package/{projects/transaction/src/lib → lib}/component/core/base/components/warehouse/style/material.scss +0 -0
  500. package/lib/component/core/base/components/warehouse/warehouse.component.d.ts +20 -0
  501. package/lib/component/core/base/components/warehouse/warehouse.module.d.ts +2 -0
  502. package/lib/component/core/base/dialog-base.component.d.ts +4 -0
  503. package/lib/component/core/base/dialog-transaction-base.component.d.ts +16 -0
  504. package/lib/component/core/base/dynamic-base-component.d.ts +3 -0
  505. package/lib/component/core/base/transaction-base.component.d.ts +56 -0
  506. package/lib/component/core/base/transaction-filter-base.component.d.ts +26 -0
  507. package/lib/component/core/base/transaction-filter-content-base.component.d.ts +21 -0
  508. package/lib/component/core/base/transaction-filter-popup-base.component.d.ts +40 -0
  509. package/lib/component/core/base/transaction-grid-base.component.d.ts +25 -0
  510. package/lib/component/core/base/transaction-input-field-base.component.d.ts +15 -0
  511. package/lib/component/core/base/transaction-search-grid-base.component.d.ts +11 -0
  512. package/lib/component/core/base/transaction-search-tile-base.component.d.ts +13 -0
  513. package/lib/component/core/core.module.d.ts +2 -0
  514. package/lib/component/core/directive/lazy-render-master.directive.d.ts +10 -0
  515. package/lib/component/core/directive/lazy-render.directive.d.ts +10 -0
  516. package/lib/component/core/enum/app-popup-button-type.enum.d.ts +9 -0
  517. package/lib/component/core/enum/app-popup-type.enum.d.ts +6 -0
  518. package/lib/component/core/icon/icon.component.d.ts +12 -0
  519. package/{projects/transaction/src/lib → lib}/component/core/icon/icon.component.scss +0 -0
  520. package/lib/component/core/image-display/image-display.component.d.ts +5 -0
  521. package/{projects/transaction/src/lib → lib}/component/core/image-display/style/_layout.scss +0 -0
  522. package/{projects/transaction/src/lib → lib}/component/core/image-display/style/_material-definition.scss +0 -0
  523. package/{projects/transaction/src/lib → lib}/component/core/image-display/style/_theme.scss +0 -0
  524. package/{projects/transaction/src/lib → lib}/component/core/image-display/style/material.scss +0 -0
  525. package/lib/component/core/relation/customer-groups.component.d.ts +14 -0
  526. package/{projects/transaction/src/lib → lib}/component/core/relation/relation-customer-groups.component.scss +0 -0
  527. package/lib/component/core/stock-status-indicator/stock-status-indicator.component.d.ts +5 -0
  528. package/{projects/transaction/src/lib → lib}/component/core/stock-status-indicator/stock-status-indicator.component.scss +0 -0
  529. package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +10 -0
  530. package/lib/component/delivery-type-tile/delivery-type-tile.module.d.ts +2 -0
  531. package/{projects/transaction/src/lib → lib}/component/delivery-type-tile/style/_layout.scss +0 -0
  532. package/{projects/transaction/src/lib → lib}/component/delivery-type-tile/style/_material-definition.scss +0 -0
  533. package/{projects/transaction/src/lib → lib}/component/delivery-type-tile/style/_theme.scss +0 -0
  534. package/{projects/transaction/src/lib → lib}/component/delivery-type-tile/style/material.scss +0 -0
  535. package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.d.ts +15 -0
  536. package/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.module.d.ts +2 -0
  537. package/{projects/transaction/src/lib → lib}/component/dialog/catalog/dialog-catalog/style/_layout.scss +0 -0
  538. package/{projects/transaction/src/lib → lib}/component/dialog/catalog/dialog-catalog/style/_material-definition.scss +0 -0
  539. package/{projects/transaction/src/lib → lib}/component/dialog/catalog/dialog-catalog/style/_theme.scss +0 -0
  540. package/{projects/transaction/src/lib → lib}/component/dialog/catalog/dialog-catalog/style/material.scss +0 -0
  541. package/lib/component/dialog/dialog-header-search/dialog-header-search.component.d.ts +10 -0
  542. package/lib/component/dialog/dialog-header-search/dialog-header-search.module.d.ts +2 -0
  543. package/{projects/transaction/src/lib → lib}/component/dialog/dialog-header-search/style/_layout.scss +0 -0
  544. package/{projects/transaction/src/lib → lib}/component/dialog/dialog-header-search/style/_material-definition.scss +0 -0
  545. package/{projects/transaction/src/lib → lib}/component/dialog/dialog-header-search/style/_theme.scss +0 -0
  546. package/{projects/transaction/src/lib → lib}/component/dialog/dialog-header-search/style/material.scss +0 -0
  547. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-branch/style/_layout.scss +0 -0
  548. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-branch/style/_material-definition.scss +0 -0
  549. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-branch/style/_theme.scss +0 -0
  550. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-branch/style/material.scss +0 -0
  551. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.d.ts +4 -0
  552. package/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.d.ts +2 -0
  553. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_layout.scss +0 -0
  554. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_material-definition.scss +0 -0
  555. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/_theme.scss +0 -0
  556. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-delivery-method/style/material.scss +0 -0
  557. package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.d.ts +8 -0
  558. package/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.module.d.ts +2 -0
  559. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/_layout.scss +0 -0
  560. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/_material-definition.scss +0 -0
  561. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/_theme.scss +0 -0
  562. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-header/dialog-transaction-header-discount/style/material.scss +0 -0
  563. package/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.component.d.ts +4 -0
  564. package/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.module.d.ts +2 -0
  565. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_layout.scss +0 -0
  566. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_material-definition.scss +0 -0
  567. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/_theme.scss +0 -0
  568. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-commission-code/style/material.scss +0 -0
  569. package/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.component.d.ts +4 -0
  570. package/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.module.d.ts +2 -0
  571. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_layout.scss +0 -0
  572. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_material-definition.scss +0 -0
  573. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/_theme.scss +0 -0
  574. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-delivery-method/style/material.scss +0 -0
  575. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.d.ts +14 -0
  576. package/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.d.ts +2 -0
  577. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/_layout.scss +0 -0
  578. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/_material-definition.scss +0 -0
  579. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/_theme.scss +0 -0
  580. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-discount/style/material.scss +0 -0
  581. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.d.ts +4 -0
  582. package/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.d.ts +2 -0
  583. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_layout.scss +0 -0
  584. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_material-definition.scss +0 -0
  585. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/_theme.scss +0 -0
  586. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-price-list/style/material.scss +0 -0
  587. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.d.ts +4 -0
  588. package/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.d.ts +2 -0
  589. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_layout.scss +0 -0
  590. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_material-definition.scss +0 -0
  591. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/_theme.scss +0 -0
  592. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-supplier/style/material.scss +0 -0
  593. package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.d.ts +4 -0
  594. package/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.d.ts +2 -0
  595. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/_layout.scss +0 -0
  596. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/_material-definition.scss +0 -0
  597. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/_theme.scss +0 -0
  598. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-vat/style/material.scss +0 -0
  599. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.d.ts +4 -0
  600. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.module.d.ts +2 -0
  601. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_layout.scss +0 -0
  602. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_material-definition.scss +0 -0
  603. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/_theme.scss +0 -0
  604. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse/style/material.scss +0 -0
  605. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.d.ts +12 -0
  606. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.module.d.ts +2 -0
  607. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_layout.scss +0 -0
  608. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_material-definition.scss +0 -0
  609. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/_theme.scss +0 -0
  610. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/style/material.scss +0 -0
  611. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.component.d.ts +6 -0
  612. package/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.module.d.ts +2 -0
  613. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_layout.scss +0 -0
  614. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_material-definition.scss +0 -0
  615. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/_theme.scss +0 -0
  616. package/{projects/transaction/src/lib → lib}/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/style/material.scss +0 -0
  617. package/lib/component/discount/discount.component.d.ts +19 -0
  618. package/lib/component/discount/discount.module.d.ts +2 -0
  619. package/{projects/transaction/src/lib → lib}/component/discount/style/_layout.scss +0 -0
  620. package/{projects/transaction/src/lib → lib}/component/discount/style/_material-definition.scss +0 -0
  621. package/{projects/transaction/src/lib → lib}/component/discount/style/_theme.scss +0 -0
  622. package/{projects/transaction/src/lib → lib}/component/discount/style/material.scss +0 -0
  623. package/lib/component/down-payment/down-payment.component.d.ts +16 -0
  624. package/lib/component/down-payment/down-payment.module.d.ts +2 -0
  625. package/{projects/transaction/src/lib → lib}/component/down-payment/style/_layout.scss +0 -0
  626. package/{projects/transaction/src/lib → lib}/component/down-payment/style/_material-definition.scss +0 -0
  627. package/{projects/transaction/src/lib → lib}/component/down-payment/style/_theme.scss +0 -0
  628. package/{projects/transaction/src/lib → lib}/component/down-payment/style/material.scss +0 -0
  629. package/lib/component/editable-label/editable-label.component.d.ts +16 -0
  630. package/lib/component/editable-label/editable-label.module.d.ts +2 -0
  631. package/{projects/transaction/src/lib → lib}/component/editable-label/style/_layout.scss +0 -0
  632. package/{projects/transaction/src/lib → lib}/component/editable-label/style/_material-definition.scss +0 -0
  633. package/{projects/transaction/src/lib → lib}/component/editable-label/style/_theme.scss +0 -0
  634. package/{projects/transaction/src/lib → lib}/component/editable-label/style/material.scss +0 -0
  635. package/lib/component/loader/loader.component.d.ts +3 -0
  636. package/lib/component/loader/loader.module.d.ts +2 -0
  637. package/{projects/transaction/src/lib → lib}/component/loader/style/_layout.scss +0 -0
  638. package/{projects/transaction/src/lib → lib}/component/loader/style/_material-definition.scss +0 -0
  639. package/{projects/transaction/src/lib → lib}/component/loader/style/_theme.scss +0 -0
  640. package/{projects/transaction/src/lib → lib}/component/loader/style/material.scss +0 -0
  641. package/{projects/transaction/src/lib → lib}/component/order-confirmation-create/style/_layout.scss +0 -0
  642. package/{projects/transaction/src/lib → lib}/component/order-confirmation-create/style/_material-definition.scss +0 -0
  643. package/{projects/transaction/src/lib → lib}/component/order-confirmation-create/style/_theme.scss +0 -0
  644. package/{projects/transaction/src/lib → lib}/component/order-confirmation-create/style/material.scss +0 -0
  645. package/lib/component/payment/payment.component.d.ts +58 -0
  646. package/lib/component/payment/payment.module.d.ts +2 -0
  647. package/{projects/transaction/src/lib → lib}/component/payment/style/_layout.scss +0 -0
  648. package/{projects/transaction/src/lib → lib}/component/payment/style/_material-definition.scss +0 -0
  649. package/{projects/transaction/src/lib → lib}/component/payment/style/_theme.scss +0 -0
  650. package/{projects/transaction/src/lib → lib}/component/payment/style/material.scss +0 -0
  651. package/lib/component/payment-qr-code/payment-qr-code.component.d.ts +4 -0
  652. package/lib/component/payment-qr-code/payment-qr-code.module.d.ts +2 -0
  653. package/{projects/transaction/src/lib → lib}/component/payment-qr-code/style/_layout.scss +0 -0
  654. package/{projects/transaction/src/lib → lib}/component/payment-qr-code/style/_material-definition.scss +0 -0
  655. package/{projects/transaction/src/lib → lib}/component/payment-qr-code/style/_theme.scss +0 -0
  656. package/{projects/transaction/src/lib → lib}/component/payment-qr-code/style/material.scss +0 -0
  657. package/lib/component/payment-tile/payment-tile.component.d.ts +10 -0
  658. package/lib/component/payment-tile/payment-tile.module.d.ts +2 -0
  659. package/{projects/transaction/src/lib → lib}/component/payment-tile/style/_layout.scss +0 -0
  660. package/{projects/transaction/src/lib → lib}/component/payment-tile/style/_material-definition.scss +0 -0
  661. package/{projects/transaction/src/lib → lib}/component/payment-tile/style/_theme.scss +0 -0
  662. package/{projects/transaction/src/lib → lib}/component/payment-tile/style/material.scss +0 -0
  663. package/lib/component/quick-send-button/quick-send-button.component.d.ts +15 -0
  664. package/lib/component/quick-send-button/quick-send-button.module.d.ts +2 -0
  665. package/{projects/transaction/src/lib → lib}/component/quick-send-button/style/_layout.scss +0 -0
  666. package/{projects/transaction/src/lib → lib}/component/quick-send-button/style/_material-definition.scss +0 -0
  667. package/{projects/transaction/src/lib → lib}/component/quick-send-button/style/_theme.scss +0 -0
  668. package/{projects/transaction/src/lib → lib}/component/quick-send-button/style/material.scss +0 -0
  669. package/lib/component/relation/relation-address/relation-address.component.d.ts +25 -0
  670. package/lib/component/relation/relation-address/relation-address.module.d.ts +2 -0
  671. package/{projects/transaction/src/lib → lib}/component/relation/relation-address/style/_layout.scss +0 -0
  672. package/{projects/transaction/src/lib → lib}/component/relation/relation-address/style/_material-definition.scss +0 -0
  673. package/{projects/transaction/src/lib → lib}/component/relation/relation-address/style/_theme.scss +0 -0
  674. package/{projects/transaction/src/lib → lib}/component/relation/relation-address/style/material.scss +0 -0
  675. package/lib/component/relation/relation-address-select/relation-address-select.component.d.ts +33 -0
  676. package/lib/component/relation/relation-address-select/relation-address-select.module.d.ts +2 -0
  677. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-select/style/_layout.scss +0 -0
  678. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-select/style/_material-definition.scss +0 -0
  679. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-select/style/_theme.scss +0 -0
  680. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-select/style/material.scss +0 -0
  681. package/lib/component/relation/relation-address-tile/relation-address-tile.component.d.ts +15 -0
  682. package/lib/component/relation/relation-address-tile/relation-address-tile.module.d.ts +2 -0
  683. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-tile/style/_layout.scss +0 -0
  684. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-tile/style/_material-definition.scss +0 -0
  685. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-tile/style/_theme.scss +0 -0
  686. package/{projects/transaction/src/lib → lib}/component/relation/relation-address-tile/style/material.scss +0 -0
  687. package/lib/component/relation/relation-addresses/relation-addresses.component.d.ts +27 -0
  688. package/lib/component/relation/relation-addresses/relation-addresses.module.d.ts +2 -0
  689. package/{projects/transaction/src/lib → lib}/component/relation/relation-addresses/style/_layout.scss +0 -0
  690. package/{projects/transaction/src/lib → lib}/component/relation/relation-addresses/style/_material-definition.scss +0 -0
  691. package/{projects/transaction/src/lib → lib}/component/relation/relation-addresses/style/_theme.scss +0 -0
  692. package/{projects/transaction/src/lib → lib}/component/relation/relation-addresses/style/material.scss +0 -0
  693. package/lib/component/relation/relation-base.component.d.ts +11 -0
  694. package/lib/component/relation/relation-contact-details/relation-contact-details.component.d.ts +12 -0
  695. package/lib/component/relation/relation-contact-details/relation-contact-details.module.d.ts +2 -0
  696. package/{projects/transaction/src/lib → lib}/component/relation/relation-contact-details/style/_layout.scss +0 -0
  697. package/{projects/transaction/src/lib → lib}/component/relation/relation-contact-details/style/_material-definition.scss +0 -0
  698. package/{projects/transaction/src/lib → lib}/component/relation/relation-contact-details/style/_theme.scss +0 -0
  699. package/{projects/transaction/src/lib → lib}/component/relation/relation-contact-details/style/material.scss +0 -0
  700. package/lib/component/relation/relation-general/relation-general.component.d.ts +33 -0
  701. package/lib/component/relation/relation-general/relation-general.module.d.ts +2 -0
  702. package/{projects/transaction/src/lib → lib}/component/relation/relation-general/style/_layout.scss +0 -0
  703. package/{projects/transaction/src/lib → lib}/component/relation/relation-general/style/_material-definition.scss +0 -0
  704. package/{projects/transaction/src/lib → lib}/component/relation/relation-general/style/_theme.scss +0 -0
  705. package/{projects/transaction/src/lib → lib}/component/relation/relation-general/style/material.scss +0 -0
  706. package/lib/component/relation/relation-preferences/relation-preferences.component.d.ts +15 -0
  707. package/lib/component/relation/relation-preferences/relation-preferences.module.d.ts +2 -0
  708. package/{projects/transaction/src/lib → lib}/component/relation/relation-preferences/style/_layout.scss +0 -0
  709. package/{projects/transaction/src/lib → lib}/component/relation/relation-preferences/style/_material-definition.scss +0 -0
  710. package/{projects/transaction/src/lib → lib}/component/relation/relation-preferences/style/_theme.scss +0 -0
  711. package/{projects/transaction/src/lib → lib}/component/relation/relation-preferences/style/material.scss +0 -0
  712. package/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.d.ts +7 -0
  713. package/lib/component/relation/relation-suggestions-list/relation-suggestions-list.module.d.ts +2 -0
  714. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list/style/_layout.scss +0 -0
  715. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list/style/_material-definition.scss +0 -0
  716. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list/style/_theme.scss +0 -0
  717. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list/style/material.scss +0 -0
  718. package/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.d.ts +8 -0
  719. package/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.module.d.ts +2 -0
  720. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list-item/style/_layout.scss +0 -0
  721. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list-item/style/_material-definition.scss +0 -0
  722. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list-item/style/_theme.scss +0 -0
  723. package/{projects/transaction/src/lib → lib}/component/relation/relation-suggestions-list-item/style/material.scss +0 -0
  724. package/lib/component/relation/relation-type/relation-type.component.d.ts +11 -0
  725. package/lib/component/relation/relation-type/relation-type.module.d.ts +2 -0
  726. package/{projects/transaction/src/lib → lib}/component/relation/relation-type/style/_layout.scss +0 -0
  727. package/{projects/transaction/src/lib → lib}/component/relation/relation-type/style/_material-definition.scss +0 -0
  728. package/{projects/transaction/src/lib → lib}/component/relation/relation-type/style/_theme.scss +0 -0
  729. package/{projects/transaction/src/lib → lib}/component/relation/relation-type/style/material.scss +0 -0
  730. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text/style/_layout.scss +0 -0
  731. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text/style/_material-definition.scss +0 -0
  732. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text/style/_theme.scss +0 -0
  733. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text/style/material.scss +0 -0
  734. package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +44 -0
  735. package/lib/component/shared/transaction-article-text/transaction-article-text.module.d.ts +2 -0
  736. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text-overview/style/_layout.scss +0 -0
  737. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text-overview/style/_material-definition.scss +0 -0
  738. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text-overview/style/_theme.scss +0 -0
  739. package/{projects/transaction/src/lib → lib}/component/shared/transaction-article-text-overview/style/material.scss +0 -0
  740. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +29 -0
  741. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.d.ts +2 -0
  742. package/lib/component/shopping-cart/shopping-cart.component.d.ts +17 -0
  743. package/lib/component/shopping-cart/shopping-cart.module.d.ts +2 -0
  744. package/{projects/transaction/src/lib → lib}/component/shopping-cart/style/_layout.scss +0 -0
  745. package/{projects/transaction/src/lib → lib}/component/shopping-cart/style/_material-definition.scss +0 -0
  746. package/{projects/transaction/src/lib → lib}/component/shopping-cart/style/_theme.scss +0 -0
  747. package/{projects/transaction/src/lib → lib}/component/shopping-cart/style/material.scss +0 -0
  748. package/{projects/transaction/src/lib → lib}/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.scss +0 -0
  749. package/lib/component/shopping-cart-preview/shopping-cart-preview.component.d.ts +13 -0
  750. package/lib/component/shopping-cart-preview/shopping-cart-preview.module.d.ts +2 -0
  751. package/{projects/transaction/src/lib → lib}/component/shopping-cart-preview/style/_layout.scss +0 -0
  752. package/{projects/transaction/src/lib → lib}/component/shopping-cart-preview/style/_material-definition.scss +0 -0
  753. package/{projects/transaction/src/lib → lib}/component/shopping-cart-preview/style/_theme.scss +0 -0
  754. package/{projects/transaction/src/lib → lib}/component/shopping-cart-preview/style/material.scss +0 -0
  755. package/lib/component/stepper/component/stepper-step.component.d.ts +12 -0
  756. package/lib/component/stepper/stepper.component.d.ts +36 -0
  757. package/lib/component/stepper/stepper.module.d.ts +2 -0
  758. package/{projects/transaction/src/lib → lib}/component/stepper/style/_layout.scss +0 -0
  759. package/{projects/transaction/src/lib → lib}/component/stepper/style/_material-definition.scss +0 -0
  760. package/{projects/transaction/src/lib → lib}/component/stepper/style/_theme.scss +0 -0
  761. package/{projects/transaction/src/lib → lib}/component/stepper/style/material.scss +0 -0
  762. package/{projects/transaction/src/lib → lib}/component/tile/style/_layout.scss +0 -0
  763. package/{projects/transaction/src/lib → lib}/component/tile/style/_material-definition.scss +0 -0
  764. package/{projects/transaction/src/lib → lib}/component/tile/style/_theme.scss +0 -0
  765. package/{projects/transaction/src/lib → lib}/component/tile/style/material.scss +0 -0
  766. package/lib/component/tile/tile.component.d.ts +6 -0
  767. package/lib/component/tile/tile.module.d.ts +2 -0
  768. package/{projects/transaction/src/lib → lib}/component/toast/style/_layout.scss +0 -0
  769. package/{projects/transaction/src/lib → lib}/component/toast/style/_material-definition.scss +0 -0
  770. package/{projects/transaction/src/lib → lib}/component/toast/style/_theme.scss +0 -0
  771. package/{projects/transaction/src/lib → lib}/component/toast/style/material.scss +0 -0
  772. package/lib/component/toast/toast.component.d.ts +6 -0
  773. package/lib/component/toast/toast.module.d.ts +2 -0
  774. package/{projects/transaction/src/lib → lib}/component/transaction/style/_layout.scss +0 -0
  775. package/{projects/transaction/src/lib → lib}/component/transaction/style/_material-definition.scss +0 -0
  776. package/{projects/transaction/src/lib → lib}/component/transaction/style/_theme.scss +0 -0
  777. package/{projects/transaction/src/lib → lib}/component/transaction/style/material.scss +0 -0
  778. package/lib/component/transaction/transaction.component.d.ts +45 -0
  779. package/lib/component/transaction/transaction.module.d.ts +2 -0
  780. package/{projects/transaction/src/lib → lib}/component/transaction-allocate-goods-history/style/_layout.scss +0 -0
  781. package/{projects/transaction/src/lib → lib}/component/transaction-allocate-goods-history/style/_material-definition.scss +0 -0
  782. package/{projects/transaction/src/lib → lib}/component/transaction-allocate-goods-history/style/_theme.scss +0 -0
  783. package/{projects/transaction/src/lib → lib}/component/transaction-allocate-goods-history/style/material.scss +0 -0
  784. package/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.component.d.ts +18 -0
  785. package/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.module.d.ts +2 -0
  786. package/{projects/transaction/src/lib → lib}/component/transaction-button-bar/style/_layout.scss +0 -0
  787. package/{projects/transaction/src/lib → lib}/component/transaction-button-bar/style/_material-definition.scss +0 -0
  788. package/{projects/transaction/src/lib → lib}/component/transaction-button-bar/style/_theme.scss +0 -0
  789. package/{projects/transaction/src/lib → lib}/component/transaction-button-bar/style/material.scss +0 -0
  790. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.d.ts +16 -0
  791. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.d.ts +18 -0
  792. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.d.ts +12 -0
  793. package/lib/component/transaction-button-bar/transaction-button-bar.component.d.ts +19 -0
  794. package/lib/component/transaction-button-bar/transaction-button-bar.module.d.ts +2 -0
  795. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-details/style/_layout.scss +0 -0
  796. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-details/style/_material-definition.scss +0 -0
  797. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-details/style/_theme.scss +0 -0
  798. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-details/style/material.scss +0 -0
  799. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.d.ts +24 -0
  800. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.d.ts +2 -0
  801. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-history/style/_layout.scss +0 -0
  802. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-history/style/_material-definition.scss +0 -0
  803. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-history/style/_theme.scss +0 -0
  804. package/{projects/transaction/src/lib → lib}/component/transaction-confirmation-history/style/material.scss +0 -0
  805. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.d.ts +30 -0
  806. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.d.ts +2 -0
  807. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-available-stock-grid/style/_layout.scss +0 -0
  808. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-available-stock-grid/style/_material-definition.scss +0 -0
  809. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-available-stock-grid/style/_theme.scss +0 -0
  810. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-available-stock-grid/style/material.scss +0 -0
  811. package/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.component.d.ts +26 -0
  812. package/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.module.d.ts +2 -0
  813. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-base-grid/style/_layout.scss +0 -0
  814. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-base-grid/style/_material-definition.scss +0 -0
  815. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-base-grid/style/_theme.scss +0 -0
  816. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-base-grid/style/material.scss +0 -0
  817. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.d.ts +8 -0
  818. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.d.ts +2 -0
  819. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-grid/style/_layout.scss +0 -0
  820. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-grid/style/_material-definition.scss +0 -0
  821. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-grid/style/_theme.scss +0 -0
  822. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-grid/style/material.scss +0 -0
  823. package/lib/component/transaction-grid/transaction-grid/transaction-grid.component.d.ts +24 -0
  824. package/lib/component/transaction-grid/transaction-grid/transaction-grid.module.d.ts +2 -0
  825. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-history-grid/style/_layout.scss +0 -0
  826. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-history-grid/style/_material-definition.scss +0 -0
  827. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-history-grid/style/_theme.scss +0 -0
  828. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-history-grid/style/material.scss +0 -0
  829. package/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.d.ts +19 -0
  830. package/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.d.ts +2 -0
  831. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-lines-grid/style/_layout.scss +0 -0
  832. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-lines-grid/style/_material-definition.scss +0 -0
  833. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-lines-grid/style/_theme.scss +0 -0
  834. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-lines-grid/style/material.scss +0 -0
  835. package/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.d.ts +21 -0
  836. package/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.d.ts +2 -0
  837. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-order-confirmation-grid/style/_layout.scss +0 -0
  838. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-order-confirmation-grid/style/_material-definition.scss +0 -0
  839. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-order-confirmation-grid/style/_theme.scss +0 -0
  840. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-order-confirmation-grid/style/material.scss +0 -0
  841. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.d.ts +4 -0
  842. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.d.ts +2 -0
  843. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-received-goods-grid/style/_layout.scss +0 -0
  844. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-received-goods-grid/style/_material-definition.scss +0 -0
  845. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-received-goods-grid/style/_theme.scss +0 -0
  846. package/{projects/transaction/src/lib → lib}/component/transaction-grid/transaction-received-goods-grid/style/material.scss +0 -0
  847. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.d.ts +37 -0
  848. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.d.ts +2 -0
  849. package/{projects/transaction/src/lib → lib}/component/transaction-header/style/_layout.scss +0 -0
  850. package/{projects/transaction/src/lib → lib}/component/transaction-header/style/_material-definition.scss +0 -0
  851. package/{projects/transaction/src/lib → lib}/component/transaction-header/style/_theme.scss +0 -0
  852. package/{projects/transaction/src/lib → lib}/component/transaction-header/style/material.scss +0 -0
  853. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header/style/_layout.scss +0 -0
  854. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header/style/_material-definition.scss +0 -0
  855. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header/style/_theme.scss +0 -0
  856. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header/style/material.scss +0 -0
  857. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +12 -0
  858. package/lib/component/transaction-header/transaction-header/transaction-header.module.d.ts +2 -0
  859. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-delivery/style/_layout.scss +0 -0
  860. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +0 -0
  861. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-delivery/style/_theme.scss +0 -0
  862. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-delivery/style/material.scss +0 -0
  863. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.d.ts +21 -0
  864. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.d.ts +2 -0
  865. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-order/style/_layout.scss +0 -0
  866. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-order/style/_material-definition.scss +0 -0
  867. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-order/style/_theme.scss +0 -0
  868. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-order/style/material.scss +0 -0
  869. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.d.ts +11 -0
  870. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.d.ts +2 -0
  871. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-payment/style/_layout.scss +0 -0
  872. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-payment/style/_material-definition.scss +0 -0
  873. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-payment/style/_theme.scss +0 -0
  874. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-payment/style/material.scss +0 -0
  875. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +20 -0
  876. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.d.ts +2 -0
  877. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-relation/style/_layout.scss +0 -0
  878. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-relation/style/_material-definition.scss +0 -0
  879. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-relation/style/_theme.scss +0 -0
  880. package/{projects/transaction/src/lib → lib}/component/transaction-header/transaction-header-relation/style/material.scss +0 -0
  881. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +39 -0
  882. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.d.ts +2 -0
  883. package/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.d.ts +14 -0
  884. package/lib/component/transaction-header-fields/transaction-header-administrative-relation.module.d.ts +2 -0
  885. package/lib/component/transaction-header-fields/transaction-header-branch.component.d.ts +17 -0
  886. package/lib/component/transaction-header-fields/transaction-header-branch.module.d.ts +2 -0
  887. package/lib/component/transaction-header-fields/transaction-header-definitive.component.d.ts +9 -0
  888. package/lib/component/transaction-header-fields/transaction-header-definitive.module.d.ts +2 -0
  889. package/lib/component/transaction-header-fields/transaction-header-delivery-date.component.d.ts +7 -0
  890. package/lib/component/transaction-header-fields/transaction-header-delivery-date.module.d.ts +2 -0
  891. package/lib/component/transaction-header-fields/transaction-header-delivery-method.component.d.ts +20 -0
  892. package/lib/component/transaction-header-fields/transaction-header-delivery-method.module.d.ts +2 -0
  893. package/{projects/transaction/src/lib → lib}/component/transaction-header-fields/transaction-header-delivery-options/style/_layout.scss +0 -0
  894. package/{projects/transaction/src/lib → lib}/component/transaction-header-fields/transaction-header-delivery-options/style/_material-definition.scss +0 -0
  895. package/{projects/transaction/src/lib → lib}/component/transaction-header-fields/transaction-header-delivery-options/style/_theme.scss +0 -0
  896. package/{projects/transaction/src/lib → lib}/component/transaction-header-fields/transaction-header-delivery-options/style/material.scss +0 -0
  897. package/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.d.ts +21 -0
  898. package/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.module.d.ts +2 -0
  899. package/lib/component/transaction-header-fields/transaction-header-discount-amount.component.d.ts +10 -0
  900. package/lib/component/transaction-header-fields/transaction-header-discount-amount.module.d.ts +2 -0
  901. package/lib/component/transaction-header-fields/transaction-header-discount-button.component.d.ts +16 -0
  902. package/lib/component/transaction-header-fields/transaction-header-discount-button.module.d.ts +2 -0
  903. package/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.d.ts +10 -0
  904. package/lib/component/transaction-header-fields/transaction-header-discount-percentage.module.d.ts +2 -0
  905. package/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.d.ts +11 -0
  906. package/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.module.d.ts +2 -0
  907. package/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.d.ts +10 -0
  908. package/lib/component/transaction-header-fields/transaction-header-downpayment-amount.module.d.ts +2 -0
  909. package/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.d.ts +10 -0
  910. package/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.module.d.ts +2 -0
  911. package/lib/component/transaction-header-fields/transaction-header-marketing.component.d.ts +14 -0
  912. package/lib/component/transaction-header-fields/transaction-header-marketing.module.d.ts +2 -0
  913. package/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.d.ts +11 -0
  914. package/lib/component/transaction-header-fields/transaction-header-partial-delivery.module.d.ts +2 -0
  915. package/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.d.ts +10 -0
  916. package/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.module.d.ts +2 -0
  917. package/lib/component/transaction-header-fields/transaction-header-reference.component.d.ts +10 -0
  918. package/lib/component/transaction-header-fields/transaction-header-reference.module.d.ts +2 -0
  919. package/lib/component/transaction-header-fields/transaction-header-relation-reference.component.d.ts +10 -0
  920. package/lib/component/transaction-header-fields/transaction-header-relation-reference.module.d.ts +2 -0
  921. package/lib/component/transaction-header-fields/transaction-header-remarks.component.d.ts +10 -0
  922. package/lib/component/transaction-header-fields/transaction-header-remarks.module.d.ts +2 -0
  923. package/{projects/transaction/src/lib → lib}/component/transaction-history-grid-status/style/_layout.scss +0 -0
  924. package/{projects/transaction/src/lib → lib}/component/transaction-history-grid-status/style/_material-definition.scss +0 -0
  925. package/{projects/transaction/src/lib → lib}/component/transaction-history-grid-status/style/_theme.scss +0 -0
  926. package/{projects/transaction/src/lib → lib}/component/transaction-history-grid-status/style/material.scss +0 -0
  927. package/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.d.ts +11 -0
  928. package/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.d.ts +2 -0
  929. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-base-line/style/_layout.scss +0 -0
  930. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-base-line/style/_material-definition.scss +0 -0
  931. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-base-line/style/_theme.scss +0 -0
  932. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-base-line/style/material.scss +0 -0
  933. package/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.d.ts +21 -0
  934. package/lib/component/transaction-line/transaction-base-line/transaction-base-line.module.d.ts +2 -0
  935. package/lib/component/transaction-line/transaction-goods-allocation-line/service/transaction-allocate-goods.service.d.ts +12 -0
  936. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-goods-allocation-line/style/_layout.scss +0 -0
  937. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-goods-allocation-line/style/_material-definition.scss +0 -0
  938. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-goods-allocation-line/style/_theme.scss +0 -0
  939. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-goods-allocation-line/style/material.scss +0 -0
  940. package/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.d.ts +29 -0
  941. package/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.module.d.ts +2 -0
  942. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-line/style/_layout.scss +0 -0
  943. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-line/style/_material-definition.scss +0 -0
  944. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-line/style/_theme.scss +0 -0
  945. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-line/style/material.scss +0 -0
  946. package/lib/component/transaction-line/transaction-line/transaction-line.component.d.ts +27 -0
  947. package/lib/component/transaction-line/transaction-line/transaction-line.module.d.ts +2 -0
  948. package/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.d.ts +4 -0
  949. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-order-delivery-line/style/_layout.scss +0 -0
  950. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-order-delivery-line/style/_material-definition.scss +0 -0
  951. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-order-delivery-line/style/_theme.scss +0 -0
  952. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-order-delivery-line/style/material.scss +0 -0
  953. package/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.d.ts +27 -0
  954. package/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.d.ts +2 -0
  955. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-overview-line/style/_layout.scss +0 -0
  956. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-overview-line/style/_material-definition.scss +0 -0
  957. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-overview-line/style/_theme.scss +0 -0
  958. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-overview-line/style/material.scss +0 -0
  959. package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.d.ts +26 -0
  960. package/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.d.ts +2 -0
  961. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-purchase-line/style/_layout.scss +0 -0
  962. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-purchase-line/style/_material-definition.scss +0 -0
  963. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-purchase-line/style/_theme.scss +0 -0
  964. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-purchase-line/style/material.scss +0 -0
  965. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.d.ts +21 -0
  966. package/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.d.ts +2 -0
  967. package/lib/component/transaction-line/transaction-receive-goods-line/service/transaction-receive-goods.service.d.ts +19 -0
  968. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-receive-goods-line/style/_layout.scss +0 -0
  969. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-receive-goods-line/style/_material-definition.scss +0 -0
  970. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-receive-goods-line/style/_theme.scss +0 -0
  971. package/{projects/transaction/src/lib → lib}/component/transaction-line/transaction-receive-goods-line/style/material.scss +0 -0
  972. package/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.d.ts +32 -0
  973. package/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.module.d.ts +2 -0
  974. package/{projects/transaction/src/lib → lib}/component/transaction-line-action-buttons/style/_layout.scss +0 -0
  975. package/{projects/transaction/src/lib → lib}/component/transaction-line-action-buttons/style/_material-definition.scss +0 -0
  976. package/{projects/transaction/src/lib → lib}/component/transaction-line-action-buttons/style/_theme.scss +0 -0
  977. package/{projects/transaction/src/lib → lib}/component/transaction-line-action-buttons/style/material.scss +0 -0
  978. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +49 -0
  979. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.d.ts +2 -0
  980. package/{projects/transaction/src/lib → lib}/component/transaction-line-checkbox-list/style/_layout.scss +0 -0
  981. package/{projects/transaction/src/lib → lib}/component/transaction-line-checkbox-list/style/_material-definition.scss +0 -0
  982. package/{projects/transaction/src/lib → lib}/component/transaction-line-checkbox-list/style/_theme.scss +0 -0
  983. package/{projects/transaction/src/lib → lib}/component/transaction-line-checkbox-list/style/material.scss +0 -0
  984. package/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.d.ts +20 -0
  985. package/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.d.ts +2 -0
  986. package/lib/component/transaction-line-fields/transaction-line-amount.component.d.ts +10 -0
  987. package/lib/component/transaction-line-fields/transaction-line-amount.module.d.ts +2 -0
  988. package/lib/component/transaction-line-fields/transaction-line-commission-button.component.d.ts +10 -0
  989. package/lib/component/transaction-line-fields/transaction-line-commission-button.module.d.ts +2 -0
  990. package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +15 -0
  991. package/lib/component/transaction-line-fields/transaction-line-commission-code.module.d.ts +2 -0
  992. package/lib/component/transaction-line-fields/transaction-line-delivery-button.component.d.ts +14 -0
  993. package/lib/component/transaction-line-fields/transaction-line-delivery-button.module.d.ts +2 -0
  994. package/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.d.ts +10 -0
  995. package/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.d.ts +2 -0
  996. package/lib/component/transaction-line-fields/transaction-line-delivery-date.component.d.ts +11 -0
  997. package/lib/component/transaction-line-fields/transaction-line-delivery-date.module.d.ts +2 -0
  998. package/lib/component/transaction-line-fields/transaction-line-delivery-method.component.d.ts +14 -0
  999. package/lib/component/transaction-line-fields/transaction-line-delivery-method.module.d.ts +2 -0
  1000. package/lib/component/transaction-line-fields/transaction-line-description.component.d.ts +15 -0
  1001. package/lib/component/transaction-line-fields/transaction-line-description.module.d.ts +2 -0
  1002. package/lib/component/transaction-line-fields/transaction-line-discount-amount.component.d.ts +10 -0
  1003. package/lib/component/transaction-line-fields/transaction-line-discount-amount.module.d.ts +2 -0
  1004. package/lib/component/transaction-line-fields/transaction-line-discount-button.component.d.ts +12 -0
  1005. package/lib/component/transaction-line-fields/transaction-line-discount-button.module.d.ts +2 -0
  1006. package/lib/component/transaction-line-fields/transaction-line-line-discount.component.d.ts +10 -0
  1007. package/lib/component/transaction-line-fields/transaction-line-line-discount.module.d.ts +2 -0
  1008. package/{projects/transaction/src/lib → lib}/component/transaction-line-fields/transaction-line-price/style/_layout.scss +0 -0
  1009. package/{projects/transaction/src/lib → lib}/component/transaction-line-fields/transaction-line-price/style/_material-definition.scss +0 -0
  1010. package/{projects/transaction/src/lib → lib}/component/transaction-line-fields/transaction-line-price/style/_theme.scss +0 -0
  1011. package/{projects/transaction/src/lib → lib}/component/transaction-line-fields/transaction-line-price/style/material.scss +0 -0
  1012. package/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.d.ts +18 -0
  1013. package/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.module.d.ts +2 -0
  1014. package/lib/component/transaction-line-fields/transaction-line-price-list.component.d.ts +14 -0
  1015. package/lib/component/transaction-line-fields/transaction-line-price-list.module.d.ts +2 -0
  1016. package/lib/component/transaction-line-fields/transaction-line-quantity.component.d.ts +7 -0
  1017. package/lib/component/transaction-line-fields/transaction-line-quantity.module.d.ts +2 -0
  1018. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.d.ts +10 -0
  1019. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.d.ts +2 -0
  1020. package/lib/component/transaction-line-fields/transaction-line-reference.component.d.ts +10 -0
  1021. package/lib/component/transaction-line-fields/transaction-line-reference.module.d.ts +2 -0
  1022. package/lib/component/transaction-line-fields/transaction-line-special-discount.component.d.ts +10 -0
  1023. package/lib/component/transaction-line-fields/transaction-line-special-discount.module.d.ts +2 -0
  1024. package/lib/component/transaction-line-fields/transaction-line-supplier-button.component.d.ts +12 -0
  1025. package/lib/component/transaction-line-fields/transaction-line-supplier-button.module.d.ts +2 -0
  1026. package/lib/component/transaction-line-fields/transaction-line-supplier.component.d.ts +16 -0
  1027. package/lib/component/transaction-line-fields/transaction-line-supplier.module.d.ts +2 -0
  1028. package/lib/component/transaction-line-fields/transaction-line-vat-button.component.d.ts +12 -0
  1029. package/lib/component/transaction-line-fields/transaction-line-vat-button.module.d.ts +2 -0
  1030. package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +13 -0
  1031. package/lib/component/transaction-line-fields/transaction-line-vat.module.d.ts +2 -0
  1032. package/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.d.ts +15 -0
  1033. package/lib/component/transaction-line-fields/transaction-line-warehouse-button.module.d.ts +2 -0
  1034. package/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.d.ts +18 -0
  1035. package/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.module.d.ts +2 -0
  1036. package/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.d.ts +15 -0
  1037. package/lib/component/transaction-line-fields/transaction-line-warehouse-location.module.d.ts +2 -0
  1038. package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +14 -0
  1039. package/lib/component/transaction-line-fields/transaction-line-warehouse.module.d.ts +2 -0
  1040. package/{projects/transaction/src/lib → lib}/component/transaction-line-grid/style/_layout.scss +0 -0
  1041. package/{projects/transaction/src/lib → lib}/component/transaction-line-grid/style/_material-definition.scss +0 -0
  1042. package/{projects/transaction/src/lib → lib}/component/transaction-line-grid/style/_theme.scss +0 -0
  1043. package/{projects/transaction/src/lib → lib}/component/transaction-line-grid/style/material.scss +0 -0
  1044. package/lib/component/transaction-line-grid/transaction-line-grid.component.d.ts +5 -0
  1045. package/lib/component/transaction-line-grid/transaction-line-grid.module.d.ts +2 -0
  1046. package/{projects/transaction/src/lib → lib}/component/transaction-line-image-and-description/style/_layout.scss +0 -0
  1047. package/{projects/transaction/src/lib → lib}/component/transaction-line-image-and-description/style/_material-definition.scss +0 -0
  1048. package/{projects/transaction/src/lib → lib}/component/transaction-line-image-and-description/style/_theme.scss +0 -0
  1049. package/{projects/transaction/src/lib → lib}/component/transaction-line-image-and-description/style/material.scss +0 -0
  1050. package/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.d.ts +29 -0
  1051. package/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.module.d.ts +2 -0
  1052. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel/style/_layout.scss +0 -0
  1053. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel/style/_material-definition.scss +0 -0
  1054. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel/style/_theme.scss +0 -0
  1055. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel/style/material.scss +0 -0
  1056. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +27 -0
  1057. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.d.ts +2 -0
  1058. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-default/style/_layout.scss +0 -0
  1059. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-default/style/_material-definition.scss +0 -0
  1060. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-default/style/_theme.scss +0 -0
  1061. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-default/style/material.scss +0 -0
  1062. package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.d.ts +21 -0
  1063. package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.d.ts +2 -0
  1064. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-purchase/style/_layout.scss +0 -0
  1065. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-purchase/style/_material-definition.scss +0 -0
  1066. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-purchase/style/_theme.scss +0 -0
  1067. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-purchase/style/material.scss +0 -0
  1068. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +28 -0
  1069. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.d.ts +2 -0
  1070. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-sales/style/_layout.scss +0 -0
  1071. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-sales/style/_material-definition.scss +0 -0
  1072. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-sales/style/_theme.scss +0 -0
  1073. package/{projects/transaction/src/lib → lib}/component/transaction-line-side-panel-sales/style/material.scss +0 -0
  1074. package/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.component.d.ts +20 -0
  1075. package/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.d.ts +2 -0
  1076. package/{projects/transaction/src/lib → lib}/component/transaction-line-statusbar/style/_layout.scss +0 -0
  1077. package/{projects/transaction/src/lib → lib}/component/transaction-line-statusbar/style/_material-definition.scss +0 -0
  1078. package/{projects/transaction/src/lib → lib}/component/transaction-line-statusbar/style/_theme.scss +0 -0
  1079. package/{projects/transaction/src/lib → lib}/component/transaction-line-statusbar/style/material.scss +0 -0
  1080. package/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.d.ts +26 -0
  1081. package/lib/component/transaction-line-statusbar/transaction-line-statusbar.module.d.ts +2 -0
  1082. package/{projects/transaction/src/lib → lib}/component/transaction-lines/style/_layout.scss +0 -0
  1083. package/{projects/transaction/src/lib → lib}/component/transaction-lines/style/_material-definition.scss +0 -0
  1084. package/{projects/transaction/src/lib → lib}/component/transaction-lines/style/_theme.scss +0 -0
  1085. package/{projects/transaction/src/lib → lib}/component/transaction-lines/style/material.scss +0 -0
  1086. package/lib/component/transaction-lines/transaction-lines.component.d.ts +42 -0
  1087. package/lib/component/transaction-lines/transaction-lines.module.d.ts +2 -0
  1088. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access/style/_layout.scss +0 -0
  1089. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access/style/_material-definition.scss +0 -0
  1090. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access/style/_theme.scss +0 -0
  1091. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access/style/material.scss +0 -0
  1092. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.d.ts +28 -0
  1093. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.d.ts +2 -0
  1094. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/_layout.scss +0 -0
  1095. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/_material-definition.scss +0 -0
  1096. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/_theme.scss +0 -0
  1097. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-goods-allocation/style/material.scss +0 -0
  1098. package/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.d.ts +20 -0
  1099. package/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.module.d.ts +2 -0
  1100. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_layout.scss +0 -0
  1101. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_material-definition.scss +0 -0
  1102. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_theme.scss +0 -0
  1103. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/material.scss +0 -0
  1104. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.d.ts +7 -0
  1105. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.d.ts +2 -0
  1106. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_layout.scss +0 -0
  1107. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_material-definition.scss +0 -0
  1108. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_theme.scss +0 -0
  1109. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-delivery/style/material.scss +0 -0
  1110. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.d.ts +19 -0
  1111. package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.module.d.ts +2 -0
  1112. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_layout.scss +0 -0
  1113. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_material-definition.scss +0 -0
  1114. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-purchase/style/_theme.scss +0 -0
  1115. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-order-purchase/style/material.scss +0 -0
  1116. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.d.ts +14 -0
  1117. package/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.d.ts +2 -0
  1118. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-overview/style/_layout.scss +0 -0
  1119. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-overview/style/_material-definition.scss +0 -0
  1120. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-overview/style/_theme.scss +0 -0
  1121. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-overview/style/material.scss +0 -0
  1122. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.d.ts +34 -0
  1123. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.d.ts +2 -0
  1124. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/_layout.scss +0 -0
  1125. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/_material-definition.scss +0 -0
  1126. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/_theme.scss +0 -0
  1127. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/style/material.scss +0 -0
  1128. package/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.d.ts +33 -0
  1129. package/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.module.d.ts +2 -0
  1130. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-received-goods/style/_layout.scss +0 -0
  1131. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-received-goods/style/_material-definition.scss +0 -0
  1132. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-received-goods/style/_theme.scss +0 -0
  1133. package/{projects/transaction/src/lib → lib}/component/transaction-quick-access/transaction-quick-access-received-goods/style/material.scss +0 -0
  1134. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.d.ts +34 -0
  1135. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.d.ts +2 -0
  1136. package/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.d.ts +43 -0
  1137. package/{projects/transaction/src/lib → lib}/component/transaction-receiving-goods-history/style/_layout.scss +0 -0
  1138. package/{projects/transaction/src/lib → lib}/component/transaction-receiving-goods-history/style/_material-definition.scss +0 -0
  1139. package/{projects/transaction/src/lib → lib}/component/transaction-receiving-goods-history/style/_theme.scss +0 -0
  1140. package/{projects/transaction/src/lib → lib}/component/transaction-receiving-goods-history/style/material.scss +0 -0
  1141. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.d.ts +17 -0
  1142. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.d.ts +2 -0
  1143. package/lib/component/transaction-search/service/filter-request.service.d.ts +87 -0
  1144. package/lib/component/transaction-search/service/transaction-search.service.d.ts +37 -0
  1145. package/{projects/transaction/src/lib → lib}/component/transaction-search/style/_layout.scss +0 -0
  1146. package/{projects/transaction/src/lib → lib}/component/transaction-search/style/_material-definition.scss +0 -0
  1147. package/{projects/transaction/src/lib → lib}/component/transaction-search/style/_theme.scss +0 -0
  1148. package/{projects/transaction/src/lib → lib}/component/transaction-search/style/material.scss +0 -0
  1149. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-filter/style/_layout.scss +0 -0
  1150. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-filter/style/_material-definition.scss +0 -0
  1151. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-filter/style/_theme.scss +0 -0
  1152. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-filter/style/material.scss +0 -0
  1153. package/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.d.ts +26 -0
  1154. package/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.module.d.ts +2 -0
  1155. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_layout.scss +0 -0
  1156. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_material-definition.scss +0 -0
  1157. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_theme.scss +0 -0
  1158. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/material.scss +0 -0
  1159. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.d.ts +9 -0
  1160. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.d.ts +2 -0
  1161. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_layout.scss +0 -0
  1162. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_material-definition.scss +0 -0
  1163. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_theme.scss +0 -0
  1164. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/material.scss +0 -0
  1165. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.d.ts +9 -0
  1166. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.d.ts +2 -0
  1167. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-categories/style/_layout.scss +0 -0
  1168. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-categories/style/_material-definition.scss +0 -0
  1169. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-categories/style/_theme.scss +0 -0
  1170. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-categories/style/material.scss +0 -0
  1171. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.d.ts +10 -0
  1172. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.d.ts +2 -0
  1173. package/lib/component/transaction-search/transaction-filter-content/enum/search-placeholder.enum.d.ts +25 -0
  1174. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_layout.scss +0 -0
  1175. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_material-definition.scss +0 -0
  1176. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_theme.scss +0 -0
  1177. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/material.scss +0 -0
  1178. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.d.ts +40 -0
  1179. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.d.ts +2 -0
  1180. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_layout.scss +0 -0
  1181. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_material-definition.scss +0 -0
  1182. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_theme.scss +0 -0
  1183. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/material.scss +0 -0
  1184. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.d.ts +36 -0
  1185. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.d.ts +2 -0
  1186. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_layout.scss +0 -0
  1187. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_material-definition.scss +0 -0
  1188. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_theme.scss +0 -0
  1189. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/material.scss +0 -0
  1190. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.d.ts +50 -0
  1191. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.d.ts +2 -0
  1192. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_layout.scss +0 -0
  1193. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_material-definition.scss +0 -0
  1194. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_theme.scss +0 -0
  1195. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/material.scss +0 -0
  1196. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.d.ts +40 -0
  1197. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.module.d.ts +2 -0
  1198. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_layout.scss +0 -0
  1199. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_material-definition.scss +0 -0
  1200. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_theme.scss +0 -0
  1201. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/material.scss +0 -0
  1202. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.d.ts +36 -0
  1203. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.module.d.ts +2 -0
  1204. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_layout.scss +0 -0
  1205. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_material-definition.scss +0 -0
  1206. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_theme.scss +0 -0
  1207. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/material.scss +0 -0
  1208. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.d.ts +57 -0
  1209. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.module.d.ts +2 -0
  1210. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/style/_layout.scss +0 -0
  1211. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/style/_material-definition.scss +0 -0
  1212. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/style/_theme.scss +0 -0
  1213. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-content/style/material.scss +0 -0
  1214. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-historic-state/style/_layout.scss +0 -0
  1215. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-historic-state/style/_material-definition.scss +0 -0
  1216. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-historic-state/style/_theme.scss +0 -0
  1217. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-historic-state/style/material.scss +0 -0
  1218. package/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.d.ts +24 -0
  1219. package/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.d.ts +2 -0
  1220. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-item/style/_layout.scss +0 -0
  1221. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-item/style/_material-definition.scss +0 -0
  1222. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-item/style/_theme.scss +0 -0
  1223. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-filter-item/style/material.scss +0 -0
  1224. package/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.d.ts +21 -0
  1225. package/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.module.d.ts +2 -0
  1226. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_layout.scss +0 -0
  1227. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_material-definition.scss +0 -0
  1228. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_theme.scss +0 -0
  1229. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-grid/style/material.scss +0 -0
  1230. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.d.ts +22 -0
  1231. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.module.d.ts +2 -0
  1232. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_layout.scss +0 -0
  1233. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_material-definition.scss +0 -0
  1234. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_theme.scss +0 -0
  1235. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/material.scss +0 -0
  1236. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.d.ts +7 -0
  1237. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.d.ts +2 -0
  1238. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_layout.scss +0 -0
  1239. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_material-definition.scss +0 -0
  1240. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_theme.scss +0 -0
  1241. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/material.scss +0 -0
  1242. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.d.ts +7 -0
  1243. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.d.ts +2 -0
  1244. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-header/style/_layout.scss +0 -0
  1245. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-header/style/_material-definition.scss +0 -0
  1246. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-header/style/_theme.scss +0 -0
  1247. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-header/style/material.scss +0 -0
  1248. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.d.ts +36 -0
  1249. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.d.ts +2 -0
  1250. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-result/style/_layout.scss +0 -0
  1251. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-result/style/_material-definition.scss +0 -0
  1252. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-result/style/_theme.scss +0 -0
  1253. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-result/style/material.scss +0 -0
  1254. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +32 -0
  1255. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.d.ts +2 -0
  1256. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_layout.scss +0 -0
  1257. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_material-definition.scss +0 -0
  1258. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_theme.scss +0 -0
  1259. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/material.scss +0 -0
  1260. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.d.ts +3 -0
  1261. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.d.ts +2 -0
  1262. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_layout.scss +0 -0
  1263. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_material-definition.scss +0 -0
  1264. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_theme.scss +0 -0
  1265. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/material.scss +0 -0
  1266. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.d.ts +6 -0
  1267. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.d.ts +2 -0
  1268. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_layout.scss +0 -0
  1269. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_material-definition.scss +0 -0
  1270. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_theme.scss +0 -0
  1271. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-search-tile/style/material.scss +0 -0
  1272. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.d.ts +25 -0
  1273. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.d.ts +2 -0
  1274. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/_layout.scss +0 -0
  1275. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/_material-definition.scss +0 -0
  1276. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/_theme.scss +0 -0
  1277. package/{projects/transaction/src/lib → lib}/component/transaction-search/transaction-search-tile/transaction-statusbar/style/material.scss +0 -0
  1278. package/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.component.d.ts +22 -0
  1279. package/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.module.d.ts +2 -0
  1280. package/lib/component/transaction-search/transaction-search.component.d.ts +32 -0
  1281. package/lib/component/transaction-search/transaction-search.module.d.ts +2 -0
  1282. package/lib/component/transaction-side-panel-edit-request-details/components/allocation-request.component.d.ts +28 -0
  1283. package/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.d.ts +43 -0
  1284. package/{projects/transaction/src/lib → lib}/component/transaction-side-panel-edit-request-details/style/_layout.scss +0 -0
  1285. package/{projects/transaction/src/lib → lib}/component/transaction-side-panel-edit-request-details/style/_material-definition.scss +0 -0
  1286. package/{projects/transaction/src/lib → lib}/component/transaction-side-panel-edit-request-details/style/_theme.scss +0 -0
  1287. package/{projects/transaction/src/lib → lib}/component/transaction-side-panel-edit-request-details/style/material.scss +0 -0
  1288. package/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.component.d.ts +15 -0
  1289. package/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.module.d.ts +2 -0
  1290. package/{projects/transaction/src/lib → lib}/component/transaction-tile/style/_layout.scss +0 -0
  1291. package/{projects/transaction/src/lib → lib}/component/transaction-tile/style/_material-definition.scss +0 -0
  1292. package/{projects/transaction/src/lib → lib}/component/transaction-tile/style/_theme.scss +0 -0
  1293. package/{projects/transaction/src/lib → lib}/component/transaction-tile/style/material.scss +0 -0
  1294. package/lib/component/transaction-tile/transaction-tile.component.d.ts +20 -0
  1295. package/lib/component/transaction-tile/transaction-tile.module.d.ts +2 -0
  1296. package/{projects/transaction/src/lib → lib}/component/transaction-totals/style/_layout.scss +0 -0
  1297. package/{projects/transaction/src/lib → lib}/component/transaction-totals/style/_material-definition.scss +0 -0
  1298. package/{projects/transaction/src/lib → lib}/component/transaction-totals/style/_theme.scss +0 -0
  1299. package/{projects/transaction/src/lib → lib}/component/transaction-totals/style/material.scss +0 -0
  1300. package/lib/component/transaction-totals/transaction-totals.component.d.ts +10 -0
  1301. package/lib/component/transaction-totals/transaction-totals.module.d.ts +2 -0
  1302. package/{projects/transaction/src/lib → lib}/component/view-mode-buttons/style/_layout.scss +0 -0
  1303. package/{projects/transaction/src/lib → lib}/component/view-mode-buttons/style/_material-definition.scss +0 -0
  1304. package/{projects/transaction/src/lib → lib}/component/view-mode-buttons/style/_theme.scss +0 -0
  1305. package/{projects/transaction/src/lib → lib}/component/view-mode-buttons/style/material.scss +0 -0
  1306. package/lib/component/view-mode-buttons/view-mode-buttons.component.d.ts +17 -0
  1307. package/lib/component/view-mode-buttons/view-mode-buttons.module.d.ts +2 -0
  1308. package/lib/enum/content-view-mode.enum.d.ts +8 -0
  1309. package/lib/enum/direction.enum.d.ts +6 -0
  1310. package/lib/enum/icon.enum.d.ts +82 -0
  1311. package/lib/enum/language-code.enum.d.ts +6 -0
  1312. package/lib/enum/order-discount-type.enum.d.ts +5 -0
  1313. package/lib/enum/position-grid-row.enum.d.ts +4 -0
  1314. package/lib/enum/search-view-mode.enum.d.ts +4 -0
  1315. package/lib/enum/searchbar-view-mode.enum.d.ts +4 -0
  1316. package/lib/enum/status-type.enum.d.ts +5 -0
  1317. package/lib/enum/time-size.type.d.ts +7 -0
  1318. package/lib/enum/transaction-type-category.enum.d.ts +15 -0
  1319. package/lib/interface/dialog-response.interface.d.ts +5 -0
  1320. package/lib/model/down-payment-view-model.d.ts +7 -0
  1321. package/lib/model/extended-transaction-line-view-model.d.ts +10 -0
  1322. package/lib/model/filter-item.viewmodel.d.ts +7 -0
  1323. package/lib/model/filter-viewmodel.d.ts +8 -0
  1324. package/lib/model/icon-svg.d.ts +4 -0
  1325. package/lib/model/payment.viewmodel.d.ts +6 -0
  1326. package/lib/model/received-goods-view-model.d.ts +10 -0
  1327. package/lib/model/relation-any-type.d.ts +3 -0
  1328. package/lib/model/standard-text.d.ts +5 -0
  1329. package/lib/model/text-value-container.d.ts +4 -0
  1330. package/lib/model/transaction-bar-button.d.ts +10 -0
  1331. package/lib/model/transaction-search-result.d.ts +5 -0
  1332. package/lib/pipe/append.pipe.d.ts +4 -0
  1333. package/lib/pipe/co-currency.pipe.d.ts +10 -0
  1334. package/lib/pipe/date-duration.pipe.d.ts +10 -0
  1335. package/lib/pipe/delivery-time.pipe.d.ts +12 -0
  1336. package/lib/pipe/localize.pipe.d.ts +7 -0
  1337. package/lib/pipe/pipe.module.d.ts +2 -0
  1338. package/lib/pipe/safe-html.pipe.d.ts +7 -0
  1339. package/lib/pipe/safe-style.pipe.d.ts +7 -0
  1340. package/lib/service/article-connector.service.d.ts +20 -0
  1341. package/lib/service/article.service.d.ts +8 -0
  1342. package/lib/service/dialog.service.d.ts +29 -0
  1343. package/lib/service/dictionary.service.d.ts +21 -0
  1344. package/lib/service/dynamic-component.service.d.ts +12 -0
  1345. package/lib/service/error.service.d.ts +12 -0
  1346. package/lib/service/icon-cache.service.d.ts +18 -0
  1347. package/lib/service/options.service.d.ts +13 -0
  1348. package/lib/service/payment.service.d.ts +23 -0
  1349. package/lib/service/pending-reason.service.d.ts +63 -0
  1350. package/lib/service/relation-connector.service.d.ts +36 -0
  1351. package/lib/service/relation.service.d.ts +44 -0
  1352. package/lib/service/shared-connector.service.d.ts +12 -0
  1353. package/lib/service/shared.service.d.ts +15 -0
  1354. package/lib/service/transaction-connector-adapter.service.d.ts +207 -0
  1355. package/lib/service/transaction-connector.service.d.ts +198 -0
  1356. package/lib/service/transaction-event.service.d.ts +67 -0
  1357. package/lib/service/transaction-image.service.d.ts +10 -0
  1358. package/lib/service/transaction-mapping.service.d.ts +25 -0
  1359. package/lib/service/transaction.service.d.ts +175 -0
  1360. package/{projects/transaction/src/lib → lib}/style/_mixin.scss +0 -0
  1361. package/{projects/transaction/src/lib → lib}/style/_variables.scss +0 -0
  1362. package/{projects/transaction/src/lib → lib}/style/transaction-globals.scss +0 -0
  1363. package/package.json +45 -92
  1364. package/public_api.d.ts +45 -0
  1365. package/.browserslistrc +0 -18
  1366. package/.editorconfig +0 -16
  1367. package/.eslintrc.json +0 -49
  1368. package/angular.json +0 -165
  1369. package/custom_webpack.config.js +0 -6
  1370. package/e2e/protractor.conf.js +0 -32
  1371. package/e2e/src/app.e2e-spec.ts +0 -23
  1372. package/e2e/src/app.po.ts +0 -11
  1373. package/e2e/tsconfig.json +0 -13
  1374. package/import.bat +0 -8
  1375. package/karma.conf.js +0 -32
  1376. package/move-assets.js +0 -14
  1377. package/projects/transaction/README.md +0 -24
  1378. package/projects/transaction/karma.conf.js +0 -44
  1379. package/projects/transaction/ng-package.json +0 -13
  1380. package/projects/transaction/package.json +0 -44
  1381. package/projects/transaction/src/lib/assets/.gitkeep +0 -0
  1382. package/projects/transaction/src/lib/assets/dictionary/text.properties.ts +0 -748
  1383. package/projects/transaction/src/lib/assets/icons/arrow_point_down.svg +0 -6
  1384. package/projects/transaction/src/lib/assets/icons/arrow_point_left.svg +0 -8
  1385. package/projects/transaction/src/lib/assets/icons/arrow_point_right.svg +0 -8
  1386. package/projects/transaction/src/lib/assets/icons/article.svg +0 -1
  1387. package/projects/transaction/src/lib/assets/icons/at_solid.svg +0 -1
  1388. package/projects/transaction/src/lib/assets/icons/barcode_regular.svg +0 -1
  1389. package/projects/transaction/src/lib/assets/icons/barcode_solid.svg +0 -1
  1390. package/projects/transaction/src/lib/assets/icons/bars_filter.svg +0 -1
  1391. package/projects/transaction/src/lib/assets/icons/calendar_day.svg +0 -37
  1392. package/projects/transaction/src/lib/assets/icons/calendar_day_regular.svg +0 -1
  1393. package/projects/transaction/src/lib/assets/icons/cancel.svg +0 -1
  1394. package/projects/transaction/src/lib/assets/icons/cart_check.svg +0 -1
  1395. package/projects/transaction/src/lib/assets/icons/cart_flatbed_boxes_solid.svg +0 -1
  1396. package/projects/transaction/src/lib/assets/icons/cart_shopping_solid.svg +0 -5
  1397. package/projects/transaction/src/lib/assets/icons/cash_register.svg +0 -1
  1398. package/projects/transaction/src/lib/assets/icons/credit_card_solid.svg +0 -1
  1399. package/projects/transaction/src/lib/assets/icons/delivery_truck.svg +0 -1
  1400. package/projects/transaction/src/lib/assets/icons/edit_pencil.svg +0 -1
  1401. package/projects/transaction/src/lib/assets/icons/ellipsis_light.svg +0 -1
  1402. package/projects/transaction/src/lib/assets/icons/ellipsis_vertical_solid.svg +0 -1
  1403. package/projects/transaction/src/lib/assets/icons/expand_solid.svg +0 -1
  1404. package/projects/transaction/src/lib/assets/icons/file_circle_info_solid.svg +0 -1
  1405. package/projects/transaction/src/lib/assets/icons/file_export_regular.svg +0 -1
  1406. package/projects/transaction/src/lib/assets/icons/file_export_solid.svg +0 -1
  1407. package/projects/transaction/src/lib/assets/icons/file_pdf_regular.svg +0 -1
  1408. package/projects/transaction/src/lib/assets/icons/file_pdf_solid.svg +0 -1
  1409. package/projects/transaction/src/lib/assets/icons/gear_solid.svg +0 -1
  1410. package/projects/transaction/src/lib/assets/icons/grip_dots_vertical_solid.svg +0 -1
  1411. package/projects/transaction/src/lib/assets/icons/ideal_logo.svg +0 -38
  1412. package/projects/transaction/src/lib/assets/icons/inbox_in_solid.svg +0 -1
  1413. package/projects/transaction/src/lib/assets/icons/list_regular.svg +0 -1
  1414. package/projects/transaction/src/lib/assets/icons/list_view.svg +0 -8
  1415. package/projects/transaction/src/lib/assets/icons/location_dot_solid.svg +0 -1
  1416. package/projects/transaction/src/lib/assets/icons/lock.svg +0 -1
  1417. package/projects/transaction/src/lib/assets/icons/lock_keyhole_open_solid.svg +0 -1
  1418. package/projects/transaction/src/lib/assets/icons/lock_keyhole_solid.svg +0 -1
  1419. package/projects/transaction/src/lib/assets/icons/magnifier.svg +0 -12
  1420. package/projects/transaction/src/lib/assets/icons/map_marker.svg +0 -1
  1421. package/projects/transaction/src/lib/assets/icons/master_detail.svg +0 -1
  1422. package/projects/transaction/src/lib/assets/icons/memo_circle_check_solid.svg +0 -1
  1423. package/projects/transaction/src/lib/assets/icons/menu.svg +0 -1
  1424. package/projects/transaction/src/lib/assets/icons/message_sms_regular.svg +0 -1
  1425. package/projects/transaction/src/lib/assets/icons/message_sms_solid.svg +0 -1
  1426. package/projects/transaction/src/lib/assets/icons/object_intersect_solid.svg +0 -1
  1427. package/projects/transaction/src/lib/assets/icons/pallet_boxes_solid.svg +0 -1
  1428. package/projects/transaction/src/lib/assets/icons/pdf.svg +0 -15
  1429. package/projects/transaction/src/lib/assets/icons/percent_solid.svg +0 -1
  1430. package/projects/transaction/src/lib/assets/icons/plus_round.svg +0 -9
  1431. package/projects/transaction/src/lib/assets/icons/plus_simple.svg +0 -1
  1432. package/projects/transaction/src/lib/assets/icons/print_regular.svg +0 -1
  1433. package/projects/transaction/src/lib/assets/icons/print_solid.svg +0 -1
  1434. package/projects/transaction/src/lib/assets/icons/purchase.svg +0 -15
  1435. package/projects/transaction/src/lib/assets/icons/resize.svg +0 -3
  1436. package/projects/transaction/src/lib/assets/icons/share_solid.svg +0 -1
  1437. package/projects/transaction/src/lib/assets/icons/shelves_light.svg +0 -1
  1438. package/projects/transaction/src/lib/assets/icons/shelves_solid.svg +0 -1
  1439. package/projects/transaction/src/lib/assets/icons/side_panel.svg +0 -7
  1440. package/projects/transaction/src/lib/assets/icons/slide_in.svg +0 -1
  1441. package/projects/transaction/src/lib/assets/icons/square_full.svg +0 -1
  1442. package/projects/transaction/src/lib/assets/icons/square_full_solid.svg +0 -1
  1443. package/projects/transaction/src/lib/assets/icons/sync_alt.svg +0 -3
  1444. package/projects/transaction/src/lib/assets/icons/tag.svg +0 -1
  1445. package/projects/transaction/src/lib/assets/icons/text_size_solid.svg +0 -1
  1446. package/projects/transaction/src/lib/assets/icons/text_solid.svg +0 -1
  1447. package/projects/transaction/src/lib/assets/icons/thick_lines.svg +0 -1
  1448. package/projects/transaction/src/lib/assets/icons/thin_lines.svg +0 -1
  1449. package/projects/transaction/src/lib/assets/icons/trash_bin.svg +0 -1
  1450. package/projects/transaction/src/lib/assets/icons/trash_can_light.svg +0 -1
  1451. package/projects/transaction/src/lib/assets/icons/triangle_down.svg +0 -1
  1452. package/projects/transaction/src/lib/assets/icons/triangle_up.svg +0 -1
  1453. package/projects/transaction/src/lib/assets/icons/truck.svg +0 -1
  1454. package/projects/transaction/src/lib/assets/icons/truck_arrow_right_solid.svg +0 -1
  1455. package/projects/transaction/src/lib/assets/icons/truck_container_solid.svg +0 -1
  1456. package/projects/transaction/src/lib/assets/icons/truck_fast_solid.svg +0 -1
  1457. package/projects/transaction/src/lib/assets/icons/truck_moving_solid.svg +0 -1
  1458. package/projects/transaction/src/lib/assets/icons/txt.svg +0 -9
  1459. package/projects/transaction/src/lib/assets/icons/unlock.svg +0 -1
  1460. package/projects/transaction/src/lib/assets/icons/warehouse.svg +0 -1
  1461. package/projects/transaction/src/lib/assets/icons/x_solid.svg +0 -1
  1462. package/projects/transaction/src/lib/cache/cache-field.ts +0 -91
  1463. package/projects/transaction/src/lib/cache/parameter-cache-field.ts +0 -63
  1464. package/projects/transaction/src/lib/cache/service/business-object-cache-manager.service.ts +0 -194
  1465. package/projects/transaction/src/lib/cache/service/select-multiple-cache.service.ts +0 -36
  1466. package/projects/transaction/src/lib/cache/service/select-multiple-parameterized-cache.service.ts +0 -46
  1467. package/projects/transaction/src/lib/cache/service/select-single-cache.service.ts +0 -28
  1468. package/projects/transaction/src/lib/component/animated-checkbox/animated-checkbox.component.ts +0 -26
  1469. package/projects/transaction/src/lib/component/animated-checkbox/animated-checkbox.module.ts +0 -19
  1470. package/projects/transaction/src/lib/component/avatar/avatar.component.ts +0 -120
  1471. package/projects/transaction/src/lib/component/avatar/avatar.module.ts +0 -20
  1472. package/projects/transaction/src/lib/component/checkout/checkout-login/checkout-login.component.ts +0 -115
  1473. package/projects/transaction/src/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.ts +0 -50
  1474. package/projects/transaction/src/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.ts +0 -296
  1475. package/projects/transaction/src/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.ts +0 -107
  1476. package/projects/transaction/src/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.ts +0 -256
  1477. package/projects/transaction/src/lib/component/checkout/checkout.component.ts +0 -205
  1478. package/projects/transaction/src/lib/component/checkout/checkout.module.ts +0 -144
  1479. package/projects/transaction/src/lib/component/confirmation-dialog/confirmation-dialog.component.ts +0 -72
  1480. package/projects/transaction/src/lib/component/confirmation-dialog/confirmation-dialog.module.ts +0 -23
  1481. package/projects/transaction/src/lib/component/core/base/components/characteristic-answer/characteristic-answer.component.ts +0 -87
  1482. package/projects/transaction/src/lib/component/core/base/components/characteristic-answer/characteristic-answer.module.ts +0 -25
  1483. package/projects/transaction/src/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.ts +0 -46
  1484. package/projects/transaction/src/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.ts +0 -20
  1485. package/projects/transaction/src/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.ts +0 -51
  1486. package/projects/transaction/src/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.ts +0 -17
  1487. package/projects/transaction/src/lib/component/core/base/components/warehouse/warehouse.component.ts +0 -65
  1488. package/projects/transaction/src/lib/component/core/base/components/warehouse/warehouse.module.ts +0 -24
  1489. package/projects/transaction/src/lib/component/core/base/dialog-base.component.ts +0 -8
  1490. package/projects/transaction/src/lib/component/core/base/dialog-transaction-base.component.ts +0 -44
  1491. package/projects/transaction/src/lib/component/core/base/dynamic-base-component.ts +0 -8
  1492. package/projects/transaction/src/lib/component/core/base/transaction-base.component.ts +0 -188
  1493. package/projects/transaction/src/lib/component/core/base/transaction-filter-base.component.ts +0 -70
  1494. package/projects/transaction/src/lib/component/core/base/transaction-filter-content-base.component.ts +0 -49
  1495. package/projects/transaction/src/lib/component/core/base/transaction-filter-popup-base.component.ts +0 -113
  1496. package/projects/transaction/src/lib/component/core/base/transaction-grid-base.component.ts +0 -54
  1497. package/projects/transaction/src/lib/component/core/base/transaction-header-filter-popup-base.component.ts +0 -124
  1498. package/projects/transaction/src/lib/component/core/base/transaction-input-field-base.component.ts +0 -54
  1499. package/projects/transaction/src/lib/component/core/base/transaction-lines-grid-view-base.component.ts +0 -6
  1500. package/projects/transaction/src/lib/component/core/base/transaction-lines-list-view-base.component.ts +0 -6
  1501. package/projects/transaction/src/lib/component/core/base/transaction-search-grid-base.component.ts +0 -24
  1502. package/projects/transaction/src/lib/component/core/base/transaction-search-tile-base.component.ts +0 -30
  1503. package/projects/transaction/src/lib/component/core/characteristic-answer/characteristic-answer.component.ts +0 -104
  1504. package/projects/transaction/src/lib/component/core/core.module.ts +0 -47
  1505. package/projects/transaction/src/lib/component/core/directive/lazy-render-master.directive.ts +0 -47
  1506. package/projects/transaction/src/lib/component/core/directive/lazy-render.directive.ts +0 -37
  1507. package/projects/transaction/src/lib/component/core/directive/template-wrapper.directive.ts +0 -72
  1508. package/projects/transaction/src/lib/component/core/enum/app-popup-button-type.enum.ts +0 -9
  1509. package/projects/transaction/src/lib/component/core/enum/app-popup-type.enum.ts +0 -6
  1510. package/projects/transaction/src/lib/component/core/icon/icon.component.ts +0 -33
  1511. package/projects/transaction/src/lib/component/core/image-display/image-display.component.ts +0 -27
  1512. package/projects/transaction/src/lib/component/core/relation/customer-groups.component.ts +0 -47
  1513. package/projects/transaction/src/lib/component/core/stock-status-indicator/stock-status-indicator.component.ts +0 -25
  1514. package/projects/transaction/src/lib/component/delivery-type-tile/delivery-type-tile.component.ts +0 -48
  1515. package/projects/transaction/src/lib/component/delivery-type-tile/delivery-type-tile.module.ts +0 -25
  1516. package/projects/transaction/src/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.ts +0 -53
  1517. package/projects/transaction/src/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.module.ts +0 -21
  1518. package/projects/transaction/src/lib/component/dialog/dialog-header-search/dialog-header-search.component.ts +0 -40
  1519. package/projects/transaction/src/lib/component/dialog/dialog-header-search/dialog-header-search.module.ts +0 -21
  1520. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-branch/dialog-transaction-header-branch.component.ts +0 -24
  1521. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-branch/dialog-transaction-header-branch.module.ts +0 -23
  1522. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.component.ts +0 -35
  1523. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-delivery-method/dialog-transaction-header-delivery-method.module.ts +0 -26
  1524. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.component.ts +0 -70
  1525. package/projects/transaction/src/lib/component/dialog/transaction-header/dialog-transaction-header-discount/dialog-transaction-header-discount.module.ts +0 -27
  1526. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.component.ts +0 -33
  1527. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-commission-code/dialog-transaction-line-commission-code.module.ts +0 -26
  1528. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.component.ts +0 -34
  1529. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-delivery-method/dialog-transaction-line-delivery-method.module.ts +0 -26
  1530. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.component.ts +0 -93
  1531. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-discount/dialog-transaction-line-discount.module.ts +0 -34
  1532. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.component.ts +0 -34
  1533. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-price-list/dialog-transaction-line-price-list.module.ts +0 -26
  1534. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.component.ts +0 -34
  1535. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-supplier/dialog-transaction-line-supplier.module.ts +0 -26
  1536. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.component.ts +0 -35
  1537. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-vat/dialog-transaction-line-vat.module.ts +0 -26
  1538. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.component.ts +0 -33
  1539. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse/dialog-transaction-line-warehouse.module.ts +0 -26
  1540. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.component.ts +0 -84
  1541. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-cc/dialog-transaction-line-warehouse-cc.module.ts +0 -29
  1542. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.component.ts +0 -42
  1543. package/projects/transaction/src/lib/component/dialog/transaction-line/dialog-transaction-line-warehouse-location/dialog-transaction-line-warehouse-location.module.ts +0 -26
  1544. package/projects/transaction/src/lib/component/discount/discount.component.ts +0 -120
  1545. package/projects/transaction/src/lib/component/discount/discount.module.ts +0 -26
  1546. package/projects/transaction/src/lib/component/down-payment/down-payment.component.ts +0 -77
  1547. package/projects/transaction/src/lib/component/down-payment/down-payment.module.ts +0 -25
  1548. package/projects/transaction/src/lib/component/editable-label/editable-label.component.ts +0 -74
  1549. package/projects/transaction/src/lib/component/editable-label/editable-label.module.ts +0 -18
  1550. package/projects/transaction/src/lib/component/loader/loader.component.ts +0 -49
  1551. package/projects/transaction/src/lib/component/loader/loader.module.ts +0 -17
  1552. package/projects/transaction/src/lib/component/order-confirmation-create/order-confirmation-create.component.ts +0 -42
  1553. package/projects/transaction/src/lib/component/order-confirmation-create/order-confirmation-create.module.ts +0 -26
  1554. package/projects/transaction/src/lib/component/payment/payment.component.ts +0 -264
  1555. package/projects/transaction/src/lib/component/payment/payment.module.ts +0 -36
  1556. package/projects/transaction/src/lib/component/payment-qr-code/payment-qr-code.component.ts +0 -24
  1557. package/projects/transaction/src/lib/component/payment-qr-code/payment-qr-code.module.ts +0 -21
  1558. package/projects/transaction/src/lib/component/payment-tile/payment-tile.component.ts +0 -38
  1559. package/projects/transaction/src/lib/component/payment-tile/payment-tile.module.ts +0 -24
  1560. package/projects/transaction/src/lib/component/quick-send-button/quick-send-button.component.ts +0 -60
  1561. package/projects/transaction/src/lib/component/quick-send-button/quick-send-button.module.ts +0 -25
  1562. package/projects/transaction/src/lib/component/relation/relation-address/relation-address.component.ts +0 -113
  1563. package/projects/transaction/src/lib/component/relation/relation-address/relation-address.module.ts +0 -28
  1564. package/projects/transaction/src/lib/component/relation/relation-address-select/relation-address-select.component.ts +0 -158
  1565. package/projects/transaction/src/lib/component/relation/relation-address-select/relation-address-select.module.ts +0 -32
  1566. package/projects/transaction/src/lib/component/relation/relation-address-tile/relation-address-tile.component.ts +0 -70
  1567. package/projects/transaction/src/lib/component/relation/relation-address-tile/relation-address-tile.module.ts +0 -31
  1568. package/projects/transaction/src/lib/component/relation/relation-addresses/relation-addresses.component.ts +0 -123
  1569. package/projects/transaction/src/lib/component/relation/relation-addresses/relation-addresses.module.ts +0 -32
  1570. package/projects/transaction/src/lib/component/relation/relation-base.component.ts +0 -33
  1571. package/projects/transaction/src/lib/component/relation/relation-contact-details/relation-contact-details.component.ts +0 -65
  1572. package/projects/transaction/src/lib/component/relation/relation-contact-details/relation-contact-details.module.ts +0 -22
  1573. package/projects/transaction/src/lib/component/relation/relation-general/relation-general.component.ts +0 -237
  1574. package/projects/transaction/src/lib/component/relation/relation-general/relation-general.module.ts +0 -25
  1575. package/projects/transaction/src/lib/component/relation/relation-preferences/relation-preferences.component.ts +0 -64
  1576. package/projects/transaction/src/lib/component/relation/relation-preferences/relation-preferences.module.ts +0 -19
  1577. package/projects/transaction/src/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.ts +0 -28
  1578. package/projects/transaction/src/lib/component/relation/relation-suggestions-list/relation-suggestions-list.module.ts +0 -19
  1579. package/projects/transaction/src/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.ts +0 -33
  1580. package/projects/transaction/src/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.module.ts +0 -17
  1581. package/projects/transaction/src/lib/component/relation/relation-type/relation-type.component.ts +0 -48
  1582. package/projects/transaction/src/lib/component/relation/relation-type/relation-type.module.ts +0 -21
  1583. package/projects/transaction/src/lib/component/shared/transaction-article-text/transaction-article-text.component.ts +0 -181
  1584. package/projects/transaction/src/lib/component/shared/transaction-article-text/transaction-article-text.module.ts +0 -40
  1585. package/projects/transaction/src/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.ts +0 -145
  1586. package/projects/transaction/src/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.ts +0 -27
  1587. package/projects/transaction/src/lib/component/shopping-cart/shopping-cart.component.ts +0 -73
  1588. package/projects/transaction/src/lib/component/shopping-cart/shopping-cart.module.ts +0 -25
  1589. package/projects/transaction/src/lib/component/shopping-cart-OLD/ione-shopping-cart.component.ts +0 -190
  1590. package/projects/transaction/src/lib/component/shopping-cart-OLD/ione-shopping-cart.module.ts +0 -81
  1591. package/projects/transaction/src/lib/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.ts +0 -508
  1592. package/projects/transaction/src/lib/component/shopping-cart-preview/shopping-cart-preview.component.ts +0 -59
  1593. package/projects/transaction/src/lib/component/shopping-cart-preview/shopping-cart-preview.module.ts +0 -27
  1594. package/projects/transaction/src/lib/component/stepper/component/stepper-step.component.ts +0 -45
  1595. package/projects/transaction/src/lib/component/stepper/stepper.component.ts +0 -148
  1596. package/projects/transaction/src/lib/component/stepper/stepper.module.ts +0 -28
  1597. package/projects/transaction/src/lib/component/tile/tile.component.ts +0 -31
  1598. package/projects/transaction/src/lib/component/tile/tile.module.ts +0 -18
  1599. package/projects/transaction/src/lib/component/toast/toast.component.ts +0 -35
  1600. package/projects/transaction/src/lib/component/toast/toast.module.ts +0 -17
  1601. package/projects/transaction/src/lib/component/transaction/transaction.component.ts +0 -207
  1602. package/projects/transaction/src/lib/component/transaction/transaction.module.ts +0 -66
  1603. package/projects/transaction/src/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.component.ts +0 -95
  1604. package/projects/transaction/src/lib/component/transaction-allocate-goods-history/transaction-allocate-goods-history.module.ts +0 -26
  1605. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button-base.component.ts +0 -45
  1606. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.ts +0 -76
  1607. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-sales-purchase-button-bar-button.component.ts +0 -40
  1608. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar.component.ts +0 -63
  1609. package/projects/transaction/src/lib/component/transaction-button-bar/transaction-button-bar.module.ts +0 -33
  1610. package/projects/transaction/src/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.ts +0 -148
  1611. package/projects/transaction/src/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.ts +0 -40
  1612. package/projects/transaction/src/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.ts +0 -129
  1613. package/projects/transaction/src/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.ts +0 -38
  1614. package/projects/transaction/src/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.component.ts +0 -107
  1615. package/projects/transaction/src/lib/component/transaction-grid/transaction-available-stock-grid/transaction-available-stock-grid.module.ts +0 -23
  1616. package/projects/transaction/src/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.ts +0 -49
  1617. package/projects/transaction/src/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.ts +0 -31
  1618. package/projects/transaction/src/lib/component/transaction-grid/transaction-grid/transaction-grid.component.ts +0 -91
  1619. package/projects/transaction/src/lib/component/transaction-grid/transaction-grid/transaction-grid.module.ts +0 -17
  1620. package/projects/transaction/src/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.ts +0 -102
  1621. package/projects/transaction/src/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.ts +0 -26
  1622. package/projects/transaction/src/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.ts +0 -119
  1623. package/projects/transaction/src/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.ts +0 -48
  1624. package/projects/transaction/src/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.ts +0 -48
  1625. package/projects/transaction/src/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.ts +0 -28
  1626. package/projects/transaction/src/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.ts +0 -165
  1627. package/projects/transaction/src/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.ts +0 -41
  1628. package/projects/transaction/src/lib/component/transaction-header/transaction-header/transaction-header.component.ts +0 -51
  1629. package/projects/transaction/src/lib/component/transaction-header/transaction-header/transaction-header.module.ts +0 -28
  1630. package/projects/transaction/src/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.ts +0 -128
  1631. package/projects/transaction/src/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.ts +0 -45
  1632. package/projects/transaction/src/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.ts +0 -51
  1633. package/projects/transaction/src/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.ts +0 -30
  1634. package/projects/transaction/src/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.ts +0 -118
  1635. package/projects/transaction/src/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.ts +0 -33
  1636. package/projects/transaction/src/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.ts +0 -235
  1637. package/projects/transaction/src/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.ts +0 -43
  1638. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.ts +0 -60
  1639. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-administrative-relation.module.ts +0 -21
  1640. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-branch.component.ts +0 -76
  1641. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-branch.module.ts +0 -24
  1642. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-definitive.component.ts +0 -41
  1643. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-definitive.module.ts +0 -21
  1644. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-date.component.ts +0 -46
  1645. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-date.module.ts +0 -21
  1646. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-method.component.ts +0 -94
  1647. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-method.module.ts +0 -27
  1648. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.component.ts +0 -77
  1649. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-delivery-options/transaction-header-delivery-options.module.ts +0 -21
  1650. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-amount.component.ts +0 -50
  1651. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-amount.module.ts +0 -21
  1652. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-button.component.ts +0 -51
  1653. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-button.module.ts +0 -24
  1654. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-percentage.component.ts +0 -50
  1655. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-percentage.module.ts +0 -21
  1656. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.component.ts +0 -51
  1657. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-discount-transaction-total.module.ts +0 -21
  1658. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-amount.component.ts +0 -49
  1659. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-amount.module.ts +0 -21
  1660. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.component.ts +0 -49
  1661. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-downpayment-percentage.module.ts +0 -21
  1662. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-marketing.component.ts +0 -48
  1663. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-marketing.module.ts +0 -24
  1664. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.ts +0 -47
  1665. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-partial-delivery.module.ts +0 -21
  1666. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.component.ts +0 -51
  1667. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-preferred-delivery-date.module.ts +0 -21
  1668. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-reference.component.ts +0 -48
  1669. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-reference.module.ts +0 -21
  1670. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-relation-reference.component.ts +0 -48
  1671. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-relation-reference.module.ts +0 -21
  1672. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-remarks.component.ts +0 -48
  1673. package/projects/transaction/src/lib/component/transaction-header-fields/transaction-header-remarks.module.ts +0 -21
  1674. package/projects/transaction/src/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.ts +0 -51
  1675. package/projects/transaction/src/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.ts +0 -21
  1676. package/projects/transaction/src/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.ts +0 -93
  1677. package/projects/transaction/src/lib/component/transaction-line/transaction-base-line/transaction-base-line.module.ts +0 -28
  1678. package/projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line/service/transaction-allocate-goods.service.ts +0 -67
  1679. package/projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.component.ts +0 -115
  1680. package/projects/transaction/src/lib/component/transaction-line/transaction-goods-allocation-line/transaction-goods-allocation-line.module.ts +0 -35
  1681. package/projects/transaction/src/lib/component/transaction-line/transaction-line/transaction-line.component.ts +0 -143
  1682. package/projects/transaction/src/lib/component/transaction-line/transaction-line/transaction-line.module.ts +0 -20
  1683. package/projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.ts +0 -11
  1684. package/projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.ts +0 -134
  1685. package/projects/transaction/src/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.ts +0 -41
  1686. package/projects/transaction/src/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.ts +0 -95
  1687. package/projects/transaction/src/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.module.ts +0 -60
  1688. package/projects/transaction/src/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.ts +0 -105
  1689. package/projects/transaction/src/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.module.ts +0 -44
  1690. package/projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line/service/transaction-receive-goods.service.ts +0 -73
  1691. package/projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.component.ts +0 -130
  1692. package/projects/transaction/src/lib/component/transaction-line/transaction-receive-goods-line/transaction-receive-goods-line.module.ts +0 -46
  1693. package/projects/transaction/src/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.ts +0 -224
  1694. package/projects/transaction/src/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.ts +0 -30
  1695. package/projects/transaction/src/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.component.ts +0 -58
  1696. package/projects/transaction/src/lib/component/transaction-line-checkbox-list/transaction-line-checkbox-list.module.ts +0 -23
  1697. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-amount.component.ts +0 -46
  1698. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-amount.module.ts +0 -19
  1699. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-assembly-time.component.ts +0 -0
  1700. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-assembly-time.module.ts +0 -0
  1701. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-collection-code.component.ts +0 -0
  1702. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-collection-code.module.ts +0 -0
  1703. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-button.component.ts +0 -51
  1704. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-button.module.ts +0 -22
  1705. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-code.component.ts +0 -55
  1706. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-commission-code.module.ts +0 -24
  1707. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-button.component.ts +0 -58
  1708. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-button.module.ts +0 -22
  1709. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.ts +0 -34
  1710. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.ts +0 -22
  1711. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date.component.ts +0 -56
  1712. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-date.module.ts +0 -21
  1713. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-method.component.ts +0 -51
  1714. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-delivery-method.module.ts +0 -24
  1715. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-description.component.ts +0 -61
  1716. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-description.module.ts +0 -22
  1717. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-amount.component.ts +0 -49
  1718. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-amount.module.ts +0 -21
  1719. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-button.component.ts +0 -53
  1720. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-discount-button.module.ts +0 -24
  1721. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-edit-time.component.ts +0 -0
  1722. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-edit-time.module.ts +0 -0
  1723. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-line-discount.component.ts +0 -49
  1724. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-line-discount.module.ts +0 -21
  1725. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.ts +0 -90
  1726. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.module.ts +0 -21
  1727. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price-list.component.ts +0 -49
  1728. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-price-list.module.ts +0 -24
  1729. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantity.component.ts +0 -35
  1730. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantity.module.ts +0 -21
  1731. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.ts +0 -49
  1732. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.ts +0 -21
  1733. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-reference.component.ts +0 -47
  1734. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-reference.module.ts +0 -21
  1735. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-special-discount.component.ts +0 -49
  1736. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-special-discount.module.ts +0 -21
  1737. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-article-number.component.ts +0 -0
  1738. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-article-number.module.ts +0 -0
  1739. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-button.component.ts +0 -56
  1740. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier-button.module.ts +0 -27
  1741. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier.component.ts +0 -56
  1742. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-supplier.module.ts +0 -23
  1743. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat-button.component.ts +0 -55
  1744. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat-button.module.ts +0 -20
  1745. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat.component.ts +0 -45
  1746. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-vat.module.ts +0 -26
  1747. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-button.component.ts +0 -61
  1748. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-button.module.ts +0 -22
  1749. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.component.ts +0 -57
  1750. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location-button.module.ts +0 -20
  1751. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location.component.ts +0 -46
  1752. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse-location.module.ts +0 -21
  1753. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse.component.ts +0 -48
  1754. package/projects/transaction/src/lib/component/transaction-line-fields/transaction-line-warehouse.module.ts +0 -25
  1755. package/projects/transaction/src/lib/component/transaction-line-grid/transaction-line-grid.component.ts +0 -20
  1756. package/projects/transaction/src/lib/component/transaction-line-grid/transaction-line-grid.module.ts +0 -19
  1757. package/projects/transaction/src/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.component.ts +0 -102
  1758. package/projects/transaction/src/lib/component/transaction-line-image-and-description/transaction-line-image-and-description.module.ts +0 -26
  1759. package/projects/transaction/src/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.ts +0 -125
  1760. package/projects/transaction/src/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.ts +0 -43
  1761. package/projects/transaction/src/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.ts +0 -120
  1762. package/projects/transaction/src/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.ts +0 -58
  1763. package/projects/transaction/src/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.ts +0 -123
  1764. package/projects/transaction/src/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.ts +0 -39
  1765. package/projects/transaction/src/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.component.ts +0 -85
  1766. package/projects/transaction/src/lib/component/transaction-line-side-panel-sales/transaction-line-side-panel-sales.module.ts +0 -30
  1767. package/projects/transaction/src/lib/component/transaction-line-statusbar/transaction-line-statusbar.component.ts +0 -108
  1768. package/projects/transaction/src/lib/component/transaction-line-statusbar/transaction-line-statusbar.module.ts +0 -21
  1769. package/projects/transaction/src/lib/component/transaction-lines/transaction-lines.component.ts +0 -180
  1770. package/projects/transaction/src/lib/component/transaction-lines/transaction-lines.module.ts +0 -30
  1771. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.ts +0 -107
  1772. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.ts +0 -42
  1773. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.component.ts +0 -68
  1774. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-goods-allocation/transaction-quick-access-goods-allocation.module.ts +0 -24
  1775. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.ts +0 -41
  1776. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.ts +0 -27
  1777. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.ts +0 -70
  1778. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.module.ts +0 -26
  1779. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.component.ts +0 -54
  1780. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-order-purchase/transaction-quick-access-order-purchase.module.ts +0 -26
  1781. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.ts +0 -139
  1782. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.ts +0 -29
  1783. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.component.ts +0 -133
  1784. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-purchase-order-overview/transaction-quick-access-purchase-order-overview.module.ts +0 -27
  1785. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.ts +0 -96
  1786. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.ts +0 -31
  1787. package/projects/transaction/src/lib/component/transaction-quick-access/transaction-quick-access-send-method-base.component.ts +0 -132
  1788. package/projects/transaction/src/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.ts +0 -90
  1789. package/projects/transaction/src/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.ts +0 -28
  1790. package/projects/transaction/src/lib/component/transaction-search/service/filter-request.service.ts +0 -194
  1791. package/projects/transaction/src/lib/component/transaction-search/service/transaction-search.service.ts +0 -134
  1792. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.ts +0 -119
  1793. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.module.ts +0 -17
  1794. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.ts +0 -51
  1795. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.ts +0 -40
  1796. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.ts +0 -51
  1797. package/projects/transaction/src/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.ts +0 -38
  1798. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.ts +0 -44
  1799. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.ts +0 -17
  1800. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/enum/search-placeholder.enum.ts +0 -25
  1801. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.ts +0 -155
  1802. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.ts +0 -27
  1803. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.ts +0 -249
  1804. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.ts +0 -33
  1805. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.ts +0 -246
  1806. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.ts +0 -38
  1807. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.ts +0 -145
  1808. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.module.ts +0 -27
  1809. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.ts +0 -248
  1810. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.module.ts +0 -33
  1811. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.ts +0 -274
  1812. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.module.ts +0 -38
  1813. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.component.ts +0 -70
  1814. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-historic-state/transaction-filter-historic-state.module.ts +0 -24
  1815. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.component.ts +0 -71
  1816. package/projects/transaction/src/lib/component/transaction-search/transaction-filter-item/transaction-filter-item.module.ts +0 -21
  1817. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.ts +0 -104
  1818. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.module.ts +0 -17
  1819. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.ts +0 -80
  1820. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.ts +0 -23
  1821. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.ts +0 -80
  1822. package/projects/transaction/src/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.ts +0 -25
  1823. package/projects/transaction/src/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.ts +0 -135
  1824. package/projects/transaction/src/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.ts +0 -25
  1825. package/projects/transaction/src/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.ts +0 -136
  1826. package/projects/transaction/src/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.ts +0 -42
  1827. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.ts +0 -65
  1828. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.ts +0 -27
  1829. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.ts +0 -72
  1830. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.ts +0 -30
  1831. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.ts +0 -118
  1832. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.ts +0 -17
  1833. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.component.ts +0 -90
  1834. package/projects/transaction/src/lib/component/transaction-search/transaction-search-tile/transaction-statusbar/transaction-statusbar.module.ts +0 -21
  1835. package/projects/transaction/src/lib/component/transaction-search/transaction-search.component.ts +0 -166
  1836. package/projects/transaction/src/lib/component/transaction-search/transaction-search.module.ts +0 -34
  1837. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/components/allocation-request.component.ts +0 -143
  1838. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/components/confirm-request.component.ts +0 -0
  1839. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/components/receive-goods-request.component.ts +0 -207
  1840. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.component.ts +0 -63
  1841. package/projects/transaction/src/lib/component/transaction-side-panel-edit-request-details/transaction-side-panel-edit-request-details.module.ts +0 -42
  1842. package/projects/transaction/src/lib/component/transaction-tile/transaction-tile.component.ts +0 -117
  1843. package/projects/transaction/src/lib/component/transaction-tile/transaction-tile.module.ts +0 -27
  1844. package/projects/transaction/src/lib/component/transaction-totals/transaction-totals.component.ts +0 -55
  1845. package/projects/transaction/src/lib/component/transaction-totals/transaction-totals.module.ts +0 -23
  1846. package/projects/transaction/src/lib/component/view-mode-buttons/view-mode-buttons.component.ts +0 -63
  1847. package/projects/transaction/src/lib/component/view-mode-buttons/view-mode-buttons.module.ts +0 -21
  1848. package/projects/transaction/src/lib/enum/content-view-mode.enum.ts +0 -9
  1849. package/projects/transaction/src/lib/enum/direction.enum.ts +0 -7
  1850. package/projects/transaction/src/lib/enum/icon.enum.ts +0 -83
  1851. package/projects/transaction/src/lib/enum/language-code.enum.ts +0 -6
  1852. package/projects/transaction/src/lib/enum/order-discount-type.enum.ts +0 -5
  1853. package/projects/transaction/src/lib/enum/position-grid-row.enum.ts +0 -4
  1854. package/projects/transaction/src/lib/enum/search-view-mode.enum.ts +0 -5
  1855. package/projects/transaction/src/lib/enum/searchbar-view-mode.enum.ts +0 -5
  1856. package/projects/transaction/src/lib/enum/status-type.enum.ts +0 -5
  1857. package/projects/transaction/src/lib/enum/time-size.type.ts +0 -8
  1858. package/projects/transaction/src/lib/enum/transaction-type-category.enum.ts +0 -15
  1859. package/projects/transaction/src/lib/interface/dialog-response.interface.ts +0 -6
  1860. package/projects/transaction/src/lib/model/Settings.ts +0 -20
  1861. package/projects/transaction/src/lib/model/article-characteristic-text-question-answer.ts +0 -8
  1862. package/projects/transaction/src/lib/model/delivery-type.ts +0 -8
  1863. package/projects/transaction/src/lib/model/down-payment-view-model.ts +0 -13
  1864. package/projects/transaction/src/lib/model/extended-transaction-line-view-model.ts +0 -11
  1865. package/projects/transaction/src/lib/model/filter-item.viewmodel.ts +0 -13
  1866. package/projects/transaction/src/lib/model/filter-viewmodel.ts +0 -11
  1867. package/projects/transaction/src/lib/model/icon-svg.ts +0 -83
  1868. package/projects/transaction/src/lib/model/payment.viewmodel.ts +0 -10
  1869. package/projects/transaction/src/lib/model/received-goods-view-model.ts +0 -17
  1870. package/projects/transaction/src/lib/model/relation-any-type.ts +0 -5
  1871. package/projects/transaction/src/lib/model/standard-text.ts +0 -5
  1872. package/projects/transaction/src/lib/model/text-value-container.ts +0 -4
  1873. package/projects/transaction/src/lib/model/transaction-bar-button.ts +0 -11
  1874. package/projects/transaction/src/lib/model/transaction-search-result.ts +0 -6
  1875. package/projects/transaction/src/lib/pipe/append.pipe.ts +0 -17
  1876. package/projects/transaction/src/lib/pipe/co-currency.pipe.ts +0 -45
  1877. package/projects/transaction/src/lib/pipe/date-duration.pipe.ts +0 -51
  1878. package/projects/transaction/src/lib/pipe/delivery-time.pipe.ts +0 -34
  1879. package/projects/transaction/src/lib/pipe/localize.pipe.ts +0 -23
  1880. package/projects/transaction/src/lib/pipe/pipe.module.ts +0 -34
  1881. package/projects/transaction/src/lib/pipe/safe-html.pipe.ts +0 -14
  1882. package/projects/transaction/src/lib/pipe/safe-style.pipe.ts +0 -14
  1883. package/projects/transaction/src/lib/provider/token/all-icons.token.ts +0 -4
  1884. package/projects/transaction/src/lib/service/article-connector.service.ts +0 -93
  1885. package/projects/transaction/src/lib/service/article.service.ts +0 -22
  1886. package/projects/transaction/src/lib/service/dialog.service.ts +0 -143
  1887. package/projects/transaction/src/lib/service/dictionary.service.ts +0 -86
  1888. package/projects/transaction/src/lib/service/dynamic-component.service.ts +0 -101
  1889. package/projects/transaction/src/lib/service/error.service.ts +0 -63
  1890. package/projects/transaction/src/lib/service/icon-cache.service.ts +0 -51
  1891. package/projects/transaction/src/lib/service/options.service.ts +0 -66
  1892. package/projects/transaction/src/lib/service/payment.service.ts +0 -93
  1893. package/projects/transaction/src/lib/service/pending-reason.service.ts +0 -323
  1894. package/projects/transaction/src/lib/service/relation-connector.service.ts +0 -202
  1895. package/projects/transaction/src/lib/service/relation.service.ts +0 -168
  1896. package/projects/transaction/src/lib/service/shared-connector.service.ts +0 -47
  1897. package/projects/transaction/src/lib/service/shared.service.ts +0 -40
  1898. package/projects/transaction/src/lib/service/transaction-connector-adapter.service.ts +0 -1632
  1899. package/projects/transaction/src/lib/service/transaction-connector.service.ts +0 -623
  1900. package/projects/transaction/src/lib/service/transaction-event.service.ts +0 -35
  1901. package/projects/transaction/src/lib/service/transaction-image.service.ts +0 -42
  1902. package/projects/transaction/src/lib/service/transaction-initializer.service.ts +0 -29
  1903. package/projects/transaction/src/lib/service/transaction-mapping.service.ts +0 -203
  1904. package/projects/transaction/src/lib/service/transaction.service.ts +0 -815
  1905. package/projects/transaction/src/public_api.ts +0 -50
  1906. package/projects/transaction/src/test.ts +0 -25
  1907. package/projects/transaction/tsconfig.lib.json +0 -20
  1908. package/projects/transaction/tsconfig.lib.prod.json +0 -16
  1909. package/projects/transaction/tsconfig.spec.json +0 -17
  1910. package/publish.bat +0 -7
  1911. package/script/merge-icons.js +0 -39
  1912. package/src/app/app-transaction.component.ts +0 -18
  1913. package/src/app/app.component.scss +0 -45
  1914. package/src/app/app.component.ts +0 -332
  1915. package/src/app/app.module.ts +0 -62
  1916. package/src/environments/environment.prod.ts +0 -3
  1917. package/src/environments/environment.ts +0 -16
  1918. package/src/favicon.ico +0 -0
  1919. package/src/index.html +0 -15
  1920. package/src/main.ts +0 -14
  1921. package/src/polyfills.ts +0 -63
  1922. package/src/styles.scss +0 -93
  1923. package/src/test.ts +0 -25
  1924. package/src/transaction.unit.test.ts +0 -60
  1925. package/tsconfig.app.json +0 -15
  1926. package/tsconfig.json +0 -42
  1927. package/tsconfig.spec.json +0 -18
  1928. package/webpack.config.js +0 -18
@@ -0,0 +1,1830 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from "@angular/core";
3
+ import { Marketing } from "@colijnit/transactionapi/build/model/marketing.bo";
4
+ import { TransactionInfoResponse } from "@colijnit/transactionapi/build/model/transaction-info-response.bo";
5
+ import { Country } from "@colijnit/transactionapi/build/model/country.bo";
6
+ import { DeliveryMethod } from "@colijnit/transactionapi/build/model/delivery-method.bo";
7
+ import { DeliveryOption } from "@colijnit/transactionapi/build/model/delivery-option.bo";
8
+ import { GetPostalCodeRetrievalOutputParams } from "@colijnit/transactionapi/build/model/get-postal-code-retrieval-output-params";
9
+ import { ArticleFullObject } from "@colijnit/transactionapi/build/model/article-full-object";
10
+ import { Transaction } from "@colijnit/transactionapi/build/transaction";
11
+ import { StandardText } from "../model/standard-text";
12
+ import { CustomerGroup } from "@colijnit/transactionapi/build/model/customer-group.bo";
13
+ import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
14
+ import { OptionsService } from "./options.service";
15
+ import { CashRegister } from "@colijnit/transactionapi/build/model/cash-register";
16
+ import { PriceList } from "@colijnit/transactionapi/build/model/price-list";
17
+ import { Vat } from "@colijnit/transactionapi/build/model/vat";
18
+ import { TransactionSearchView } from "@colijnit/transactionapi/build/model/transaction-search-view.bo";
19
+ import { OnHoldCode } from "@colijnit/transactionapi/build/model/on-hold-code.bo";
20
+ import { Warehouse } from "@colijnit/transactionapi/build/model/warehouse.bo";
21
+ import { CodeDescription } from "@colijnit/transactionapi/build/model/code-description";
22
+ import { GoodsReceiptStatusWithHistory } from "@colijnit/transactionapi/build/model/goods-receipt-status-with-history.bo";
23
+ import { PaymentMethod } from "@colijnit/transactionapi/build/model/payment-method.bo";
24
+ import { PurchasePortalLine } from "@colijnit/transactionapi/build/model/purchase-portal-line.bo";
25
+ import { CreatePaymentLinkResult } from "@colijnit/transactionapi/build/model/create-payment-link-result.bo";
26
+ import { TransactionSearchResult } from "../model/transaction-search-result";
27
+ import { PaymentLinkStatus } from "@colijnit/transactionapi/build/model/payment-link-status.bo";
28
+ import { SelectMultipleCacheService } from "../cache/service/select-multiple-cache.service";
29
+ import { SelectMultipleParameterizedCacheService } from "../cache/service/select-multiple-parameterized-cache.service";
30
+ import { ErrorService } from "./error.service";
31
+ import { TransactionDownPaymentInfo } from "@colijnit/transactionapi/build/model/transaction-down-payment-info.bo";
32
+ import { TransactionLockResult } from "@colijnit/transactionapi/build/model/transaction-lock-result.bo";
33
+ import { PrivacySetting } from "@colijnit/mainapi/build/model/privacy-setting.bo";
34
+ import { RelationPrivacySetting } from "@colijnit/relationapi/build/model/relation-privacy-setting.bo";
35
+ import { BusinessObjectFactory } from "@colijnit/ioneconnector/build/factory/business-object-factory";
36
+ import { ImageUtils } from "@colijnit/ioneconnector/build/utils/image-utils";
37
+ import { CoDomainValue } from "@colijnit/mainapi/build/model/co-domain-value.bo";
38
+ import { Tag } from "@colijnit/mainapi/build/model/tag";
39
+ import { DeliveryOrderStatus } from "@colijnit/transactionapi/build/model/delivery-order-status.bo";
40
+ import { SalesPerson } from "@colijnit/relationapi/build/model/sales-person.bo";
41
+ import { StockStickersPrintLayouts } from "@colijnit/sharedapi/build/model/report/stock-stickers-print-layouts.bo";
42
+ import { Sharedapi } from "@colijnit/sharedapi/build/sharedapi";
43
+ import { AvailableStock } from "@colijnit/transactionapi/build/model/available-stock.bo";
44
+ import { GoodsAllocationStatus } from "@colijnit/transactionapi/build/model/goods-allocation-status.bo";
45
+ import { GoodsAllocationStatusWithHistory } from "@colijnit/transactionapi/build/model/goods-allocation-status-with-history.bo";
46
+ import { ReportLayoutSelectionEmail } from "@colijnit/mainapi/build/model/report-layout-selection-email.bo";
47
+ import { ReportLayoutSelectionPrint } from "@colijnit/mainapi/build/model/report-layout-selection-print.bo";
48
+ import { PurchaseAdviceLine } from "@colijnit/transactionapi/build/model/purchase-advice-line.bo";
49
+ import * as i0 from "@angular/core";
50
+ import * as i1 from "./options.service";
51
+ import * as i2 from "../cache/service/select-multiple-cache.service";
52
+ import * as i3 from "../cache/service/select-multiple-parameterized-cache.service";
53
+ import * as i4 from "./error.service";
54
+ export class TransactionConnectorAdapterService {
55
+ constructor(_optionsService, _selectMultipleCacheService, _selectMultipleParameterizedCacheService, _errorService) {
56
+ this._optionsService = _optionsService;
57
+ this._selectMultipleCacheService = _selectMultipleCacheService;
58
+ this._selectMultipleParameterizedCacheService = _selectMultipleParameterizedCacheService;
59
+ this._errorService = _errorService;
60
+ this._boFactory = new BusinessObjectFactory();
61
+ }
62
+ connect() {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ this.connector = new Transaction(this._optionsService.options);
65
+ this.sharedConnector = new Sharedapi(this._optionsService.options);
66
+ this._optionsService.options.session = this.connector.session;
67
+ });
68
+ }
69
+ getArticleFullObject(goodId) {
70
+ return __awaiter(this, void 0, void 0, function* () {
71
+ const result = yield this.connector.getArticleFullObject(goodId);
72
+ if (result.validationResult && result.validationResult.success) {
73
+ return this._boFactory.makeWithRawBackendData(ArticleFullObject, result.resultObject);
74
+ }
75
+ else {
76
+ this._handleExceptionFromResponse(result);
77
+ return null;
78
+ }
79
+ });
80
+ }
81
+ getGoodIdFromArticleNr(articleNr) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ const result = yield this.connector.getGoodIdFromArticleNr(articleNr);
84
+ if (result.validationResult && result.validationResult.success) {
85
+ return result.resultObject;
86
+ }
87
+ else {
88
+ this._handleExceptionFromResponse(result);
89
+ return null;
90
+ }
91
+ });
92
+ }
93
+ getSingleImage(nodeId, publication, includeMimetype, thumb) {
94
+ return __awaiter(this, void 0, void 0, function* () {
95
+ const result = yield this.connector.getSingleImage(nodeId, publication, includeMimetype, thumb);
96
+ if (result.validationResult && result.validationResult.success) {
97
+ if (result.resultObject && result.resultObject.filePath !== null && result.resultObject.filePath !== undefined && result.resultObject.filePath !== "") {
98
+ return ImageUtils.getFixedImageFilepathUrl(result.resultObject.filePath);
99
+ }
100
+ else {
101
+ if (result.resultObject) {
102
+ if (includeMimetype) {
103
+ return ImageUtils.getDocBodyWithMimeTypeDefinition(result.resultObject.fileName, thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody);
104
+ }
105
+ return thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody;
106
+ }
107
+ else { // no image
108
+ return "";
109
+ }
110
+ }
111
+ }
112
+ else {
113
+ this._handleExceptionFromResponse(result);
114
+ return null;
115
+ }
116
+ });
117
+ }
118
+ getCountries() {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ const result = yield this.connector.getCountries();
121
+ if (result.validationResult && result.validationResult.success) {
122
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(Country, result.resultObjects);
123
+ }
124
+ else {
125
+ this._handleExceptionFromResponse(result);
126
+ return [];
127
+ }
128
+ });
129
+ }
130
+ getCustomerGroups() {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ const result = yield this.connector.getCustomerGroups();
133
+ if (result.validationResult && result.validationResult.success) {
134
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(CustomerGroup, result.resultObjects);
135
+ }
136
+ else {
137
+ this._handleExceptionFromResponse(result);
138
+ return [];
139
+ }
140
+ });
141
+ }
142
+ getCountry(countryCode) {
143
+ return __awaiter(this, void 0, void 0, function* () {
144
+ const countries = yield this.getCountries();
145
+ return countries.find(country => country.code === countryCode);
146
+ });
147
+ }
148
+ getPrivacySettings() {
149
+ return __awaiter(this, void 0, void 0, function* () {
150
+ const result = yield this.connector.getPrivacySettings();
151
+ if (result.validationResult && result.validationResult.success) {
152
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(PrivacySetting, result.resultObjects);
153
+ }
154
+ else {
155
+ this._handleExceptionFromResponse(result);
156
+ return [];
157
+ }
158
+ });
159
+ }
160
+ getRelationPrivacySettings() {
161
+ return __awaiter(this, void 0, void 0, function* () {
162
+ const privacySettings = [];
163
+ const basePrivacySettings = yield this.getPrivacySettings();
164
+ for (let i = 0, len = basePrivacySettings.length; i < len; i++) {
165
+ const basePrivSetting = basePrivacySettings[i];
166
+ const newRelPrivSet = this._boFactory.instantiateNewBo(RelationPrivacySetting);
167
+ newRelPrivSet.applyBasePrivacySettingValues(basePrivSetting);
168
+ privacySettings.push(newRelPrivSet);
169
+ }
170
+ return privacySettings;
171
+ });
172
+ }
173
+ getMarketingCodes() {
174
+ return __awaiter(this, void 0, void 0, function* () {
175
+ const result = yield this.connector.getMarketingCodes();
176
+ if (result.validationResult && result.validationResult.success) {
177
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(Marketing, result.resultObjects);
178
+ }
179
+ else {
180
+ this._handleExceptionFromResponse(result);
181
+ return [];
182
+ }
183
+ });
184
+ }
185
+ getArticleBoundTextLinesOfArticleLine(articleLineUuid) {
186
+ return __awaiter(this, void 0, void 0, function* () {
187
+ const result = yield this.connector.getArticleBoundTextLinesOfArticleLine(articleLineUuid);
188
+ if (result.validationResult && result.validationResult.success) {
189
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(TransactionLineInfo, result.resultObject);
190
+ }
191
+ else {
192
+ this._handleExceptionFromResponse(result);
193
+ return [];
194
+ }
195
+ });
196
+ }
197
+ getTransactionByNrAndKind(kind, transactionNo) {
198
+ return __awaiter(this, void 0, void 0, function* () {
199
+ const result = yield this.connector.getTransactionByNrAndKind(kind, transactionNo);
200
+ if (result.validationResult && result.validationResult.success) {
201
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject);
202
+ }
203
+ else {
204
+ this._handleExceptionFromResponse(result);
205
+ return null;
206
+ }
207
+ });
208
+ }
209
+ getTransactionById(transactionId) {
210
+ return __awaiter(this, void 0, void 0, function* () {
211
+ const result = yield this.connector.getTransactionById(transactionId);
212
+ if (result.validationResult && result.validationResult.success) {
213
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject);
214
+ }
215
+ else {
216
+ this._handleExceptionFromResponse(result);
217
+ return null;
218
+ }
219
+ });
220
+ }
221
+ lockTransactionById(transactionId, version) {
222
+ return __awaiter(this, void 0, void 0, function* () {
223
+ const result = yield this.connector.lockTransactionByTransId(transactionId, version);
224
+ if (result.validationResult && result.validationResult.success) {
225
+ return this._boFactory.makeWithRawBackendData(TransactionLockResult, result.resultObject);
226
+ }
227
+ else {
228
+ this._handleExceptionFromResponse(result);
229
+ return null;
230
+ }
231
+ });
232
+ }
233
+ getCashRegisters(branch, group) {
234
+ return __awaiter(this, void 0, void 0, function* () {
235
+ const result = yield this.connector.getCashRegister(branch, group);
236
+ if (result.validationResult && result.validationResult.success) {
237
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(CashRegister, result.resultObjects);
238
+ }
239
+ else {
240
+ this._handleExceptionFromResponse(result);
241
+ return [];
242
+ }
243
+ });
244
+ }
245
+ getPriceLists(code) {
246
+ return __awaiter(this, void 0, void 0, function* () {
247
+ const result = yield this.connector.getPriceLists(code);
248
+ if (result.validationResult && result.validationResult.success) {
249
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(PriceList, result.resultObjects);
250
+ }
251
+ else {
252
+ this._handleExceptionFromResponse(result);
253
+ return [];
254
+ }
255
+ });
256
+ }
257
+ getVatList(onlyValid = false) {
258
+ return __awaiter(this, void 0, void 0, function* () {
259
+ const result = yield this.connector.getVatList(onlyValid);
260
+ if (result.validationResult && result.validationResult.success) {
261
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(Vat, result.resultObjects);
262
+ }
263
+ else {
264
+ this._handleExceptionFromResponse(result);
265
+ return [];
266
+ }
267
+ });
268
+ }
269
+ searchTransactions(request) {
270
+ return __awaiter(this, void 0, void 0, function* () {
271
+ const response = yield this.connector.searchTransactions(request);
272
+ if (response.validationResult && response.validationResult.success) {
273
+ const result = new TransactionSearchResult();
274
+ result.count = response.pagingParameters.resultCount; // todo: fix property in api
275
+ result.transactions = this._boFactory.makeBOArrayFromRawBackendDataArray(TransactionSearchView, response.resultObjects);
276
+ return result;
277
+ }
278
+ else {
279
+ this._handleExceptionFromResponse(response);
280
+ return null;
281
+ }
282
+ });
283
+ }
284
+ getSequenceValue(sequenceName) {
285
+ return __awaiter(this, void 0, void 0, function* () {
286
+ return new Promise((resolve, reject) => {
287
+ return this.connector.getSequenceValue(sequenceName).then((result) => {
288
+ if (result.validationResult && result.validationResult.success) {
289
+ resolve(result.resultObject);
290
+ }
291
+ else {
292
+ this._handleExceptionFromResponse(result);
293
+ reject(null);
294
+ }
295
+ });
296
+ });
297
+ });
298
+ }
299
+ getDeliveryMethods() {
300
+ return __awaiter(this, void 0, void 0, function* () {
301
+ const result = yield this.connector.getDeliveryMethods();
302
+ if (result.validationResult && result.validationResult.success) {
303
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(DeliveryMethod, result.resultObjects);
304
+ }
305
+ else {
306
+ this._handleExceptionFromResponse(result);
307
+ return [];
308
+ }
309
+ });
310
+ }
311
+ getDeliveryOptions() {
312
+ return __awaiter(this, void 0, void 0, function* () {
313
+ const result = yield this.connector.getDeliveryOptions();
314
+ if (result.validationResult && result.validationResult.success) {
315
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(DeliveryOption, result.resultObjects);
316
+ }
317
+ else {
318
+ this._handleExceptionFromResponse(result);
319
+ return [];
320
+ }
321
+ });
322
+ }
323
+ getPostalCodeRetrieval(postcalCode, houseNo) {
324
+ return __awaiter(this, void 0, void 0, function* () {
325
+ const result = yield this.connector.getPostalCodeRetrieval(postcalCode, houseNo);
326
+ if (result.validationResult && result.validationResult.success) {
327
+ if (result.validationResult && result.validationResult.success) {
328
+ const outputParams = new GetPostalCodeRetrievalOutputParams();
329
+ outputParams.city = result.resultObject.city;
330
+ outputParams.street = result.resultObject.street;
331
+ outputParams.status = result.resultObject.status;
332
+ outputParams.netNumber = result.resultObject.netNumber;
333
+ return outputParams;
334
+ }
335
+ else {
336
+ this._handleExceptionFromResponse(result);
337
+ return null;
338
+ }
339
+ }
340
+ });
341
+ }
342
+ getCommissionCodes(languageCode) {
343
+ return __awaiter(this, void 0, void 0, function* () {
344
+ const result = yield this.connector.getCommissionCodes(languageCode);
345
+ if (result.validationResult && result.validationResult.success) {
346
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(CoDomainValue, result.resultObjects);
347
+ }
348
+ else {
349
+ this._handleExceptionFromResponse(result);
350
+ return [];
351
+ }
352
+ });
353
+ }
354
+ getInOutCollection(languageCode) {
355
+ return __awaiter(this, void 0, void 0, function* () {
356
+ const result = yield this.connector.getInOutCollection(languageCode);
357
+ if (result.validationResult && result.validationResult.success) {
358
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(CoDomainValue, result.resultObjects);
359
+ }
360
+ else {
361
+ this._handleExceptionFromResponse(result);
362
+ return [];
363
+ }
364
+ });
365
+ }
366
+ getTransactionArticleWarehouses(goodId) {
367
+ return __awaiter(this, void 0, void 0, function* () {
368
+ return new Promise((resolve, reject) => {
369
+ return this.connector.getTransactionArticleWarehouses(goodId).then((result) => {
370
+ if (result.validationResult && result.validationResult.success) {
371
+ resolve(result.resultObjects);
372
+ }
373
+ else {
374
+ this._handleExceptionFromResponse(result);
375
+ reject([]);
376
+ }
377
+ });
378
+ });
379
+ });
380
+ }
381
+ getTextTypes(languageCode) {
382
+ return __awaiter(this, void 0, void 0, function* () {
383
+ const result = yield this.connector.getTextTypes(languageCode);
384
+ if (result.validationResult && result.validationResult.success) {
385
+ const texts = this._boFactory.makeBOArrayFromRawBackendDataArray(CoDomainValue, result.resultObjects);
386
+ texts.sort((a, b) => a.sequence > b.sequence ? 1 : -1);
387
+ return texts;
388
+ }
389
+ else {
390
+ this._handleExceptionFromResponse(result);
391
+ return [];
392
+ }
393
+ });
394
+ }
395
+ getStandardTexts(languageCode) {
396
+ return __awaiter(this, void 0, void 0, function* () {
397
+ const result = yield this.connector.getStandardTexts(languageCode);
398
+ if (result.validationResult && result.validationResult.success) {
399
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(StandardText, result.resultObject);
400
+ }
401
+ else {
402
+ this._handleExceptionFromResponse(result);
403
+ return [];
404
+ }
405
+ });
406
+ }
407
+ getSalesPersons(date) {
408
+ return __awaiter(this, void 0, void 0, function* () {
409
+ const result = yield this.connector.getSalesPersons(date);
410
+ if (result.validationResult && result.validationResult.success) {
411
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(SalesPerson, result.resultObjects);
412
+ }
413
+ else {
414
+ this._handleExceptionFromResponse(result);
415
+ return [];
416
+ }
417
+ });
418
+ }
419
+ getTags(category) {
420
+ return __awaiter(this, void 0, void 0, function* () {
421
+ const result = yield this.connector.getTags(category);
422
+ if (result.validationResult && result.validationResult.success) {
423
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(Tag, result.resultObjects);
424
+ }
425
+ else {
426
+ this._handleExceptionFromResponse(result);
427
+ return [];
428
+ }
429
+ });
430
+ }
431
+ getOnHoldCodes() {
432
+ return __awaiter(this, void 0, void 0, function* () {
433
+ const result = yield this.connector.getOnHoldCodes();
434
+ if (result.validationResult && result.validationResult.success) {
435
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(OnHoldCode, result.resultObjects);
436
+ }
437
+ else {
438
+ this._handleExceptionFromResponse(result);
439
+ return [];
440
+ }
441
+ });
442
+ }
443
+ getWarehouses(branchNr) {
444
+ return __awaiter(this, void 0, void 0, function* () {
445
+ const result = yield this.connector.getWarehouses(branchNr);
446
+ if (result.validationResult && result.validationResult.success) {
447
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(Warehouse, result.resultObjects);
448
+ }
449
+ else {
450
+ this._handleExceptionFromResponse(result);
451
+ return [];
452
+ }
453
+ });
454
+ }
455
+ getHistoricStateValues() {
456
+ return __awaiter(this, void 0, void 0, function* () {
457
+ const result = yield this.connector.getHistoricStateValues();
458
+ if (result.validationResult && result.validationResult.success) {
459
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(CodeDescription, result.resultObjects);
460
+ }
461
+ else {
462
+ this._handleExceptionFromResponse(result);
463
+ return [];
464
+ }
465
+ });
466
+ }
467
+ getPaymentMethods() {
468
+ return __awaiter(this, void 0, void 0, function* () {
469
+ const result = yield this.connector.getPaymentMethodsForSalesOrder();
470
+ if (result.validationResult && result.validationResult.success) {
471
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(PaymentMethod, result.resultObject);
472
+ }
473
+ else {
474
+ this._handleExceptionFromResponse(result);
475
+ return [];
476
+ }
477
+ });
478
+ }
479
+ commit() {
480
+ return new Promise((resolve, reject) => {
481
+ return this.connector.commit().then((result) => {
482
+ if (result) {
483
+ resolve(true);
484
+ }
485
+ else {
486
+ this._handleExceptionFromResponse(result);
487
+ reject(null);
488
+ }
489
+ });
490
+ });
491
+ }
492
+ rollback() {
493
+ return new Promise((resolve, reject) => {
494
+ return this.connector.rollback().then((result) => {
495
+ if (result) {
496
+ resolve(true);
497
+ }
498
+ else {
499
+ this._handleExceptionFromResponse(result);
500
+ reject(null);
501
+ }
502
+ });
503
+ });
504
+ }
505
+ createTransaction(kind, branchNr) {
506
+ return new Promise((resolve, reject) => {
507
+ return this.connector.createTransaction(kind, branchNr).then((result) => {
508
+ if (result.validationResult && result.validationResult.success) {
509
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
510
+ }
511
+ else {
512
+ this._handleExceptionFromResponse(result);
513
+ reject(null);
514
+ }
515
+ });
516
+ });
517
+ }
518
+ createSalesOrder(request) {
519
+ return __awaiter(this, void 0, void 0, function* () {
520
+ return new Promise((resolve, reject) => {
521
+ return this.connector.createSalesOrder(request).then((result) => {
522
+ if (result.validationResult && result.validationResult.success) {
523
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
524
+ }
525
+ else {
526
+ this._handleExceptionFromResponse(result);
527
+ reject(null);
528
+ }
529
+ });
530
+ });
531
+ });
532
+ }
533
+ createCashRegisterOrder(request) {
534
+ return __awaiter(this, void 0, void 0, function* () {
535
+ return new Promise((resolve, reject) => {
536
+ return this.connector.createCashRegisterOrder(request).then((result) => {
537
+ if (result.validationResult && result.validationResult.success) {
538
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
539
+ }
540
+ else {
541
+ this._handleExceptionFromResponse(result);
542
+ reject(null);
543
+ }
544
+ });
545
+ });
546
+ });
547
+ }
548
+ createPurchaseOrder(request) {
549
+ return __awaiter(this, void 0, void 0, function* () {
550
+ return new Promise((resolve, reject) => {
551
+ return this.connector.createPurchaseOrder(request).then((result) => {
552
+ if (result.validationResult && result.validationResult.success) {
553
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
554
+ }
555
+ else {
556
+ this._handleExceptionFromResponse(result);
557
+ reject(null);
558
+ }
559
+ });
560
+ });
561
+ });
562
+ }
563
+ createServiceOrder(request) {
564
+ return __awaiter(this, void 0, void 0, function* () {
565
+ return new Promise((resolve, reject) => {
566
+ return this.connector.createServiceOrder(request).then((result) => {
567
+ if (result.validationResult && result.validationResult.success) {
568
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
569
+ }
570
+ else {
571
+ this._handleExceptionFromResponse(result);
572
+ reject(null);
573
+ }
574
+ });
575
+ });
576
+ });
577
+ }
578
+ createSalesQuotation(request) {
579
+ return __awaiter(this, void 0, void 0, function* () {
580
+ return new Promise((resolve, reject) => {
581
+ return this.connector.createSalesQuotation(request).then((result) => {
582
+ if (result.validationResult && result.validationResult.success) {
583
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
584
+ }
585
+ else {
586
+ this._handleExceptionFromResponse(result);
587
+ reject(null);
588
+ }
589
+ });
590
+ });
591
+ });
592
+ }
593
+ saveTransaction(uuid) {
594
+ return new Promise((resolve, reject) => {
595
+ return this.connector.saveTransaction(uuid).then((result) => {
596
+ if (result.validationResult && result.validationResult.success) {
597
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
598
+ }
599
+ else {
600
+ this._handleExceptionFromResponse(result);
601
+ reject(null);
602
+ }
603
+ });
604
+ });
605
+ }
606
+ setRelationByUser(uuid, username, password) {
607
+ return __awaiter(this, void 0, void 0, function* () {
608
+ return new Promise((resolve, reject) => {
609
+ return this.connector.setRelationByUser(uuid, username, password).then((result) => {
610
+ if (result.validationResult && result.validationResult.success) {
611
+ resolve(result.validationResult.success);
612
+ }
613
+ else {
614
+ this._handleExceptionFromResponse(result);
615
+ reject(false);
616
+ }
617
+ });
618
+ });
619
+ });
620
+ }
621
+ resolvePendingHeaderReason(pendingHeaderValues) {
622
+ return __awaiter(this, void 0, void 0, function* () {
623
+ return new Promise((resolve, reject) => {
624
+ return this.connector.resolvePendingHeaderReason(pendingHeaderValues).then((result) => {
625
+ if (result.validationResult && result.validationResult.success) {
626
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
627
+ }
628
+ else {
629
+ this._handleExceptionFromResponse(result);
630
+ reject(null);
631
+ }
632
+ });
633
+ });
634
+ });
635
+ }
636
+ resolvePendingLineReason(pendingLineValues) {
637
+ return __awaiter(this, void 0, void 0, function* () {
638
+ return new Promise((resolve, reject) => {
639
+ return this.connector.resolvePendingLineReason(pendingLineValues).then((result) => {
640
+ if (result.validationResult && result.validationResult.success) {
641
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
642
+ }
643
+ else {
644
+ this._handleExceptionFromResponse(result);
645
+ reject(null);
646
+ }
647
+ });
648
+ });
649
+ });
650
+ }
651
+ addTransactionLine(uuid, articleLine, articleNo, amount, isReturn, aboveLineNr, belowLineNr) {
652
+ return __awaiter(this, void 0, void 0, function* () {
653
+ return new Promise((resolve, reject) => {
654
+ return this.connector.addTransactionLine(uuid, articleLine, articleNo, amount, isReturn, aboveLineNr, belowLineNr).then((result) => {
655
+ if (result.validationResult && result.validationResult.success) {
656
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
657
+ }
658
+ else {
659
+ this._handleExceptionFromResponse(result);
660
+ reject(null);
661
+ }
662
+ });
663
+ });
664
+ });
665
+ }
666
+ addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
667
+ return __awaiter(this, void 0, void 0, function* () {
668
+ return new Promise((resolve, reject) => {
669
+ return this.connector.addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr).then((result) => {
670
+ if (result.validationResult && result.validationResult.success) {
671
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
672
+ }
673
+ else {
674
+ this._handleExceptionFromResponse(result);
675
+ reject(null);
676
+ }
677
+ });
678
+ });
679
+ });
680
+ }
681
+ addRelationToTransaction(uuid, relationId) {
682
+ return __awaiter(this, void 0, void 0, function* () {
683
+ return new Promise((resolve, reject) => {
684
+ return this.connector.addRelationToTransaction(uuid, relationId).then((result) => {
685
+ if (result.validationResult && result.validationResult.success) {
686
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
687
+ }
688
+ else {
689
+ this._handleExceptionFromResponse(result);
690
+ reject(null);
691
+ }
692
+ });
693
+ });
694
+ });
695
+ }
696
+ setTransactionDeliveryOptions(transactionDeliveryOptionsRequest) {
697
+ return __awaiter(this, void 0, void 0, function* () {
698
+ return new Promise((resolve, reject) => {
699
+ return this.connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest).then((result) => {
700
+ if (result.validationResult && result.validationResult.success) {
701
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
702
+ }
703
+ else {
704
+ this._handleExceptionFromResponse(result);
705
+ reject(null);
706
+ }
707
+ });
708
+ });
709
+ });
710
+ }
711
+ changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr) {
712
+ return __awaiter(this, void 0, void 0, function* () {
713
+ return new Promise((resolve, reject) => {
714
+ const request = {
715
+ transactionUuid: uuid,
716
+ lineUuid: lineUuid,
717
+ aboveLineNr: aboveLineNr,
718
+ belowLineNr: belowLineNr
719
+ };
720
+ return this.connector.changeLineSequence(request).then((result) => {
721
+ if (result.validationResult && result.validationResult.success) {
722
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
723
+ }
724
+ else {
725
+ this._handleExceptionFromResponse(result);
726
+ reject(null);
727
+ }
728
+ });
729
+ });
730
+ });
731
+ }
732
+ cancelAddTransactionLine(lineUuid) {
733
+ return __awaiter(this, void 0, void 0, function* () {
734
+ return new Promise((resolve, reject) => {
735
+ return this.connector.cancelAddTransactionLine(lineUuid).then((result) => {
736
+ if (result.validationResult && result.validationResult.success) {
737
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
738
+ }
739
+ else {
740
+ this._handleExceptionFromResponse(result);
741
+ reject(null);
742
+ }
743
+ });
744
+ });
745
+ });
746
+ }
747
+ deleteTransactionLine(uuid, lineUuid) {
748
+ return __awaiter(this, void 0, void 0, function* () {
749
+ return new Promise((resolve, reject) => {
750
+ return this.connector.deleteTransactionLine(uuid, lineUuid).then((result) => {
751
+ if (result.validationResult && result.validationResult.success) {
752
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
753
+ }
754
+ else {
755
+ this._handleExceptionFromResponse(result);
756
+ reject(null);
757
+ }
758
+ });
759
+ });
760
+ });
761
+ }
762
+ changeTransactionLineQuantity(uuid, lineUuid, newQuantity) {
763
+ return __awaiter(this, void 0, void 0, function* () {
764
+ return new Promise((resolve, reject) => {
765
+ const request = {
766
+ transactionUuid: uuid,
767
+ lineUuid: lineUuid,
768
+ newQuantity: newQuantity
769
+ };
770
+ return this.connector.changeTransactionLineQuantity(request).then((result) => {
771
+ if (result.validationResult && result.validationResult.success) {
772
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
773
+ }
774
+ else {
775
+ this._handleExceptionFromResponse(result);
776
+ reject(null);
777
+ }
778
+ });
779
+ });
780
+ });
781
+ }
782
+ changeTransactionLineCommissionCode(uuid, lineUuid, code) {
783
+ return __awaiter(this, void 0, void 0, function* () {
784
+ const request = {
785
+ transactionUuid: uuid,
786
+ lineUuid: lineUuid,
787
+ newCommissionCode: code
788
+ };
789
+ const response = yield this.connector.changeTransactionLineCommissionCode(request);
790
+ if (response && response.validationResult && response.validationResult.success) {
791
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
792
+ }
793
+ else {
794
+ this._handleExceptionFromResponse(response);
795
+ return null;
796
+ }
797
+ });
798
+ }
799
+ changeTransactionLineSupplier(uuid, lineUuid, id) {
800
+ return __awaiter(this, void 0, void 0, function* () {
801
+ const request = {
802
+ transactionUuid: uuid,
803
+ lineUuid: lineUuid,
804
+ newSupplierId: id
805
+ };
806
+ const response = yield this.connector.changeTransactionLineSupplier(request);
807
+ if (response && response.validationResult && response.validationResult.success) {
808
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
809
+ }
810
+ else {
811
+ this._handleExceptionFromResponse(response);
812
+ return null;
813
+ }
814
+ });
815
+ }
816
+ changeTransactionLineWarehouse(uuid, lineUuid, warehouseNumber) {
817
+ return __awaiter(this, void 0, void 0, function* () {
818
+ const request = {
819
+ transactionUuid: uuid,
820
+ lineUuid: lineUuid,
821
+ newWarehouseNumber: warehouseNumber
822
+ };
823
+ const response = yield this.connector.changeTransactionLineWarehouse(request);
824
+ if (response && response.validationResult && response.validationResult.success) {
825
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
826
+ }
827
+ else {
828
+ this._handleExceptionFromResponse(response);
829
+ return null;
830
+ }
831
+ });
832
+ }
833
+ changeTransactionLinePrice(uuid, lineUuid, price) {
834
+ return __awaiter(this, void 0, void 0, function* () {
835
+ const request = {
836
+ transactionUuid: uuid,
837
+ lineUuid: lineUuid,
838
+ newPrice: price
839
+ };
840
+ const response = yield this.connector.changeTransactionLinePrice(request);
841
+ if (response && response.validationResult && response.validationResult.success) {
842
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
843
+ }
844
+ else {
845
+ this._handleExceptionFromResponse(response);
846
+ return null;
847
+ }
848
+ });
849
+ }
850
+ changeTransactionLinePriceList(uuid, lineUuid, priceList) {
851
+ return __awaiter(this, void 0, void 0, function* () {
852
+ const request = {
853
+ transactionUuid: uuid,
854
+ lineUuid: lineUuid,
855
+ newPriceListCode: priceList
856
+ };
857
+ const response = yield this.connector.changeTransactionLinePriceList(request);
858
+ if (response && response.validationResult && response.validationResult.success) {
859
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
860
+ }
861
+ else {
862
+ this._handleExceptionFromResponse(response);
863
+ return null;
864
+ }
865
+ });
866
+ }
867
+ changeTransactionLineVat(uuid, lineUuid, id) {
868
+ return __awaiter(this, void 0, void 0, function* () {
869
+ const request = {
870
+ transactionUuid: uuid,
871
+ lineUuid: lineUuid,
872
+ newVatId: id
873
+ };
874
+ const response = yield this.connector.changeTransactionLineVat(request);
875
+ if (response && response.validationResult && response.validationResult.success) {
876
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
877
+ }
878
+ else {
879
+ this._handleExceptionFromResponse(response);
880
+ return null;
881
+ }
882
+ });
883
+ }
884
+ changeTransactionLineLineDiscount(uuid, lineUuid, type, discount, reason, code) {
885
+ return __awaiter(this, void 0, void 0, function* () {
886
+ const request = {
887
+ transactionUuid: uuid,
888
+ lineUuid: lineUuid,
889
+ discountType: type,
890
+ newDiscount: discount,
891
+ newDiscountReason: reason,
892
+ newDiscountCode: code
893
+ };
894
+ const response = yield this.connector.changeTransactionLineDiscount(request);
895
+ if (response && response.validationResult && response.validationResult.success) {
896
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
897
+ }
898
+ else {
899
+ this._handleExceptionFromResponse(response);
900
+ return null;
901
+ }
902
+ });
903
+ }
904
+ changeTransactionLineDeliveryMethod(uuid, lineUuid, method) {
905
+ return __awaiter(this, void 0, void 0, function* () {
906
+ const request = {
907
+ transactionUuid: uuid,
908
+ lineUuid: lineUuid,
909
+ newDeliveryMethodCode: method
910
+ };
911
+ const response = yield this.connector.changeTransactionLineDeliveryMethod(request);
912
+ if (response && response.validationResult && response.validationResult.success) {
913
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
914
+ }
915
+ else {
916
+ this._handleExceptionFromResponse(response);
917
+ return null;
918
+ }
919
+ });
920
+ }
921
+ changeTransactionLineDeliveryDate(uuid, lineUuid, date) {
922
+ return __awaiter(this, void 0, void 0, function* () {
923
+ const request = {
924
+ transactionUuid: uuid,
925
+ lineUuid: lineUuid,
926
+ newDeliveryDate: date
927
+ };
928
+ const response = yield this.connector.changeTransactionLineDeliveryDate(request);
929
+ if (response && response.validationResult && response.validationResult.success) {
930
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
931
+ }
932
+ else {
933
+ this._handleExceptionFromResponse(response);
934
+ return null;
935
+ }
936
+ });
937
+ }
938
+ changeTransactionLineAssemblyTime(uuid, lineUuid, time) {
939
+ return __awaiter(this, void 0, void 0, function* () {
940
+ const request = {
941
+ transactionUuid: uuid,
942
+ lineUuid: lineUuid,
943
+ newAssemblyTime: time
944
+ };
945
+ const response = yield this.connector.changeTransactionLineAssemblyTime(request);
946
+ if (response && response.validationResult && response.validationResult.success) {
947
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
948
+ }
949
+ else {
950
+ this._handleExceptionFromResponse(response);
951
+ return null;
952
+ }
953
+ });
954
+ }
955
+ changeTransactionLineEditTime(uuid, lineUuid, time) {
956
+ return __awaiter(this, void 0, void 0, function* () {
957
+ const request = {
958
+ transactionUuid: uuid,
959
+ lineUuid: lineUuid,
960
+ newEditTime: time
961
+ };
962
+ const response = yield this.connector.changeTransactionLineEditTime(request);
963
+ if (response && response.validationResult && response.validationResult.success) {
964
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
965
+ }
966
+ else {
967
+ this._handleExceptionFromResponse(response);
968
+ return null;
969
+ }
970
+ });
971
+ }
972
+ changeTransactionLineSupplierArticleNumber(uuid, lineUuid, articleNumber) {
973
+ return __awaiter(this, void 0, void 0, function* () {
974
+ const request = {
975
+ transactionUuid: uuid,
976
+ lineUuid: lineUuid,
977
+ newSupplierArticleNumber: articleNumber
978
+ };
979
+ const response = yield this.connector.changeTransactionLineSupplierArticleNumber(request);
980
+ if (response && response.validationResult && response.validationResult.success) {
981
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
982
+ }
983
+ else {
984
+ this._handleExceptionFromResponse(response);
985
+ return null;
986
+ }
987
+ });
988
+ }
989
+ changeTransactionLineReference(uuid, lineUuid, reference) {
990
+ return __awaiter(this, void 0, void 0, function* () {
991
+ const request = {
992
+ transactionUuid: uuid,
993
+ lineUuid: lineUuid,
994
+ newReference: reference
995
+ };
996
+ const response = yield this.connector.changeTransactionLineReference(request);
997
+ if (response && response.validationResult && response.validationResult.success) {
998
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
999
+ }
1000
+ else {
1001
+ this._handleExceptionFromResponse(response);
1002
+ return null;
1003
+ }
1004
+ });
1005
+ }
1006
+ changeTransactionLineGoodDescription(uuid, lineUuid, goodDescription) {
1007
+ return __awaiter(this, void 0, void 0, function* () {
1008
+ const request = {
1009
+ transactionUuid: uuid,
1010
+ lineUuid: lineUuid,
1011
+ newGoodDescription: goodDescription
1012
+ };
1013
+ const response = yield this.connector.changeTransactionLineGoodDescription(request);
1014
+ if (response && response.validationResult && response.validationResult.success) {
1015
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1016
+ }
1017
+ else {
1018
+ this._handleExceptionFromResponse(response);
1019
+ return null;
1020
+ }
1021
+ });
1022
+ }
1023
+ changeHeaderTransactionDefinitive(uuid, definitive) {
1024
+ return __awaiter(this, void 0, void 0, function* () {
1025
+ const request = {
1026
+ transactionUuid: uuid,
1027
+ newTransactionDefinitive: definitive
1028
+ };
1029
+ const response = yield this.connector.changeHeaderTransactionDefinitive(request);
1030
+ if (response && response.validationResult && response.validationResult.success) {
1031
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1032
+ }
1033
+ else {
1034
+ this._handleExceptionFromResponse(response);
1035
+ return null;
1036
+ }
1037
+ });
1038
+ }
1039
+ changeHeaderDeliveryAddress(uuid, newNawNr) {
1040
+ return __awaiter(this, void 0, void 0, function* () {
1041
+ const request = {
1042
+ transactionUuid: uuid,
1043
+ newTransactionAddressNawNr: newNawNr
1044
+ };
1045
+ const response = yield this.connector.changeHeaderTransactionAddress(request);
1046
+ if (response && response.validationResult && response.validationResult.success) {
1047
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1048
+ }
1049
+ else {
1050
+ this._handleExceptionFromResponse(response);
1051
+ return null;
1052
+ }
1053
+ });
1054
+ }
1055
+ changeHeaderInvoiceAddress(uuid, newNawNr) {
1056
+ return __awaiter(this, void 0, void 0, function* () {
1057
+ const request = {
1058
+ transactionUuid: uuid,
1059
+ newInvoiceAddressNawNr: newNawNr
1060
+ };
1061
+ const response = yield this.connector.changeHeaderInvoiceAddress(request);
1062
+ if (response && response.validationResult && response.validationResult.success) {
1063
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1064
+ }
1065
+ else {
1066
+ this._handleExceptionFromResponse(response);
1067
+ return null;
1068
+ }
1069
+ });
1070
+ }
1071
+ changeHeaderTransactionDeliveryDate(uuid, date) {
1072
+ return __awaiter(this, void 0, void 0, function* () {
1073
+ const request = {
1074
+ transactionUuid: uuid,
1075
+ newDeliveryDate: date
1076
+ };
1077
+ const response = yield this.connector.changeHeaderDeliveryDate(request);
1078
+ if (response && response.validationResult && response.validationResult.success) {
1079
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1080
+ }
1081
+ else {
1082
+ this._handleExceptionFromResponse(response);
1083
+ return null;
1084
+ }
1085
+ });
1086
+ }
1087
+ changeHeaderTransactionDeliveryDateDefinitive(uuid, definitive) {
1088
+ return __awaiter(this, void 0, void 0, function* () {
1089
+ const request = {
1090
+ transactionUuid: uuid,
1091
+ newDeliveryDateDefinitive: definitive
1092
+ };
1093
+ const response = yield this.connector.changeHeaderDeliveryDateDefinitive(request);
1094
+ if (response && response.validationResult && response.validationResult.success) {
1095
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1096
+ }
1097
+ else {
1098
+ this._handleExceptionFromResponse(response);
1099
+ return null;
1100
+ }
1101
+ });
1102
+ }
1103
+ changeHeaderTransactionRemark(uuid, remark) {
1104
+ return __awaiter(this, void 0, void 0, function* () {
1105
+ const request = {
1106
+ transactionUuid: uuid,
1107
+ newRemarks: remark
1108
+ };
1109
+ const response = yield this.connector.changeHeaderRemarks(request);
1110
+ if (response && response.validationResult && response.validationResult.success) {
1111
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1112
+ }
1113
+ else {
1114
+ this._handleExceptionFromResponse(response);
1115
+ return null;
1116
+ }
1117
+ });
1118
+ }
1119
+ changeHeaderTransactionReference(uuid, reference) {
1120
+ return __awaiter(this, void 0, void 0, function* () {
1121
+ const request = {
1122
+ transactionUuid: uuid,
1123
+ newOwnReference: reference
1124
+ };
1125
+ const response = yield this.connector.changeHeaderOwnReference(request);
1126
+ if (response && response.validationResult && response.validationResult.success) {
1127
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1128
+ }
1129
+ else {
1130
+ this._handleExceptionFromResponse(response);
1131
+ return null;
1132
+ }
1133
+ });
1134
+ }
1135
+ changeHeaderTransactionRelationReference(uuid, reference) {
1136
+ return __awaiter(this, void 0, void 0, function* () {
1137
+ const request = {
1138
+ transactionUuid: uuid,
1139
+ newRelationReference: reference
1140
+ };
1141
+ const response = yield this.connector.changeHeaderRelationReference(request);
1142
+ if (response && response.validationResult && response.validationResult.success) {
1143
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1144
+ }
1145
+ else {
1146
+ this._handleExceptionFromResponse(response);
1147
+ return null;
1148
+ }
1149
+ });
1150
+ }
1151
+ changeHeaderToDownPayPercentage(uuid, amount) {
1152
+ return __awaiter(this, void 0, void 0, function* () {
1153
+ const request = {
1154
+ transactionUuid: uuid,
1155
+ newToDownPayPercentage: amount
1156
+ };
1157
+ const response = yield this.connector.changeHeaderToDownPayPercentage(request);
1158
+ if (response && response.validationResult && response.validationResult.success) {
1159
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1160
+ }
1161
+ else {
1162
+ this._handleExceptionFromResponse(response);
1163
+ return null;
1164
+ }
1165
+ });
1166
+ }
1167
+ changeHeaderToDownPayAmount(uuid, amount) {
1168
+ return __awaiter(this, void 0, void 0, function* () {
1169
+ const request = {
1170
+ transactionUuid: uuid,
1171
+ newToDownPayAmount: amount
1172
+ };
1173
+ const response = yield this.connector.changeHeaderToDownPayAmount(request);
1174
+ if (response && response.validationResult && response.validationResult.success) {
1175
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1176
+ }
1177
+ else {
1178
+ this._handleExceptionFromResponse(response);
1179
+ return null;
1180
+ }
1181
+ });
1182
+ }
1183
+ changeHeaderTransactionPreferredDeliveryDate(uuid, date) {
1184
+ return __awaiter(this, void 0, void 0, function* () {
1185
+ const request = {
1186
+ transactionUuid: uuid,
1187
+ newPreferredDeliveryDate: date,
1188
+ newPreferredDeliveryDateOption: ""
1189
+ };
1190
+ const response = yield this.connector.changeHeaderPreferredDeliveryDate(request);
1191
+ if (response && response.validationResult && response.validationResult.success) {
1192
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1193
+ }
1194
+ else {
1195
+ this._handleExceptionFromResponse(response);
1196
+ return null;
1197
+ }
1198
+ });
1199
+ }
1200
+ changeHeaderTransactionDeliveryMethod(uuid, method) {
1201
+ return __awaiter(this, void 0, void 0, function* () {
1202
+ const request = {
1203
+ transactionUuid: uuid,
1204
+ newDeliveryMethodCode: method
1205
+ };
1206
+ const response = yield this.connector.changeHeaderDeliveryMethod(request);
1207
+ if (response && response.validationResult && response.validationResult.success) {
1208
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1209
+ }
1210
+ else {
1211
+ this._handleExceptionFromResponse(response);
1212
+ return null;
1213
+ }
1214
+ });
1215
+ }
1216
+ changeHeaderTransactionDeliveryOptions(uuid, options) {
1217
+ return __awaiter(this, void 0, void 0, function* () {
1218
+ const request = {
1219
+ transactionUuid: uuid,
1220
+ newDeliveryOptions: options
1221
+ };
1222
+ const response = yield this.connector.changeHeaderDeliveryOptions(request);
1223
+ if (response && response.validationResult && response.validationResult.success) {
1224
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1225
+ }
1226
+ else {
1227
+ this._handleExceptionFromResponse(response);
1228
+ return null;
1229
+ }
1230
+ });
1231
+ }
1232
+ changeHeaderTransactionPartialDelivery(uuid, allowPartial) {
1233
+ return __awaiter(this, void 0, void 0, function* () {
1234
+ const request = {
1235
+ transactionUuid: uuid,
1236
+ newPartialDeliveryAllowed: allowPartial
1237
+ };
1238
+ const response = yield this.connector.changeHeaderPartialDeliveryAllowed(request);
1239
+ if (response && response.validationResult && response.validationResult.success) {
1240
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1241
+ }
1242
+ else {
1243
+ this._handleExceptionFromResponse(response);
1244
+ return null;
1245
+ }
1246
+ });
1247
+ }
1248
+ changeHeaderTransactionBranch(uuid, branch) {
1249
+ return __awaiter(this, void 0, void 0, function* () {
1250
+ const request = {
1251
+ transactionUuid: uuid,
1252
+ newBranchId: branch
1253
+ };
1254
+ const response = yield this.connector.changeHeaderBranch(request);
1255
+ if (response && response.validationResult && response.validationResult.success) {
1256
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1257
+ }
1258
+ else {
1259
+ this._handleExceptionFromResponse(response);
1260
+ return null;
1261
+ }
1262
+ });
1263
+ }
1264
+ changeHeaderTransactionAdmCoordinator(uuid, relation) {
1265
+ return __awaiter(this, void 0, void 0, function* () {
1266
+ const request = {
1267
+ transactionUuid: uuid,
1268
+ newAdmCoordinator: relation
1269
+ };
1270
+ const response = yield this.connector.changeHeaderAdmCoordinator(request);
1271
+ if (response && response.validationResult && response.validationResult.success) {
1272
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1273
+ }
1274
+ else {
1275
+ this._handleExceptionFromResponse(response);
1276
+ return null;
1277
+ }
1278
+ });
1279
+ }
1280
+ changeHeaderTransactionMarketing(uuid, code) {
1281
+ return __awaiter(this, void 0, void 0, function* () {
1282
+ const request = {
1283
+ transactionUuid: uuid,
1284
+ newMarketingCode: code
1285
+ };
1286
+ const response = yield this.connector.changeHeaderMarketingCode(request);
1287
+ if (response && response.validationResult && response.validationResult.success) {
1288
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1289
+ }
1290
+ else {
1291
+ this._handleExceptionFromResponse(response);
1292
+ return null;
1293
+ }
1294
+ });
1295
+ }
1296
+ changeHeaderTransactionDiscount(uuid, type, amount) {
1297
+ return __awaiter(this, void 0, void 0, function* () {
1298
+ const request = {
1299
+ transactionUuid: uuid,
1300
+ orderDiscountType: type,
1301
+ discountValue: amount
1302
+ };
1303
+ const response = yield this.connector.setTransactionDiscounts(request);
1304
+ if (response && response.validationResult && response.validationResult.success) {
1305
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1306
+ }
1307
+ else {
1308
+ this._handleExceptionFromResponse(response);
1309
+ return null;
1310
+ }
1311
+ });
1312
+ }
1313
+ changeHeaderTransactionToDownPay(uuid, downPayment) {
1314
+ return __awaiter(this, void 0, void 0, function* () {
1315
+ const request = {
1316
+ transactionUuid: uuid,
1317
+ newToDownPayAmount: downPayment
1318
+ };
1319
+ const response = yield this.connector.changeHeaderToDownPayAmount(request);
1320
+ if (response && response.validationResult && response.validationResult.success) {
1321
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1322
+ }
1323
+ else {
1324
+ this._handleExceptionFromResponse(response);
1325
+ return null;
1326
+ }
1327
+ });
1328
+ }
1329
+ changeTransactionLineCollectionCode(uuid, lineUuid, code) {
1330
+ return __awaiter(this, void 0, void 0, function* () {
1331
+ const request = {
1332
+ transactionUuid: uuid,
1333
+ lineUuid: lineUuid,
1334
+ newCollectionCode: code
1335
+ };
1336
+ const response = yield this.connector.changeTransactionLineCollectionCode(request);
1337
+ if (response && response.validationResult && response.validationResult.success) {
1338
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1339
+ }
1340
+ else {
1341
+ this._handleExceptionFromResponse(response);
1342
+ return null;
1343
+ }
1344
+ });
1345
+ }
1346
+ createOutstandingEntry(uuid, amount) {
1347
+ return __awaiter(this, void 0, void 0, function* () {
1348
+ const request = {
1349
+ transUUID: uuid,
1350
+ amount: amount
1351
+ };
1352
+ const response = yield this.connector.createOutstandingEntry(request);
1353
+ if (response && response.validationResult && response.validationResult.success) {
1354
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1355
+ }
1356
+ else {
1357
+ this._handleExceptionFromResponse(response);
1358
+ return null;
1359
+ }
1360
+ });
1361
+ }
1362
+ registerSalesOrderPayment(uuid, amount, currencyId, paymentMethod, cashRegisterGroupId) {
1363
+ return __awaiter(this, void 0, void 0, function* () {
1364
+ const request = {
1365
+ transUUID: uuid,
1366
+ amount: amount,
1367
+ currencyId: currencyId,
1368
+ paymentMethodCode: paymentMethod,
1369
+ cashRegisterGroupId: cashRegisterGroupId
1370
+ };
1371
+ const response = yield this.connector.registerSalesOrderPayment(request);
1372
+ if (response && response.validationResult && response.validationResult.success) {
1373
+ return response;
1374
+ }
1375
+ else {
1376
+ this._handleExceptionFromResponse(response);
1377
+ return null;
1378
+ }
1379
+ });
1380
+ }
1381
+ createIonePaymentLinkAndQRCode(uuid, amount, paymentMethodCode) {
1382
+ return __awaiter(this, void 0, void 0, function* () {
1383
+ const request = {
1384
+ transUUID: uuid,
1385
+ amount: amount,
1386
+ paymentMethodCode: paymentMethodCode
1387
+ };
1388
+ const response = yield this.connector.createIonePaymentLinkAndQRCode(request);
1389
+ if (response && response.validationResult && response.validationResult.success) {
1390
+ return this._boFactory.makeWithRawBackendData(CreatePaymentLinkResult, response.resultObject);
1391
+ }
1392
+ else {
1393
+ this._handleExceptionFromResponse(response);
1394
+ return null;
1395
+ }
1396
+ });
1397
+ }
1398
+ getPaymentLinkStatus(paymentLinkUUID) {
1399
+ return __awaiter(this, void 0, void 0, function* () {
1400
+ const response = yield this.connector.getPaymentLinkStatus(paymentLinkUUID);
1401
+ if (response && response.validationResult && response.validationResult.success) {
1402
+ return this._boFactory.makeWithRawBackendData(PaymentLinkStatus, response.resultObject);
1403
+ }
1404
+ else {
1405
+ this._handleExceptionFromResponse(response);
1406
+ return null;
1407
+ }
1408
+ });
1409
+ }
1410
+ getDownPaymentInfo(uuid) {
1411
+ return __awaiter(this, void 0, void 0, function* () {
1412
+ const response = yield this.connector.getDownPaymentInfo(uuid);
1413
+ if (response && response.validationResult && response.validationResult.success) {
1414
+ return this._boFactory.makeWithRawBackendData(TransactionDownPaymentInfo, response.resultObject);
1415
+ }
1416
+ else {
1417
+ this._handleExceptionFromResponse(response);
1418
+ return null;
1419
+ }
1420
+ });
1421
+ }
1422
+ getGoodsReceiptStatus(transId, lineNr) {
1423
+ return __awaiter(this, void 0, void 0, function* () {
1424
+ const response = yield this.connector.getGoodsReceiptStatus(transId, lineNr);
1425
+ if (response && response.validationResult && response.validationResult.success) {
1426
+ return this._boFactory.makeWithRawBackendData(GoodsReceiptStatusWithHistory, response.resultObject);
1427
+ }
1428
+ else {
1429
+ this._handleExceptionFromResponse(response);
1430
+ return null;
1431
+ }
1432
+ });
1433
+ }
1434
+ getGoodsReceiptStatusWithHistory(transId, lineNr) {
1435
+ return __awaiter(this, void 0, void 0, function* () {
1436
+ const response = yield this.connector.getGoodsReceiptStatusWithHistory(transId, lineNr);
1437
+ if (response && response.validationResult && response.validationResult.success) {
1438
+ return this._boFactory.makeWithRawBackendData(GoodsReceiptStatusWithHistory, response.resultObject);
1439
+ }
1440
+ else {
1441
+ this._handleExceptionFromResponse(response);
1442
+ return null;
1443
+ }
1444
+ });
1445
+ }
1446
+ receiveGoodsForPurchaseOrder(request) {
1447
+ return __awaiter(this, void 0, void 0, function* () {
1448
+ const response = yield this.connector.receiveGoodsForPurchaseOrder(request);
1449
+ if (response && response.validationResult && response.validationResult.success) {
1450
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1451
+ }
1452
+ else {
1453
+ this._handleExceptionFromResponse(response);
1454
+ return null;
1455
+ }
1456
+ });
1457
+ }
1458
+ receiveGoodsForPurchaseOrderCorrection(request) {
1459
+ return __awaiter(this, void 0, void 0, function* () {
1460
+ const response = yield this.connector.receiveGoodsForPurchaseOrderCorrection(request);
1461
+ if (response && response.validationResult && response.validationResult.success) {
1462
+ return this._boFactory.makeWithRawBackendData(TransactionInfoResponse, response.resultObject);
1463
+ }
1464
+ else {
1465
+ this._handleExceptionFromResponse(response);
1466
+ return null;
1467
+ }
1468
+ });
1469
+ }
1470
+ getPurchasePortalLines(request) {
1471
+ return __awaiter(this, void 0, void 0, function* () {
1472
+ return new Promise((resolve, reject) => {
1473
+ return this.connector.getPurchasePortalLines(request).then((result) => {
1474
+ if (result.validationResult && result.validationResult.success) {
1475
+ if (result.resultObjects) {
1476
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(PurchasePortalLine, result.resultObjects));
1477
+ }
1478
+ }
1479
+ else {
1480
+ this._handleExceptionFromResponse(result);
1481
+ reject(null);
1482
+ }
1483
+ });
1484
+ });
1485
+ });
1486
+ }
1487
+ updatePurchasePortalLines(purchasePortalLine) {
1488
+ return __awaiter(this, void 0, void 0, function* () {
1489
+ const result = yield this.connector.updatePurchasePortalLines(purchasePortalLine);
1490
+ if (result && result.validationResult && result.validationResult.success) {
1491
+ yield this.commit();
1492
+ return null;
1493
+ }
1494
+ });
1495
+ }
1496
+ purchaseOrderConfirmation(purchaseOrderConfirmation) {
1497
+ return __awaiter(this, void 0, void 0, function* () {
1498
+ const result = yield this.connector.getPurchaseOrderConfirmation(purchaseOrderConfirmation);
1499
+ if (result && result.validationResult && result.validationResult.success) {
1500
+ yield this.commit();
1501
+ return null;
1502
+ }
1503
+ });
1504
+ }
1505
+ lockPurchasePortalLines(transIdPurchase, lineId) {
1506
+ return __awaiter(this, void 0, void 0, function* () {
1507
+ return new Promise((resolve, reject) => {
1508
+ return this.connector.lockPurchasePortalLines(transIdPurchase, lineId).then((result) => __awaiter(this, void 0, void 0, function* () {
1509
+ if (result.validationResult && result.validationResult.success) {
1510
+ resolve(true);
1511
+ }
1512
+ else {
1513
+ reject(result.validationMessagesAsString);
1514
+ }
1515
+ }));
1516
+ });
1517
+ });
1518
+ }
1519
+ getStockStickerTemplates(data) {
1520
+ return __awaiter(this, void 0, void 0, function* () {
1521
+ return new Promise((resolve, reject) => {
1522
+ // @ts-ignore
1523
+ return this.sharedConnector.getStockStickerPrintLayouts(data).then((result) => {
1524
+ if (result.validationResult && result.validationResult.success) {
1525
+ if (result.resultObject) {
1526
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StockStickersPrintLayouts, result.resultObject));
1527
+ }
1528
+ }
1529
+ else {
1530
+ reject(result.validationMessagesAsString);
1531
+ }
1532
+ });
1533
+ });
1534
+ });
1535
+ }
1536
+ generateCommissionOrders(transId, onlyGenerateForDirectSellSuppliers) {
1537
+ return __awaiter(this, void 0, void 0, function* () {
1538
+ return new Promise((resolve, reject) => {
1539
+ return this.connector.generateCommissionOrders(transId, onlyGenerateForDirectSellSuppliers).then((result) => __awaiter(this, void 0, void 0, function* () {
1540
+ if (result.validationResult && result.validationResult.success) {
1541
+ resolve(true);
1542
+ }
1543
+ else {
1544
+ reject(result.validationMessagesAsString);
1545
+ }
1546
+ }));
1547
+ });
1548
+ });
1549
+ }
1550
+ getDeliveryOrderStatus(transId, lineNr) {
1551
+ return __awaiter(this, void 0, void 0, function* () {
1552
+ const response = yield this.connector.getDeliveryOrderStatus(transId, lineNr);
1553
+ if (response && response.validationResult && response.validationResult.success) {
1554
+ return this._boFactory.makeWithRawBackendData(DeliveryOrderStatus, response.resultObject);
1555
+ }
1556
+ else {
1557
+ this._handleExceptionFromResponse(response);
1558
+ return null;
1559
+ }
1560
+ });
1561
+ }
1562
+ getAvailableStockGroupedByWLBSByTransIdLineNr(transId, lineNr) {
1563
+ return __awaiter(this, void 0, void 0, function* () {
1564
+ const response = yield this.connector.getAvailableStockGroupedByWLBSByTransIdLineNr(transId, lineNr);
1565
+ if (response && response.validationResult && response.validationResult.success) {
1566
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(AvailableStock, response.resultObject);
1567
+ }
1568
+ else {
1569
+ this._handleExceptionFromResponse(response);
1570
+ return null;
1571
+ }
1572
+ });
1573
+ }
1574
+ allocateGoodsForSalesOrder(request) {
1575
+ return __awaiter(this, void 0, void 0, function* () {
1576
+ const response = yield this.connector.allocateGoodsForSalesOrder(request);
1577
+ if (response && response.validationResult && response.validationResult.success) {
1578
+ return true;
1579
+ }
1580
+ else {
1581
+ this._handleExceptionFromResponse(response);
1582
+ return null;
1583
+ }
1584
+ });
1585
+ }
1586
+ allocateGoodsForSalesOrderCorrection(request) {
1587
+ return __awaiter(this, void 0, void 0, function* () {
1588
+ const response = yield this.connector.allocateGoodsForSalesOrderCorrection(request);
1589
+ if (response && response.validationResult && response.validationResult.success) {
1590
+ return true;
1591
+ }
1592
+ else {
1593
+ this._handleExceptionFromResponse(response);
1594
+ return null;
1595
+ }
1596
+ });
1597
+ }
1598
+ getGoodsAllocationStatus(transId, lineNr) {
1599
+ return __awaiter(this, void 0, void 0, function* () {
1600
+ const response = yield this.connector.getGoodsAllocationStatus(transId, lineNr);
1601
+ if (response && response.resultObject) {
1602
+ return this._boFactory.makeWithRawBackendData(GoodsAllocationStatus, response.resultObject);
1603
+ }
1604
+ else {
1605
+ this._handleExceptionFromResponse(response);
1606
+ return null;
1607
+ }
1608
+ });
1609
+ }
1610
+ getGoodsAllocationStatusWithHistory(transId, lineNr) {
1611
+ return __awaiter(this, void 0, void 0, function* () {
1612
+ const response = yield this.connector.getGoodsAllocationStatusWithHistory(transId, lineNr);
1613
+ if (response && response.resultObject) {
1614
+ return this._boFactory.makeWithRawBackendData(GoodsAllocationStatusWithHistory, response.resultObject);
1615
+ }
1616
+ else {
1617
+ this._handleExceptionFromResponse(response);
1618
+ return null;
1619
+ }
1620
+ });
1621
+ }
1622
+ getOrderConfirmationEmailLayouts(transactionUUID) {
1623
+ return __awaiter(this, void 0, void 0, function* () {
1624
+ const response = yield this.connector.getOrderConfirmationEmailLayouts(transactionUUID);
1625
+ if (response && response.validationResult && response.validationResult.success) {
1626
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionEmail, response.resultObject);
1627
+ }
1628
+ else {
1629
+ this._handleExceptionFromResponse(response);
1630
+ return null;
1631
+ }
1632
+ });
1633
+ }
1634
+ getOrderConfirmationPrintLayouts(transactionUUID) {
1635
+ return __awaiter(this, void 0, void 0, function* () {
1636
+ const response = yield this.connector.getOrderConfirmationPrintLayouts(transactionUUID);
1637
+ if (response && response.validationResult && response.validationResult.success) {
1638
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionPrint, response.resultObject);
1639
+ }
1640
+ else {
1641
+ this._handleExceptionFromResponse(response);
1642
+ return null;
1643
+ }
1644
+ });
1645
+ }
1646
+ getOrderConfirmationDefaultSendMethod(relationId) {
1647
+ return __awaiter(this, void 0, void 0, function* () {
1648
+ const response = yield this.connector.getOrderConfirmationDefaultSendMethod(relationId);
1649
+ if (response && response.validationResult && response.validationResult.success) {
1650
+ return response.resultObject;
1651
+ }
1652
+ else {
1653
+ this._handleExceptionFromResponse(response);
1654
+ return null;
1655
+ }
1656
+ });
1657
+ }
1658
+ printOrderConfirmation(request) {
1659
+ return __awaiter(this, void 0, void 0, function* () {
1660
+ const response = yield this.connector.printOrderConfirmation(request);
1661
+ if (response && response.validationResult && response.validationResult.success) {
1662
+ return response.resultObject;
1663
+ }
1664
+ else {
1665
+ this._handleExceptionFromResponse(response);
1666
+ return null;
1667
+ }
1668
+ });
1669
+ }
1670
+ emailOrderConfirmation(request) {
1671
+ return __awaiter(this, void 0, void 0, function* () {
1672
+ const response = yield this.connector.emailOrderConfirmation(request);
1673
+ if (response && response.validationResult && response.validationResult.success) {
1674
+ return response.resultObject;
1675
+ }
1676
+ else {
1677
+ this._handleExceptionFromResponse(response);
1678
+ return null;
1679
+ }
1680
+ });
1681
+ }
1682
+ pdfOrderConfirmation(request) {
1683
+ return __awaiter(this, void 0, void 0, function* () {
1684
+ const response = yield this.connector.pdfOrderConfirmation(request);
1685
+ if (response && response.validationResult && response.validationResult.success) {
1686
+ return response.resultObject;
1687
+ }
1688
+ else {
1689
+ this._handleExceptionFromResponse(response);
1690
+ return null;
1691
+ }
1692
+ });
1693
+ }
1694
+ printPurchaseOrder(request) {
1695
+ return __awaiter(this, void 0, void 0, function* () {
1696
+ const response = yield this.connector.printPurchaseOrder(request);
1697
+ if (response && response.validationResult && response.validationResult.success) {
1698
+ return response.resultObject;
1699
+ }
1700
+ else {
1701
+ this._handleExceptionFromResponse(response);
1702
+ return null;
1703
+ }
1704
+ });
1705
+ }
1706
+ emailPurchaseOrder(request) {
1707
+ return __awaiter(this, void 0, void 0, function* () {
1708
+ const response = yield this.connector.emailPurchaseOrder(request);
1709
+ if (response && response.validationResult && response.validationResult.success) {
1710
+ return response.resultObject;
1711
+ }
1712
+ else {
1713
+ this._handleExceptionFromResponse(response);
1714
+ return null;
1715
+ }
1716
+ });
1717
+ }
1718
+ pdfPurchaseOrder(request) {
1719
+ return __awaiter(this, void 0, void 0, function* () {
1720
+ const response = yield this.connector.pdfPurchaseOrder(request);
1721
+ if (response && response.validationResult && response.validationResult.success) {
1722
+ return response.resultObject;
1723
+ }
1724
+ else {
1725
+ this._handleExceptionFromResponse(response);
1726
+ return null;
1727
+ }
1728
+ });
1729
+ }
1730
+ getPurchaseOrderEmailLayouts(transactionUUID) {
1731
+ return __awaiter(this, void 0, void 0, function* () {
1732
+ const response = yield this.connector.getPurchaseOrderEmailLayouts(transactionUUID);
1733
+ if (response && response.validationResult && response.validationResult.success) {
1734
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionEmail, response.resultObject);
1735
+ }
1736
+ else {
1737
+ this._handleExceptionFromResponse(response);
1738
+ return null;
1739
+ }
1740
+ });
1741
+ }
1742
+ getPurchaseOrderPrintLayouts(transactionUUID) {
1743
+ return __awaiter(this, void 0, void 0, function* () {
1744
+ const response = yield this.connector.getPurchaseOrderPrintLayouts(transactionUUID);
1745
+ if (response && response.validationResult && response.validationResult.success) {
1746
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(ReportLayoutSelectionPrint, response.resultObject);
1747
+ }
1748
+ else {
1749
+ this._handleExceptionFromResponse(response);
1750
+ return null;
1751
+ }
1752
+ });
1753
+ }
1754
+ getDefaultEmailAddressListForOrderConfirmation(transactionUUID) {
1755
+ return __awaiter(this, void 0, void 0, function* () {
1756
+ const response = yield this.connector.getDefaultEmailAddressListForOrderConfirmation(transactionUUID);
1757
+ if (response && response.validationResult && response.validationResult.success) {
1758
+ return response.resultObject;
1759
+ }
1760
+ else {
1761
+ this._handleExceptionFromResponse(response);
1762
+ return null;
1763
+ }
1764
+ });
1765
+ }
1766
+ getPurchaseOrderDefaultSendMethod(relationId) {
1767
+ return __awaiter(this, void 0, void 0, function* () {
1768
+ const response = yield this.connector.getPurchaseOrderDefaultSendMethod(relationId);
1769
+ if (response && response.validationResult && response.validationResult.success) {
1770
+ return response.resultObject;
1771
+ }
1772
+ else {
1773
+ this._handleExceptionFromResponse(response);
1774
+ return null;
1775
+ }
1776
+ });
1777
+ }
1778
+ generateAndSendPurchaseOrdersForSalesOrder(transactionId) {
1779
+ return __awaiter(this, void 0, void 0, function* () {
1780
+ const response = yield this.connector.generateAndSendPurchaseOrdersForSalesOrder(transactionId);
1781
+ if (response && response.validationResult && response.validationResult.success) {
1782
+ return response.resultObject;
1783
+ }
1784
+ else {
1785
+ this._handleExceptionFromResponse(response);
1786
+ return null;
1787
+ }
1788
+ });
1789
+ }
1790
+ getPurchaseAdviceLines(filters, goodId) {
1791
+ return __awaiter(this, void 0, void 0, function* () {
1792
+ const response = yield this.connector.getPurchaseAdviceLines(filters, goodId);
1793
+ if (response && response.validationResult && response.validationResult.success) {
1794
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(PurchaseAdviceLine, response.resultObject);
1795
+ }
1796
+ else {
1797
+ this._handleExceptionFromResponse(response);
1798
+ return null;
1799
+ }
1800
+ });
1801
+ }
1802
+ generateAndSendPurchaseOrders(purchaseAdviceLines) {
1803
+ return __awaiter(this, void 0, void 0, function* () {
1804
+ const response = yield this.connector.generateAndSendPurchaseOrders(purchaseAdviceLines);
1805
+ if (response && response.validationResult && response.validationResult.success) {
1806
+ return true;
1807
+ }
1808
+ else {
1809
+ this._handleExceptionFromResponse(response);
1810
+ return null;
1811
+ }
1812
+ });
1813
+ }
1814
+ _handleExceptionFromResponse(result) {
1815
+ this._errorService.showValidationError(result);
1816
+ }
1817
+ }
1818
+ TransactionConnectorAdapterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionConnectorAdapterService_Factory() { return new TransactionConnectorAdapterService(i0.ɵɵinject(i1.OptionsService), i0.ɵɵinject(i2.SelectMultipleCacheService), i0.ɵɵinject(i3.SelectMultipleParameterizedCacheService), i0.ɵɵinject(i4.ErrorService)); }, token: TransactionConnectorAdapterService, providedIn: "root" });
1819
+ TransactionConnectorAdapterService.decorators = [
1820
+ { type: Injectable, args: [{
1821
+ providedIn: "root"
1822
+ },] }
1823
+ ];
1824
+ TransactionConnectorAdapterService.ctorParameters = () => [
1825
+ { type: OptionsService },
1826
+ { type: SelectMultipleCacheService },
1827
+ { type: SelectMultipleParameterizedCacheService },
1828
+ { type: ErrorService }
1829
+ ];
1830
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS90cmFuc2FjdGlvbi1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxtREFBbUQsQ0FBQztBQUM1RSxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUUxRyxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFFeEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHlEQUF5RCxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUV2RixPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUdoSSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUUzRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDdkUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3REFBd0QsQ0FBQztBQUNyRixPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUNsRyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBR2hGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUMxRSxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sMENBQTBDLENB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SSxDQUFDO2FBQ2I7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUM1QyxPQUFPLElBQUksQ0FBQzthQUNiO1FBQ0gsQ0FBQztLQUFBO0lBRU8sNEJBQTRCLENBQUMsTUFBK0I7UUFDbEUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqRCxDQUFDOzs7O1lBaGhERixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQTlETyxjQUFjO1lBc0JkLDBCQUEwQjtZQUMxQix1Q0FBdUM7WUFDdkMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtNYXJrZXRpbmd9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbWFya2V0aW5nLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uS2luZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWtpbmQuZW51bVwiO1xyXG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xyXG5pbXBvcnQge1NlcXVlbmNlTmFtZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3NlcXVlbmNlLW5hbWUuZW51bVwiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5TWV0aG9kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW1ldGhvZC5ib1wiO1xyXG5pbXBvcnQge0RlbGl2ZXJ5T3B0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW9wdGlvbi5ib1wiO1xyXG5pbXBvcnQge1NldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9zZXQtdHJhbnNhY3Rpb24tZGVsaXZlcnktb3B0aW9ucy1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7R2V0UG9zdGFsQ29kZVJldHJpZXZhbE91dHB1dFBhcmFtc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nZXQtcG9zdGFsLWNvZGUtcmV0cmlldmFsLW91dHB1dC1wYXJhbXNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYXJ0aWNsZS13YXJlaG91c2UuYm9cIjtcclxuaW1wb3J0IHtBcnRpY2xlRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZ1bGwtb2JqZWN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25SZXNwb25zZUJhc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tcmVzcG9uc2UtYmFzZS5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3RyYW5zYWN0aW9uXCI7XHJcbmltcG9ydCB7U3RhbmRhcmRUZXh0fSBmcm9tIFwiLi4vbW9kZWwvc3RhbmRhcmQtdGV4dFwiO1xyXG5pbXBvcnQge0N1c3RvbWVyR3JvdXB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZ3JvdXAuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge09wdGlvbnNTZXJ2aWNlfSBmcm9tIFwiLi9vcHRpb25zLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtDYXNoUmVnaXN0ZXJ9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2FzaC1yZWdpc3RlclwiO1xyXG5pbXBvcnQge0NoYW5nZUxpbmVTZXF1ZW5jZVJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY2hhbmdlLWxpbmUtc2VxdWVuY2UtcmVxdWVzdFwiO1xyXG5pbXBvcnQge1Jlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7UHJpY2VMaXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaWNlLWxpc3RcIjtcclxuaW1wb3J0IHtWYXR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmF0XCI7XHJcbmltcG9ydCB7RGlzY291bnRUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vZGlzY291bnQtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3UmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1zZWFyY2gtdmlldy1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZWFyY2hWaWV3fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLXNlYXJjaC12aWV3LmJvXCI7XHJcbmltcG9ydCB7T25Ib2xkQ29kZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9vbi1ob2xkLWNvZGUuYm9cIjtcclxuaW1wb3J0IHtXYXJlaG91c2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvd2FyZWhvdXNlLmJvXCI7XHJcbmltcG9ydCB7Q29kZURlc2NyaXB0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NvZGUtZGVzY3JpcHRpb25cIjtcclxuaW1wb3J0IHtSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZWNlaXZlLWdvb2RzLWZvci1wdXJjaGFzZS1vcmRlci1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7R29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3Rvcnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ29vZHMtcmVjZWlwdC1zdGF0dXMtd2l0aC1oaXN0b3J5LmJvXCI7XHJcbmltcG9ydCB7UmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlckNvcnJlY3Rpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlY2VpdmUtZ29vZHMtZm9yLXB1cmNoYXNlLW9yZGVyLWNvcnJlY3Rpb24tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BheW1lbnRNZXRob2R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcGF5bWVudC1tZXRob2QuYm9cIjtcclxuaW1wb3J0IHtHZXRQdXJjaGFzZVBvcnRhbExpbmV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXB1cmNoYXNlLXBvcnRhbC1saW5lXCI7XHJcbmltcG9ydCB7UHVyY2hhc2VQb3J0YWxMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLXBvcnRhbC1saW5lLmJvXCI7XHJcbmltcG9ydCB7Q3JlYXRlUGF5bWVudExpbmtSZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3JlYXRlLXBheW1lbnQtbGluay1yZXN1bHQuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlYXJjaFJlc3VsdH0gZnJvbSBcIi4uL21vZGVsL3RyYW5zYWN0aW9uLXNlYXJjaC1yZXN1bHRcIjtcclxuaW1wb3J0IHtSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1oZWFkZXItcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xyXG5pbXBvcnQge1BheW1lbnRMaW5rU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3BheW1lbnQtbGluay1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtTZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZX0gZnJvbSBcIi4uL2NhY2hlL3NlcnZpY2Uvc2VsZWN0LW11bHRpcGxlLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtTZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2V9IGZyb20gXCIuLi9jYWNoZS9zZXJ2aWNlL3NlbGVjdC1tdWx0aXBsZS1wYXJhbWV0ZXJpemVkLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtFcnJvclNlcnZpY2V9IGZyb20gXCIuL2Vycm9yLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtHZXRQdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2dldC1wdXJjaGFzZS1vcmRlci1jb25maXJtYXRpb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkRvd25QYXltZW50SW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1kb3duLXBheW1lbnQtaW5mby5ib1wiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTG9ja1Jlc3VsdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1sb2NrLXJlc3VsdC5ib1wiO1xyXG5pbXBvcnQge1ByaXZhY3lTZXR0aW5nfSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcHJpdmFjeS1zZXR0aW5nLmJvXCI7XHJcbmltcG9ydCB7RGF0YVNlcnZpY2VSZXNwb25zZURhdGF9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9kYXRhLXNlcnZpY2UtcmVzcG9uc2UtZGF0YVwiO1xyXG5pbXBvcnQge1JlbGF0aW9uUHJpdmFjeVNldHRpbmd9IGZyb20gXCJAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tcHJpdmFjeS1zZXR0aW5nLmJvXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3RGYWN0b3J5fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvZmFjdG9yeS9idXNpbmVzcy1vYmplY3QtZmFjdG9yeVwiO1xyXG5pbXBvcnQge0ltYWdlVXRpbHN9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9pbWFnZS11dGlsc1wiO1xyXG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9jby1kb21haW4tdmFsdWUuYm9cIjtcclxuaW1wb3J0IHtUYWd9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC90YWdcIjtcclxuaW1wb3J0IHtEZWxpdmVyeU9yZGVyU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW9yZGVyLXN0YXR1cy5ib1wiO1xyXG5pbXBvcnQge1NhbGVzUGVyc29ufSBmcm9tIFwiQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL3NhbGVzLXBlcnNvbi5ib1wiO1xyXG5pbXBvcnQge1N0b2NrU3RpY2tlcnNQcmludExheW91dHN9IGZyb20gXCJAY29saWpuaXQvc2hhcmVkYXBpL2J1aWxkL21vZGVsL3JlcG9ydC9zdG9jay1zdGlja2Vycy1wcmludC1sYXlvdXRzLmJvXCI7XHJcbmltcG9ydCB7U2hhcmVkYXBpfSBmcm9tIFwiQGNvbGlqbml0L3NoYXJlZGFwaS9idWlsZC9zaGFyZWRhcGlcIjtcclxuaW1wb3J0IHtBdmFpbGFibGVTdG9ja30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hdmFpbGFibGUtc3RvY2suYm9cIjtcclxuaW1wb3J0IHtBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlclJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYWxsb2NhdGUtZ29vZHMtZm9yLXNhbGVzLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtBbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlckNvcnJlY3Rpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FsbG9jYXRlLWdvb2RzLWZvci1zYWxlcy1vcmRlci1jb3JyZWN0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtHb29kc0FsbG9jYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ29vZHMtYWxsb2NhdGlvbi1zdGF0dXMuYm9cIjtcclxuaW1wb3J0IHtHb29kc0FsbG9jYXRpb25TdGF0dXNXaXRoSGlzdG9yeX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9nb29kcy1hbGxvY2F0aW9uLXN0YXR1cy13aXRoLWhpc3RvcnkuYm9cIjtcclxuaW1wb3J0IHtSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3JlcG9ydC1sYXlvdXQtc2VsZWN0aW9uLWVtYWlsLmJvXCI7XHJcbmltcG9ydCB7UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnR9IGZyb20gXCJAY29saWpuaXQvbWFpbmFwaS9idWlsZC9tb2RlbC9yZXBvcnQtbGF5b3V0LXNlbGVjdGlvbi1wcmludC5ib1wiO1xyXG5pbXBvcnQge0VtYWlsT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZW1haWwtb3JkZXItY29uZmlybWF0aW9uLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtQcmludE9yZGVyQ29uZmlybWF0aW9uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50LW9yZGVyLWNvbmZpcm1hdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UGRmT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcGRmLW9yZGVyLWNvbmZpcm1hdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UHJpbnRQdXJjaGFzZU9yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC9tYWluYXBpL2J1aWxkL21vZGVsL3ByaW50LXB1cmNoYXNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtFbWFpbFB1cmNoYXNlT3JkZXJSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvZW1haWwtcHVyY2hhc2Utb3JkZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge1BkZlB1cmNoYXNlT3JkZXJSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L21haW5hcGkvYnVpbGQvbW9kZWwvcGRmLXB1cmNoYXNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtDcmVhdGVTYWxlc09yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jcmVhdGUtc2FsZXMtb3JkZXItcmVxdWVzdFwiO1xyXG5pbXBvcnQge0NyZWF0ZUNhc2hSZWdpc3Rlck9yZGVyUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jcmVhdGUtY2FzaC1yZWdpc3Rlci1vcmRlci1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7Q3JlYXRlUHVyY2hhc2VPcmRlclJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3JlYXRlLXB1cmNoYXNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtDcmVhdGVTZXJ2aWNlT3JkZXJSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2NyZWF0ZS1zZXJ2aWNlLW9yZGVyLXJlcXVlc3RcIjtcclxuaW1wb3J0IHtDcmVhdGVTYWxlc1F1b3RhdGlvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3JlYXRlLXNhbGVzLXF1b3RhdGlvbi1yZXF1ZXN0XCI7XHJcbmltcG9ydCB7UHVyY2hhc2VBZHZpY2VMaW5lfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLWFkdmljZS1saW5lLmJvXCI7XHJcbmltcG9ydCB7UHVyY2hhc2VBZHZpY2VGaWx0ZXJzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3B1cmNoYXNlLWFkdmljZS1maWx0ZXJzXCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uQ29ubmVjdG9yQWRhcHRlclNlcnZpY2Uge1xyXG4gIHB1YmxpYyBjb25uZWN0b3I6IFRyYW5zYWN0aW9uO1xyXG4gIHB1YmxpYyBzaGFyZWRDb25uZWN0b3I6IFNoYXJlZGFwaTtcclxuXHJcbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBfb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVDYWNoZVNlcnZpY2U6IFNlbGVjdE11bHRpcGxlQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVTZXJ2aWNlOiBTZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9lcnJvclNlcnZpY2U6IEVycm9yU2VydmljZVxyXG4gICkge31cclxuXHJcbiAgcHVibGljIGFzeW5jIGNvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmNvbm5lY3RvciA9IG5ldyBUcmFuc2FjdGlvbih0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICAgIHRoaXMuc2hhcmVkQ29ubmVjdG9yID0gbmV3IFNoYXJlZGFwaSh0aGlzLl9vcHRpb25zU2VydmljZS5vcHRpb25zKTtcclxuICAgIHRoaXMuX29wdGlvbnNTZXJ2aWNlLm9wdGlvbnMuc2Vzc2lvbiA9IHRoaXMuY29ubmVjdG9yLnNlc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkOiBudW1iZXIpOiBQcm9taXNlPEFydGljbGVGdWxsT2JqZWN0PiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0QXJ0aWNsZUZ1bGxPYmplY3QoZ29vZElkKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBcnRpY2xlRnVsbE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdCkgYXMgdW5rbm93biBhcyBBcnRpY2xlRnVsbE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOcik7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdE9iamVjdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTaW5nbGVJbWFnZShub2RlSWQ6IG51bWJlciB8IHN0cmluZywgcHVibGljYXRpb246IG51bWJlciwgaW5jbHVkZU1pbWV0eXBlOiBib29sZWFuLCB0aHVtYjogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0U2luZ2xlSW1hZ2Uobm9kZUlkLCBwdWJsaWNhdGlvbiwgaW5jbHVkZU1pbWV0eXBlLCB0aHVtYik7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCAmJiByZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVQYXRoICE9PSBudWxsICYmIHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZVBhdGggIT09IHVuZGVmaW5lZCAmJiByZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVQYXRoICE9PSBcIlwiKSB7XHJcbiAgICAgICAgcmV0dXJuIEltYWdlVXRpbHMuZ2V0Rml4ZWRJbWFnZUZpbGVwYXRoVXJsKHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZVBhdGgpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICBpZiAoaW5jbHVkZU1pbWV0eXBlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBJbWFnZVV0aWxzLmdldERvY0JvZHlXaXRoTWltZVR5cGVEZWZpbml0aW9uKHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZU5hbWUsXHJcbiAgICAgICAgICAgICAgdGh1bWIgPyByZXN1bHQucmVzdWx0T2JqZWN0LnRodW1ibmFpbEJvZHkgOiByZXN1bHQucmVzdWx0T2JqZWN0LmRvY3VtZW50Qm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICByZXR1cm4gdGh1bWIgPyByZXN1bHQucmVzdWx0T2JqZWN0LnRodW1ibmFpbEJvZHkgOiByZXN1bHQucmVzdWx0T2JqZWN0LmRvY3VtZW50Qm9keTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7IC8vIG5vIGltYWdlXHJcbiAgICAgICAgICByZXR1cm4gXCJcIjtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRDb3VudHJpZXMoKTogUHJvbWlzZTxDb3VudHJ5W10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDb3VudHJpZXMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDb3VudHJ5LCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDb3VudHJ5W107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEN1c3RvbWVyR3JvdXBzKCk6IFByb21pc2U8Q3VzdG9tZXJHcm91cFtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0Q3VzdG9tZXJHcm91cHMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDdXN0b21lckdyb3VwLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDdXN0b21lckdyb3VwW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENvdW50cnkoY291bnRyeUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q291bnRyeT4ge1xyXG4gICAgY29uc3QgY291bnRyaWVzOiBDb3VudHJ5W10gPSBhd2FpdCB0aGlzLmdldENvdW50cmllcygpO1xyXG4gICAgcmV0dXJuIGNvdW50cmllcy5maW5kKGNvdW50cnkgPT4gY291bnRyeS5jb2RlID09PSBjb3VudHJ5Q29kZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpdmFjeVNldHRpbmdzKCk6IFByb21pc2U8UHJpdmFjeVNldHRpbmdbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFByaXZhY3lTZXR0aW5ncygpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFByaXZhY3lTZXR0aW5nLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBQcml2YWN5U2V0dGluZ1tdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvblByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFJlbGF0aW9uUHJpdmFjeVNldHRpbmdbXT4ge1xyXG4gICAgY29uc3QgcHJpdmFjeVNldHRpbmdzOiBSZWxhdGlvblByaXZhY3lTZXR0aW5nW10gPSBbXTtcclxuXHJcbiAgICBjb25zdCBiYXNlUHJpdmFjeVNldHRpbmdzOiBQcml2YWN5U2V0dGluZ1tdID0gYXdhaXQgdGhpcy5nZXRQcml2YWN5U2V0dGluZ3MoKTtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gYmFzZVByaXZhY3lTZXR0aW5ncy5sZW5ndGg7IGkgPCBsZW47IGkrKykge1xyXG4gICAgICBjb25zdCBiYXNlUHJpdlNldHRpbmc6IFByaXZhY3lTZXR0aW5nID0gYmFzZVByaXZhY3lTZXR0aW5nc1tpXTtcclxuICAgICAgY29uc3QgbmV3UmVsUHJpdlNldDogUmVsYXRpb25Qcml2YWN5U2V0dGluZyA9IDxSZWxhdGlvblByaXZhY3lTZXR0aW5nPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5pbnN0YW50aWF0ZU5ld0JvKFJlbGF0aW9uUHJpdmFjeVNldHRpbmcpO1xyXG4gICAgICBuZXdSZWxQcml2U2V0LmFwcGx5QmFzZVByaXZhY3lTZXR0aW5nVmFsdWVzKGJhc2VQcml2U2V0dGluZyk7XHJcbiAgICAgIHByaXZhY3lTZXR0aW5ncy5wdXNoKG5ld1JlbFByaXZTZXQpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHByaXZhY3lTZXR0aW5ncztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRNYXJrZXRpbmdDb2RlcygpOiBQcm9taXNlPE1hcmtldGluZ1tdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0TWFya2V0aW5nQ29kZXMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShNYXJrZXRpbmcsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSBhcyB1bmtub3duIGFzIE1hcmtldGluZ1tdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlQm91bmRUZXh0TGluZXNPZkFydGljbGVMaW5lKGFydGljbGVMaW5lVXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkxpbmVJbmZvW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRBcnRpY2xlQm91bmRUZXh0TGluZXNPZkFydGljbGVMaW5lKGFydGljbGVMaW5lVXVpZCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uTGluZUluZm9bXT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShUcmFuc2FjdGlvbkxpbmVJbmZvLCByZXN1bHQucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb25CeU5yQW5kS2luZChraW5kOiBUcmFuc2FjdGlvbktpbmQsIHRyYW5zYWN0aW9uTm86IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQsIHRyYW5zYWN0aW9uTm8pO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRyYW5zYWN0aW9uQnlJZCh0cmFuc2FjdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25CeUlkKHRyYW5zYWN0aW9uSWQpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSBhcyB1bmtub3duIGFzIFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGxvY2tUcmFuc2FjdGlvbkJ5SWQodHJhbnNhY3Rpb25JZDogbnVtYmVyLCB2ZXJzaW9uOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uTG9ja1Jlc3VsdD4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmxvY2tUcmFuc2FjdGlvbkJ5VHJhbnNJZCh0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkxvY2tSZXN1bHQsIHJlc3VsdC5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgVHJhbnNhY3Rpb25Mb2NrUmVzdWx0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldENhc2hSZWdpc3RlcnMoYnJhbmNoPzogc3RyaW5nLCBncm91cD86IG51bWJlcik6IFByb21pc2U8Q2FzaFJlZ2lzdGVyW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDYXNoUmVnaXN0ZXIoYnJhbmNoLCBncm91cCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoQ2FzaFJlZ2lzdGVyLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDYXNoUmVnaXN0ZXJbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHJpY2VMaXN0cyhjb2RlPzogc3RyaW5nKTogUHJvbWlzZTxQcmljZUxpc3RbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFByaWNlTGlzdHMoY29kZSk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUHJpY2VMaXN0LCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBQcmljZUxpc3RbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VmF0TGlzdChvbmx5VmFsaWQ6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8VmF0W10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRWYXRMaXN0KG9ubHlWYWxpZCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoVmF0LCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBWYXRbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2VhcmNoVHJhbnNhY3Rpb25zKHJlcXVlc3Q6IFRyYW5zYWN0aW9uU2VhcmNoVmlld1JlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0PiB7XHJcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnNlYXJjaFRyYW5zYWN0aW9ucyhyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBjb25zdCByZXN1bHQ6IFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0ID0gbmV3IFRyYW5zYWN0aW9uU2VhcmNoUmVzdWx0KCk7XHJcbiAgICAgIHJlc3VsdC5jb3VudCA9IChyZXNwb25zZS5wYWdpbmdQYXJhbWV0ZXJzIGFzIGFueSkucmVzdWx0Q291bnQ7IC8vIHRvZG86IGZpeCBwcm9wZXJ0eSBpbiBhcGlcclxuICAgICAgcmVzdWx0LnRyYW5zYWN0aW9ucyA9IDx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFRyYW5zYWN0aW9uU2VhcmNoVmlldywgcmVzcG9uc2UucmVzdWx0T2JqZWN0cykgYXMgVHJhbnNhY3Rpb25TZWFyY2hWaWV3W107XHJcbiAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTZXF1ZW5jZVZhbHVlKHNlcXVlbmNlTmFtZTogU2VxdWVuY2VOYW1lKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFNlcXVlbmNlVmFsdWUoc2VxdWVuY2VOYW1lKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU1ldGhvZHMoKTogUHJvbWlzZTxEZWxpdmVyeU1ldGhvZFtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0RGVsaXZlcnlNZXRob2RzKCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoRGVsaXZlcnlNZXRob2QsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSBhcyB1bmtub3duIGFzIERlbGl2ZXJ5TWV0aG9kW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5T3B0aW9ucygpOiBQcm9taXNlPERlbGl2ZXJ5T3B0aW9uW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXREZWxpdmVyeU9wdGlvbnMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShEZWxpdmVyeU9wdGlvbiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgRGVsaXZlcnlPcHRpb25bXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UG9zdGFsQ29kZVJldHJpZXZhbChwb3N0Y2FsQ29kZTogc3RyaW5nLCBob3VzZU5vOiBzdHJpbmcpOiBQcm9taXNlPEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXM+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRQb3N0YWxDb2RlUmV0cmlldmFsKHBvc3RjYWxDb2RlLCBob3VzZU5vKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgY29uc3Qgb3V0cHV0UGFyYW1zOiBHZXRQb3N0YWxDb2RlUmV0cmlldmFsT3V0cHV0UGFyYW1zID0gbmV3IEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXMoKTtcclxuICAgICAgICBvdXRwdXRQYXJhbXMuY2l0eSA9IHJlc3VsdC5yZXN1bHRPYmplY3QuY2l0eTtcclxuICAgICAgICBvdXRwdXRQYXJhbXMuc3RyZWV0ID0gcmVzdWx0LnJlc3VsdE9iamVjdC5zdHJlZXQ7XHJcbiAgICAgICAgb3V0cHV0UGFyYW1zLnN0YXR1cyA9IHJlc3VsdC5yZXN1bHRPYmplY3Quc3RhdHVzO1xyXG4gICAgICAgIG91dHB1dFBhcmFtcy5uZXROdW1iZXIgPSByZXN1bHQucmVzdWx0T2JqZWN0Lm5ldE51bWJlcjtcclxuICAgICAgICByZXR1cm4gb3V0cHV0UGFyYW1zO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0Q29tbWlzc2lvbkNvZGVzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxDb0RvbWFpblZhbHVlW10+IHtcclxuICAgIGNvbnN0IHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDb21taXNzaW9uQ29kZXMobGFuZ3VhZ2VDb2RlKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDb0RvbWFpblZhbHVlLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBDb0RvbWFpblZhbHVlW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEluT3V0Q29sbGVjdGlvbihsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0SW5PdXRDb2xsZWN0aW9uKGxhbmd1YWdlQ29kZSk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoQ29Eb21haW5WYWx1ZSwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgQ29Eb21haW5WYWx1ZVtdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VzKGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSg8VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChbXSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFRleHRUeXBlcyhsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8Q29Eb21haW5WYWx1ZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0VGV4dFR5cGVzKGxhbmd1YWdlQ29kZSk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBjb25zdCB0ZXh0czogQ29Eb21haW5WYWx1ZVtdID0gPENvRG9tYWluVmFsdWVbXT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShDb0RvbWFpblZhbHVlLCByZXN1bHQucmVzdWx0T2JqZWN0cyk7XHJcbiAgICAgIHRleHRzLnNvcnQoKGEsIGIpID0+IGEuc2VxdWVuY2UgPiBiLnNlcXVlbmNlID8gMSA6IC0xKTtcclxuICAgICAgcmV0dXJuIHRleHRzO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdGFuZGFyZFRleHRzKGxhbmd1YWdlQ29kZTogc3RyaW5nKTogUHJvbWlzZTxTdGFuZGFyZFRleHRbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFN0YW5kYXJkVGV4dHMobGFuZ3VhZ2VDb2RlKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTdGFuZGFyZFRleHQsIHJlc3VsdC5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgU3RhbmRhcmRUZXh0W107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFNhbGVzUGVyc29ucyhkYXRlPzogRGF0ZSk6IFByb21pc2U8U2FsZXNQZXJzb25bXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFNhbGVzUGVyc29ucyhkYXRlKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShTYWxlc1BlcnNvbiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgU2FsZXNQZXJzb25bXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0VGFncyhjYXRlZ29yeTogbnVtYmVyKTogUHJvbWlzZTxUYWdbXT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFRhZ3MoY2F0ZWdvcnkpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFRhZywgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgVGFnW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldE9uSG9sZENvZGVzKCk6IFByb21pc2U8T25Ib2xkQ29kZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0T25Ib2xkQ29kZXMoKTtcclxuICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShPbkhvbGRDb2RlLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBPbkhvbGRDb2RlW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFdhcmVob3VzZXMoYnJhbmNoTnI/OiBzdHJpbmcpOiBQcm9taXNlPFdhcmVob3VzZVtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0V2FyZWhvdXNlcyhicmFuY2hOcik7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoV2FyZWhvdXNlLCByZXN1bHQucmVzdWx0T2JqZWN0cykgYXMgdW5rbm93biBhcyBXYXJlaG91c2VbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0SGlzdG9yaWNTdGF0ZVZhbHVlcygpOiBQcm9taXNlPENvZGVEZXNjcmlwdGlvbltdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0SGlzdG9yaWNTdGF0ZVZhbHVlcygpO1xyXG4gICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KENvZGVEZXNjcmlwdGlvbiwgcmVzdWx0LnJlc3VsdE9iamVjdHMpIGFzIHVua25vd24gYXMgQ29kZURlc2NyaXB0aW9uW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFBheW1lbnRNZXRob2RzKCk6IFByb21pc2U8UGF5bWVudE1ldGhvZFtdPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0UGF5bWVudE1ldGhvZHNGb3JTYWxlc09yZGVyKCk7XHJcbiAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUGF5bWVudE1ldGhvZCwgcmVzdWx0LnJlc3VsdE9iamVjdCkgYXMgdW5rbm93biBhcyBQYXltZW50TWV0aG9kW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNvbW1pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNvbW1pdCgpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcm9sbGJhY2soKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5yb2xsYmFjaygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY3JlYXRlVHJhbnNhY3Rpb24oa2luZDogVHJhbnNhY3Rpb25LaW5kLCBicmFuY2hOcjogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuY3JlYXRlVHJhbnNhY3Rpb24oa2luZCwgYnJhbmNoTnIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2FsZXNPcmRlcihyZXF1ZXN0OiBDcmVhdGVTYWxlc09yZGVyUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNyZWF0ZVNhbGVzT3JkZXIocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVDYXNoUmVnaXN0ZXJPcmRlcihyZXF1ZXN0OiBDcmVhdGVDYXNoUmVnaXN0ZXJPcmRlclJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVDYXNoUmVnaXN0ZXJPcmRlcihyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZVB1cmNoYXNlT3JkZXIocmVxdWVzdDogQ3JlYXRlUHVyY2hhc2VPcmRlclJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVQdXJjaGFzZU9yZGVyKHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY3JlYXRlU2VydmljZU9yZGVyKHJlcXVlc3Q6IENyZWF0ZVNlcnZpY2VPcmRlclJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVTZXJ2aWNlT3JkZXIocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVTYWxlc1F1b3RhdGlvbihyZXF1ZXN0OiBDcmVhdGVTYWxlc1F1b3RhdGlvblJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jcmVhdGVTYWxlc1F1b3RhdGlvbihyZXF1ZXN0KS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcblxyXG4gIHB1YmxpYyBzYXZlVHJhbnNhY3Rpb24odXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3Iuc2F2ZVRyYW5zYWN0aW9uKHV1aWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgc2V0UmVsYXRpb25CeVVzZXIodXVpZDogc3RyaW5nLCB1c2VybmFtZTogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5zZXRSZWxhdGlvbkJ5VXNlcih1dWlkLCB1c2VybmFtZSwgcGFzc3dvcmQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihwZW5kaW5nSGVhZGVyVmFsdWVzOiBSZXNvbHZlSGVhZGVyUGVuZGluZ1JlYXNvblJlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5yZXNvbHZlUGVuZGluZ0hlYWRlclJlYXNvbihwZW5kaW5nSGVhZGVyVmFsdWVzKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3VsdCk7XHJcbiAgICAgICAgICByZWplY3QobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlczogUmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlcykudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBhZGRUcmFuc2FjdGlvbkxpbmUoXHJcbiAgICB1dWlkOiBzdHJpbmcsXHJcbiAgICBhcnRpY2xlTGluZTogVHJhbnNhY3Rpb25MaW5lVHlwZSxcclxuICAgIGFydGljbGVObzogc3RyaW5nLFxyXG4gICAgYW1vdW50OiBudW1iZXIsXHJcbiAgICBpc1JldHVybjogYm9vbGVhbixcclxuICAgIGFib3ZlTGluZU5yOiBudW1iZXIsXHJcbiAgICBiZWxvd0xpbmVOcjogbnVtYmVyXHJcbiAgKTpcclxuICAgIFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmFkZFRyYW5zYWN0aW9uTGluZSh1dWlkLCBhcnRpY2xlTGluZSwgYXJ0aWNsZU5vLCBhbW91bnQsIGlzUmV0dXJuLCBhYm92ZUxpbmVOciwgYmVsb3dMaW5lTnIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgYWRkVGV4dExpbmVUb1RyYW5zYWN0aW9uKHV1aWQ6IHN0cmluZywgc2hvd09uRG9jdW1lbnRzOiBudW1iZXIsIHRleHQ6IHN0cmluZywgYW1vdW50OiBudW1iZXIsIGFydGljbGVCb3VuZDogYm9vbGVhbiwgcmVmQXJ0aWNsZUxpbmVOcjogbnVtYmVyLCBhYm92ZUxpbmVOcj86IG51bWJlciwgYmVsb3dMaW5lTnI/OiBudW1iZXIpOlxyXG4gICAgUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuYWRkVGV4dExpbmVUb1RyYW5zYWN0aW9uKHV1aWQsIHNob3dPbkRvY3VtZW50cywgdGV4dCwgYW1vdW50LCBhcnRpY2xlQm91bmQsIHJlZkFydGljbGVMaW5lTnIsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcikudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBhZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24odXVpZDogc3RyaW5nLCByZWxhdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5hZGRSZWxhdGlvblRvVHJhbnNhY3Rpb24odXVpZCwgcmVsYXRpb25JZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9ucyh0cmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3Q6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25SZXNwb25zZUJhc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VMaW5lU2VxdWVuY2UodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBhYm92ZUxpbmVOcj86IG51bWJlciwgYmVsb3dMaW5lTnI/OiBudW1iZXIpOlxyXG4gICAgUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCByZXF1ZXN0OiBDaGFuZ2VMaW5lU2VxdWVuY2VSZXF1ZXN0ID0ge1xyXG4gICAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgICAgYWJvdmVMaW5lTnI6IGFib3ZlTGluZU5yLFxyXG4gICAgICAgIGJlbG93TGluZU5yOiBiZWxvd0xpbmVOclxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VMaW5lU2VxdWVuY2UocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmRlbGV0ZVRyYW5zYWN0aW9uTGluZSh1dWlkLCBsaW5lVXVpZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBuZXdRdWFudGl0eTogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgICAgbmV3UXVhbnRpdHk6IG5ld1F1YW50aXR5XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZVF1YW50aXR5KHJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0KTtcclxuICAgICAgICAgIHJlamVjdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lQ29tbWlzc2lvbkNvZGUodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3Q29tbWlzc2lvbkNvZGU6IGNvZGVcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVDb21taXNzaW9uQ29kZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lU3VwcGxpZXIodXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBpZDogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld1N1cHBsaWVySWQ6IGlkXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lU3VwcGxpZXIocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVdhcmVob3VzZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIHdhcmVob3VzZU51bWJlcjogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld1dhcmVob3VzZU51bWJlcjogd2FyZWhvdXNlTnVtYmVyXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lV2FyZWhvdXNlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVQcmljZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIHByaWNlOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3UHJpY2U6IHByaWNlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lUHJpY2UocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVByaWNlTGlzdCh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIHByaWNlTGlzdDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld1ByaWNlTGlzdENvZGU6IHByaWNlTGlzdFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZVByaWNlTGlzdChyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lVmF0KHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgaWQ6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdWYXRJZDogaWRcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVWYXQocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZUxpbmVEaXNjb3VudCh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIHR5cGU6IERpc2NvdW50VHlwZSwgZGlzY291bnQ6IG51bWJlciwgcmVhc29uOiBzdHJpbmcsIGNvZGU6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBkaXNjb3VudFR5cGU6IHR5cGUsXHJcbiAgICAgIG5ld0Rpc2NvdW50OiBkaXNjb3VudCxcclxuICAgICAgbmV3RGlzY291bnRSZWFzb246IHJlYXNvbixcclxuICAgICAgbmV3RGlzY291bnRDb2RlOiBjb2RlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lRGlzY291bnQocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZURlbGl2ZXJ5TWV0aG9kKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIGxpbmVVdWlkOiBsaW5lVXVpZCxcclxuICAgICAgbmV3RGVsaXZlcnlNZXRob2RDb2RlOiBtZXRob2RcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVEZWxpdmVyeU1ldGhvZChyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlVHJhbnNhY3Rpb25MaW5lRGVsaXZlcnlEYXRlKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgZGF0ZTogRGF0ZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdEZWxpdmVyeURhdGU6IGRhdGVcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVEZWxpdmVyeURhdGUocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZUFzc2VtYmx5VGltZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIHRpbWU6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdBc3NlbWJseVRpbWU6IHRpbWVcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVBc3NlbWJseVRpbWUocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZUVkaXRUaW1lKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgdGltZTogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld0VkaXRUaW1lOiB0aW1lXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lRWRpdFRpbWUocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVN1cHBsaWVyQXJ0aWNsZU51bWJlcih1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIGFydGljbGVOdW1iZXI6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdTdXBwbGllckFydGljbGVOdW1iZXI6IGFydGljbGVOdW1iZXJcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVTdXBwbGllckFydGljbGVOdW1iZXIocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVJlZmVyZW5jZSh1dWlkOiBzdHJpbmcsIGxpbmVVdWlkOiBzdHJpbmcsIHJlZmVyZW5jZTogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld1JlZmVyZW5jZTogcmVmZXJlbmNlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lUmVmZXJlbmNlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VUcmFuc2FjdGlvbkxpbmVHb29kRGVzY3JpcHRpb24odXVpZDogc3RyaW5nLCBsaW5lVXVpZDogc3RyaW5nLCBnb29kRGVzY3JpcHRpb246IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbGluZVV1aWQ6IGxpbmVVdWlkLFxyXG4gICAgICBuZXdHb29kRGVzY3JpcHRpb246IGdvb2REZXNjcmlwdGlvblxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZUdvb2REZXNjcmlwdGlvbihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25EZWZpbml0aXZlKHV1aWQ6IHN0cmluZywgZGVmaW5pdGl2ZTogYm9vbGVhbik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3VHJhbnNhY3Rpb25EZWZpbml0aXZlOiBkZWZpbml0aXZlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25EZWZpbml0aXZlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJEZWxpdmVyeUFkZHJlc3ModXVpZDogc3RyaW5nLCBuZXdOYXdOcjogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdUcmFuc2FjdGlvbkFkZHJlc3NOYXdOcjogbmV3TmF3TnJcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJUcmFuc2FjdGlvbkFkZHJlc3MocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlckludm9pY2VBZGRyZXNzKHV1aWQ6IHN0cmluZywgbmV3TmF3TnI6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3SW52b2ljZUFkZHJlc3NOYXdOcjogbmV3TmF3TnJcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJJbnZvaWNlQWRkcmVzcyhyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25EZWxpdmVyeURhdGUodXVpZDogc3RyaW5nLCBkYXRlOiBEYXRlKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdEZWxpdmVyeURhdGU6IGRhdGVcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJEZWxpdmVyeURhdGUocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uRGVsaXZlcnlEYXRlRGVmaW5pdGl2ZSh1dWlkOiBzdHJpbmcsIGRlZmluaXRpdmU6IGJvb2xlYW4pOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld0RlbGl2ZXJ5RGF0ZURlZmluaXRpdmU6IGRlZmluaXRpdmVcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJEZWxpdmVyeURhdGVEZWZpbml0aXZlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvblJlbWFyayh1dWlkOiBzdHJpbmcsIHJlbWFyazogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdSZW1hcmtzOiByZW1hcmtcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJSZW1hcmtzKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvblJlZmVyZW5jZSh1dWlkOiBzdHJpbmcsIHJlZmVyZW5jZTogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdPd25SZWZlcmVuY2U6IHJlZmVyZW5jZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlck93blJlZmVyZW5jZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25SZWxhdGlvblJlZmVyZW5jZSh1dWlkOiBzdHJpbmcsIHJlZmVyZW5jZTogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdSZWxhdGlvblJlZmVyZW5jZTogcmVmZXJlbmNlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyUmVsYXRpb25SZWZlcmVuY2UocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRvRG93blBheVBlcmNlbnRhZ2UodXVpZDogc3RyaW5nLCBhbW91bnQ6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgbmV3VG9Eb3duUGF5UGVyY2VudGFnZTogYW1vdW50XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyVG9Eb3duUGF5UGVyY2VudGFnZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVG9Eb3duUGF5QW1vdW50KHV1aWQ6IHN0cmluZywgYW1vdW50OiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld1RvRG93blBheUFtb3VudDogYW1vdW50XHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyVG9Eb3duUGF5QW1vdW50KHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvblByZWZlcnJlZERlbGl2ZXJ5RGF0ZSh1dWlkOiBzdHJpbmcsIGRhdGU6IERhdGUpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld1ByZWZlcnJlZERlbGl2ZXJ5RGF0ZTogZGF0ZSxcclxuICAgICAgbmV3UHJlZmVycmVkRGVsaXZlcnlEYXRlT3B0aW9uOiBcIlwiXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyUHJlZmVycmVkRGVsaXZlcnlEYXRlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvbkRlbGl2ZXJ5TWV0aG9kKHV1aWQ6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld0RlbGl2ZXJ5TWV0aG9kQ29kZTogbWV0aG9kXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlSGVhZGVyRGVsaXZlcnlNZXRob2QocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHV1aWQ6IHN0cmluZywgb3B0aW9uczogc3RyaW5nW10pOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld0RlbGl2ZXJ5T3B0aW9uczogb3B0aW9uc1xyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlckRlbGl2ZXJ5T3B0aW9ucyhyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25QYXJ0aWFsRGVsaXZlcnkodXVpZDogc3RyaW5nLCBhbGxvd1BhcnRpYWw6IGJvb2xlYW4pOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld1BhcnRpYWxEZWxpdmVyeUFsbG93ZWQ6IGFsbG93UGFydGlhbFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNoYW5nZUhlYWRlclBhcnRpYWxEZWxpdmVyeUFsbG93ZWQocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uQnJhbmNoKHV1aWQ6IHN0cmluZywgYnJhbmNoOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld0JyYW5jaElkOiBicmFuY2hcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJCcmFuY2gocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZUhlYWRlclRyYW5zYWN0aW9uQWRtQ29vcmRpbmF0b3IodXVpZDogc3RyaW5nLCByZWxhdGlvbjogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBuZXdBZG1Db29yZGluYXRvcjogcmVsYXRpb25cclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJBZG1Db29yZGluYXRvcihyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2hhbmdlSGVhZGVyVHJhbnNhY3Rpb25NYXJrZXRpbmcodXVpZDogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld01hcmtldGluZ0NvZGU6IGNvZGVcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJNYXJrZXRpbmdDb2RlKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvbkRpc2NvdW50KHV1aWQ6IHN0cmluZywgdHlwZTogRGlzY291bnRUeXBlLCBhbW91bnQ6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zYWN0aW9uVXVpZDogdXVpZCxcclxuICAgICAgb3JkZXJEaXNjb3VudFR5cGU6IHR5cGUsXHJcbiAgICAgIGRpc2NvdW50VmFsdWU6IGFtb3VudFxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnNldFRyYW5zYWN0aW9uRGlzY291bnRzKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjaGFuZ2VIZWFkZXJUcmFuc2FjdGlvblRvRG93blBheSh1dWlkOiBzdHJpbmcsIGRvd25QYXltZW50OiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XHJcbiAgICBjb25zdCByZXF1ZXN0ID0ge1xyXG4gICAgICB0cmFuc2FjdGlvblV1aWQ6IHV1aWQsXHJcbiAgICAgIG5ld1RvRG93blBheUFtb3VudDogZG93blBheW1lbnRcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VIZWFkZXJUb0Rvd25QYXlBbW91bnQocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZUNvbGxlY3Rpb25Db2RlKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgY29kZTogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xyXG4gICAgY29uc3QgcmVxdWVzdCA9IHtcclxuICAgICAgdHJhbnNhY3Rpb25VdWlkOiB1dWlkLFxyXG4gICAgICBsaW5lVXVpZDogbGluZVV1aWQsXHJcbiAgICAgIG5ld0NvbGxlY3Rpb25Db2RlOiBjb2RlXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuY2hhbmdlVHJhbnNhY3Rpb25MaW5lQ29sbGVjdGlvbkNvZGUocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZU91dHN0YW5kaW5nRW50cnkodXVpZDogc3RyaW5nLCBhbW91bnQ6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zVVVJRDogdXVpZCxcclxuICAgICAgYW1vdW50OiBhbW91bnRcclxuICAgIH07XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5jcmVhdGVPdXRzdGFuZGluZ0VudHJ5KHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZWdpc3RlclNhbGVzT3JkZXJQYXltZW50KFxyXG4gICAgdXVpZDogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgY3VycmVuY3lJZDogbnVtYmVyLCBwYXltZW50TWV0aG9kOiBzdHJpbmcsIGNhc2hSZWdpc3Rlckdyb3VwSWQ6IG51bWJlclxyXG4gICk6IFByb21pc2U8RGF0YVNlcnZpY2VSZXNwb25zZURhdGE+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zVVVJRDogdXVpZCxcclxuICAgICAgYW1vdW50OiBhbW91bnQsXHJcbiAgICAgIGN1cnJlbmN5SWQ6IGN1cnJlbmN5SWQsXHJcbiAgICAgIHBheW1lbnRNZXRob2RDb2RlOiBwYXltZW50TWV0aG9kLFxyXG4gICAgICBjYXNoUmVnaXN0ZXJHcm91cElkOiBjYXNoUmVnaXN0ZXJHcm91cElkXHJcbiAgICB9O1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucmVnaXN0ZXJTYWxlc09yZGVyUGF5bWVudChyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVJb25lUGF5bWVudExpbmtBbmRRUkNvZGUodXVpZDogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgcGF5bWVudE1ldGhvZENvZGU6IHN0cmluZyk6IFByb21pc2U8Q3JlYXRlUGF5bWVudExpbmtSZXN1bHQ+IHtcclxuICAgIGNvbnN0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHRyYW5zVVVJRDogdXVpZCxcclxuICAgICAgYW1vdW50OiBhbW91bnQsXHJcbiAgICAgIHBheW1lbnRNZXRob2RDb2RlOiBwYXltZW50TWV0aG9kQ29kZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmNyZWF0ZUlvbmVQYXltZW50TGlua0FuZFFSQ29kZShyZXF1ZXN0KTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3JlYXRlUGF5bWVudExpbmtSZXN1bHQsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCkgYXMgdW5rbm93biBhcyBDcmVhdGVQYXltZW50TGlua1Jlc3VsdDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldFBheW1lbnRMaW5rU3RhdHVzKHBheW1lbnRMaW5rVVVJRDogc3RyaW5nKTogUHJvbWlzZTxQYXltZW50TGlua1N0YXR1cz4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0UGF5bWVudExpbmtTdGF0dXMocGF5bWVudExpbmtVVUlEKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoUGF5bWVudExpbmtTdGF0dXMsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCkgYXMgdW5rbm93biBhcyBQYXltZW50TGlua1N0YXR1cztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldERvd25QYXltZW50SW5mbyh1dWlkOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uRG93blBheW1lbnRJbmZvPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXREb3duUGF5bWVudEluZm8odXVpZCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uRG93blBheW1lbnRJbmZvLCByZXNwb25zZS5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgVHJhbnNhY3Rpb25Eb3duUGF5bWVudEluZm87XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kc1JlY2VpcHRTdGF0dXModHJhbnNJZDogbnVtYmVyLCBsaW5lTnI6IG51bWJlcik6IFByb21pc2U8R29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3Rvcnk+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldEdvb2RzUmVjZWlwdFN0YXR1cyh0cmFuc0lkLCBsaW5lTnIpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8R29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3Rvcnk+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoR29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3RvcnksIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kc1JlY2VpcHRTdGF0dXNXaXRoSGlzdG9yeSh0cmFuc0lkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyKTogUHJvbWlzZTxHb29kc1JlY2VpcHRTdGF0dXNXaXRoSGlzdG9yeT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0R29vZHNSZWNlaXB0U3RhdHVzV2l0aEhpc3RvcnkodHJhbnNJZCwgbGluZU5yKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPEdvb2RzUmVjZWlwdFN0YXR1c1dpdGhIaXN0b3J5Pjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEdvb2RzUmVjZWlwdFN0YXR1c1dpdGhIaXN0b3J5LCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVjZWl2ZUdvb2RzRm9yUHVyY2hhc2VPcmRlcihyZXF1ZXN0OiBSZWNlaXZlR29vZHNGb3JQdXJjaGFzZU9yZGVyUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXIocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIHJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJDb3JyZWN0aW9uKHJlcXVlc3Q6IFJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJDb3JyZWN0aW9uUmVxdWVzdCk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnJlY2VpdmVHb29kc0ZvclB1cmNoYXNlT3JkZXJDb3JyZWN0aW9uKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQdXJjaGFzZVBvcnRhbExpbmVzKHJlcXVlc3Q6IEdldFB1cmNoYXNlUG9ydGFsTGluZSk6IFByb21pc2U8UHVyY2hhc2VQb3J0YWxMaW5lW10+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFB1cmNoYXNlUG9ydGFsTGluZXMocmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdHMpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShQdXJjaGFzZVBvcnRhbExpbmUsIHJlc3VsdC5yZXN1bHRPYmplY3RzKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXN1bHQpO1xyXG4gICAgICAgICAgcmVqZWN0KG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyB1cGRhdGVQdXJjaGFzZVBvcnRhbExpbmVzKHB1cmNoYXNlUG9ydGFsTGluZTogUHVyY2hhc2VQb3J0YWxMaW5lKTogUHJvbWlzZTxEYXRhU2VydmljZVJlc3BvbnNlRGF0YT4ge1xyXG4gICAgY29uc3QgcmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnVwZGF0ZVB1cmNoYXNlUG9ydGFsTGluZXMocHVyY2hhc2VQb3J0YWxMaW5lKTtcclxuICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbW1pdCgpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9uKHB1cmNoYXNlT3JkZXJDb25maXJtYXRpb246IEdldFB1cmNoYXNlT3JkZXJDb25maXJtYXRpb24pOiBQcm9taXNlPERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhPiB7XHJcbiAgICBjb25zdCByZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0UHVyY2hhc2VPcmRlckNvbmZpcm1hdGlvbihwdXJjaGFzZU9yZGVyQ29uZmlybWF0aW9uKTtcclxuICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICBhd2FpdCB0aGlzLmNvbW1pdCgpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBsb2NrUHVyY2hhc2VQb3J0YWxMaW5lcyh0cmFuc0lkUHVyY2hhc2U6IG51bWJlciwgbGluZUlkOiBudW1iZXIpOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmxvY2tQdXJjaGFzZVBvcnRhbExpbmVzKHRyYW5zSWRQdXJjaGFzZSwgbGluZUlkKS50aGVuKGFzeW5jIChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHJlc29sdmUodHJ1ZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRTdG9ja1N0aWNrZXJUZW1wbGF0ZXMoZGF0YTogU3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0cyk6IFByb21pc2U8U3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0c1tdPiB7XHJcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XHJcbiAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgcmV0dXJuIHRoaXMuc2hhcmVkQ29ubmVjdG9yLmdldFN0b2NrU3RpY2tlclByaW50TGF5b3V0cyhkYXRhKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgICAgIGlmIChyZXN1bHQucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoU3RvY2tTdGlja2Vyc1ByaW50TGF5b3V0cywgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2VuZXJhdGVDb21taXNzaW9uT3JkZXJzKHRyYW5zSWQ6IG51bWJlciwgb25seUdlbmVyYXRlRm9yRGlyZWN0U2VsbFN1cHBsaWVyczogYm9vbGVhbik6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2VuZXJhdGVDb21taXNzaW9uT3JkZXJzKHRyYW5zSWQsIG9ubHlHZW5lcmF0ZUZvckRpcmVjdFNlbGxTdXBwbGllcnMpLnRoZW4oYXN5bmMgKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcclxuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICAgICAgcmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5T3JkZXJTdGF0dXModHJhbnNJZDogbnVtYmVyLCBsaW5lTnI6IG51bWJlcik6IFByb21pc2U8RGVsaXZlcnlPcmRlclN0YXR1cz4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0RGVsaXZlcnlPcmRlclN0YXR1cyh0cmFuc0lkLCBsaW5lTnIpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8RGVsaXZlcnlPcmRlclN0YXR1cz48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShEZWxpdmVyeU9yZGVyU3RhdHVzLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0QXZhaWxhYmxlU3RvY2tHcm91cGVkQnlXTEJTQnlUcmFuc0lkTGluZU5yKHRyYW5zSWQ6IG51bWJlciwgbGluZU5yOiBudW1iZXIpOiBQcm9taXNlPEF2YWlsYWJsZVN0b2NrW10+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldEF2YWlsYWJsZVN0b2NrR3JvdXBlZEJ5V0xCU0J5VHJhbnNJZExpbmVOcih0cmFuc0lkLCBsaW5lTnIpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8QXZhaWxhYmxlU3RvY2tbXT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShBdmFpbGFibGVTdG9jaywgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyKHJlcXVlc3Q6IEFsbG9jYXRlR29vZHNGb3JTYWxlc09yZGVyUmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuYWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXIocmVxdWVzdCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBhbGxvY2F0ZUdvb2RzRm9yU2FsZXNPcmRlckNvcnJlY3Rpb24ocmVxdWVzdDogQWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJDb3JyZWN0aW9uUmVxdWVzdCk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuYWxsb2NhdGVHb29kc0ZvclNhbGVzT3JkZXJDb3JyZWN0aW9uKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0R29vZHNBbGxvY2F0aW9uU3RhdHVzKHRyYW5zSWQ6IG51bWJlciwgbGluZU5yOiBudW1iZXIpOiBQcm9taXNlPEdvb2RzQWxsb2NhdGlvblN0YXR1cz4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0R29vZHNBbGxvY2F0aW9uU3RhdHVzKHRyYW5zSWQsIGxpbmVOcik7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UucmVzdWx0T2JqZWN0KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShHb29kc0FsbG9jYXRpb25TdGF0dXMsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCkgYXMgdW5rbm93biBhcyBHb29kc0FsbG9jYXRpb25TdGF0dXM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRHb29kc0FsbG9jYXRpb25TdGF0dXNXaXRoSGlzdG9yeSh0cmFuc0lkOiBudW1iZXIsIGxpbmVOcjogbnVtYmVyKTogUHJvbWlzZTxHb29kc0FsbG9jYXRpb25TdGF0dXNXaXRoSGlzdG9yeT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0R29vZHNBbGxvY2F0aW9uU3RhdHVzV2l0aEhpc3RvcnkodHJhbnNJZCwgbGluZU5yKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5yZXN1bHRPYmplY3QpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKEdvb2RzQWxsb2NhdGlvblN0YXR1c1dpdGhIaXN0b3J5LCByZXNwb25zZS5yZXN1bHRPYmplY3QpIGFzIHVua25vd24gYXMgR29vZHNBbGxvY2F0aW9uU3RhdHVzV2l0aEhpc3Rvcnk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckNvbmZpcm1hdGlvbkVtYWlsTGF5b3V0cyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWxbXT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0T3JkZXJDb25maXJtYXRpb25FbWFpbExheW91dHModHJhbnNhY3Rpb25VVUlEKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsW10+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUmVwb3J0TGF5b3V0U2VsZWN0aW9uRW1haWwsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckNvbmZpcm1hdGlvblByaW50TGF5b3V0cyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0T3JkZXJDb25maXJtYXRpb25QcmludExheW91dHModHJhbnNhY3Rpb25VVUlEKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gPFJlcG9ydExheW91dFNlbGVjdGlvblByaW50W10+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnQsIHJlc3BvbnNlLnJlc3VsdE9iamVjdCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRPcmRlckNvbmZpcm1hdGlvbkRlZmF1bHRTZW5kTWV0aG9kKHJlbGF0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8bnVtYmVyPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRPcmRlckNvbmZpcm1hdGlvbkRlZmF1bHRTZW5kTWV0aG9kKHJlbGF0aW9uSWQpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwcmludE9yZGVyQ29uZmlybWF0aW9uKHJlcXVlc3Q6IFByaW50T3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5wcmludE9yZGVyQ29uZmlybWF0aW9uKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBlbWFpbE9yZGVyQ29uZmlybWF0aW9uKHJlcXVlc3Q6IEVtYWlsT3JkZXJDb25maXJtYXRpb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5lbWFpbE9yZGVyQ29uZmlybWF0aW9uKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwZGZPcmRlckNvbmZpcm1hdGlvbihyZXF1ZXN0OiBQZGZPcmRlckNvbmZpcm1hdGlvblJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnBkZk9yZGVyQ29uZmlybWF0aW9uKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwcmludFB1cmNoYXNlT3JkZXIocmVxdWVzdDogUHJpbnRQdXJjaGFzZU9yZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IucHJpbnRQdXJjaGFzZU9yZGVyKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBlbWFpbFB1cmNoYXNlT3JkZXIocmVxdWVzdDogRW1haWxQdXJjaGFzZU9yZGVyUmVxdWVzdCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZW1haWxQdXJjaGFzZU9yZGVyKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBwZGZQdXJjaGFzZU9yZGVyKHJlcXVlc3Q6IFBkZlB1cmNoYXNlT3JkZXJSZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5wZGZQdXJjaGFzZU9yZGVyKHJlcXVlc3QpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQdXJjaGFzZU9yZGVyRW1haWxMYXlvdXRzKHRyYW5zYWN0aW9uVVVJRDogc3RyaW5nKTogUHJvbWlzZTxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRQdXJjaGFzZU9yZGVyRW1haWxMYXlvdXRzKHRyYW5zYWN0aW9uVVVJRCk7XHJcbiAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdCAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcclxuICAgICAgcmV0dXJuIDxSZXBvcnRMYXlvdXRTZWxlY3Rpb25FbWFpbFtdPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFJlcG9ydExheW91dFNlbGVjdGlvbkVtYWlsLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2V0UHVyY2hhc2VPcmRlclByaW50TGF5b3V0cyh0cmFuc2FjdGlvblVVSUQ6IHN0cmluZyk6IFByb21pc2U8UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0UHVyY2hhc2VPcmRlclByaW50TGF5b3V0cyh0cmFuc2FjdGlvblVVSUQpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8UmVwb3J0TGF5b3V0U2VsZWN0aW9uUHJpbnRbXT48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZUJPQXJyYXlGcm9tUmF3QmFja2VuZERhdGFBcnJheShSZXBvcnRMYXlvdXRTZWxlY3Rpb25QcmludCwgcmVzcG9uc2UucmVzdWx0T2JqZWN0KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2hhbmRsZUV4Y2VwdGlvbkZyb21SZXNwb25zZShyZXNwb25zZSk7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldERlZmF1bHRFbWFpbEFkZHJlc3NMaXN0Rm9yT3JkZXJDb25maXJtYXRpb24odHJhbnNhY3Rpb25VVUlEKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0RGVmYXVsdEVtYWlsQWRkcmVzc0xpc3RGb3JPcmRlckNvbmZpcm1hdGlvbih0cmFuc2FjdGlvblVVSUQpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQdXJjaGFzZU9yZGVyRGVmYXVsdFNlbmRNZXRob2QocmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxudW1iZXI+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdldFB1cmNoYXNlT3JkZXJEZWZhdWx0U2VuZE1ldGhvZChyZWxhdGlvbklkKTtcclxuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xyXG4gICAgICByZXR1cm4gcmVzcG9uc2UucmVzdWx0T2JqZWN0O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2VuZXJhdGVBbmRTZW5kUHVyY2hhc2VPcmRlcnNGb3JTYWxlc09yZGVyKHRyYW5zYWN0aW9uSWQ6IG51bWJlcik6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2VuZXJhdGVBbmRTZW5kUHVyY2hhc2VPcmRlcnNGb3JTYWxlc09yZGVyKHRyYW5zYWN0aW9uSWQpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiByZXNwb25zZS5yZXN1bHRPYmplY3Q7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzcG9uc2UpO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRQdXJjaGFzZUFkdmljZUxpbmVzKGZpbHRlcnM6IFB1cmNoYXNlQWR2aWNlRmlsdGVycywgZ29vZElkPzogbnVtYmVyKTogUHJvbWlzZTxQdXJjaGFzZUFkdmljZUxpbmVbXT4ge1xyXG4gICAgY29uc3QgcmVzcG9uc2U6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhID0gYXdhaXQgdGhpcy5jb25uZWN0b3IuZ2V0UHVyY2hhc2VBZHZpY2VMaW5lcyhmaWx0ZXJzLCBnb29kSWQpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiA8UHVyY2hhc2VBZHZpY2VMaW5lW10+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VCT0FycmF5RnJvbVJhd0JhY2tlbmREYXRhQXJyYXkoUHVyY2hhc2VBZHZpY2VMaW5lLCByZXNwb25zZS5yZXN1bHRPYmplY3QpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZ2VuZXJhdGVBbmRTZW5kUHVyY2hhc2VPcmRlcnMocHVyY2hhc2VBZHZpY2VMaW5lczogUHVyY2hhc2VBZHZpY2VMaW5lW10pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLmdlbmVyYXRlQW5kU2VuZFB1cmNoYXNlT3JkZXJzKHB1cmNoYXNlQWR2aWNlTGluZXMpO1xyXG4gICAgaWYgKHJlc3BvbnNlICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzcG9uc2UudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5faGFuZGxlRXhjZXB0aW9uRnJvbVJlc3BvbnNlKHJlc3BvbnNlKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oYW5kbGVFeGNlcHRpb25Gcm9tUmVzcG9uc2UocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSk6IHZvaWQge1xyXG4gICAgdGhpcy5fZXJyb3JTZXJ2aWNlLnNob3dWYWxpZGF0aW9uRXJyb3IocmVzdWx0KTtcclxuICB9XHJcbn1cclxuIl19