@colijnit/transaction 12.1.12 → 12.1.15

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 (409) hide show
  1. package/bundles/colijnit-transaction.umd.js +2683 -1143
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +120 -85
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +121 -86
  6. package/esm2015/lib/assets/dictionary/text.properties.js +78 -2
  7. package/esm2015/lib/component/avatar/avatar.component.js +61 -0
  8. package/esm2015/lib/component/avatar/avatar.module.js +21 -0
  9. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +30 -32
  10. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +21 -22
  11. package/esm2015/lib/component/checkout/checkout.component.js +5 -5
  12. package/esm2015/lib/component/checkout/checkout.module.js +3 -3
  13. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.js +38 -0
  14. package/esm2015/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.js +19 -0
  15. package/esm2015/lib/component/core/base/transaction-grid-base.component.js +50 -0
  16. package/esm2015/lib/component/core/core.module.js +3 -6
  17. package/esm2015/lib/component/core/icon/icon.component.js +1 -1
  18. package/esm2015/lib/component/core/stock-status-indicator/stock-status-indicator.component.js +1 -1
  19. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +10 -12
  20. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +7 -2
  21. package/esm2015/lib/component/transaction/transaction.component.js +35 -37
  22. package/esm2015/lib/component/transaction/transaction.module.js +15 -9
  23. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.js +29 -0
  24. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.component.js +54 -0
  25. package/esm2015/lib/component/transaction-button-bar/transaction-button-bar.module.js +28 -0
  26. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.js +2 -2
  27. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +47 -0
  28. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.js +28 -0
  29. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.component.js +83 -0
  30. package/esm2015/lib/component/transaction-grid/transaction-grid/transaction-grid.module.js +19 -0
  31. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.component.js +47 -0
  32. package/esm2015/lib/component/transaction-grid/transaction-history-grid/transaction-history-grid.module.js +27 -0
  33. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.js +76 -0
  34. package/esm2015/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.module.js +30 -0
  35. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.js +51 -0
  36. package/esm2015/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.js +29 -0
  37. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.js +42 -0
  38. package/esm2015/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.js +28 -0
  39. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +40 -0
  40. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.module.js +29 -0
  41. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +75 -0
  42. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.module.js +28 -0
  43. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.js +37 -0
  44. package/esm2015/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.js +26 -0
  45. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +41 -0
  46. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +25 -0
  47. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +36 -0
  48. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +21 -0
  49. package/esm2015/lib/component/transaction-header/transaction-header.component.js +6 -11
  50. package/esm2015/lib/component/transaction-header/transaction-header.module.js +8 -6
  51. package/esm2015/lib/component/transaction-line/transaction-line.component.js +26 -29
  52. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +19 -27
  53. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +6 -4
  54. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +1 -1
  55. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +44 -0
  56. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.js +31 -0
  57. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +8 -5
  58. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.js +72 -0
  59. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.js +33 -0
  60. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.js +28 -0
  61. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.js +25 -0
  62. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.js +23 -0
  63. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.js +23 -0
  64. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.js +27 -0
  65. package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.js +24 -0
  66. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.js +10 -2
  67. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.module.js +3 -2
  68. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.js +2 -2
  69. package/esm2015/lib/component/transaction-search/service/filter-request.service.js +59 -0
  70. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +33 -0
  71. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.component.js +90 -0
  72. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.module.js +34 -0
  73. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.js +42 -0
  74. package/esm2015/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.js +19 -0
  75. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.js +104 -0
  76. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.module.js +25 -0
  77. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.js +239 -0
  78. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.js +28 -0
  79. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.js +239 -0
  80. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.module.js +30 -0
  81. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +52 -0
  82. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +28 -0
  83. package/esm2015/lib/component/transaction-search/transaction-search.component.js +56 -0
  84. package/esm2015/lib/component/transaction-search/transaction-search.module.js +25 -0
  85. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.component.js +80 -0
  86. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.module.js +28 -0
  87. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.component.js +59 -0
  88. package/esm2015/lib/component/view-mode-buttons/view-mode-buttons.module.js +23 -0
  89. package/esm2015/lib/enum/content-view-mode.enum.js +2 -1
  90. package/esm2015/lib/enum/icon.enum.js +16 -1
  91. package/esm2015/lib/enum/transaction-type-category.enum.js +16 -0
  92. package/esm2015/lib/model/filter-item.viewmodel.js +9 -0
  93. package/esm2015/lib/model/filter-viewmodel.js +11 -0
  94. package/esm2015/lib/model/icon-svg.js +16 -1
  95. package/esm2015/lib/model/transaction-bar-button.js +3 -0
  96. package/esm2015/lib/service/collection-cache.service.js +38 -0
  97. package/esm2015/lib/service/ione-connector-adapter.service.js +140 -6
  98. package/esm2015/lib/service/pending-reason.service.js +1 -21
  99. package/esm2015/lib/service/transaction-image.service.js +53 -0
  100. package/esm2015/lib/service/transaction-mapping.service.js +85 -0
  101. package/esm2015/lib/service/transaction.service.js +80 -180
  102. package/esm2015/public_api.js +15 -9
  103. package/fesm2015/colijnit-transaction.js +3662 -1636
  104. package/fesm2015/colijnit-transaction.js.map +1 -1
  105. package/lib/component/{seller-information/seller-information.component.d.ts → avatar/avatar.component.d.ts} +1 -1
  106. package/lib/component/avatar/avatar.module.d.ts +2 -0
  107. package/lib/component/{seller-information → avatar}/style/_layout.scss +5 -5
  108. package/lib/component/avatar/style/_material-definition.scss +2 -0
  109. package/lib/component/avatar/style/_theme.scss +7 -0
  110. package/lib/component/{order-confirmation-grid → avatar}/style/material.scss +0 -1
  111. package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +3 -5
  112. package/lib/component/checkout/checkout-overview-delivery-edit/style/material.scss +0 -1
  113. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +0 -2
  114. package/lib/component/checkout/checkout-overview-relation-edit/style/material.scss +0 -1
  115. package/lib/component/checkout/checkout-relation-suggestions-list/style/material.scss +0 -1
  116. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/material.scss +0 -1
  117. package/lib/component/checkout/style/material.scss +1 -2
  118. package/lib/component/confirmation-dialog/style/material.scss +0 -1
  119. package/lib/component/core/base/components/transaction-header-block/style/_layout.scss +53 -0
  120. package/lib/component/core/base/components/transaction-header-block/style/_material-definition.scss +20 -0
  121. package/lib/component/core/base/components/transaction-header-block/style/_theme.scss +11 -0
  122. package/lib/component/core/base/components/transaction-header-block/style/material.scss +4 -0
  123. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.component.d.ts +8 -0
  124. package/lib/component/core/base/components/transaction-header-block/transaction-header-block.module.d.ts +2 -0
  125. package/lib/component/core/base/style/material.scss +0 -1
  126. package/lib/component/core/base/transaction-grid-base.component.d.ts +23 -0
  127. package/lib/component/core/characteristic-answer/characteristic-answer.component.scss +0 -1
  128. package/lib/component/core/icon/icon.component.scss +0 -1
  129. package/lib/component/core/image-display/style/material.scss +0 -1
  130. package/lib/component/core/stock-status-indicator/stock-status-indicator.component.scss +0 -1
  131. package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +3 -5
  132. package/lib/component/delivery-type-tile/style/material.scss +0 -1
  133. package/lib/component/order-confirmation-create/style/material.scss +0 -1
  134. package/lib/component/payment/style/material.scss +0 -1
  135. package/lib/component/payment-tile/style/material.scss +0 -1
  136. package/lib/component/relation-address/style/material.scss +0 -1
  137. package/lib/component/relation-address-select/style/material.scss +0 -1
  138. package/lib/component/relation-address-tile/style/material.scss +0 -1
  139. package/lib/component/shared/transaction-article-text/style/material.scss +0 -1
  140. package/lib/component/shared/transaction-article-text-overview/style/material.scss +0 -1
  141. package/lib/component/shopping-cart/style/material.scss +0 -1
  142. package/lib/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.scss +0 -1
  143. package/lib/component/shopping-cart-preview/style/material.scss +0 -1
  144. package/lib/component/stepper/style/material.scss +0 -1
  145. package/lib/component/tile/style/material.scss +0 -1
  146. package/lib/component/transaction/style/_layout.scss +13 -13
  147. package/lib/component/transaction/style/_material-definition.scss +2 -6
  148. package/lib/component/transaction/style/_theme.scss +0 -18
  149. package/lib/component/transaction/style/material.scss +5 -5
  150. package/lib/component/transaction/transaction.component.d.ts +7 -7
  151. package/lib/component/transaction-button-bar/style/_layout.scss +47 -0
  152. package/lib/component/transaction-button-bar/style/_material-definition.scss +11 -0
  153. package/lib/component/transaction-button-bar/style/_theme.scss +14 -0
  154. package/lib/component/{order-grid → transaction-button-bar}/style/material.scss +0 -1
  155. package/lib/component/transaction-button-bar/transaction-button-bar-button/transaction-button-bar-button.component.d.ts +9 -0
  156. package/lib/component/transaction-button-bar/transaction-button-bar.component.d.ts +17 -0
  157. package/lib/component/transaction-button-bar/transaction-button-bar.module.d.ts +2 -0
  158. package/lib/component/transaction-confirmation-history/style/material.scss +0 -1
  159. package/lib/component/transaction-grid/transaction-base-grid/style/_layout.scss +33 -0
  160. package/lib/component/transaction-grid/transaction-base-grid/style/_material-definition.scss +8 -0
  161. package/lib/component/transaction-grid/transaction-base-grid/style/_theme.scss +6 -0
  162. package/lib/component/{seller-information → transaction-grid/transaction-base-grid}/style/material.scss +0 -1
  163. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.d.ts +8 -0
  164. package/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.d.ts +2 -0
  165. package/lib/component/transaction-grid/transaction-grid/style/_layout.scss +6 -0
  166. package/lib/component/{transaction-history-grid → transaction-grid/transaction-grid}/style/_material-definition.scss +0 -0
  167. package/lib/component/transaction-grid/transaction-grid/style/_theme.scss +6 -0
  168. package/lib/component/transaction-grid/transaction-grid/style/material.scss +5 -0
  169. package/lib/component/transaction-grid/transaction-grid/transaction-grid.component.d.ts +25 -0
  170. package/lib/component/transaction-grid/transaction-grid/transaction-grid.module.d.ts +2 -0
  171. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/style/_layout.scss +1 -1
  172. package/lib/component/transaction-grid/transaction-history-grid/style/_material-definition.scss +0 -0
  173. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/style/_theme.scss +1 -1
  174. package/lib/component/{transaction-commit-bar → transaction-grid/transaction-history-grid}/style/material.scss +0 -1
  175. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/transaction-history-grid.component.d.ts +2 -2
  176. package/lib/component/{transaction-history-grid → transaction-grid/transaction-history-grid}/transaction-history-grid.module.d.ts +0 -0
  177. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/style/_layout.scss +5 -1
  178. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/style/_material-definition.scss +3 -0
  179. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/style/_theme.scss +1 -1
  180. package/lib/component/transaction-grid/transaction-lines-grid/style/material.scss +4 -0
  181. package/lib/component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component.d.ts +11 -0
  182. package/lib/component/{transaction-lines-grid → transaction-grid/transaction-lines-grid}/transaction-lines-grid.module.d.ts +0 -0
  183. package/lib/component/transaction-grid/transaction-order-confirmation-grid/style/_layout.scss +7 -0
  184. package/lib/component/{order-confirmation-grid → transaction-grid/transaction-order-confirmation-grid}/style/_material-definition.scss +0 -0
  185. package/lib/component/transaction-grid/transaction-order-confirmation-grid/style/_theme.scss +7 -0
  186. package/lib/component/transaction-grid/transaction-order-confirmation-grid/style/material.scss +3 -0
  187. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component.d.ts +4 -0
  188. package/lib/component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.module.d.ts +2 -0
  189. package/lib/component/transaction-grid/transaction-received-goods-grid/style/_layout.scss +6 -0
  190. package/lib/component/transaction-grid/transaction-received-goods-grid/style/_material-definition.scss +0 -0
  191. package/lib/component/transaction-grid/transaction-received-goods-grid/style/_theme.scss +6 -0
  192. package/lib/component/transaction-grid/transaction-received-goods-grid/style/material.scss +4 -0
  193. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component.d.ts +4 -0
  194. package/lib/component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.module.d.ts +2 -0
  195. package/lib/component/transaction-header/transaction-header/style/_layout.scss +40 -0
  196. package/lib/component/transaction-header/transaction-header/style/_material-definition.scss +9 -0
  197. package/lib/component/transaction-header/transaction-header/style/_theme.scss +11 -0
  198. package/lib/component/transaction-header/transaction-header/style/material.scss +7 -0
  199. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +10 -0
  200. package/lib/component/transaction-header/transaction-header/transaction-header.module.d.ts +2 -0
  201. package/lib/component/transaction-header/transaction-header-delivery/style/_layout.scss +33 -0
  202. package/lib/component/transaction-header/transaction-header-delivery/style/_material-definition.scss +6 -0
  203. package/lib/component/transaction-header/transaction-header-delivery/style/_theme.scss +17 -0
  204. package/lib/component/transaction-header/transaction-header-delivery/style/material.scss +3 -0
  205. package/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.d.ts +15 -0
  206. package/lib/component/{transaction-header-delivery → transaction-header/transaction-header-delivery}/transaction-header-delivery.module.d.ts +0 -0
  207. package/lib/component/transaction-header/transaction-header-order/style/_layout.scss +7 -0
  208. package/lib/component/transaction-header/transaction-header-order/style/_material-definition.scss +0 -0
  209. package/lib/component/transaction-header/transaction-header-order/style/_theme.scss +6 -0
  210. package/lib/component/transaction-header/transaction-header-order/style/material.scss +4 -0
  211. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.component.d.ts +4 -0
  212. package/lib/component/transaction-header/transaction-header-order/transaction-header-order.module.d.ts +2 -0
  213. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +13 -0
  214. package/lib/component/transaction-header/transaction-header-payment/style/_material-definition.scss +4 -0
  215. package/lib/component/transaction-header/transaction-header-payment/style/_theme.scss +12 -0
  216. package/lib/component/transaction-header/transaction-header-payment/style/material.scss +5 -0
  217. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +4 -0
  218. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.d.ts +2 -0
  219. package/lib/component/transaction-header/transaction-header-relation/style/_layout.scss +7 -0
  220. package/lib/component/transaction-header/transaction-header-relation/style/_material-definition.scss +0 -0
  221. package/lib/component/transaction-header/transaction-header-relation/style/_theme.scss +6 -0
  222. package/lib/component/transaction-header/transaction-header-relation/style/material.scss +4 -0
  223. package/lib/component/{transaction-header-relation → transaction-header/transaction-header-relation}/transaction-header-relation.component.d.ts +1 -1
  224. package/lib/component/{transaction-header-relation → transaction-header/transaction-header-relation}/transaction-header-relation.module.d.ts +0 -0
  225. package/lib/component/transaction-header/transaction-header.component.d.ts +0 -2
  226. package/lib/component/transaction-history-grid-status/style/material.scss +0 -1
  227. package/lib/component/transaction-line/style/_layout.scss +36 -0
  228. package/lib/component/transaction-line/style/material.scss +0 -1
  229. package/lib/component/transaction-line/transaction-line.component.d.ts +7 -4
  230. package/lib/component/transaction-line-grid/style/material.scss +0 -1
  231. package/lib/component/transaction-line-side-panel/style/_layout.scss +2 -2
  232. package/lib/component/transaction-line-side-panel/style/_material-definition.scss +2 -0
  233. package/lib/component/transaction-line-side-panel/style/material.scss +0 -1
  234. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +5 -3
  235. package/lib/component/transaction-line-side-panel-default/style/material.scss +0 -1
  236. package/lib/component/transaction-line-side-panel-purchase/style/_layout.scss +6 -0
  237. package/lib/component/transaction-line-side-panel-purchase/style/_material-definition.scss +0 -0
  238. package/lib/component/transaction-line-side-panel-purchase/style/_theme.scss +6 -0
  239. package/lib/component/transaction-line-side-panel-purchase/style/material.scss +5 -0
  240. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +8 -0
  241. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.d.ts +2 -0
  242. package/lib/component/transaction-lines/style/material.scss +0 -1
  243. package/lib/component/transaction-lines/transaction-lines.component.d.ts +3 -5
  244. package/lib/component/transaction-quick-access/transaction-quick-access/style/_layout.scss +11 -0
  245. package/lib/component/{transaction-commit-bar → transaction-quick-access/transaction-quick-access}/style/_material-definition.scss +0 -0
  246. package/lib/component/{transaction-commit-bar → transaction-quick-access/transaction-quick-access}/style/_theme.scss +1 -1
  247. package/lib/component/transaction-quick-access/transaction-quick-access/style/material.scss +6 -0
  248. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.component.d.ts +21 -0
  249. package/lib/component/transaction-quick-access/transaction-quick-access/transaction-quick-access.module.d.ts +2 -0
  250. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_layout.scss +9 -0
  251. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_material-definition.scss +0 -0
  252. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/_theme.scss +6 -0
  253. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/style/material.scss +4 -0
  254. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component.d.ts +4 -0
  255. package/lib/component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.module.d.ts +2 -0
  256. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_layout.scss +7 -0
  257. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_material-definition.scss +0 -0
  258. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_theme.scss +6 -0
  259. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/material.scss +4 -0
  260. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.d.ts +4 -0
  261. package/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.module.d.ts +2 -0
  262. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_layout.scss +9 -0
  263. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_material-definition.scss +0 -0
  264. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/_theme.scss +6 -0
  265. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/style/material.scss +4 -0
  266. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component.d.ts +4 -0
  267. package/lib/component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.module.d.ts +2 -0
  268. package/lib/component/transaction-receiving-goods-details/style/material.scss +0 -1
  269. package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.d.ts +2 -0
  270. package/lib/component/transaction-receiving-goods-history/style/material.scss +0 -1
  271. package/lib/component/transaction-search/service/filter-request.service.d.ts +11 -0
  272. package/lib/component/transaction-search/service/transaction-search.service.d.ts +11 -0
  273. package/lib/component/transaction-search/style/_layout.scss +37 -0
  274. package/lib/component/transaction-search/style/_material-definition.scss +39 -0
  275. package/lib/component/transaction-search/style/_theme.scss +6 -0
  276. package/lib/component/transaction-search/style/material.scss +7 -0
  277. package/lib/component/transaction-search/transaction-filter/style/_layout.scss +53 -0
  278. package/lib/component/transaction-search/transaction-filter/style/_material-definition.scss +1 -0
  279. package/lib/component/transaction-search/transaction-filter/style/_theme.scss +8 -0
  280. package/lib/component/transaction-search/transaction-filter/style/material.scss +7 -0
  281. package/lib/component/transaction-search/transaction-filter/transaction-filter.component.d.ts +21 -0
  282. package/lib/component/transaction-search/transaction-filter/transaction-filter.module.d.ts +2 -0
  283. package/lib/component/transaction-search/transaction-filter-categories/style/_layout.scss +23 -0
  284. package/lib/component/transaction-search/transaction-filter-categories/style/_material-definition.scss +0 -0
  285. package/lib/component/transaction-search/transaction-filter-categories/style/_theme.scss +13 -0
  286. package/lib/component/transaction-search/transaction-filter-categories/style/material.scss +3 -0
  287. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.component.d.ts +10 -0
  288. package/lib/component/transaction-search/transaction-filter-categories/transaction-filter-categories.module.d.ts +2 -0
  289. package/lib/component/transaction-search/transaction-filter-content-article/style/_layout.scss +13 -0
  290. package/lib/component/transaction-search/transaction-filter-content-article/style/_material-definition.scss +1 -0
  291. package/lib/component/transaction-search/transaction-filter-content-article/style/_theme.scss +6 -0
  292. package/lib/component/transaction-search/transaction-filter-content-article/style/material.scss +4 -0
  293. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.d.ts +27 -0
  294. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.module.d.ts +2 -0
  295. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_layout.scss +12 -0
  296. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_material-definition.scss +0 -0
  297. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_theme.scss +6 -0
  298. package/lib/component/transaction-search/transaction-filter-content-logistics/style/material.scss +4 -0
  299. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.d.ts +38 -0
  300. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.d.ts +2 -0
  301. package/lib/component/transaction-search/transaction-filter-content-order/style/_layout.scss +12 -0
  302. package/lib/component/transaction-search/transaction-filter-content-order/style/_material-definition.scss +1 -0
  303. package/lib/component/transaction-search/transaction-filter-content-order/style/_theme.scss +6 -0
  304. package/lib/component/transaction-search/transaction-filter-content-order/style/material.scss +4 -0
  305. package/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.d.ts +64 -0
  306. package/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.module.d.ts +2 -0
  307. package/lib/component/transaction-search/transaction-search-result/style/_layout.scss +26 -0
  308. package/lib/component/transaction-search/transaction-search-result/style/_material-definition.scss +1 -0
  309. package/lib/component/transaction-search/transaction-search-result/style/_theme.scss +6 -0
  310. package/lib/component/transaction-search/transaction-search-result/style/material.scss +3 -0
  311. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +15 -0
  312. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.d.ts +2 -0
  313. package/lib/component/transaction-search/transaction-search.component.d.ts +12 -0
  314. package/lib/component/transaction-search/transaction-search.module.d.ts +2 -0
  315. package/lib/component/transaction-search/transaction-tile/style/_layout.scss +91 -0
  316. package/lib/component/transaction-search/transaction-tile/style/_material-definition.scss +0 -0
  317. package/lib/component/transaction-search/transaction-tile/style/_theme.scss +46 -0
  318. package/lib/component/transaction-search/transaction-tile/style/material.scss +5 -0
  319. package/lib/component/transaction-search/transaction-tile/transaction-tile.component.d.ts +13 -0
  320. package/lib/component/transaction-search/transaction-tile/transaction-tile.module.d.ts +2 -0
  321. package/lib/component/transaction-totals/style/material.scss +0 -1
  322. package/lib/component/view-mode-buttons/style/_layout.scss +20 -0
  323. package/lib/component/view-mode-buttons/style/_material-definition.scss +5 -0
  324. package/lib/component/view-mode-buttons/style/_theme.scss +22 -0
  325. package/lib/component/view-mode-buttons/style/material.scss +3 -0
  326. package/lib/component/view-mode-buttons/view-mode-buttons.component.d.ts +16 -0
  327. package/lib/component/view-mode-buttons/view-mode-buttons.module.d.ts +2 -0
  328. package/lib/enum/content-view-mode.enum.d.ts +2 -1
  329. package/lib/enum/icon.enum.d.ts +15 -0
  330. package/lib/enum/transaction-type-category.enum.d.ts +14 -0
  331. package/lib/model/filter-item.viewmodel.d.ts +7 -0
  332. package/lib/model/filter-viewmodel.d.ts +8 -0
  333. package/lib/model/transaction-bar-button.d.ts +7 -0
  334. package/lib/service/collection-cache.service.d.ts +6 -0
  335. package/lib/service/ione-connector-adapter.service.d.ts +20 -2
  336. package/lib/service/pending-reason.service.d.ts +0 -3
  337. package/lib/service/transaction-image.service.d.ts +10 -0
  338. package/lib/service/transaction-mapping.service.d.ts +14 -0
  339. package/lib/service/transaction.service.d.ts +42 -29
  340. package/lib/style/_variables.scss +41 -36
  341. package/lib/style/transaction-globals.scss +23 -0
  342. package/package.json +6 -3
  343. package/public_api.d.ts +14 -8
  344. package/esm2015/lib/component/core/base/default-ok-cancel-buttons.component.js +0 -41
  345. package/esm2015/lib/component/order-confirmation-grid/order-confirmation-grid.component.js +0 -70
  346. package/esm2015/lib/component/order-confirmation-grid/order-confirmation-grid.module.js +0 -29
  347. package/esm2015/lib/component/order-grid/order-grid.component.js +0 -99
  348. package/esm2015/lib/component/order-grid/order-grid.module.js +0 -28
  349. package/esm2015/lib/component/seller-information/seller-information.component.js +0 -61
  350. package/esm2015/lib/component/seller-information/seller-information.module.js +0 -21
  351. package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.component.js +0 -46
  352. package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.module.js +0 -27
  353. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.component.js +0 -34
  354. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.module.js +0 -19
  355. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.component.js +0 -60
  356. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.module.js +0 -21
  357. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.component.js +0 -35
  358. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.module.js +0 -19
  359. package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.component.js +0 -47
  360. package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.module.js +0 -27
  361. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.component.js +0 -63
  362. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.module.js +0 -27
  363. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.js +0 -29
  364. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.component.js +0 -65
  365. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.module.js +0 -26
  366. package/esm2015/lib/model/delivery-type.js +0 -3
  367. package/lib/component/core/base/default-ok-cancel-buttons.component.d.ts +0 -13
  368. package/lib/component/order-confirmation-grid/order-confirmation-grid.component.d.ts +0 -15
  369. package/lib/component/order-confirmation-grid/order-confirmation-grid.module.d.ts +0 -2
  370. package/lib/component/order-confirmation-grid/style/_layout.scss +0 -5
  371. package/lib/component/order-confirmation-grid/style/_theme.scss +0 -5
  372. package/lib/component/order-grid/order-grid.component.d.ts +0 -23
  373. package/lib/component/order-grid/order-grid.module.d.ts +0 -2
  374. package/lib/component/order-grid/style/_layout.scss +0 -21
  375. package/lib/component/order-grid/style/_material-definition.scss +0 -2
  376. package/lib/component/order-grid/style/_theme.scss +0 -6
  377. package/lib/component/seller-information/seller-information.module.d.ts +0 -2
  378. package/lib/component/seller-information/style/_material-definition.scss +0 -2
  379. package/lib/component/seller-information/style/_theme.scss +0 -7
  380. package/lib/component/transaction-commit-bar/style/_layout.scss +0 -16
  381. package/lib/component/transaction-commit-bar/transaction-commit-bar.component.d.ts +0 -11
  382. package/lib/component/transaction-commit-bar/transaction-commit-bar.module.d.ts +0 -2
  383. package/lib/component/transaction-header-contact/style/_layout.scss +0 -25
  384. package/lib/component/transaction-header-contact/style/_material-definition.scss +0 -7
  385. package/lib/component/transaction-header-contact/style/_theme.scss +0 -11
  386. package/lib/component/transaction-header-contact/style/material.scss +0 -4
  387. package/lib/component/transaction-header-contact/transaction-header-contact.component.d.ts +0 -4
  388. package/lib/component/transaction-header-contact/transaction-header-contact.module.d.ts +0 -2
  389. package/lib/component/transaction-header-delivery/style/_layout.scss +0 -54
  390. package/lib/component/transaction-header-delivery/style/_material-definition.scss +0 -12
  391. package/lib/component/transaction-header-delivery/style/_theme.scss +0 -24
  392. package/lib/component/transaction-header-delivery/style/material.scss +0 -4
  393. package/lib/component/transaction-header-delivery/transaction-header-delivery.component.d.ts +0 -13
  394. package/lib/component/transaction-header-relation/style/_layout.scss +0 -25
  395. package/lib/component/transaction-header-relation/style/_material-definition.scss +0 -7
  396. package/lib/component/transaction-header-relation/style/_theme.scss +0 -11
  397. package/lib/component/transaction-header-relation/style/material.scss +0 -4
  398. package/lib/component/transaction-history-grid/style/material.scss +0 -4
  399. package/lib/component/transaction-lines-grid/style/material.scss +0 -5
  400. package/lib/component/transaction-lines-grid/transaction-lines-grid.component.d.ts +0 -20
  401. package/lib/component/transaction-nav-bar/style/_layout.scss +0 -13
  402. package/lib/component/transaction-nav-bar/style/_material-definition.scss +0 -1
  403. package/lib/component/transaction-nav-bar/style/_theme.scss +0 -7
  404. package/lib/component/transaction-nav-bar/style/material.scss +0 -4
  405. package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.d.ts +0 -14
  406. package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.scss +0 -23
  407. package/lib/component/transaction-nav-bar/transaction-nav-bar.component.d.ts +0 -18
  408. package/lib/component/transaction-nav-bar/transaction-nav-bar.module.d.ts +0 -2
  409. package/lib/model/delivery-type.d.ts +0 -7
@@ -6,7 +6,6 @@ import { OptionsService } from "./options.service";
6
6
  import { IOneConnectorAdapterService } from "./ione-connector-adapter.service";
7
7
  import { BehaviorSubject } from "rxjs";
8
8
  import { CustomerFullObject } from "@colijnit/transactionapi/build/model/customer-full-object.bo";
9
- import { SetTransactionDeliveryOptionsRequest } from "@colijnit/transactionapi/build/model/set-transaction-delivery-options-request.bo";
10
9
  import { TransactionLineType } from "@colijnit/transactionapi/build/enum/transaction-line-type.enum";
11
10
  import { RelationStatus } from "@colijnit/transactionapi/build/enum/relation-status.enum";
12
11
  import { DialogService } from "./dialog.service";
@@ -24,7 +23,6 @@ export class PendingReasonService {
24
23
  this.applicationUser = false;
25
24
  this.currentTransaction = new TransactionInfoResponse();
26
25
  this.relation = new CustomerFullObject();
27
- this.deliveryOptions = new SetTransactionDeliveryOptionsRequest();
28
26
  this.articleAmount = 0;
29
27
  }
30
28
  init(options) {
@@ -71,7 +69,6 @@ export class PendingReasonService {
71
69
  _rememberCurrentTransaction(value) {
72
70
  return __awaiter(this, void 0, void 0, function* () {
73
71
  this.currentTransaction = value;
74
- this._setTransactionDeliveryOptions();
75
72
  this._setAmount();
76
73
  this._initializeTransaction();
77
74
  this.transactionUpdated.next(this.currentTransaction);
@@ -128,22 +125,6 @@ export class PendingReasonService {
128
125
  this.dialogService.showInformation(reason);
129
126
  });
130
127
  }
131
- _setTransactionDeliveryOptions() {
132
- if (!this.deliveryOptions) {
133
- this.deliveryOptions = new SetTransactionDeliveryOptionsRequest();
134
- }
135
- this.deliveryOptions.allowPartialDelivery = this.currentTransaction.transactionInfo.allowPartialDelivery;
136
- this.deliveryOptions.deliveryDate = this.currentTransaction.transactionInfo.deliveryDate;
137
- this.deliveryOptions.deliveryMethod = this.currentTransaction.transactionInfo.deliveryMethod;
138
- this.deliveryOptions.deliveryOptions = this.currentTransaction.transactionInfo.deliveryOptions;
139
- this.deliveryOptions.marketingCode = this.currentTransaction.transactionInfo.marketingCode;
140
- this.deliveryOptions.ownReference = this.currentTransaction.transactionInfo.ownReference;
141
- this.deliveryOptions.preferredDeliveryDate = this.currentTransaction.transactionInfo.preferredDeliveryDate;
142
- this.deliveryOptions.preferredDeliveryDate2 = this.currentTransaction.transactionInfo.preferredDeliveryDate2;
143
- this.deliveryOptions.relationReference = this.currentTransaction.transactionInfo.relationReference;
144
- this.deliveryOptions.remark = this.currentTransaction.transactionInfo.remark;
145
- this.deliveryOptions.transactionUuid = this.currentTransaction.transactionInfo.uuid;
146
- }
147
128
  _setAmount() {
148
129
  if (this.currentTransaction && this.currentTransaction.transactionLines) {
149
130
  this.articleAmount = this.currentTransaction.transactionLines.filter(t => t.lineType === TransactionLineType.ArticleLine).length;
@@ -154,7 +135,6 @@ export class PendingReasonService {
154
135
  this.relation = new CustomerFullObject();
155
136
  this.relation.relationStatus = RelationStatus.RegularCustomer;
156
137
  this.relation.startDate = new Date();
157
- this.deliveryOptions = new SetTransactionDeliveryOptionsRequest();
158
138
  }
159
139
  if (this.currentTransaction.transactionInfo.preferredDeliveryDate2 === undefined) {
160
140
  this.currentTransaction.transactionInfo.preferredDeliveryDate2 = "=";
@@ -180,4 +160,4 @@ PendingReasonService.ctorParameters = () => [
180
160
  { type: OptionsService },
181
161
  { type: IOneConnectorAdapterService }
182
162
  ];
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1yZWFzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9wZW5kaW5nLXJlYXNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRTFHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRy9GLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLGtGQUFrRixDQUFDO0FBQ3RJLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ25HLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN4RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sd0VBQXdFLENBQUM7Ozs7O0FBS3ZILE1BQU0sT0FBTyxvQkFBb0I7SUFVL0IsWUFDWSxhQUE0QixFQUM1QixPQUF1QixFQUN2QixTQUFzQztRQUZ0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUE2QjtRQVozQyx1QkFBa0IsR0FBNkMsSUFBSSxlQUFlLENBQTBCLFNBQVMsQ0FBQyxD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QUFHLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBRWEsY0FBYyxDQUFDLElBQVk7O1lBQ3ZDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7aUJBQzdDLElBQUksQ0FBQyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FDRixDQUFDO1FBQ04sQ0FBQztLQUFBOzs7O1lBeEpGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBTE8sYUFBYTtZQVBiLGNBQWM7WUFDZCwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XHJcbmltcG9ydCB7UGVuZGluZ1JlYXNvblR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9wZW5kaW5nLXJlYXNvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4vb3B0aW9ucy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9pb25lLWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7U2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3NldC10cmFuc2FjdGlvbi1kZWxpdmVyeS1vcHRpb25zLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24tbGluZS10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtSZWxhdGlvblN0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlbGF0aW9uLXN0YXR1cy5lbnVtXCI7XHJcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSBcIi4vZGlhbG9nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Jlc29sdmUtcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQZW5kaW5nUmVhc29uU2VydmljZSB7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uVXBkYXRlZDogQmVoYXZpb3JTdWJqZWN0PFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+KHVuZGVmaW5lZCk7XHJcblxyXG4gIHB1YmxpYyBhcHBsaWNhdGlvblVzZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgY3VycmVudFRyYW5zYWN0aW9uOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IG5ldyBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSgpO1xyXG4gIHB1YmxpYyByZWxhdGlvbjogQ3VzdG9tZXJGdWxsT2JqZWN0ID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbnM6IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCA9IG5ldyBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QoKTtcclxuXHJcbiAgcHVibGljIGFydGljbGVBbW91bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY29ubmVjdG9yOiBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0KG9wdGlvbnM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5vcHRpb25zLmluaXRpYWxpemUob3B0aW9ucyk7XHJcbiAgICB0aGlzLmNvbm5lY3Rvci5jb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcsIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rvci5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQpXHJcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlbWVtYmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoIXJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcyB8fCByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXMgPSByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXNbaV07XHJcbiAgICAgIGNvbnN0IHRyYW5zTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IHJlc3BvbnNlLnRyYW5zYWN0aW9uTGluZXMuZmluZCh0ID0+IHQubGluZU5yID09PSBzdGF0dXMubGluZU5yKTtcclxuICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgYXdhaXQgdGhpcy5faGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyhzdGF0dXMsIHRyYW5zTGluZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBfcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnMoKTtcclxuICAgIHRoaXMuX3NldEFtb3VudCgpO1xyXG4gICAgdGhpcy5faW5pdGlhbGl6ZVRyYW5zYWN0aW9uKCk7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uVXBkYXRlZC5uZXh0KHRoaXMuY3VycmVudFRyYW5zYWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMob3BlcmF0aW9uU3RhdHVzOiBMaW5lT3BlcmF0aW9uU3RhdHVzLCB0cmFuc2FjdGlvbkxpbmU6IFRyYW5zYWN0aW9uTGluZUluZm8pOiBQcm9taXNlPGJvb2xlYW4+IHtcclxuICAgIHN3aXRjaCAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKSB7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DQU5DRUxMRUQ6XHJcbiAgICAgICAgaWYgKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uID09PSAnVVNFUl9ERUNJU0lPTicpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuX2NhbmNlbEFydGljbGUob3BlcmF0aW9uU3RhdHVzLnV1aWQpO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICB0aGlzLl9zaG93UmVhc29uRGlhbG9nKG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNPTkZJUk1BVElPTl9ORUVERUQ6XHJcbiAgICAgICAgYXdhaXQgdGhpcy5fY29uZmlybUFjdGlvbih0cmFuc2FjdGlvbkxpbmUudXVpZCwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24sIG9wZXJhdGlvblN0YXR1cy5wZW5kaW5nUmVhc29uVHlwZSk7XHJcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAvLyBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxyXG4gICAgICAvLyAgIGF3YWl0IHRoaXMuc2hvd1N0b2NrTWFuYWdlcih0aGlzLmN1cnJlbnRQZW5kaW5nTGluZSk7XHJcbiAgICAgIC8vICAgYnJlYWs7XHJcbiAgICAgIC8vIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9OX0NSSVRJQ0FMX0RJU0NPTlRJTlVBVElPTjpcclxuICAgICAgLy8gICBhd2FpdCB0aGlzLl9zaG93SW5mb3JtYXRpb24oKTtcclxuICAgICAgLy8gICBicmVhaztcclxuICAgICAgLy8gY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DSEFSQUNURVJJU1RJQ1NfQU5TV0VSX05FRURFRDpcclxuICAgICAgLy8gICB0aGlzLkNoYXJhY3RlcmlzdGljc0Fuc3dlck5lZWRlZCgpO1xyXG4gICAgICAvLyAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzOiBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZXNwb25zZTogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXMpO1xyXG4gICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgdGhpcy5oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbih1dWlkOiBzdHJpbmcsIHJlYXNvbjogc3RyaW5nLCB0eXBlOiBQZW5kaW5nUmVhc29uVHlwZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgcmVhc29uUmVxdWVzdCA9IG5ldyBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0KHV1aWQsIHJlYXNvbiwgdHlwZSk7XHJcbiAgICAvLyBjb25zdCBwZW5kaW5nUmVhc29uVGV4dDogc3RyaW5nID0gYXdhaXQgdGhpcy5fZ2V0UGVuZGluZ1JlYXNvblRleHQodGhpcy5jdXJyZW50T3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xyXG4gICAgcmVhc29uUmVxdWVzdC5jb25maXJtYXRpb24gPSBhd2FpdCB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKCdBY3Rpb24nLCByZWFzb24pO1xyXG4gICAgYXdhaXQgdGhpcy5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocmVhc29uUmVxdWVzdCk7XHJcbiAgICAvLyB0aGlzLl9oYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzKClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX3Nob3dSZWFzb25EaWFsb2cocmVhc29uOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93SW5mb3JtYXRpb24ocmVhc29uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3NldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKCk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRlbGl2ZXJ5T3B0aW9ucykge1xyXG4gICAgICB0aGlzLmRlbGl2ZXJ5T3B0aW9ucyA9IG5ldyBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QoKTtcclxuICAgIH1cclxuICAgIHRoaXMuZGVsaXZlcnlPcHRpb25zLmFsbG93UGFydGlhbERlbGl2ZXJ5ID0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmFsbG93UGFydGlhbERlbGl2ZXJ5O1xyXG4gICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMuZGVsaXZlcnlEYXRlID0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5RGF0ZTtcclxuICAgIHRoaXMuZGVsaXZlcnlPcHRpb25zLmRlbGl2ZXJ5TWV0aG9kID0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5TWV0aG9kO1xyXG4gICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMuZGVsaXZlcnlPcHRpb25zID0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLmRlbGl2ZXJ5T3B0aW9ucztcclxuICAgIHRoaXMuZGVsaXZlcnlPcHRpb25zLm1hcmtldGluZ0NvZGUgPSB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ubWFya2V0aW5nQ29kZTtcclxuICAgIHRoaXMuZGVsaXZlcnlPcHRpb25zLm93blJlZmVyZW5jZSA9IHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5vd25SZWZlcmVuY2U7XHJcbiAgICB0aGlzLmRlbGl2ZXJ5T3B0aW9ucy5wcmVmZXJyZWREZWxpdmVyeURhdGUgPSB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucHJlZmVycmVkRGVsaXZlcnlEYXRlO1xyXG4gICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMucHJlZmVycmVkRGVsaXZlcnlEYXRlMiA9IHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyO1xyXG4gICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMucmVsYXRpb25SZWZlcmVuY2UgPSB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVsYXRpb25SZWZlcmVuY2U7XHJcbiAgICB0aGlzLmRlbGl2ZXJ5T3B0aW9ucy5yZW1hcmsgPSB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8ucmVtYXJrO1xyXG4gICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMudHJhbnNhY3Rpb25VdWlkID0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnV1aWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXRBbW91bnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24gJiYgdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcykge1xyXG4gICAgICB0aGlzLmFydGljbGVBbW91bnQgPSB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkxpbmVzLmZpbHRlcih0ID0+IHQubGluZVR5cGUgPT09IFRyYW5zYWN0aW9uTGluZVR5cGUuQXJ0aWNsZUxpbmUpLmxlbmd0aDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRpYWxpemVUcmFuc2FjdGlvbigpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5yZWxhdGlvbikge1xyXG4gICAgICB0aGlzLnJlbGF0aW9uID0gbmV3IEN1c3RvbWVyRnVsbE9iamVjdCgpO1xyXG4gICAgICB0aGlzLnJlbGF0aW9uLnJlbGF0aW9uU3RhdHVzID0gUmVsYXRpb25TdGF0dXMuUmVndWxhckN1c3RvbWVyO1xyXG4gICAgICB0aGlzLnJlbGF0aW9uLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIHRoaXMuZGVsaXZlcnlPcHRpb25zID0gbmV3IFNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSBcIj1cIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2NhbmNlbEFydGljbGUodXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZSh1dWlkLCBmYWxzZSlcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVuZGluZy1yZWFzb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS9wZW5kaW5nLXJlYXNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLG1FQUFtRSxDQUFDO0FBRTFHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBRy9GLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDhEQUE4RCxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ25HLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUN4RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sd0VBQXdFLENBQUM7Ozs7O0FBS3ZILE1BQU0sT0FBTyxvQkFBb0I7SUFTL0IsWUFDWSxhQUE0QixFQUM1QixPQUF1QixFQUN2QixTQUFzQztRQUZ0QyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixjQUFTLEdBQVQsU0FBUyxDQUE2QjtRQVgzQyx1QkFBa0IsR0FBNkMsSUFBSSxlQUFlLENBQTBCLFNBQVMsQ0FBQyxDQUFDO1FBRXZILG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBQ2pDLHVCQUFrQixHQUE0QixJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDNUUsYUFBUSxHQUF1QixJQUFJLGtCQUFrQixFQUFFLENBQUM7UUFFeEQsa0JBQWEsR0FBVyxDQUFDLENBQUM7SUFPakMsQ0FBQztJQUVZLElBQUksQ0FBQyxPQUFZOztZQUM1QixNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0IsQ0FBQztLQUFBO0lBRVksd0JBQXdCLENBQUMsUUFBZ0IsRUFBRSxXQUFvQixJQUFJOztZQUM5RSxPQUFPLElBQUksT0FBTyxDQUEwQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtnQkFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUM7cUJBQzlDLElBQUksQ0FBQyxDQUFPLFFBQWlDLEVBQUUsRUFBRTtvQkFDaEQsSUFBSSxRQUFRLEVBQUU7d0JBQ1osSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUM1QztvQkFDRCxJQUFJLFFBQVEsQ0FBQyxTQUFTLEVBQUU7d0JBQ3RCLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztxQkFDbkI7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO3FCQUNsQjtnQkFDSCxDQUFDLENBQUEsQ0FBQztxQkFDRCxLQUFLLENBQUMsQ0FBQyxNQUF3QixFQUFFLEVBQUU7b0JBQ2xDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDaEIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7S0FBQTtJQUVlLDJCQUEyQixDQUFDLFFBQWlDOztZQUMzRSxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixJQUFJLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO2dCQUNsRixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsSUFBSSxPQUFPLEdBQVksSUFBSSxDQUFDO1lBQzVCLEtBQUssSUFBSSxDQUFDLEdBQVcsQ0FBQyxFQUFFLENBQUMsR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUN0RSxNQUFNLE1BQU0sR0FBd0IsUUFBUSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUN0RSxNQUFNLFNBQVMsR0FBd0IsUUFBUSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUN2RyxPQUFPLEdBQUcsT0FBTyxLQUFJLE1BQU0sSUFBSSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQSxDQUFDO2FBQy9FO1lBQ0QsT0FBTyxPQUFPLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRWUsMkJBQTJCLENBQUMsS0FBOEI7O1lBQ3hFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFDaEMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDeEQsQ0FBQztLQUFBO0lBRWEsMEJBQTBCLENBQUMsZUFBb0MsRUFBRSxlQUFvQzs7WUFDakgsUUFBUSxlQUFlLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ3pDLEtBQUssaUJBQWlCLENBQUMsT0FBTyxDQUFDO2dCQUMvQixLQUFLLGlCQUFpQixDQUFDLFNBQVM7b0JBQzlCLElBQUksZUFBZSxDQUFDLGFBQWEsS0FBSyxlQUFlLEVBQUU7d0JBQ3JELE1BQU0sSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7cUJBQ2pEO3lCQUFNO3dCQUNMLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDLENBQUM7cUJBQ3ZEO29CQUNELE9BQU8sS0FBSyxDQUFDO2dCQUNmLEtBQUssaUJBQWlCLENBQUMsbUJBQW1CO29CQUN4QyxNQUFNLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO29CQUNsSCxPQUFPLEtBQUssQ0FBQztnQkFDZiw0Q0FBNEM7Z0JBQzVDLDBEQUEwRDtnQkFDMUQsV0FBVztnQkFDWCx1REFBdUQ7Z0JBQ3ZELG1DQUFtQztnQkFDbkMsV0FBVztnQkFDWCx3REFBd0Q7Z0JBQ3hELHdDQUF3QztnQkFDeEMsV0FBVztnQkFDWCxLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDNUI7b0JBQ0UsT0FBTyxJQUFJLENBQUM7YUFDZjtRQUNILENBQUM7S0FBQTtJQUVZLHdCQUF3QixDQUFDLGlCQUFrRDs7WUFDdEYsTUFBTSxRQUFRLEdBQTRCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBQzNHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDN0MsQ0FBQztLQUFBO0lBRWEsY0FBYyxDQUFDLElBQVksRUFBRSxNQUFjLEVBQUUsSUFBdUI7O1lBQ2hGLE1BQU0sYUFBYSxHQUFHLElBQUksK0JBQStCLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM5RSxpSEFBaUg7WUFDakgsYUFBYSxDQUFDLFlBQVksR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUNsRixNQUFNLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuRCxvQ0FBb0M7UUFDdEMsQ0FBQztLQUFBO0lBRWEsaUJBQWlCLENBQUMsTUFBYzs7WUFDNUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0MsQ0FBQztLQUFBO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLEVBQUU7WUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUM7U0FDbEk7SUFDSCxDQUFDO0lBRU8sc0JBQXNCO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQyxlQUFlLENBQUM7WUFDOUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztTQUN0QztRQUNELElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsS0FBSyxTQUFTLEVBQUU7WUFDaEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGVBQWUsQ0FBQyxzQkFBc0IsR0FBRyxHQUFHLENBQUM7U0FDdEU7SUFDSCxDQUFDO0lBRWEsY0FBYyxDQUFDLElBQVk7O1lBQ3ZDLE1BQU0sSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksRUFBRSxLQUFLLENBQUM7aUJBQzdDLElBQUksQ0FBQyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtnQkFDeEMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzdDLENBQUMsQ0FDRixDQUFDO1FBQ04sQ0FBQztLQUFBOzs7O1lBcElGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBTE8sYUFBYTtZQU5iLGNBQWM7WUFDZCwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge0xpbmVPcGVyYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tc3RhdHVzLmJvXCI7XHJcbmltcG9ydCB7UGVuZGluZ1JlYXNvblR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9wZW5kaW5nLXJlYXNvbi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1ZhbGlkYXRpb25SZXN1bHR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdmFsaWRhdGlvbi1yZXN1bHRcIjtcclxuaW1wb3J0IHtPcHRpb25zU2VydmljZX0gZnJvbSBcIi4vb3B0aW9ucy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9pb25lLWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtCZWhhdmlvclN1YmplY3R9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7Q3VzdG9tZXJGdWxsT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2N1c3RvbWVyLWZ1bGwtb2JqZWN0LmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7UmVsYXRpb25TdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9yZWxhdGlvbi1zdGF0dXMuZW51bVwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7UmVzb2x2ZUxpbmVQZW5kaW5nUmVhc29uUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9yZXNvbHZlLXBlbmRpbmctcmVhc29uLXJlcXVlc3QuYm9cIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVuZGluZ1JlYXNvblNlcnZpY2Uge1xyXG4gIHB1YmxpYyB0cmFuc2FjdGlvblVwZGF0ZWQ6IEJlaGF2aW9yU3ViamVjdDxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPih1bmRlZmluZWQpO1xyXG5cclxuICBwdWJsaWMgYXBwbGljYXRpb25Vc2VyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGN1cnJlbnRUcmFuc2FjdGlvbjogVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UgPSBuZXcgVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UoKTtcclxuICBwdWJsaWMgcmVsYXRpb246IEN1c3RvbWVyRnVsbE9iamVjdCA9IG5ldyBDdXN0b21lckZ1bGxPYmplY3QoKTtcclxuXHJcbiAgcHVibGljIGFydGljbGVBbW91bnQ6IG51bWJlciA9IDA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgb3B0aW9uczogT3B0aW9uc1NlcnZpY2UsXHJcbiAgICBwcm90ZWN0ZWQgY29ubmVjdG9yOiBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2VcclxuICApIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBpbml0KG9wdGlvbnM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgYXdhaXQgdGhpcy5vcHRpb25zLmluaXRpYWxpemUob3B0aW9ucyk7XHJcbiAgICB0aGlzLmNvbm5lY3Rvci5jb25uZWN0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgY2FuY2VsQWRkVHJhbnNhY3Rpb25MaW5lKGxpbmVVdWlkOiBzdHJpbmcsIHJlbWVtYmVyOiBib29sZWFuID0gdHJ1ZSk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbm5lY3Rvci5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQpXHJcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlbWVtYmVyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JlbWVtYmVyQ3VycmVudFRyYW5zYWN0aW9uKHJlc3BvbnNlKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChyZXNwb25zZS5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICAgICAgcmVzb2x2ZShyZXNwb25zZSk7XHJcbiAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZWplY3QocmVzcG9uc2UpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgLmNhdGNoKChyZWFzb246IFZhbGlkYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHJlc29sdmUobnVsbCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVMaW5lT3BlcmF0aW9uU3RhdHVzZXMocmVzcG9uc2U6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoIXJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcyB8fCByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgbGV0IHN1Y2Nlc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IHJlc3BvbnNlLmxpbmVPcGVyYXRpb25TdGF0dXNlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBjb25zdCBzdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXMgPSByZXNwb25zZS5saW5lT3BlcmF0aW9uU3RhdHVzZXNbaV07XHJcbiAgICAgIGNvbnN0IHRyYW5zTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyA9IHJlc3BvbnNlLnRyYW5zYWN0aW9uTGluZXMuZmluZCh0ID0+IHQubGluZU5yID09PSBzdGF0dXMubGluZU5yKTtcclxuICAgICAgc3VjY2VzcyA9IHN1Y2Nlc3MgJiYgYXdhaXQgdGhpcy5faGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyhzdGF0dXMsIHRyYW5zTGluZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gc3VjY2VzcztcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBfcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24odmFsdWU6IFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICB0aGlzLmN1cnJlbnRUcmFuc2FjdGlvbiA9IHZhbHVlO1xyXG4gICAgdGhpcy5fc2V0QW1vdW50KCk7XHJcbiAgICB0aGlzLl9pbml0aWFsaXplVHJhbnNhY3Rpb24oKTtcclxuICAgIHRoaXMudHJhbnNhY3Rpb25VcGRhdGVkLm5leHQodGhpcy5jdXJyZW50VHJhbnNhY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfaGFuZGxlTGluZU9wZXJhdGlvblN0YXR1cyhvcGVyYXRpb25TdGF0dXM6IExpbmVPcGVyYXRpb25TdGF0dXMsIHRyYW5zYWN0aW9uTGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgc3dpdGNoIChvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvblR5cGUpIHtcclxuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5BQk9SVEVEOlxyXG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNBTkNFTExFRDpcclxuICAgICAgICBpZiAob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24gPT09ICdVU0VSX0RFQ0lTSU9OJykge1xyXG4gICAgICAgICAgYXdhaXQgdGhpcy5fY2FuY2VsQXJ0aWNsZShvcGVyYXRpb25TdGF0dXMudXVpZCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMuX3Nob3dSZWFzb25EaWFsb2cob3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb24pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ09ORklSTUFUSU9OX05FRURFRDpcclxuICAgICAgICBhd2FpdCB0aGlzLl9jb25maXJtQWN0aW9uKHRyYW5zYWN0aW9uTGluZS51dWlkLCBvcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbiwgb3BlcmF0aW9uU3RhdHVzLnBlbmRpbmdSZWFzb25UeXBlKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIC8vIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuSU5WQUxJRF9MT0dJU1RJQ1M6XHJcbiAgICAgIC8vICAgYXdhaXQgdGhpcy5zaG93U3RvY2tNYW5hZ2VyKHRoaXMuY3VycmVudFBlbmRpbmdMaW5lKTtcclxuICAgICAgLy8gICBicmVhaztcclxuICAgICAgLy8gY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxyXG4gICAgICAvLyAgIGF3YWl0IHRoaXMuX3Nob3dJbmZvcm1hdGlvbigpO1xyXG4gICAgICAvLyAgIGJyZWFrO1xyXG4gICAgICAvLyBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkNIQVJBQ1RFUklTVElDU19BTlNXRVJfTkVFREVEOlxyXG4gICAgICAvLyAgIHRoaXMuQ2hhcmFjdGVyaXN0aWNzQW5zd2VyTmVlZGVkKCk7XHJcbiAgICAgIC8vICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24ocGVuZGluZ0xpbmVWYWx1ZXM6IFJlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3QpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGNvbnN0IHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSA9IGF3YWl0IHRoaXMuY29ubmVjdG9yLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihwZW5kaW5nTGluZVZhbHVlcyk7XHJcbiAgICB0aGlzLl9yZW1lbWJlckN1cnJlbnRUcmFuc2FjdGlvbihyZXNwb25zZSk7XHJcbiAgICB0aGlzLmhhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXNlcyhyZXNwb25zZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9jb25maXJtQWN0aW9uKHV1aWQ6IHN0cmluZywgcmVhc29uOiBzdHJpbmcsIHR5cGU6IFBlbmRpbmdSZWFzb25UeXBlKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCByZWFzb25SZXF1ZXN0ID0gbmV3IFJlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3QodXVpZCwgcmVhc29uLCB0eXBlKTtcclxuICAgIC8vIGNvbnN0IHBlbmRpbmdSZWFzb25UZXh0OiBzdHJpbmcgPSBhd2FpdCB0aGlzLl9nZXRQZW5kaW5nUmVhc29uVGV4dCh0aGlzLmN1cnJlbnRPcGVyYXRpb25TdGF0dXMucGVuZGluZ1JlYXNvbik7XHJcbiAgICByZWFzb25SZXF1ZXN0LmNvbmZpcm1hdGlvbiA9IGF3YWl0IHRoaXMuZGlhbG9nU2VydmljZS5zaG93WWVzTm8oJ0FjdGlvbicsIHJlYXNvbik7XHJcbiAgICBhd2FpdCB0aGlzLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbihyZWFzb25SZXF1ZXN0KTtcclxuICAgIC8vIHRoaXMuX2hhbmRsZUxpbmVPcGVyYXRpb25TdGF0dXMoKVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBfc2hvd1JlYXNvbkRpYWxvZyhyZWFzb246IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dJbmZvcm1hdGlvbihyZWFzb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0QW1vdW50KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uICYmIHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uTGluZXMpIHtcclxuICAgICAgdGhpcy5hcnRpY2xlQW1vdW50ID0gdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25MaW5lcy5maWx0ZXIodCA9PiB0LmxpbmVUeXBlID09PSBUcmFuc2FjdGlvbkxpbmVUeXBlLkFydGljbGVMaW5lKS5sZW5ndGg7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9pbml0aWFsaXplVHJhbnNhY3Rpb24oKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMucmVsYXRpb24pIHtcclxuICAgICAgdGhpcy5yZWxhdGlvbiA9IG5ldyBDdXN0b21lckZ1bGxPYmplY3QoKTtcclxuICAgICAgdGhpcy5yZWxhdGlvbi5yZWxhdGlvblN0YXR1cyA9IFJlbGF0aW9uU3RhdHVzLlJlZ3VsYXJDdXN0b21lcjtcclxuICAgICAgdGhpcy5yZWxhdGlvbi5zdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSBcIj1cIjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgX2NhbmNlbEFydGljbGUodXVpZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhd2FpdCB0aGlzLmNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZSh1dWlkLCBmYWxzZSlcclxuICAgICAgLnRoZW4oKHJlc3BvbnNlOiBUcmFuc2FjdGlvbkluZm9SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fcmVtZW1iZXJDdXJyZW50VHJhbnNhY3Rpb24ocmVzcG9uc2UpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,53 @@
1
+ import { __awaiter } from "tslib";
2
+ import { Injectable } from "@angular/core";
3
+ import { IOneConnectorAdapterService } from "./ione-connector-adapter.service";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./ione-connector-adapter.service";
6
+ export class TransactionImageService {
7
+ constructor(_connector) {
8
+ this._connector = _connector;
9
+ this._articleImageCache = new Map();
10
+ }
11
+ retrieveLineImage(line) {
12
+ return __awaiter(this, void 0, void 0, function* () {
13
+ return yield this.getArticleImageByArticleNumber(line.articleNumber);
14
+ });
15
+ }
16
+ getArticleImageByArticleNumber(articleNumber) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ if (this._articleImageCache.has(articleNumber)) {
19
+ return this._articleImageCache.get(articleNumber);
20
+ }
21
+ const goodId = yield this._connector.getGoodIdFromArticleNr(articleNumber).catch((error) => {
22
+ console.error(error);
23
+ return null;
24
+ });
25
+ const image = yield this.getArticleImageByGoodId(goodId);
26
+ this._articleImageCache.set(articleNumber, image);
27
+ return image;
28
+ });
29
+ }
30
+ getArticleImageByGoodId(goodId) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ if (!isNaN(goodId)) {
33
+ return this._connector.getSingleImage(goodId, 1, true, true).catch((error) => {
34
+ console.error(error);
35
+ return "";
36
+ });
37
+ }
38
+ else {
39
+ return "";
40
+ }
41
+ });
42
+ }
43
+ }
44
+ TransactionImageService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionImageService_Factory() { return new TransactionImageService(i0.ɵɵinject(i1.IOneConnectorAdapterService)); }, token: TransactionImageService, providedIn: "root" });
45
+ TransactionImageService.decorators = [
46
+ { type: Injectable, args: [{
47
+ providedIn: "root"
48
+ },] }
49
+ ];
50
+ TransactionImageService.ctorParameters = () => [
51
+ { type: IOneConnectorAdapterService }
52
+ ];
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24taW1hZ2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvc2VydmljZS90cmFuc2FjdGlvbi1pbWFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7QUFLN0UsTUFBTSxPQUFPLHVCQUF1QjtJQUlsQyxZQUFvQixVQUF1QztRQUF2QyxlQUFVLEdBQVYsVUFBVSxDQUE2QjtRQUZuRCx1QkFBa0IsR0FBd0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUc1RCxDQUFDO0lBRVksaUJBQWlCLENBQUMsSUFBeUI7O1lBQ3RELE9BQU8sTUFBTSxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7S0FBQTtJQUVZLDhCQUE4QixDQUFDLGFBQXFCOztZQUMvRCxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNuRDtZQUNELE1BQU0sTUFBTSxHQUFXLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxhQUFhLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakcsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDLENBQUMsQ0FBQztZQUNILE1BQU0sS0FBSyxHQUFXLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztLQUFBO0lBRVksdUJBQXVCLENBQUMsTUFBYzs7WUFDakQsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDbEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDM0UsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDckIsT0FBTyxFQUFFLENBQUM7Z0JBQ1osQ0FBQyxDQUFDLENBQUM7YUFDSjtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNYO1FBQ0gsQ0FBQztLQUFBOzs7O1lBcENGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBSk8sMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7SU9uZUNvbm5lY3RvckFkYXB0ZXJTZXJ2aWNlfSBmcm9tIFwiLi9pb25lLWNvbm5lY3Rvci1hZGFwdGVyLnNlcnZpY2VcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIF9hcnRpY2xlSW1hZ2VDYWNoZTogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXAoKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29ubmVjdG9yOiBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyByZXRyaWV2ZUxpbmVJbWFnZShsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogUHJvbWlzZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiBhd2FpdCB0aGlzLmdldEFydGljbGVJbWFnZUJ5QXJ0aWNsZU51bWJlcihsaW5lLmFydGljbGVOdW1iZXIpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVJbWFnZUJ5QXJ0aWNsZU51bWJlcihhcnRpY2xlTnVtYmVyOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xyXG4gICAgaWYgKHRoaXMuX2FydGljbGVJbWFnZUNhY2hlLmhhcyhhcnRpY2xlTnVtYmVyKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fYXJ0aWNsZUltYWdlQ2FjaGUuZ2V0KGFydGljbGVOdW1iZXIpO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZ29vZElkOiBudW1iZXIgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0R29vZElkRnJvbUFydGljbGVOcihhcnRpY2xlTnVtYmVyKS5jYXRjaCgoZXJyb3IpID0+IHtcclxuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfSk7XHJcbiAgICBjb25zdCBpbWFnZTogc3RyaW5nID0gYXdhaXQgdGhpcy5nZXRBcnRpY2xlSW1hZ2VCeUdvb2RJZChnb29kSWQpO1xyXG4gICAgdGhpcy5fYXJ0aWNsZUltYWdlQ2FjaGUuc2V0KGFydGljbGVOdW1iZXIsIGltYWdlKTtcclxuICAgIHJldHVybiBpbWFnZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBnZXRBcnRpY2xlSW1hZ2VCeUdvb2RJZChnb29kSWQ6IG51bWJlcik6IFByb21pc2U8c3RyaW5nPiB7XHJcbiAgICBpZiAoIWlzTmFOKGdvb2RJZCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rvci5nZXRTaW5nbGVJbWFnZShnb29kSWQsIDEsIHRydWUsIHRydWUpLmNhdGNoKChlcnJvcikgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xyXG4gICAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,85 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { TransactionKind } from "@colijnit/transactionapi/build/enum/transaction-kind.enum";
3
+ import { Icon } from "../enum/icon.enum";
4
+ import { TransactionTypeCategory } from "../enum/transaction-type-category.enum";
5
+ import { TransactionQuickAccessOrderConfirmationComponent } from "../component/transaction-quick-access/transaction-quick-access-order-confirmation/transaction-quick-access-order-confirmation.component";
6
+ import { TransactionQuickAccessReceivedGoodsComponent } from "../component/transaction-quick-access/transaction-quick-access-received-goods/transaction-quick-access-received-goods.component";
7
+ import { TransactionQuickAccessOverviewComponent } from "../component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component";
8
+ import { TransactionOrderConfirmationGridComponent } from "../component/transaction-grid/transaction-order-confirmation-grid/transaction-order-confirmation-grid.component";
9
+ import { TransactionLinesGridComponent } from "../component/transaction-grid/transaction-lines-grid/transaction-lines-grid.component";
10
+ import { TransactionReceivedGoodsGridComponent } from "../component/transaction-grid/transaction-received-goods-grid/transaction-received-goods-grid.component";
11
+ import * as i0 from "@angular/core";
12
+ export class TransactionMappingService {
13
+ constructor() {
14
+ this._buttonBarTransaction = new Map([
15
+ [TransactionKind.PurchaseOrder, [
16
+ { title: 'OVERVIEW', icon: Icon.CartShoppingSolid, category: TransactionTypeCategory.PurchaseOrderOverview },
17
+ { title: 'CONFIRMATION', icon: Icon.MemoCircleCheckSolid, category: TransactionTypeCategory.PurchaseOrderOrderConfirmation },
18
+ { title: 'TRANSPORT', icon: Icon.TruckContainerSolid, category: TransactionTypeCategory.PurchaseOrderTransport },
19
+ { title: 'RECEIVED', icon: Icon.CartFlatbedBoxesSolid, category: TransactionTypeCategory.PurchaseOrderReceivedGoods },
20
+ { title: 'INVOICE_CHECK', icon: Icon.Tag, category: TransactionTypeCategory.PurchaseOrderInvoiceCheck },
21
+ { title: 'MENU', icon: Icon.Tag, category: TransactionTypeCategory.PurchaseOrderMenu }
22
+ ]],
23
+ [TransactionKind.SalesOrder, [
24
+ { title: 'OVERVIEW', icon: Icon.CartShoppingSolid, category: TransactionTypeCategory.SalesOrderOverview },
25
+ { title: 'PURCHASE', icon: Icon.PalletBoxesSolid, category: TransactionTypeCategory.SalesOrderPurchase },
26
+ { title: 'LOGISTICS', icon: Icon.ShelvesSolid, category: TransactionTypeCategory.SalesOrderLogistics },
27
+ { title: 'PLANNING', icon: Icon.TruckArrowRightSolid, category: TransactionTypeCategory.SalesOrderPlanning },
28
+ { title: 'DELIVERY_NOTE', icon: Icon.MemoCircleCheckSolid, category: TransactionTypeCategory.SalesOrderDeliveryNote },
29
+ { title: 'INVOICE', icon: Icon.CartShoppingSolid, category: TransactionTypeCategory.SalesOrderInvoice }
30
+ ]],
31
+ ]);
32
+ this._quickAccessComponent = new Map([
33
+ [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderOrderConfirmation }, TransactionQuickAccessOrderConfirmationComponent],
34
+ [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderReceivedGoods }, TransactionQuickAccessReceivedGoodsComponent],
35
+ [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderOverview }, TransactionQuickAccessOverviewComponent]
36
+ ]);
37
+ this._transactionGridComponent = new Map([
38
+ [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderOverview }, TransactionLinesGridComponent],
39
+ [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderOrderConfirmation }, TransactionOrderConfirmationGridComponent],
40
+ [{ type: TransactionKind.PurchaseOrder, category: TransactionTypeCategory.PurchaseOrderReceivedGoods }, TransactionReceivedGoodsGridComponent],
41
+ [{ type: TransactionKind.SalesOrder, category: TransactionTypeCategory.SalesOrderOverview }, TransactionLinesGridComponent]
42
+ ]);
43
+ }
44
+ getButtonBar(type) {
45
+ if (this._buttonBarTransaction.has(type)) {
46
+ return this._buttonBarTransaction.get(type);
47
+ }
48
+ return [];
49
+ }
50
+ getQuickAccessComponent(type, category) {
51
+ const key = {
52
+ type: type,
53
+ category: category
54
+ };
55
+ let entry;
56
+ this._quickAccessComponent.forEach((v, t, m) => {
57
+ if (t.type === key.type && t.category === key.category) {
58
+ entry = v;
59
+ return;
60
+ }
61
+ });
62
+ return entry;
63
+ }
64
+ getTransactionGridComponent(type, category) {
65
+ const key = {
66
+ type: type,
67
+ category: category
68
+ };
69
+ let entry;
70
+ this._transactionGridComponent.forEach((v, t, m) => {
71
+ if (t.type === key.type && t.category === key.category) {
72
+ entry = v;
73
+ return;
74
+ }
75
+ });
76
+ return entry;
77
+ }
78
+ }
79
+ TransactionMappingService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionMappingService_Factory() { return new TransactionMappingService(); }, token: TransactionMappingService, providedIn: "root" });
80
+ TransactionMappingService.decorators = [
81
+ { type: Injectable, args: [{
82
+ providedIn: "root"
83
+ },] }
84
+ ];
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbWFwcGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9zZXJ2aWNlL3RyYW5zYWN0aW9uLW1hcHBpbmcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFPLE1BQU0sZUFBZSxDQUFDO0FBQy9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUUxRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDdkMsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUNMLGdEQUFnRCxFQUNqRCxNQUFNLHlJQUF5SSxDQUFDO0FBRWpKLE9BQU8sRUFBQyw0Q0FBNEMsRUFBQyxNQUFNLGlJQUFpSSxDQUFDO0FBQzdMLE9BQU8sRUFBQyx1Q0FBdUMsRUFBQyxNQUFNLHFIQUFxSCxDQUFDO0FBRTVLLE9BQU8sRUFBQyx5Q0FBeUMsRUFBQyxNQUFNLGlIQUFpSCxDQUFDO0FBQzFLLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLHVGQUF1RixDQUFDO0FBQ3BJLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLHlHQUF5RyxDQUFDOztBQUs5SixNQUFNLE9BQU8seUJBQXlCO0lBSHRDO1FBS21CLDBCQUFxQixHQUFpRCxJQUFJLEdBQUcsQ0FBMEM7WUFDdEksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFO29CQUM5QixFQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLENBQUMscUJBQXFCLEVBQUM7b0JBQzFHLEVBQUMsS0FBSyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixFQUFFLFFBQVEsRUFBRSx1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QUFDLFFBQVEsRUFBRTtnQkFDdEQsS0FBSyxHQUFHLENBQUMsQ0FBQztnQkFDVixPQUFPO2FBQ1I7UUFDSCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7OztZQTFFRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFR5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25LaW5kfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vdHJhbnNhY3Rpb24ta2luZC5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25CYXJCdXR0b259IGZyb20gXCIuLi9tb2RlbC90cmFuc2FjdGlvbi1iYXItYnV0dG9uXCI7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSBcIi4uL2VudW0vaWNvbi5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9IGZyb20gXCIuLi9lbnVtL3RyYW5zYWN0aW9uLXR5cGUtY2F0ZWdvcnkuZW51bVwiO1xyXG5pbXBvcnQge1xyXG4gIFRyYW5zYWN0aW9uUXVpY2tBY2Nlc3NPcmRlckNvbmZpcm1hdGlvbkNvbXBvbmVudFxyXG59IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1vcmRlci1jb25maXJtYXRpb24vdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW9yZGVyLWNvbmZpcm1hdGlvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLWJhc2UuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc1JlY2VpdmVkR29vZHNDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzL3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy1yZWNlaXZlZC1nb29kcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3MtcmVjZWl2ZWQtZ29vZHMuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25RdWlja0FjY2Vzc092ZXJ2aWV3Q29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLXF1aWNrLWFjY2Vzcy90cmFuc2FjdGlvbi1xdWljay1hY2Nlc3Mtb3ZlcnZpZXcvdHJhbnNhY3Rpb24tcXVpY2stYWNjZXNzLW92ZXJ2aWV3LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uR3JpZEJhc2VDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvY29yZS9iYXNlL3RyYW5zYWN0aW9uLWdyaWQtYmFzZS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbk9yZGVyQ29uZmlybWF0aW9uR3JpZENvbXBvbmVudH0gZnJvbSBcIi4uL2NvbXBvbmVudC90cmFuc2FjdGlvbi1ncmlkL3RyYW5zYWN0aW9uLW9yZGVyLWNvbmZpcm1hdGlvbi1ncmlkL3RyYW5zYWN0aW9uLW9yZGVyLWNvbmZpcm1hdGlvbi1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZXNHcmlkQ29tcG9uZW50fSBmcm9tIFwiLi4vY29tcG9uZW50L3RyYW5zYWN0aW9uLWdyaWQvdHJhbnNhY3Rpb24tbGluZXMtZ3JpZC90cmFuc2FjdGlvbi1saW5lcy1ncmlkLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uUmVjZWl2ZWRHb29kc0dyaWRDb21wb25lbnR9IGZyb20gXCIuLi9jb21wb25lbnQvdHJhbnNhY3Rpb24tZ3JpZC90cmFuc2FjdGlvbi1yZWNlaXZlZC1nb29kcy1ncmlkL3RyYW5zYWN0aW9uLXJlY2VpdmVkLWdvb2RzLWdyaWQuY29tcG9uZW50XCI7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTWFwcGluZ1NlcnZpY2Uge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IF9idXR0b25CYXJUcmFuc2FjdGlvbjogTWFwPFRyYW5zYWN0aW9uS2luZCwgVHJhbnNhY3Rpb25CYXJCdXR0b25bXT4gPSBuZXcgTWFwPFRyYW5zYWN0aW9uS2luZCwgVHJhbnNhY3Rpb25CYXJCdXR0b25bXT4oW1xyXG4gICAgW1RyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBbXHJcbiAgICAgIHt0aXRsZTogJ09WRVJWSUVXJywgaWNvbjogSWNvbi5DYXJ0U2hvcHBpbmdTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJPdmVydmlld30sXHJcbiAgICAgIHt0aXRsZTogJ0NPTkZJUk1BVElPTicsIGljb246IEljb24uTWVtb0NpcmNsZUNoZWNrU29saWQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5QdXJjaGFzZU9yZGVyT3JkZXJDb25maXJtYXRpb259LFxyXG4gICAgICB7dGl0bGU6ICdUUkFOU1BPUlQnLCBpY29uOiBJY29uLlRydWNrQ29udGFpbmVyU29saWQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5QdXJjaGFzZU9yZGVyVHJhbnNwb3J0fSxcclxuICAgICAge3RpdGxlOiAnUkVDRUlWRUQnLCBpY29uOiBJY29uLkNhcnRGbGF0YmVkQm94ZXNTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJSZWNlaXZlZEdvb2RzfSxcclxuICAgICAge3RpdGxlOiAnSU5WT0lDRV9DSEVDSycsIGljb246IEljb24uVGFnLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlckludm9pY2VDaGVja30sXHJcbiAgICAgIHt0aXRsZTogJ01FTlUnLCBpY29uOiBJY29uLlRhZywgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJNZW51fVxyXG4gICAgXV0sXHJcbiAgICBbVHJhbnNhY3Rpb25LaW5kLlNhbGVzT3JkZXIsIFtcclxuICAgICAge3RpdGxlOiAnT1ZFUlZJRVcnLCBpY29uOiBJY29uLkNhcnRTaG9wcGluZ1NvbGlkLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlck92ZXJ2aWV3fSxcclxuICAgICAge3RpdGxlOiAnUFVSQ0hBU0UnLCBpY29uOiBJY29uLlBhbGxldEJveGVzU29saWQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyUHVyY2hhc2V9LFxyXG4gICAgICB7dGl0bGU6ICdMT0dJU1RJQ1MnLCBpY29uOiBJY29uLlNoZWx2ZXNTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJMb2dpc3RpY3N9LFxyXG4gICAgICB7dGl0bGU6ICdQTEFOTklORycsIGljb246IEljb24uVHJ1Y2tBcnJvd1JpZ2h0U29saWQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeS5TYWxlc09yZGVyUGxhbm5pbmd9LFxyXG4gICAgICB7dGl0bGU6ICdERUxJVkVSWV9OT1RFJywgaWNvbjogSWNvbi5NZW1vQ2lyY2xlQ2hlY2tTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJEZWxpdmVyeU5vdGV9LFxyXG4gICAgICB7dGl0bGU6ICdJTlZPSUNFJywgaWNvbjogSWNvbi5DYXJ0U2hvcHBpbmdTb2xpZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJJbnZvaWNlfVxyXG4gICAgXV0sXHJcbiAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3F1aWNrQWNjZXNzQ29tcG9uZW50OiBNYXA8e3R5cGU6IFRyYW5zYWN0aW9uS2luZCwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSwgVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+PiA9XHJcbiAgICBuZXcgTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmQ7IGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0sIFR5cGU8VHJhbnNhY3Rpb25CYXNlQ29tcG9uZW50Pj4oW1xyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9ufSwgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc09yZGVyQ29uZmlybWF0aW9uQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuUHVyY2hhc2VPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlB1cmNoYXNlT3JkZXJSZWNlaXZlZEdvb2RzfSwgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc1JlY2VpdmVkR29vZHNDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuU2FsZXNPcmRlck92ZXJ2aWV3fSwgVHJhbnNhY3Rpb25RdWlja0FjY2Vzc092ZXJ2aWV3Q29tcG9uZW50XVxyXG4gICAgXSk7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgX3RyYW5zYWN0aW9uR3JpZENvbXBvbmVudDogTWFwPHt0eXBlOiBUcmFuc2FjdGlvbktpbmQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeX0sIFR5cGU8VHJhbnNhY3Rpb25HcmlkQmFzZUNvbXBvbmVudD4+ID1cclxuICAgIG5ldyBNYXA8e3R5cGU6IFRyYW5zYWN0aW9uS2luZDsgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5fSwgVHlwZTxUcmFuc2FjdGlvbkdyaWRCYXNlQ29tcG9uZW50Pj4oW1xyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck92ZXJ2aWV3fSwgVHJhbnNhY3Rpb25MaW5lc0dyaWRDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlck9yZGVyQ29uZmlybWF0aW9ufSwgVHJhbnNhY3Rpb25PcmRlckNvbmZpcm1hdGlvbkdyaWRDb21wb25lbnRdLFxyXG4gICAgICBbe3R5cGU6IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkuUHVyY2hhc2VPcmRlclJlY2VpdmVkR29vZHN9LCBUcmFuc2FjdGlvblJlY2VpdmVkR29vZHNHcmlkQ29tcG9uZW50XSxcclxuICAgICAgW3t0eXBlOiBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlciwgY2F0ZWdvcnk6IFRyYW5zYWN0aW9uVHlwZUNhdGVnb3J5LlNhbGVzT3JkZXJPdmVydmlld30sIFRyYW5zYWN0aW9uTGluZXNHcmlkQ29tcG9uZW50XVxyXG4gICAgXSk7XHJcblxyXG4gIHB1YmxpYyBnZXRCdXR0b25CYXIodHlwZTogVHJhbnNhY3Rpb25LaW5kKTogVHJhbnNhY3Rpb25CYXJCdXR0b25bXSB7XHJcbiAgICBpZiAodGhpcy5fYnV0dG9uQmFyVHJhbnNhY3Rpb24uaGFzKHR5cGUpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLl9idXR0b25CYXJUcmFuc2FjdGlvbi5nZXQodHlwZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gW107XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UXVpY2tBY2Nlc3NDb21wb25lbnQodHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnkpOiBUeXBlPFRyYW5zYWN0aW9uQmFzZUNvbXBvbmVudD4ge1xyXG4gICAgY29uc3Qga2V5OiB7dHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9ID0ge1xyXG4gICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICBjYXRlZ29yeTogY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIGxldCBlbnRyeTogVHlwZTxUcmFuc2FjdGlvbkJhc2VDb21wb25lbnQ+O1xyXG4gICAgdGhpcy5fcXVpY2tBY2Nlc3NDb21wb25lbnQuZm9yRWFjaCgodiwgdCwgbSkgPT4ge1xyXG4gICAgICBpZiAodC50eXBlID09PSBrZXkudHlwZSAmJiB0LmNhdGVnb3J5ID09PSBrZXkuY2F0ZWdvcnkpIHtcclxuICAgICAgICBlbnRyeSA9IHY7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gICAgcmV0dXJuIGVudHJ5O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldFRyYW5zYWN0aW9uR3JpZENvbXBvbmVudCh0eXBlOiBUcmFuc2FjdGlvbktpbmQsIGNhdGVnb3J5OiBUcmFuc2FjdGlvblR5cGVDYXRlZ29yeSk6IFR5cGU8VHJhbnNhY3Rpb25HcmlkQmFzZUNvbXBvbmVudD4ge1xyXG4gICAgY29uc3Qga2V5OiB7dHlwZTogVHJhbnNhY3Rpb25LaW5kLCBjYXRlZ29yeTogVHJhbnNhY3Rpb25UeXBlQ2F0ZWdvcnl9ID0ge1xyXG4gICAgICB0eXBlOiB0eXBlLFxyXG4gICAgICBjYXRlZ29yeTogY2F0ZWdvcnlcclxuICAgIH1cclxuICAgIGxldCBlbnRyeTogVHlwZTxUcmFuc2FjdGlvbkdyaWRCYXNlQ29tcG9uZW50PjtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uR3JpZENvbXBvbmVudC5mb3JFYWNoKCh2LCB0LCBtKSA9PiB7XHJcbiAgICAgIGlmICh0LnR5cGUgPT09IGtleS50eXBlICYmIHQuY2F0ZWdvcnkgPT09IGtleS5jYXRlZ29yeSkge1xyXG4gICAgICAgIGVudHJ5ID0gdjtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICByZXR1cm4gZW50cnk7XHJcbiAgfVxyXG59XHJcbiJdfQ==