@colijnit/transaction 12.1.18 → 12.1.21

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 (324) hide show
  1. package/bundles/colijnit-transaction.umd.js +4283 -2304
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +158 -127
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +159 -128
  6. package/esm2015/lib/assets/dictionary/text.properties.js +62 -1
  7. package/esm2015/lib/component/checkout/checkout.component.js +15 -13
  8. package/esm2015/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.js +41 -0
  9. package/esm2015/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.js +21 -0
  10. package/esm2015/lib/component/core/base/transaction-filter-base.component.js +61 -0
  11. package/esm2015/lib/component/core/base/transaction-filter-content-base.component.js +42 -0
  12. package/esm2015/lib/component/core/base/transaction-search-grid-base.component.js +25 -0
  13. package/esm2015/lib/component/core/base/transaction-search-tile-base.component.js +28 -0
  14. package/esm2015/lib/component/core/core.module.js +6 -3
  15. package/esm2015/lib/component/core/loader.component.js +44 -0
  16. package/esm2015/lib/component/editable-label/editable-label.component.js +60 -0
  17. package/esm2015/lib/component/editable-label/editable-label.module.js +21 -0
  18. package/esm2015/lib/component/payment/payment.component.js +25 -8
  19. package/esm2015/lib/component/payment/payment.module.js +4 -2
  20. package/esm2015/lib/component/payment-qr-code/payment-qr-code.component.js +42 -0
  21. package/esm2015/lib/component/payment-qr-code/payment-qr-code.module.js +21 -0
  22. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +1 -2
  23. package/esm2015/lib/component/transaction/transaction.component.js +2 -1
  24. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.js +97 -0
  25. package/esm2015/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.js +33 -0
  26. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +43 -7
  27. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.js +8 -3
  28. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.component.js +5 -2
  29. package/esm2015/lib/component/transaction-grid/transaction-base-grid/transaction-base-grid.module.js +3 -1
  30. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +3 -3
  31. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +15 -4
  32. package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.module.js +4 -3
  33. package/esm2015/lib/component/transaction-line/transaction-line.component.js +48 -137
  34. package/esm2015/lib/component/transaction-line/transaction-line.module.js +10 -3
  35. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +170 -0
  36. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.js +30 -0
  37. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +2 -1
  38. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +2 -1
  39. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +2 -1
  40. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.component.js +3 -2
  41. package/esm2015/lib/component/transaction-line-fields/transaction-line-fields-base.component.js +7 -1
  42. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.component.js +3 -2
  43. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +2 -1
  44. package/esm2015/lib/component/transaction-line-fields/transaction-line-price.component.js +36 -6
  45. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.component.js +2 -2
  46. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.js +3 -2
  47. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.component.js +2 -1
  48. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.component.js +3 -2
  49. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +2 -1
  50. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +2 -1
  51. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +3 -1
  52. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +5 -2
  53. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +25 -17
  54. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +9 -2
  55. package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.module.js +4 -2
  56. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.js +18 -9
  57. package/esm2015/lib/component/transaction-search/service/filter-request.service.js +77 -7
  58. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +40 -4
  59. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.js +95 -0
  60. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.module.js +19 -0
  61. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.js +56 -0
  62. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.js +34 -0
  63. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.js +56 -0
  64. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.js +34 -0
  65. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.js +137 -0
  66. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.js +25 -0
  67. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.js +224 -0
  68. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.js +31 -0
  69. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.js +230 -0
  70. package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.js +30 -0
  71. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.js +139 -0
  72. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.module.js +25 -0
  73. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.js +224 -0
  74. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.module.js +31 -0
  75. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.js +255 -0
  76. package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.module.js +30 -0
  77. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.js +81 -0
  78. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.module.js +19 -0
  79. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.js +78 -0
  80. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.js +24 -0
  81. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.js +78 -0
  82. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.js +26 -0
  83. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.js +113 -0
  84. package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.js +26 -0
  85. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.js +61 -26
  86. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +19 -6
  87. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.js +58 -0
  88. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.js +25 -0
  89. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.js +66 -0
  90. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.js +28 -0
  91. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.js +89 -0
  92. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.js +19 -0
  93. package/esm2015/lib/component/transaction-search/transaction-search.component.js +54 -12
  94. package/esm2015/lib/component/transaction-search/transaction-search.module.js +6 -2
  95. package/esm2015/lib/enum/direction.enum.js +9 -0
  96. package/esm2015/lib/enum/icon.enum.js +7 -1
  97. package/esm2015/lib/enum/search-view-mode.enum.js +7 -0
  98. package/esm2015/lib/model/icon-svg.js +7 -1
  99. package/esm2015/lib/model/transaction-search-result.js +3 -0
  100. package/esm2015/lib/service/payment.service.js +13 -3
  101. package/esm2015/lib/service/transaction-connector.service.js +156 -38
  102. package/esm2015/lib/service/transaction-mapping.service.js +58 -1
  103. package/esm2015/lib/service/transaction.service.js +14 -2
  104. package/esm2015/public_api.js +5 -1
  105. package/fesm2015/colijnit-transaction.js +4463 -2001
  106. package/fesm2015/colijnit-transaction.js.map +1 -1
  107. package/lib/component/checkout/checkout.component.d.ts +1 -1
  108. package/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.component.d.ts +13 -0
  109. package/lib/component/core/base/components/default-ok-cancel-buttons/default-ok-cancel-buttons.module.d.ts +2 -0
  110. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_layout.scss +4 -0
  111. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_material-definition.scss +0 -0
  112. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/_theme.scss +0 -0
  113. package/lib/component/core/base/{style → components/default-ok-cancel-buttons/style}/material.scss +0 -0
  114. package/lib/component/{transaction-search/transaction-filter/transaction-filter.component.d.ts → core/base/transaction-filter-base.component.d.ts} +8 -3
  115. package/lib/component/core/base/transaction-filter-content-base.component.d.ts +22 -0
  116. package/lib/component/{transaction-search-grid/transaction-search-grid.component.d.ts → core/base/transaction-search-grid-base.component.d.ts} +1 -3
  117. package/lib/component/{transaction-search/transaction-tile/transaction-tile.component.d.ts → core/base/transaction-search-tile-base.component.d.ts} +3 -3
  118. package/lib/component/core/loader.component.d.ts +2 -0
  119. package/lib/component/editable-label/editable-label.component.d.ts +15 -0
  120. package/lib/component/editable-label/editable-label.module.d.ts +2 -0
  121. package/lib/component/editable-label/style/_layout.scss +4 -0
  122. package/lib/component/{transaction-search/transaction-filter-content-logistics → editable-label}/style/_material-definition.scss +0 -0
  123. package/lib/component/editable-label/style/_theme.scss +4 -0
  124. package/lib/component/editable-label/style/material.scss +4 -0
  125. package/lib/component/payment/payment.component.d.ts +5 -1
  126. package/lib/component/payment/style/material.scss +1 -0
  127. package/lib/component/payment-qr-code/payment-qr-code.component.d.ts +13 -0
  128. package/lib/component/payment-qr-code/payment-qr-code.module.d.ts +2 -0
  129. package/lib/component/payment-qr-code/style/_layout.scss +15 -0
  130. package/lib/component/{transaction-search/transaction-tile → payment-qr-code}/style/_material-definition.scss +0 -0
  131. package/lib/component/payment-qr-code/style/_theme.scss +4 -0
  132. package/lib/component/payment-qr-code/style/material.scss +4 -0
  133. package/lib/component/tile/style/_material-definition.scss +2 -1
  134. package/lib/component/transaction/style/_layout.scss +1 -0
  135. package/lib/component/transaction-confirmation-details/style/_layout.scss +75 -0
  136. package/lib/component/transaction-confirmation-details/style/_material-definition.scss +5 -0
  137. package/lib/component/transaction-confirmation-details/style/_theme.scss +7 -0
  138. package/lib/component/{transaction-search/transaction-filter-content-order → transaction-confirmation-details}/style/material.scss +1 -1
  139. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.component.d.ts +20 -0
  140. package/lib/component/transaction-confirmation-details/transaction-confirmation-details.module.d.ts +2 -0
  141. package/lib/component/transaction-confirmation-history/style/_layout.scss +4 -1
  142. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.d.ts +22 -2
  143. package/lib/component/transaction-grid/transaction-base-grid/style/_layout.scss +4 -0
  144. package/lib/component/transaction-header/transaction-header/style/_layout.scss +8 -19
  145. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +5 -0
  146. package/lib/component/transaction-header/transaction-header-payment/style/_material-definition.scss +5 -2
  147. package/lib/component/transaction-header/transaction-header-payment/style/_theme.scss +1 -0
  148. package/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.d.ts +7 -0
  149. package/lib/component/transaction-line/style/_layout.scss +95 -75
  150. package/lib/component/transaction-line/style/_material-definition.scss +7 -3
  151. package/lib/component/transaction-line/style/_theme.scss +3 -17
  152. package/lib/component/transaction-line/transaction-line.component.d.ts +4 -17
  153. package/lib/component/transaction-line-action-buttons/style/_layout.scss +106 -0
  154. package/lib/component/transaction-line-action-buttons/style/_material-definition.scss +7 -0
  155. package/lib/component/transaction-line-action-buttons/style/_theme.scss +7 -0
  156. package/lib/component/{transaction-search/transaction-filter-content-article → transaction-line-action-buttons}/style/material.scss +0 -1
  157. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +46 -0
  158. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.d.ts +2 -0
  159. package/lib/component/transaction-line-fields/transaction-line-fields-base.component.d.ts +2 -0
  160. package/lib/component/transaction-line-fields/transaction-line-price.component.d.ts +7 -0
  161. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +1 -0
  162. package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.d.ts +4 -1
  163. package/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.d.ts +1 -0
  164. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_layout.scss +12 -0
  165. package/lib/component/transaction-quick-access/transaction-quick-access-overview/style/_material-definition.scss +2 -0
  166. package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.d.ts +2 -1
  167. package/lib/component/transaction-search/service/filter-request.service.d.ts +67 -1
  168. package/lib/component/transaction-search/service/transaction-search.service.d.ts +11 -0
  169. package/lib/component/transaction-search/style/_layout.scss +36 -18
  170. package/lib/component/transaction-search/style/_material-definition.scss +70 -14
  171. package/lib/component/transaction-search/style/_theme.scss +4 -0
  172. package/lib/component/transaction-search/style/material.scss +4 -3
  173. package/lib/component/transaction-search/transaction-filter/transaction-filter/style/_layout.scss +55 -0
  174. package/lib/component/transaction-search/transaction-filter/transaction-filter/style/_material-definition.scss +0 -0
  175. package/lib/component/transaction-search/transaction-filter/transaction-filter/style/_theme.scss +8 -0
  176. package/lib/component/transaction-search/transaction-filter/transaction-filter/style/material.scss +6 -0
  177. package/lib/component/transaction-search/transaction-filter/transaction-filter/transaction-filter.component.d.ts +26 -0
  178. package/lib/component/transaction-search/transaction-filter/{transaction-filter.module.d.ts → transaction-filter/transaction-filter.module.d.ts} +0 -0
  179. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_layout.scss +4 -0
  180. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_material-definition.scss +1 -0
  181. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/_theme.scss +4 -0
  182. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/style/material.scss +4 -0
  183. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.component.d.ts +9 -0
  184. package/lib/component/transaction-search/transaction-filter/transaction-purchase-order-filter/transaction-purchase-order-filter.module.d.ts +2 -0
  185. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_layout.scss +4 -0
  186. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_material-definition.scss +1 -0
  187. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/_theme.scss +6 -0
  188. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/style/material.scss +3 -0
  189. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.component.d.ts +9 -0
  190. package/lib/component/transaction-search/transaction-filter/transaction-sales-order-filter/transaction-sales-order-filter.module.d.ts +2 -0
  191. package/lib/component/transaction-search/transaction-filter-categories/style/_layout.scss +8 -8
  192. package/lib/component/transaction-search/transaction-filter-categories/style/_theme.scss +3 -3
  193. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_layout.scss +2 -0
  194. package/lib/component/{transaction-search-grid → transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article}/style/_material-definition.scss +0 -0
  195. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/_theme.scss +4 -0
  196. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/style/material.scss +3 -0
  197. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.d.ts +38 -0
  198. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.module.d.ts +2 -0
  199. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_layout.scss +2 -0
  200. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_material-definition.scss +0 -0
  201. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/_theme.scss +4 -0
  202. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/style/material.scss +3 -0
  203. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.component.d.ts +36 -0
  204. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-logistics/transaction-purchase-order-filter-content-logistics.module.d.ts +2 -0
  205. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_layout.scss +2 -0
  206. package/lib/component/transaction-search/{transaction-filter-content-article → transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order}/style/_material-definition.scss +0 -0
  207. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/_theme.scss +4 -0
  208. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/style/material.scss +3 -0
  209. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.d.ts +48 -0
  210. package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.module.d.ts +2 -0
  211. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_layout.scss +2 -0
  212. package/lib/component/transaction-search/{transaction-filter-content-order → transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article}/style/_material-definition.scss +0 -0
  213. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/_theme.scss +4 -0
  214. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/style/material.scss +3 -0
  215. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.d.ts +38 -0
  216. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.module.d.ts +2 -0
  217. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_layout.scss +2 -0
  218. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_material-definition.scss +0 -0
  219. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/_theme.scss +4 -0
  220. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/style/material.scss +3 -0
  221. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.component.d.ts +36 -0
  222. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-logistics/transaction-sales-order-filter-content-logistics.module.d.ts +2 -0
  223. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_layout.scss +2 -0
  224. package/lib/component/transaction-search/{transaction-filter → transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order}/style/_material-definition.scss +0 -0
  225. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/_theme.scss +4 -0
  226. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/style/material.scss +3 -0
  227. package/lib/component/transaction-search/{transaction-filter-content-order/transaction-filter-content-order.component.d.ts → transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.d.ts} +8 -15
  228. package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.module.d.ts +2 -0
  229. package/lib/component/transaction-search/{transaction-filter-content-order → transaction-filter-content}/style/_layout.scss +2 -4
  230. package/lib/component/transaction-search/transaction-filter-content/style/_material-definition.scss +0 -0
  231. package/lib/component/transaction-search/transaction-filter-content/style/_theme.scss +4 -0
  232. package/lib/component/transaction-search/transaction-filter-content/style/material.scss +3 -0
  233. package/lib/component/transaction-search/transaction-filter-historic-state/style/material.scss +0 -1
  234. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_layout.scss +4 -0
  235. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_material-definition.scss +0 -0
  236. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/style/_theme.scss +4 -0
  237. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/style/material.scss +3 -0
  238. package/lib/component/transaction-search/transaction-search-grid/transaction-search-grid/transaction-search-grid.component.d.ts +22 -0
  239. package/lib/component/{transaction-search-grid → transaction-search/transaction-search-grid/transaction-search-grid}/transaction-search-grid.module.d.ts +0 -0
  240. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_layout.scss +4 -0
  241. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_material-definition.scss +0 -0
  242. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/_theme.scss +4 -0
  243. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/style/material.scss +3 -0
  244. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.component.d.ts +7 -0
  245. package/lib/component/transaction-search/transaction-search-grid/transaction-search-purchase-order-grid/transaction-search-purchase-order-grid.module.d.ts +2 -0
  246. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_layout.scss +4 -0
  247. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_material-definition.scss +1 -0
  248. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/_theme.scss +4 -0
  249. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/style/material.scss +3 -0
  250. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.component.d.ts +7 -0
  251. package/lib/component/transaction-search/transaction-search-grid/transaction-search-sales-order-grid/transaction-search-sales-order-grid.module.d.ts +2 -0
  252. package/lib/component/transaction-search/transaction-search-header/style/_layout.scss +83 -0
  253. package/lib/component/transaction-search/transaction-search-header/style/_material-definition.scss +1 -0
  254. package/lib/component/transaction-search/transaction-search-header/style/_theme.scss +4 -0
  255. package/lib/component/transaction-search/transaction-search-header/style/material.scss +5 -0
  256. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.d.ts +32 -0
  257. package/lib/component/transaction-search/transaction-search-header/transaction-search-header.module.d.ts +2 -0
  258. package/lib/component/transaction-search/transaction-search-result/style/_layout.scss +8 -14
  259. package/lib/component/transaction-search/transaction-search-result/style/_theme.scss +1 -1
  260. package/lib/component/transaction-search/transaction-search-result/style/material.scss +2 -0
  261. package/lib/component/transaction-search/transaction-search-result/transaction-search-result.component.d.ts +17 -6
  262. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_layout.scss +4 -0
  263. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_material-definition.scss +0 -0
  264. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/_theme.scss +4 -0
  265. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/style/material.scss +3 -0
  266. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.component.d.ts +3 -0
  267. package/lib/component/transaction-search/transaction-search-tile/transaction-search-purchase-order-tile/transaction-search-purchase-order-tile.module.d.ts +2 -0
  268. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_layout.scss +5 -0
  269. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_material-definition.scss +0 -0
  270. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/style/_theme.scss +4 -0
  271. package/lib/component/transaction-search/{transaction-tile → transaction-search-tile/transaction-search-sales-order-tile}/style/material.scss +0 -0
  272. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.component.d.ts +6 -0
  273. package/lib/component/transaction-search/transaction-search-tile/transaction-search-sales-order-tile/transaction-search-sales-order-tile.module.d.ts +2 -0
  274. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_layout.scss +108 -0
  275. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_material-definition.scss +0 -0
  276. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/style/_theme.scss +53 -0
  277. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/style/material.scss +3 -0
  278. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.component.d.ts +25 -0
  279. package/lib/component/transaction-search/transaction-search-tile/transaction-search-tile/transaction-search-tile.module.d.ts +2 -0
  280. package/lib/component/transaction-search/transaction-search.component.d.ts +15 -2
  281. package/lib/enum/direction.enum.d.ts +6 -0
  282. package/lib/enum/icon.enum.d.ts +6 -0
  283. package/lib/enum/search-view-mode.enum.d.ts +4 -0
  284. package/lib/model/transaction-search-result.d.ts +5 -0
  285. package/lib/service/payment.service.d.ts +3 -1
  286. package/lib/service/transaction-connector.service.d.ts +9 -3
  287. package/lib/service/transaction-mapping.service.d.ts +9 -0
  288. package/lib/service/transaction.service.d.ts +6 -2
  289. package/lib/style/_mixin.scss +6 -0
  290. package/lib/style/_variables.scss +0 -32
  291. package/package.json +1 -1
  292. package/public_api.d.ts +4 -0
  293. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.component.js +0 -87
  294. package/esm2015/lib/component/transaction-search/transaction-filter/transaction-filter.module.js +0 -34
  295. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.js +0 -143
  296. package/esm2015/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.module.js +0 -25
  297. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.js +0 -228
  298. package/esm2015/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.js +0 -31
  299. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.component.js +0 -255
  300. package/esm2015/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.module.js +0 -30
  301. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.component.js +0 -77
  302. package/esm2015/lib/component/transaction-search/transaction-tile/transaction-tile.module.js +0 -28
  303. package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.component.js +0 -86
  304. package/esm2015/lib/component/transaction-search-grid/transaction-search-grid.module.js +0 -26
  305. package/lib/component/transaction-search/transaction-filter/style/_layout.scss +0 -53
  306. package/lib/component/transaction-search/transaction-filter/style/_theme.scss +0 -8
  307. package/lib/component/transaction-search/transaction-filter/style/material.scss +0 -7
  308. package/lib/component/transaction-search/transaction-filter-content-article/style/_layout.scss +0 -13
  309. package/lib/component/transaction-search/transaction-filter-content-article/style/_theme.scss +0 -6
  310. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.component.d.ts +0 -50
  311. package/lib/component/transaction-search/transaction-filter-content-article/transaction-filter-content-article.module.d.ts +0 -2
  312. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_layout.scss +0 -12
  313. package/lib/component/transaction-search/transaction-filter-content-logistics/style/_theme.scss +0 -6
  314. package/lib/component/transaction-search/transaction-filter-content-logistics/style/material.scss +0 -5
  315. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.component.d.ts +0 -37
  316. package/lib/component/transaction-search/transaction-filter-content-logistics/transaction-filter-content-logistics.module.d.ts +0 -2
  317. package/lib/component/transaction-search/transaction-filter-content-order/style/_theme.scss +0 -6
  318. package/lib/component/transaction-search/transaction-filter-content-order/transaction-filter-content-order.module.d.ts +0 -2
  319. package/lib/component/transaction-search/transaction-tile/style/_layout.scss +0 -91
  320. package/lib/component/transaction-search/transaction-tile/style/_theme.scss +0 -46
  321. package/lib/component/transaction-search/transaction-tile/transaction-tile.module.d.ts +0 -2
  322. package/lib/component/transaction-search-grid/style/_layout.scss +0 -6
  323. package/lib/component/transaction-search-grid/style/_theme.scss +0 -6
  324. package/lib/component/transaction-search-grid/style/material.scss +0 -7
@@ -1,5 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
- import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { Component, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild, ViewEncapsulation } from "@angular/core";
3
3
  import { StockStatus } from "@colijnit/transactionapi/build/enum/refcode/stock-status.enum";
4
4
  import { TransactionService } from "../../service/transaction.service";
5
5
  import { DictionaryService } from "../../service/dictionary.service";
@@ -7,6 +7,7 @@ import { Icon } from "../../enum/icon.enum";
7
7
  import { IconCacheService } from "../../service/icon-cache.service";
8
8
  import { DialogService } from "../../service/dialog.service";
9
9
  import { TransactionImageService } from "../../service/transaction-image.service";
10
+ import { TransactionLineActionButtonsComponent } from "../transaction-line-action-buttons/transaction-line-action-buttons.component";
10
11
  export class TransactionLineComponent {
11
12
  constructor(service, iconCacheService, _dialogService, _dictionaryService, _imageService) {
12
13
  this.service = service;
@@ -19,9 +20,8 @@ export class TransactionLineComponent {
19
20
  this.waitingForUserAction = new EventEmitter();
20
21
  this.sidePanelButtonClicked = new EventEmitter();
21
22
  this.stock = StockStatus.Low;
22
- this.showTransactionArticleText = false;
23
- this.showTransactionArticleTextOverview = false;
24
23
  this.mouseOver = false;
24
+ this.readonly = false;
25
25
  }
26
26
  set line(value) {
27
27
  this._line = value;
@@ -29,6 +29,7 @@ export class TransactionLineComponent {
29
29
  this.isText = this._line.isText;
30
30
  this.isArticle = this._line.isArticle;
31
31
  this.isSelected = this._line.isSelected;
32
+ this.readonly = this._line.hasInvoices;
32
33
  this._loadLineImage();
33
34
  }
34
35
  get line() {
@@ -62,30 +63,13 @@ export class TransactionLineComponent {
62
63
  }
63
64
  });
64
65
  }
65
- handleTransactionArticleText(event) {
66
- this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.line.articleNumber);
67
- this.textToEdit = undefined;
68
- this._showArticleTextDialog();
69
- }
70
- handleTransactionArticleTextOverview(event) {
71
- this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.line.articleNumber);
72
- this.textToEdit = undefined;
73
- this._showArticleTextOverviewDialog();
74
- }
75
- saveTransactionArticleLineText(transactionAddTextLineRequest) {
76
- this.service.addTextLine(transactionAddTextLineRequest.showOnDocuments, transactionAddTextLineRequest.text, 0, true, transactionAddTextLineRequest.refArticleLineNr).then(() => {
77
- this._hideArticleTextDialog();
78
- });
79
- }
80
- closeTransactionArticleText(event) {
81
- this._hideArticleTextDialog();
82
- }
83
- closeTransactionArticleTextOverview(event) {
84
- this._hideArticleTextOverviewDialog();
85
- }
86
66
  handleOpenArticleText(text) {
87
- this.textToEdit = text;
88
- this._showArticleTextDialog();
67
+ this.transactionLineActionButtons.textToEdit = text;
68
+ this.transactionLineActionButtons.showArticleTextDialog();
69
+ }
70
+ handleShowSidePanel() {
71
+ this.sidePanelButtonClicked.next();
72
+ this.waitingForUserAction.next(true);
89
73
  }
90
74
  _loadLineImage() {
91
75
  return __awaiter(this, void 0, void 0, function* () {
@@ -96,70 +80,6 @@ export class TransactionLineComponent {
96
80
  }
97
81
  });
98
82
  }
99
- // private async _confirmAction(lineOperationResponse: LineOperationResponse): Promise<void> {
100
- // this.currentReason.confirmation = await this._promptService.showYesNo(lineOperationResponse.pendingReason, " ");
101
- // this.service.resolvePendingLineReason(this.currentReason)
102
- // .then((value: LineOperationResponse) => {
103
- // this._handleLine(value);
104
- // });
105
- // }
106
- // private async _showInformation(lineOperationResponse: LineOperationResponse): Promise<void> {
107
- // await this._promptService.showOkModal(lineOperationResponse.pendingReason, " ");
108
- // this.service.resolvePendingLineReason(this.currentReason)
109
- // .then((value: LineOperationResponse) => {
110
- // this._handleLine(value);
111
- // });
112
- // }
113
- // private async _handleLine(lineOperationResponse: LineOperationResponse): Promise<void> {
114
- // if (lineOperationResponse === undefined) {
115
- // return;
116
- // }
117
- // this.currentReason = new ResolvePendingLineReasonRequest(lineOperationResponse.lineUuid,
118
- // lineOperationResponse.pendingReason, lineOperationResponse.pendingReasonType);
119
- //
120
- // switch (lineOperationResponse.pendingReasonType) {
121
- // case PendingReasonType.ABORTED:
122
- // case PendingReasonType.CANCELLED:
123
- // this.localAmount = this._line.amount;
124
- // if (lineOperationResponse.pendingReason !== "USER_DECISION") {
125
- // await this._promptService.showNotification(this._dictionaryService.get(lineOperationResponse.pendingReason), " ");
126
- // }
127
- // break;
128
- // case PendingReasonType.CONFIRMATION_NEEDED:
129
- // await this._confirmAction(lineOperationResponse);
130
- // break;
131
- // case PendingReasonType.NON_CRITICAL_DISCONTINUATION:
132
- // await this._showInformation(lineOperationResponse);
133
- // break;
134
- // case PendingReasonType.INVALID_LOGISTICS:
135
- // this.localAmount = this._line.amount;
136
- // await this._promptService.showError(this._dictionaryService.get(lineOperationResponse.pendingReason), " ");
137
- // break;
138
- // case PendingReasonType.NONE:
139
- // default:
140
- // break;
141
- // }
142
- // }
143
- _showArticleTextDialog() {
144
- this.showTransactionArticleText = true;
145
- this.waitingForUserAction.next(true);
146
- }
147
- _hideArticleTextDialog() {
148
- this.showTransactionArticleText = false;
149
- this.waitingForUserAction.next(false);
150
- }
151
- _showArticleTextOverviewDialog() {
152
- this.showTransactionArticleTextOverview = true;
153
- this.waitingForUserAction.next(true);
154
- }
155
- _hideArticleTextOverviewDialog() {
156
- this.showTransactionArticleTextOverview = false;
157
- this.waitingForUserAction.next(false);
158
- }
159
- handleShowSidePanel(event) {
160
- this.sidePanelButtonClicked.next();
161
- this.waitingForUserAction.next(true);
162
- }
163
83
  }
164
84
  TransactionLineComponent.decorators = [
165
85
  { type: Component, args: [{
@@ -176,6 +96,7 @@ TransactionLineComponent.decorators = [
176
96
  <span [textContent]="line.goodDescription" class="transaction-line-description-description"></span>
177
97
  <span *ngIf="line.goodDescription && line.articleNumber" class="transaction-line-description-divider">|</span>
178
98
  <span [textContent]="line.articleNumber" class="transaction-line-description-sku"></span>
99
+ <co-icon class="delete-icon" [iconData]="iconCacheService.getIcon(icons.TrashCanLight)" (click)="deleteTransactionLineClick()"></co-icon>
179
100
  </div>
180
101
  <div *ngIf=!preview class="article-text-wrapper">
181
102
  <div class="article-text" *ngFor="let text of line.articleTestAsArray">
@@ -187,40 +108,46 @@ TransactionLineComponent.decorators = [
187
108
  </div>
188
109
  </div>
189
110
  <div *ngIf=!preview class="transaction-line-stock">
190
- <span [textContent]="'STOCK' | localize" class="small-font"></span>
191
- <stock-status-indicator [model]="stock"></stock-status-indicator>
192
- <span [textContent]="'DELIVERY_TIME_PERIOD' | localize" class="small-font"></span>
193
- <!-- <span [textContent]="line.deliveryDate | deliveryTime"></span>-->
194
- </div>
195
- <div *ngIf=!preview class="transaction-line-amount">
196
- <co-input-number-picker class="amount-number-picker"
197
- [(model)]="localAmount" [min]="0"
198
- [readonly]="true"
199
- (modelChange)="changeLineAmount($event)"></co-input-number-picker>
200
- </div>
201
- <div class="transaction-line-delete" *ngIf="preview">
202
- <div class="delete-wrapper" (click)="deleteTransactionLineClick()">
203
- <icon class="delete-icon" [icon]="icons.Cancel"></icon>
204
- <div class="delete-link"
205
- [textContent]="'DELETE_TRANSACTION_LINE' | localize:false">
206
- </div>
111
+ <div class="transaction-line-stock-wrapper">
112
+ <span [textContent]="'STOCK' | localize" class="small-font"></span>
113
+ <stock-status-indicator [model]="stock"></stock-status-indicator>
114
+ </div>
115
+ <div class="transaction-line-stock-wrapper">
116
+ <span [textContent]="'DELIVERY_DATE' | localize" class="small-font"></span>
117
+ <span [textContent]="line.deliveryDate | date:'dd MMM YYYY'"></span>
207
118
  </div>
208
119
  </div>
209
120
  <div class="transaction-line-totals">
210
- <span [textContent]="line.displayNetLineTotal | coCurrency: true"></span>
121
+ <co-transaction-line-price class="transaction-line-totals-price price"
122
+ [transactionLine]="line"
123
+ [showLabel]="false"
124
+ [defaultEditMode]="false"
125
+ ></co-transaction-line-price>
126
+ <co-editable-label class="transaction-line-totals-discount discount"
127
+ [model]="line.lineTotalDiscountAmount | coCurrency"
128
+ [editModel]="line.lineTotalDiscountAmount"
129
+ [readonly]="readonly"
130
+ [commit]="true"
131
+ ></co-editable-label>
132
+ <div *ngIf=!preview class="transaction-line-totals-amount">
133
+ <co-input-number-picker class="amount-number-picker"
134
+ [(model)]="localAmount" [min]="0"
135
+ [readonly]="readonly"
136
+ (modelChange)="changeLineAmount($event)"></co-input-number-picker>
137
+ </div>
138
+ <co-editable-label class="transaction-line-totals-total price"
139
+ [model]="line.displayNetLineTotal | coCurrency"
140
+ [editModel]="line.displayNetLineTotal"
141
+ [readonly]="readonly"
142
+ [commit]="!readonly"
143
+ ></co-editable-label>
211
144
  </div>
212
145
  <div *ngIf="!preview" class="transaction-line-buttons">
213
- <co-button class="transaction-line-overview-button circle" [class.show]="mouseOver || isSelected" [iconData]="iconCacheService.getIcon(icons.Txt)" (click)="handleTransactionArticleTextOverview($event)"></co-button>
214
- <co-button class="transaction-line-add-text-button circle" [class.show]="mouseOver || isSelected" [iconData]="iconCacheService.getIcon(icons.Txt)" (click)="handleTransactionArticleText($event)"></co-button>
215
- <co-button class="transaction-line-show-sidebar-button circle" [class.show]="mouseOver || isSelected" [iconData]="iconCacheService.getIcon(icons.MasterDetail)" (click)="handleShowSidePanel($event)"></co-button>
216
- </div>
217
- </div>
218
- <div class="transaction-line-delete" *ngIf="!preview">
219
- <div class="delete-wrapper" (click)="deleteTransactionLineClick()">
220
- <icon class="delete-icon" [icon]="icons.Cancel"></icon>
221
- <div class="delete-link"
222
- [textContent]="'DELETE_TRANSACTION_LINE' | localize:false">
223
- </div>
146
+ <co-transaction-line-action-buttons
147
+ [transactionLine]="line"
148
+ (waitingForUserAction)="waitingForUserAction.next($event)"
149
+ (sidePanelButtonClicked)="handleShowSidePanel()"
150
+ ></co-transaction-line-action-buttons>
224
151
  </div>
225
152
  </div>
226
153
  </ng-container>
@@ -236,23 +163,6 @@ TransactionLineComponent.decorators = [
236
163
  </div>
237
164
  </ng-container>
238
165
  </div>
239
- <co-transaction-article-text-overview *ngIf="showTransactionArticleTextOverview"
240
- [header]="articleTextHeader | localize"
241
- [transactionLine]="line"
242
- (saveClick)="saveTransactionArticleLineText($event)"
243
- (closeClick)="closeTransactionArticleTextOverview($event)"
244
- (cancelClick)="closeTransactionArticleTextOverview($event)"
245
- ></co-transaction-article-text-overview>
246
- <co-transaction-article-text *ngIf="showTransactionArticleText"
247
- [header]="articleTextHeader | localize"
248
- [articleLineNr]="line.lineNr"
249
- [articleRef]="line.articleNumber"
250
- [transactionLine]="line"
251
- [editText]="textToEdit"
252
- (saveClick)="saveTransactionArticleLineText($event)"
253
- (closeClick)="closeTransactionArticleText($event)"
254
- (cancelClick)="closeTransactionArticleText($event)"
255
- ></co-transaction-article-text>
256
166
  `,
257
167
  encapsulation: ViewEncapsulation.None
258
168
  },] }
@@ -269,6 +179,7 @@ TransactionLineComponent.propDecorators = {
269
179
  line: [{ type: Input }],
270
180
  waitingForUserAction: [{ type: Output }],
271
181
  sidePanelButtonClicked: [{ type: Output }],
182
+ transactionLineActionButtons: [{ type: ViewChild, args: [TransactionLineActionButtonsComponent,] }],
272
183
  isText: [{ type: HostBinding, args: ["class.is-text",] }],
273
184
  isArticle: [{ type: HostBinding, args: ["class.is-article",] }],
274
185
  isSelected: [{ type: HostBinding, args: ["class.is-selected",] }, { type: Input, args: ['selected',] }],
@@ -276,4 +187,4 @@ TransactionLineComponent.propDecorators = {
276
187
  handleMouseOver: [{ type: HostListener, args: ["mouseover", ["$event"],] }],
277
188
  handleMouseLeave: [{ type: HostListener, args: ["mouseleave", ["$event"],] }]
278
189
  };
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkgsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBRW5FLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFFM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFnR2hGLE1BQU0sT0FBTyx3QkFBd0I7SUFnRW5DLFlBQ1MsT0FBMkIsRUFDM0IsZ0JBQWtDLEVBQ2pDLGNBQTZCLEVBQzdCLGtCQUFxQyxFQUNyQyxhQUFzQztRQUp2QyxZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBQzdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsa0JBQWEsR0FBYixhQUFhLENBQXlCO1FBcEVoQyxVQUFLLEdBQWdCLElBQUksQ0FBQztRQUluQyxZQUFPLEdB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QUVNLG1CQUFtQixDQUFDLEtBQWlCO1FBQzFDLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7OztZQTNTRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtnQkFDL0IsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlGVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBdkdPLGtCQUFrQjtZQUlsQixnQkFBZ0I7WUFFaEIsYUFBYTtZQUxiLGlCQUFpQjtZQU9qQix1QkFBdUI7OztzQkFtRzVCLFdBQVcsU0FBQyxlQUFlLGNBQzNCLEtBQUs7bUJBR0wsS0FBSzttQ0FjTCxNQUFNO3FDQUdOLE1BQU07cUJBR04sV0FBVyxTQUFDLGVBQWU7d0JBRzNCLFdBQVcsU0FBQyxrQkFBa0I7eUJBRzlCLFdBQVcsU0FBQyxtQkFBbUIsY0FDL0IsS0FBSyxTQUFDLFVBQVU7d0JBR2hCLFdBQVcsU0FBQywyQkFBMkI7OEJBS3ZDLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xyXG5pbXBvcnQge1N0b2NrU3RhdHVzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vcmVmY29kZS9zdG9jay1zdGF0dXMuZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xyXG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcclxuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFkZFRleHRMaW5lUmVxdWVzdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hZGQtdGV4dC1saW5lLXJlcXVlc3QuYm9cIjtcclxuaW1wb3J0IHtEaWFsb2dTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS9kaWFsb2cuc2VydmljZVwiO1xyXG5pbXBvcnQge1Jlc29sdmVMaW5lUGVuZGluZ1JlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXRyYW5zYWN0aW9uLWxpbmVcIixcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmVcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuaXNBcnRpY2xlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtd3JhcHBlclwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtaW1hZ2VcIiBbY2xhc3MucHJldmlld109XCJwcmV2aWV3XCI+XHJcbiAgICAgICAgICAgIDxjby1pbWFnZS1kaXNwbGF5IFttb2RlbF09XCJpbWFnZVwiPjwvY28taW1hZ2UtZGlzcGxheT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVzY3JpcHRpb25cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlc2NyaXB0aW9uLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5nb29kRGVzY3JpcHRpb25cIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVzY3JpcHRpb24tZGVzY3JpcHRpb25cIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaW5lLmdvb2REZXNjcmlwdGlvbiAmJiBsaW5lLmFydGljbGVOdW1iZXJcIiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVzY3JpcHRpb24tZGl2aWRlclwiPnw8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cImxpbmUuYXJ0aWNsZU51bWJlclwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZXNjcmlwdGlvbi1za3VcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwiYXJ0aWNsZS10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXJ0aWNsZS10ZXh0XCIgKm5nRm9yPVwibGV0IHRleHQgb2YgbGluZS5hcnRpY2xlVGVzdEFzQXJyYXlcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwidGV4dCB8IHNhZmVIdG1sXCIgKGRibGNsaWNrKT1cImhhbmRsZU9wZW5BcnRpY2xlVGV4dCh0ZXh0KVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJjb25maWd1cmF0aW9uLXRleHQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwibGluZS5jb25maWd1cmF0aW9uUmVhZGFibGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1zdG9ja1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ1NUT0NLJyB8IGxvY2FsaXplXCIgY2xhc3M9XCJzbWFsbC1mb250XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8c3RvY2stc3RhdHVzLWluZGljYXRvciBbbW9kZWxdPVwic3RvY2tcIj48L3N0b2NrLXN0YXR1cy1pbmRpY2F0b3I+XHJcbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfVElNRV9QRVJJT0QnIHwgbG9jYWxpemVcIiBjbGFzcz1cInNtYWxsLWZvbnRcIj48L3NwYW4+XHJcbjwhLS0gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5kZWxpdmVyeURhdGUgfCBkZWxpdmVyeVRpbWVcIj48L3NwYW4+LS0+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWFtb3VudFwiPlxyXG4gICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cImFtb3VudC1udW1iZXItcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhtb2RlbCldPVwibG9jYWxBbW91bnRcIiBbbWluXT1cIjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VMaW5lQW1vdW50KCRldmVudClcIj48L2NvLWlucHV0LW51bWJlci1waWNrZXI+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlbGV0ZVwiICpuZ0lmPVwicHJldmlld1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLXdyYXBwZXJcIiAoY2xpY2spPVwiZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICAgIDxpY29uIGNsYXNzPVwiZGVsZXRlLWljb25cIiBbaWNvbl09XCJpY29ucy5DYW5jZWxcIj48L2ljb24+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1saW5rXCJcclxuICAgICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInREVMRVRFX1RSQU5TQUNUSU9OX0xJTkUnIHwgbG9jYWxpemU6ZmFsc2VcIj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFsc1wiPlxyXG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5kaXNwbGF5TmV0TGluZVRvdGFsIHwgY29DdXJyZW5jeTogdHJ1ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIiFwcmV2aWV3XCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWJ1dHRvbnNcIj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtb3ZlcnZpZXctYnV0dG9uIGNpcmNsZVwiIFtjbGFzcy5zaG93XT1cIm1vdXNlT3ZlciB8fCBpc1NlbGVjdGVkXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UeHQpXCIgKGNsaWNrKT1cImhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygkZXZlbnQpXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgIDxjby1idXR0b24gY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWFkZC10ZXh0LWJ1dHRvbiBjaXJjbGVcIiBbY2xhc3Muc2hvd109XCJtb3VzZU92ZXIgfHwgaXNTZWxlY3RlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuVHh0KVwiIChjbGljayk9XCJoYW5kbGVUcmFuc2FjdGlvbkFydGljbGVUZXh0KCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2hvdy1zaWRlYmFyLWJ1dHRvbiBjaXJjbGVcIiBbY2xhc3Muc2hvd109XCJtb3VzZU92ZXIgfHwgaXNTZWxlY3RlZFwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuTWFzdGVyRGV0YWlsKVwiIChjbGljayk9XCJoYW5kbGVTaG93U2lkZVBhbmVsKCRldmVudClcIj48L2NvLWJ1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlbGV0ZVwiICpuZ0lmPVwiIXByZXZpZXdcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtd3JhcHBlclwiIChjbGljayk9XCJkZWxldGVUcmFuc2FjdGlvbkxpbmVDbGljaygpXCI+XHJcbiAgICAgICAgICAgIDxpY29uIGNsYXNzPVwiZGVsZXRlLWljb25cIiBbaWNvbl09XCJpY29ucy5DYW5jZWxcIj48L2ljb24+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWxldGUtbGlua1wiXHJcbiAgICAgICAgICAgICAgICAgW3RleHRDb250ZW50XT1cIidERUxFVEVfVFJBTlNBQ1RJT05fTElORScgfCBsb2NhbGl6ZTpmYWxzZVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxpbmUuaXNUZXh0XCI+XHJcbiAgICAgICAgPGRpdiBbdGV4dENvbnRlbnRdPVwibGluZS50ZXh0XCI+PC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtZGVsZXRlXCIgKm5nSWY9XCIhcHJldmlld1wiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS13cmFwcGVyXCIgKGNsaWNrKT1cImRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKClcIj5cclxuICAgICAgICAgICAgPGljb24gY2xhc3M9XCJkZWxldGUtaWNvblwiIFtpY29uXT1cImljb25zLkNhbmNlbFwiPjwvaWNvbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlbGV0ZS1saW5rXCJcclxuICAgICAgICAgICAgICAgICBbdGV4dENvbnRlbnRdPVwiJ0RFTEVURV9UUkFOU0FDVElPTl9MSU5FJyB8IGxvY2FsaXplOmZhbHNlXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8Y28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3ICpuZ0lmPVwic2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiYXJ0aWNsZVRleHRIZWFkZXIgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3KCRldmVudClcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3PlxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dCAqbmdJZj1cInNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hlYWRlcl09XCJhcnRpY2xlVGV4dEhlYWRlciB8IGxvY2FsaXplXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FydGljbGVMaW5lTnJdPVwibGluZS5saW5lTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZVJlZl09XCJsaW5lLmFydGljbGVOdW1iZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cImxpbmVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWRpdFRleHRdPVwidGV4dFRvRWRpdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjYW5jZWxDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoJGV2ZW50KVwiXHJcbiAgICA+PC9jby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQ+XHJcbiAgYCxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvbkxpbmVDb21wb25lbnQge1xyXG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5wcmV2aWV3XCIpXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcHJldmlldzogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZXQgbGluZSh2YWx1ZTogVHJhbnNhY3Rpb25MaW5lSW5mbykge1xyXG4gICAgdGhpcy5fbGluZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5sb2NhbEFtb3VudCA9IHRoaXMuX2xpbmUuYW1vdW50O1xyXG4gICAgdGhpcy5pc1RleHQgPSB0aGlzLl9saW5lLmlzVGV4dDtcclxuICAgIHRoaXMuaXNBcnRpY2xlID0gdGhpcy5fbGluZS5pc0FydGljbGU7XHJcbiAgICB0aGlzLmlzU2VsZWN0ZWQgPSB0aGlzLl9saW5lLmlzU2VsZWN0ZWQ7XHJcbiAgICB0aGlzLl9sb2FkTGluZUltYWdlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGxpbmUoKTogVHJhbnNhY3Rpb25MaW5lSW5mbyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGluZTtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyB3YWl0aW5nRm9yVXNlckFjdGlvbjogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5pcy10ZXh0XCIpXHJcbiAgcHVibGljIGlzVGV4dDogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaXMtYXJ0aWNsZVwiKVxyXG4gIHB1YmxpYyBpc0FydGljbGU6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlzLXNlbGVjdGVkXCIpXHJcbiAgQElucHV0KCdzZWxlY3RlZCcpXHJcbiAgcHVibGljIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmVcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwibW91c2VvdmVyXCIsIFtcIiRldmVudFwiXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMubW91c2VPdmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYWxBbW91bnQ6IG51bWJlcjtcclxuICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcclxuICBwdWJsaWMgc3RvY2s6IFN0b2NrU3RhdHVzID0gU3RvY2tTdGF0dXMuTG93O1xyXG4gIHB1YmxpYyBjdXJyZW50UmVhc29uOiBSZXNvbHZlTGluZVBlbmRpbmdSZWFzb25SZXF1ZXN0O1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFydGljbGVUZXh0SGVhZGVyOiBzdHJpbmc7XHJcbiAgcHVibGljIHRleHRUb0VkaXQ6IHN0cmluZztcclxuICBwdWJsaWMgbW91c2VPdmVyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2xpbmU6IFRyYW5zYWN0aW9uTGluZUluZm87XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgIHByaXZhdGUgX2RpY3Rpb25hcnlTZXJ2aWNlOiBEaWN0aW9uYXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX2ltYWdlU2VydmljZTogVHJhbnNhY3Rpb25JbWFnZVNlcnZpY2UpIHtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VMaW5lQW1vdW50KGFtb3VudDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuY2hhbmdlVHJhbnNhY3Rpb25MaW5lUXVhbnRpdHkodGhpcy5saW5lLnV1aWQsIGFtb3VudCkudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xyXG4gICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5pc1N1Y2Nlc3MpIHtcclxuICAgICAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIC8vIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpLnRoZW4oKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGFzeW5jIGRlbGV0ZVRyYW5zYWN0aW9uTGluZUNsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgY29uc3QgZGVsZXRlTGluZTogYm9vbGVhbiA9IGF3YWl0IHRoaXMuX2RpYWxvZ1NlcnZpY2Uuc2hvd1llc05vKFwiXCIsIHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkRFTEVURV9UUkFOU0FDVElPTl9MSU5FX1FVRVNUSU9OXCIpKTtcclxuICAgIGlmIChkZWxldGVMaW5lKSB7XHJcbiAgICAgIHRoaXMuc2VydmljZS5kZWxldGVUcmFuc2FjdGlvbkxpbmUodGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkluZm8udXVpZCwgdGhpcy5saW5lLnV1aWQpLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAvLyB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVGV4dEhlYWRlciA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIlRFWFRfQVJUSUNMRV9CT1VORFwiLCB0cnVlLCB0aGlzLmxpbmUuYXJ0aWNsZU51bWJlcik7XHJcbiAgICB0aGlzLnRleHRUb0VkaXQgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLl9zaG93QXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVUcmFuc2FjdGlvbkFydGljbGVUZXh0T3ZlcnZpZXcoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuYXJ0aWNsZVRleHRIZWFkZXIgPSB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJURVhUX0FSVElDTEVfQk9VTkRcIiwgdHJ1ZSwgdGhpcy5saW5lLmFydGljbGVOdW1iZXIpO1xyXG4gICAgdGhpcy50ZXh0VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fc2hvd0FydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlVHJhbnNhY3Rpb25BcnRpY2xlTGluZVRleHQodHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3Q6IFRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLnNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgIHRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QudGV4dCxcclxuICAgICAgMCxcclxuICAgICAgdHJ1ZSxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QucmVmQXJ0aWNsZUxpbmVOcikudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGlkZUFydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVPcGVuQXJ0aWNsZVRleHQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHRUb0VkaXQgPSB0ZXh0O1xyXG4gICAgdGhpcy5fc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9sb2FkTGluZUltYWdlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMubGluZSAmJiB0aGlzLmxpbmUuaXNBcnRpY2xlKSB7XHJcbiAgICAgIHRoaXMuX2ltYWdlU2VydmljZS5yZXRyaWV2ZUxpbmVJbWFnZSh0aGlzLmxpbmUpLnRoZW4oKGltYWdlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmltYWdlID0gaW1hZ2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbihsaW5lT3BlcmF0aW9uUmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gIC8vICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbmZpcm1hdGlvbiA9IGF3YWl0IHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd1llc05vKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBcIiBcIik7XHJcbiAgLy8gICB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcclxuICAvLyAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAvLyAgICAgICB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcclxuICAvLyAgICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwcml2YXRlIGFzeW5jIF9zaG93SW5mb3JtYXRpb24obGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIGF3YWl0IHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd09rTW9kYWwobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24sIFwiIFwiKTtcclxuICAvLyAgIHRoaXMuc2VydmljZS5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24odGhpcy5jdXJyZW50UmVhc29uKVxyXG4gIC8vICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xyXG4gIC8vICAgICAgIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpO1xyXG4gIC8vICAgICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vIHByaXZhdGUgYXN5bmMgX2hhbmRsZUxpbmUobGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIGlmIChsaW5lT3BlcmF0aW9uUmVzcG9uc2UgPT09IHVuZGVmaW5lZCkge1xyXG4gIC8vICAgICByZXR1cm47XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdChsaW5lT3BlcmF0aW9uUmVzcG9uc2UubGluZVV1aWQsXHJcbiAgLy8gICAgIGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gIC8vXHJcbiAgLy8gICBzd2l0Y2ggKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uVHlwZSkge1xyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkFCT1JURUQ6XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxyXG4gIC8vICAgICAgIHRoaXMubG9jYWxBbW91bnQgPSB0aGlzLl9saW5lLmFtb3VudDtcclxuICAvLyAgICAgICBpZiAobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24gIT09IFwiVVNFUl9ERUNJU0lPTlwiKSB7XHJcbiAgLy8gICAgICAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24odGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uKSwgXCIgXCIpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxyXG4gIC8vICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24obGluZU9wZXJhdGlvblJlc3BvbnNlKTtcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxyXG4gIC8vICAgICAgIGF3YWl0IHRoaXMuX3Nob3dJbmZvcm1hdGlvbihsaW5lT3BlcmF0aW9uUmVzcG9uc2UpO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxyXG4gIC8vICAgICAgIHRoaXMubG9jYWxBbW91bnQgPSB0aGlzLl9saW5lLmFtb3VudDtcclxuICAvLyAgICAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcih0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24pLCBcIiBcIik7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcclxuICAvLyAgICAgZGVmYXVsdDpcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgIH1cclxuICAvLyB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHQgPSB0cnVlO1xyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfaGlkZUFydGljbGVUZXh0RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dCA9IGZhbHNlO1xyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX3Nob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3ID0gdHJ1ZTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3ID0gZmFsc2U7XHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVNob3dTaWRlUGFuZWwoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIHRoaXMuc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZC5uZXh0KCk7XHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTlILE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrREFBK0QsQ0FBQztBQUMxRixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUNyRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUVuRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxxQ0FBcUMsRUFBQyxNQUFNLDhFQUE4RSxDQUFDO0FBc0ZuSSxNQUFNLE9BQU8sd0JBQXdCO0lBZ0VuQyxZQUNTLE9BQTJCLEVBQzNCLGdCQUFrQyxFQUNqQyxjQUE2QixFQUM3QixrQkFBcUMsRUFDckMsYUFBc0M7UUFKdkMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNqQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUM3Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3JDLGtCQUFhLEdB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LElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7b0JBQ3JFLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQztLQUFBOzs7WUEvTEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxxQkFBcUI7Z0JBQy9CLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStFVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBNUZPLGtCQUFrQjtZQUlsQixnQkFBZ0I7WUFDaEIsYUFBYTtZQUpiLGlCQUFpQjtZQUtqQix1QkFBdUI7OztzQkEwRjVCLFdBQVcsU0FBQyxlQUFlLGNBQzNCLEtBQUs7bUJBR0wsS0FBSzttQ0FlTCxNQUFNO3FDQUdOLE1BQU07MkNBR04sU0FBUyxTQUFDLHFDQUFxQztxQkFHL0MsV0FBVyxTQUFDLGVBQWU7d0JBRzNCLFdBQVcsU0FBQyxrQkFBa0I7eUJBRzlCLFdBQVcsU0FBQyxtQkFBbUIsY0FDL0IsS0FBSyxTQUFDLFVBQVU7d0JBR2hCLFdBQVcsU0FBQywyQkFBMkI7OEJBS3ZDLFlBQVksU0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUM7K0JBS3BDLFlBQVksU0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSG9zdExpc3RlbmVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7U3RvY2tTdGF0dXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9yZWZjb2RlL3N0b2NrLXN0YXR1cy5lbnVtXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xyXG5pbXBvcnQge0xpbmVPcGVyYXRpb25SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1yZXNwb25zZS5ib1wiO1xyXG5pbXBvcnQge0ljb259IGZyb20gXCIuLi8uLi9lbnVtL2ljb24uZW51bVwiO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZVwiO1xyXG5pbXBvcnQge0RpYWxvZ1NlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL2RpYWxvZy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25JbWFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLWltYWdlLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50fSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucy90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiY28tdHJhbnNhY3Rpb24tbGluZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGluZS5pc0FydGljbGVcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1pbWFnZVwiIFtjbGFzcy5wcmV2aWV3XT1cInByZXZpZXdcIj5cclxuICAgICAgICAgICAgPGNvLWltYWdlLWRpc3BsYXkgW21vZGVsXT1cImltYWdlXCI+PC9jby1pbWFnZS1kaXNwbGF5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZXNjcmlwdGlvblwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVzY3JpcHRpb24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJsaW5lLmdvb2REZXNjcmlwdGlvblwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZXNjcmlwdGlvbi1kZXNjcmlwdGlvblwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImxpbmUuZ29vZERlc2NyaXB0aW9uICYmIGxpbmUuYXJ0aWNsZU51bWJlclwiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZXNjcmlwdGlvbi1kaXZpZGVyXCI+fDwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5hcnRpY2xlTnVtYmVyXCIgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWRlc2NyaXB0aW9uLXNrdVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8Y28taWNvbiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5UcmFzaENhbkxpZ2h0KVwiIChjbGljayk9XCJkZWxldGVUcmFuc2FjdGlvbkxpbmVDbGljaygpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj0hcHJldmlldyBjbGFzcz1cImFydGljbGUtdGV4dC13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFydGljbGUtdGV4dFwiICpuZ0Zvcj1cImxldCB0ZXh0IG9mIGxpbmUuYXJ0aWNsZVRlc3RBc0FycmF5XCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInRleHQgfCBzYWZlSHRtbFwiIChkYmxjbGljayk9XCJoYW5kbGVPcGVuQXJ0aWNsZVRleHQodGV4dClcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPSFwcmV2aWV3IGNsYXNzPVwiY29uZmlndXJhdGlvbi10ZXh0LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cImxpbmUuY29uZmlndXJhdGlvblJlYWRhYmxlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj0hcHJldmlldyBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc3RvY2tcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc3RvY2std3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInU1RPQ0snIHwgbG9jYWxpemVcIiBjbGFzcz1cInNtYWxsLWZvbnRcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPHN0b2NrLXN0YXR1cy1pbmRpY2F0b3IgW21vZGVsXT1cInN0b2NrXCI+PC9zdG9jay1zdGF0dXMtaW5kaWNhdG9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc3RvY2std3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInREVMSVZFUllfREFURScgfCBsb2NhbGl6ZVwiIGNsYXNzPVwic21hbGwtZm9udFwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5kZWxpdmVyeURhdGUgfCBkYXRlOidkZCBNTU0gWVlZWSdcIj48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHNcIj5cclxuICAgICAgICAgICAgPGNvLXRyYW5zYWN0aW9uLWxpbmUtcHJpY2UgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1wcmljZSBwcmljZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwibGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaG93TGFiZWxdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEVkaXRNb2RlXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgPjwvY28tdHJhbnNhY3Rpb24tbGluZS1wcmljZT5cclxuICAgICAgICAgICAgPGNvLWVkaXRhYmxlLWxhYmVsIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHMtZGlzY291bnQgZGlzY291bnRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImxpbmUubGluZVRvdGFsRGlzY291bnRBbW91bnQgfCBjb0N1cnJlbmN5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0TW9kZWxdPVwibGluZS5saW5lVG90YWxEaXNjb3VudEFtb3VudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbW1pdF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgPjwvY28tZWRpdGFibGUtbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9IXByZXZpZXcgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLXRvdGFscy1hbW91bnRcIj5cclxuICAgICAgICAgICAgICA8Y28taW5wdXQtbnVtYmVyLXBpY2tlciBjbGFzcz1cImFtb3VudC1udW1iZXItcGlja2VyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKG1vZGVsKV09XCJsb2NhbEFtb3VudFwiIFttaW5dPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwiY2hhbmdlTGluZUFtb3VudCgkZXZlbnQpXCI+PC9jby1pbnB1dC1udW1iZXItcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGNvLWVkaXRhYmxlLWxhYmVsIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS10b3RhbHMtdG90YWwgcHJpY2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW21vZGVsXT1cImxpbmUuZGlzcGxheU5ldExpbmVUb3RhbCB8IGNvQ3VycmVuY3lcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRNb2RlbF09XCJsaW5lLmRpc3BsYXlOZXRMaW5lVG90YWxcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb21taXRdPVwiIXJlYWRvbmx5XCJcclxuICAgICAgICAgICAgPjwvY28tZWRpdGFibGUtbGFiZWw+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcHJldmlld1wiIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxjby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zXHJcbiAgICAgICAgICAgICAgW3RyYW5zYWN0aW9uTGluZV09XCJsaW5lXCJcclxuICAgICAgICAgICAgICAod2FpdGluZ0ZvclVzZXJBY3Rpb24pPVwid2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAoc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZCk9XCJoYW5kbGVTaG93U2lkZVBhbmVsKClcIlxyXG4gICAgICAgICAgICA+PC9jby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGluZS5pc1RleHRcIj5cclxuICAgICAgICA8ZGl2IFt0ZXh0Q29udGVudF09XCJsaW5lLnRleHRcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1kZWxldGVcIiAqbmdJZj1cIiFwcmV2aWV3XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLXdyYXBwZXJcIiAoY2xpY2spPVwiZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soKVwiPlxyXG4gICAgICAgICAgICA8aWNvbiBjbGFzcz1cImRlbGV0ZS1pY29uXCIgW2ljb25dPVwiaWNvbnMuQ2FuY2VsXCI+PC9pY29uPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVsZXRlLWxpbmtcIlxyXG4gICAgICAgICAgICAgICAgIFt0ZXh0Q29udGVudF09XCInREVMRVRFX1RSQU5TQUNUSU9OX0xJTkUnIHwgbG9jYWxpemU6ZmFsc2VcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLnByZXZpZXdcIilcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBwcmV2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCBsaW5lKHZhbHVlOiBUcmFuc2FjdGlvbkxpbmVJbmZvKSB7XHJcbiAgICB0aGlzLl9saW5lID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XHJcbiAgICB0aGlzLmlzVGV4dCA9IHRoaXMuX2xpbmUuaXNUZXh0O1xyXG4gICAgdGhpcy5pc0FydGljbGUgPSB0aGlzLl9saW5lLmlzQXJ0aWNsZTtcclxuICAgIHRoaXMuaXNTZWxlY3RlZCA9IHRoaXMuX2xpbmUuaXNTZWxlY3RlZDtcclxuICAgIHRoaXMucmVhZG9ubHkgPSB0aGlzLl9saW5lLmhhc0ludm9pY2VzO1xyXG4gICAgdGhpcy5fbG9hZExpbmVJbWFnZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBsaW5lKCk6IFRyYW5zYWN0aW9uTGluZUluZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpbmU7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgd2FpdGluZ0ZvclVzZXJBY3Rpb246IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNpZGVQYW5lbEJ1dHRvbkNsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZChUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50KVxyXG4gIHB1YmxpYyB0cmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zOiBUcmFuc2FjdGlvbkxpbmVBY3Rpb25CdXR0b25zQ29tcG9uZW50O1xyXG5cclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5pcy10ZXh0XCIpXHJcbiAgcHVibGljIGlzVGV4dDogYm9vbGVhbjtcclxuXHJcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaXMtYXJ0aWNsZVwiKVxyXG4gIHB1YmxpYyBpc0FydGljbGU6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlzLXNlbGVjdGVkXCIpXHJcbiAgQElucHV0KCdzZWxlY3RlZCcpXHJcbiAgcHVibGljIGlzU2VsZWN0ZWQ6IGJvb2xlYW47XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmVcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwibW91c2VvdmVyXCIsIFtcIiRldmVudFwiXSlcclxuICBwdWJsaWMgaGFuZGxlTW91c2VPdmVyKGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLm1vdXNlT3ZlciA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKFwibW91c2VsZWF2ZVwiLCBbXCIkZXZlbnRcIl0pXHJcbiAgcHVibGljIGhhbmRsZU1vdXNlTGVhdmUoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIHRoaXMubW91c2VPdmVyID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbG9jYWxBbW91bnQ6IG51bWJlcjtcclxuICBwdWJsaWMgaW1hZ2U6IHN0cmluZztcclxuICBwdWJsaWMgc3RvY2s6IFN0b2NrU3RhdHVzID0gU3RvY2tTdGF0dXMuTG93O1xyXG4gIHB1YmxpYyBtb3VzZU92ZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfbGluZTogVHJhbnNhY3Rpb25MaW5lSW5mbztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHVibGljIGljb25DYWNoZVNlcnZpY2U6IEljb25DYWNoZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfaW1hZ2VTZXJ2aWNlOiBUcmFuc2FjdGlvbkltYWdlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUxpbmVBbW91bnQoYW1vdW50OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VydmljZS5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh0aGlzLmxpbmUudXVpZCwgYW1vdW50KS50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGlmICghdmFsdWUgfHwgIXZhbHVlLmlzU3VjY2Vzcykge1xyXG4gICAgICAgIHRoaXMubG9jYWxBbW91bnQgPSB0aGlzLl9saW5lLmFtb3VudDtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgLy8gdGhpcy5faGFuZGxlTGluZSh2YWx1ZSkudGhlbigpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBjb25zdCBkZWxldGVMaW5lOiBib29sZWFuID0gYXdhaXQgdGhpcy5fZGlhbG9nU2VydmljZS5zaG93WWVzTm8oXCJcIiwgdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiREVMRVRFX1RSQU5TQUNUSU9OX0xJTkVfUVVFU1RJT05cIikpO1xyXG4gICAgaWYgKGRlbGV0ZUxpbmUpIHtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmRlbGV0ZVRyYW5zYWN0aW9uTGluZSh0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSW5mby51dWlkLCB0aGlzLmxpbmUudXVpZCkudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xyXG4gICAgICAgIC8vIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVPcGVuQXJ0aWNsZVRleHQodGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnMudGV4dFRvRWRpdCA9IHRleHQ7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnMuc2hvd0FydGljbGVUZXh0RGlhbG9nKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd1NpZGVQYW5lbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZC5uZXh0KCk7XHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIF9sb2FkTGluZUltYWdlKCk6IFByb21pc2U8dm9pZD4ge1xyXG4gICAgaWYgKHRoaXMubGluZSAmJiB0aGlzLmxpbmUuaXNBcnRpY2xlKSB7XHJcbiAgICAgIHRoaXMuX2ltYWdlU2VydmljZS5yZXRyaWV2ZUxpbmVJbWFnZSh0aGlzLmxpbmUpLnRoZW4oKGltYWdlOiBzdHJpbmcpID0+IHtcclxuICAgICAgICB0aGlzLmltYWdlID0gaW1hZ2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbihsaW5lT3BlcmF0aW9uUmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xyXG4gIC8vICAgdGhpcy5jdXJyZW50UmVhc29uLmNvbmZpcm1hdGlvbiA9IGF3YWl0IHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd1llc05vKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBcIiBcIik7XHJcbiAgLy8gICB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcclxuICAvLyAgICAgLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcclxuICAvLyAgICAgICB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcclxuICAvLyAgICAgfSk7XHJcbiAgLy8gfVxyXG5cclxuICAvLyBwcml2YXRlIGFzeW5jIF9zaG93SW5mb3JtYXRpb24obGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIGF3YWl0IHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd09rTW9kYWwobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24sIFwiIFwiKTtcclxuICAvLyAgIHRoaXMuc2VydmljZS5yZXNvbHZlUGVuZGluZ0xpbmVSZWFzb24odGhpcy5jdXJyZW50UmVhc29uKVxyXG4gIC8vICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xyXG4gIC8vICAgICAgIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpO1xyXG4gIC8vICAgICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vIHByaXZhdGUgYXN5bmMgX2hhbmRsZUxpbmUobGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAvLyAgIGlmIChsaW5lT3BlcmF0aW9uUmVzcG9uc2UgPT09IHVuZGVmaW5lZCkge1xyXG4gIC8vICAgICByZXR1cm47XHJcbiAgLy8gICB9XHJcbiAgLy8gICB0aGlzLmN1cnJlbnRSZWFzb24gPSBuZXcgUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdChsaW5lT3BlcmF0aW9uUmVzcG9uc2UubGluZVV1aWQsXHJcbiAgLy8gICAgIGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvblR5cGUpO1xyXG4gIC8vXHJcbiAgLy8gICBzd2l0Y2ggKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uVHlwZSkge1xyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLkFCT1JURUQ6XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxyXG4gIC8vICAgICAgIHRoaXMubG9jYWxBbW91bnQgPSB0aGlzLl9saW5lLmFtb3VudDtcclxuICAvLyAgICAgICBpZiAobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24gIT09IFwiVVNFUl9ERUNJU0lPTlwiKSB7XHJcbiAgLy8gICAgICAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24odGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uKSwgXCIgXCIpO1xyXG4gIC8vICAgICAgIH1cclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxyXG4gIC8vICAgICAgIGF3YWl0IHRoaXMuX2NvbmZpcm1BY3Rpb24obGluZU9wZXJhdGlvblJlc3BvbnNlKTtcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxyXG4gIC8vICAgICAgIGF3YWl0IHRoaXMuX3Nob3dJbmZvcm1hdGlvbihsaW5lT3BlcmF0aW9uUmVzcG9uc2UpO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxyXG4gIC8vICAgICAgIHRoaXMubG9jYWxBbW91bnQgPSB0aGlzLl9saW5lLmFtb3VudDtcclxuICAvLyAgICAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dFcnJvcih0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQobGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24pLCBcIiBcIik7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuTk9ORTpcclxuICAvLyAgICAgZGVmYXVsdDpcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgIH1cclxuICAvLyB9XHJcbn1cclxuIl19
@@ -1,11 +1,14 @@
1
1
  import { NgModule } from "@angular/core";
2
2
  import { CommonModule } from "@angular/common";
3
3
  import { TransactionLineComponent } from "./transaction-line.component";
4
- import { ButtonModule, InputNumberPickerModule } from "@colijnit/corecomponents_v12";
4
+ import { ButtonModule, IconModule, InputNumberPickerModule } from "@colijnit/corecomponents_v12";
5
5
  import { TransactionArticleTextModule } from "../shared/transaction-article-text/transaction-article-text.module";
6
6
  import { TransactionArticleTextOverviewModule } from "../shared/transaction-article-text-overview/transaction-article-text-overview.module";
7
7
  import { CoreModule } from "../core/core.module";
8
8
  import { PipeModule } from "../../pipe/pipe.module";
9
+ import { TransactionLineActionButtonsModule } from "../transaction-line-action-buttons/transaction-line-action-buttons.module";
10
+ import { EditableLabelModule } from "../editable-label/editable-label.module";
11
+ import { TransactionLinePriceModule } from "../transaction-line-fields/transaction-line-price.module";
9
12
  export class TransactionLineModule {
10
13
  }
11
14
  TransactionLineModule.decorators = [
@@ -17,7 +20,11 @@ TransactionLineModule.decorators = [
17
20
  InputNumberPickerModule,
18
21
  TransactionArticleTextModule,
19
22
  TransactionArticleTextOverviewModule,
20
- PipeModule
23
+ PipeModule,
24
+ TransactionLineActionButtonsModule,
25
+ IconModule,
26
+ EditableLabelModule,
27
+ TransactionLinePriceModule
21
28
  ],
22
29
  declarations: [
23
30
  TransactionLineComponent
@@ -27,4 +34,4 @@ TransactionLineModule.decorators = [
27
34
  ]
28
35
  },] }
29
36
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSxvRUFBb0UsQ0FBQztBQUNoSCxPQUFPLEVBQUMsb0NBQW9DLEVBQUMsTUFBTSxzRkFBc0YsQ0FBQztBQUMxSSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBbUJsRCxNQUFNLE9BQU8scUJBQXFCOzs7WUFqQmpDLFFBQVEsU0FBQztnQkFDTixPQUFPLEVBQUU7b0JBQ0wsWUFBWTtvQkFDWixVQUFVO29CQUNWLFlBQVk7b0JBQ1osdUJBQXVCO29CQUN2Qiw0QkFBNEI7b0JBQzVCLG9DQUFvQztvQkFDcEMsVUFBVTtpQkFDYjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1osd0JBQXdCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asd0JBQXdCO2lCQUN6QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVDb21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJbnB1dE51bWJlclBpY2tlck1vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVUZXh0TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldy90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXcubW9kdWxlXCI7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSBcIi4uL2NvcmUvY29yZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtQaXBlTW9kdWxlfSBmcm9tIFwiLi4vLi4vcGlwZS9waXBlLm1vZHVsZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDb21tb25Nb2R1bGUsXHJcbiAgICAgICAgQ29yZU1vZHVsZSxcclxuICAgICAgICBCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgSW5wdXROdW1iZXJQaWNrZXJNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE1vZHVsZSxcclxuICAgICAgICBUcmFuc2FjdGlvbkFydGljbGVUZXh0T3ZlcnZpZXdNb2R1bGUsXHJcbiAgICAgICAgUGlwZU1vZHVsZVxyXG4gICAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudFxyXG4gIF0sXHJcbiAgZXhwb3J0czogW1xyXG4gICAgVHJhbnNhY3Rpb25MaW5lQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lTW9kdWxlIHt9XHJcbiJdfQ==
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lL3RyYW5zYWN0aW9uLWxpbmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDL0YsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sb0VBQW9FLENBQUM7QUFDaEgsT0FBTyxFQUFDLG9DQUFvQyxFQUFDLE1BQU0sc0ZBQXNGLENBQUM7QUFDMUksT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQztBQUM3SCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx5Q0FBeUMsQ0FBQztBQUM1RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQXVCcEcsTUFBTSxPQUFPLHFCQUFxQjs7O1lBckJqQyxRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLFlBQVk7b0JBQ1osVUFBVTtvQkFDVixZQUFZO29CQUNaLHVCQUF1QjtvQkFDdkIsNEJBQTRCO29CQUM1QixvQ0FBb0M7b0JBQ3BDLFVBQVU7b0JBQ1Ysa0NBQWtDO29CQUNsQyxVQUFVO29CQUNWLG1CQUFtQjtvQkFDbkIsMEJBQTBCO2lCQUM3QjtnQkFDSCxZQUFZLEVBQUU7b0JBQ1osd0JBQXdCO2lCQUN6QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1Asd0JBQXdCO2lCQUN6QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVDb21wb25lbnR9IGZyb20gXCIuL3RyYW5zYWN0aW9uLWxpbmUuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJY29uTW9kdWxlLCBJbnB1dE51bWJlclBpY2tlck1vZHVsZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkFydGljbGVUZXh0TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQubW9kdWxlXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3TW9kdWxlfSBmcm9tIFwiLi4vc2hhcmVkL3RyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldy90cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQtb3ZlcnZpZXcubW9kdWxlXCI7XHJcbmltcG9ydCB7Q29yZU1vZHVsZX0gZnJvbSBcIi4uL2NvcmUvY29yZS5tb2R1bGVcIjtcclxuaW1wb3J0IHtQaXBlTW9kdWxlfSBmcm9tIFwiLi4vLi4vcGlwZS9waXBlLm1vZHVsZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUFjdGlvbkJ1dHRvbnNNb2R1bGV9IGZyb20gXCIuLi90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMubW9kdWxlXCI7XHJcbmltcG9ydCB7RWRpdGFibGVMYWJlbE1vZHVsZX0gZnJvbSBcIi4uL2VkaXRhYmxlLWxhYmVsL2VkaXRhYmxlLWxhYmVsLm1vZHVsZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZVByaWNlTW9kdWxlfSBmcm9tIFwiLi4vdHJhbnNhY3Rpb24tbGluZS1maWVsZHMvdHJhbnNhY3Rpb24tbGluZS1wcmljZS5tb2R1bGVcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgICAgIENvcmVNb2R1bGUsXHJcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIElucHV0TnVtYmVyUGlja2VyTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zYWN0aW9uQXJ0aWNsZVRleHRNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3TW9kdWxlLFxyXG4gICAgICAgIFBpcGVNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc01vZHVsZSxcclxuICAgICAgICBJY29uTW9kdWxlLFxyXG4gICAgICAgIEVkaXRhYmxlTGFiZWxNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNhY3Rpb25MaW5lUHJpY2VNb2R1bGVcclxuICAgIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUcmFuc2FjdGlvbkxpbmVDb21wb25lbnRcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRyYW5zYWN0aW9uTGluZUNvbXBvbmVudFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uTGluZU1vZHVsZSB7fVxyXG4iXX0=
@@ -0,0 +1,170 @@
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from "@angular/core";
2
+ import { TransactionService } from "../../service/transaction.service";
3
+ import { TransactionKind } from "@colijnit/transactionapi/build/enum/transaction-kind.enum";
4
+ import { Icon } from "../../enum/icon.enum";
5
+ import { DictionaryService } from "../../service/dictionary.service";
6
+ import { IconCacheService } from "../../service/icon-cache.service";
7
+ import { Direction } from "../../enum/direction.enum";
8
+ export class TransactionLineActionButtonsComponent {
9
+ constructor(iconCacheService, _transactionService, _dictionaryService) {
10
+ this.iconCacheService = iconCacheService;
11
+ this._transactionService = _transactionService;
12
+ this._dictionaryService = _dictionaryService;
13
+ this.icons = Icon;
14
+ this.alignDirection = Direction.Down;
15
+ this.waitingForUserAction = new EventEmitter();
16
+ this.sidePanelButtonClicked = new EventEmitter();
17
+ this.showActionButtons = false;
18
+ this.showActionButtonsDelayed = false;
19
+ this.showTransactionArticleText = false;
20
+ this.showTransactionArticleTextOverview = false;
21
+ this.readonly = false;
22
+ }
23
+ set transactionLine(value) {
24
+ this._transactionLine = value;
25
+ this.readonly = this._transactionLine.hasInvoices;
26
+ }
27
+ get transactionLine() {
28
+ return this._transactionLine;
29
+ }
30
+ showClass() {
31
+ return true;
32
+ }
33
+ ngOnInit() {
34
+ this.transactionKind = this._transactionService.currentTransaction.transactionInfo.transactionKind;
35
+ }
36
+ handleShowHideClick() {
37
+ this.showActionButtons = !this.showActionButtons;
38
+ setTimeout(() => {
39
+ this.showActionButtonsDelayed = !this.showActionButtonsDelayed;
40
+ }, 1);
41
+ }
42
+ handleTransactionArticleTextOverview() {
43
+ this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.transactionLine.articleNumber);
44
+ this.textToEdit = undefined;
45
+ this._showArticleTextOverviewDialog();
46
+ this.showActionButtons = false;
47
+ this.showActionButtonsDelayed = false;
48
+ }
49
+ handleTransactionArticleText() {
50
+ this.articleTextHeader = this._dictionaryService.get("TEXT_ARTICLE_BOUND", true, this.transactionLine.articleNumber);
51
+ this.textToEdit = undefined;
52
+ this.showArticleTextDialog();
53
+ this.showActionButtons = false;
54
+ this.showActionButtonsDelayed = false;
55
+ }
56
+ handleShowSidePanel() {
57
+ this.sidePanelButtonClicked.next(this.transactionLine);
58
+ this.waitingForUserAction.next(true);
59
+ this.showActionButtons = false;
60
+ this.showActionButtonsDelayed = false;
61
+ }
62
+ showOverviewButton() {
63
+ return (this.transactionKind === TransactionKind.PurchaseOrder ||
64
+ this.transactionKind === TransactionKind.SalesOrder) && !this.readonly;
65
+ }
66
+ showAddTextButton() {
67
+ return (this.transactionKind === TransactionKind.PurchaseOrder ||
68
+ this.transactionKind === TransactionKind.SalesOrder) && !this.readonly;
69
+ }
70
+ showSidebarButton() {
71
+ return this.transactionKind === TransactionKind.PurchaseOrder ||
72
+ this.transactionKind === TransactionKind.SalesOrder;
73
+ }
74
+ saveTransactionArticleLineText(transactionAddTextLineRequest) {
75
+ this._transactionService.addTextLine(transactionAddTextLineRequest.showOnDocuments, transactionAddTextLineRequest.text, 0, true, transactionAddTextLineRequest.refArticleLineNr).then(() => {
76
+ this._hideArticleTextDialog();
77
+ });
78
+ }
79
+ closeTransactionArticleText(event) {
80
+ this._hideArticleTextDialog();
81
+ }
82
+ closeTransactionArticleTextOverview(event) {
83
+ this._hideArticleTextOverviewDialog();
84
+ }
85
+ showArticleTextDialog() {
86
+ this.showTransactionArticleText = true;
87
+ this.waitingForUserAction.next(true);
88
+ }
89
+ _hideArticleTextDialog() {
90
+ this.showTransactionArticleText = false;
91
+ this.waitingForUserAction.next(false);
92
+ }
93
+ _showArticleTextOverviewDialog() {
94
+ this.showTransactionArticleTextOverview = true;
95
+ this.waitingForUserAction.next(true);
96
+ }
97
+ _hideArticleTextOverviewDialog() {
98
+ this.showTransactionArticleTextOverview = false;
99
+ this.waitingForUserAction.next(false);
100
+ }
101
+ }
102
+ TransactionLineActionButtonsComponent.decorators = [
103
+ { type: Component, args: [{
104
+ selector: "co-transaction-line-action-buttons",
105
+ template: `
106
+ <div class="transaction-line-action-buttons-wrapper">
107
+ <div class="show-hide-button">
108
+ <icon [icon]="icons.ThickLines" (click)="handleShowHideClick()"></icon>
109
+ </div>
110
+
111
+ <div class="action-buttons-container" clickOutside
112
+ *ngIf="showActionButtons"
113
+ [ngClass]="alignDirection"
114
+ (clickOutside)="handleShowHideClick()">
115
+
116
+ <co-button *ngIf="showOverviewButton()"
117
+ class="transaction-line-overview-button circle"
118
+ [class.show]="showActionButtonsDelayed"
119
+ [iconData]="iconCacheService.getIcon(icons.Txt)"
120
+ (click)="handleTransactionArticleTextOverview()"></co-button>
121
+
122
+ <co-button *ngIf="showAddTextButton()"
123
+ class="transaction-line-add-text-button circle"
124
+ [class.show]="showActionButtonsDelayed"
125
+ [iconData]="iconCacheService.getIcon(icons.Txt)"
126
+ (click)="handleTransactionArticleText()"></co-button>
127
+
128
+ <co-button *ngIf="showSidebarButton()"
129
+ class="transaction-line-show-sidebar-button circle"
130
+ [class.show]="showActionButtonsDelayed"
131
+ [iconData]="iconCacheService.getIcon(icons.MasterDetail)"
132
+ (click)="handleShowSidePanel()"></co-button>
133
+ </div>
134
+ </div>
135
+
136
+ <co-transaction-article-text-overview *ngIf="showTransactionArticleTextOverview"
137
+ [header]="articleTextHeader | localize"
138
+ [transactionLine]="transactionLine"
139
+ (saveClick)="saveTransactionArticleLineText($event)"
140
+ (closeClick)="closeTransactionArticleTextOverview($event)"
141
+ (cancelClick)="closeTransactionArticleTextOverview($event)"
142
+ ></co-transaction-article-text-overview>
143
+
144
+ <co-transaction-article-text *ngIf="showTransactionArticleText"
145
+ [header]="articleTextHeader | localize"
146
+ [articleLineNr]="transactionLine.lineNr"
147
+ [articleRef]="transactionLine.articleNumber"
148
+ [transactionLine]="transactionLine"
149
+ [editText]="textToEdit"
150
+ (saveClick)="saveTransactionArticleLineText($event)"
151
+ (closeClick)="closeTransactionArticleText($event)"
152
+ (cancelClick)="closeTransactionArticleText($event)"
153
+ ></co-transaction-article-text>
154
+ `,
155
+ encapsulation: ViewEncapsulation.None
156
+ },] }
157
+ ];
158
+ TransactionLineActionButtonsComponent.ctorParameters = () => [
159
+ { type: IconCacheService },
160
+ { type: TransactionService },
161
+ { type: DictionaryService }
162
+ ];
163
+ TransactionLineActionButtonsComponent.propDecorators = {
164
+ transactionLine: [{ type: Input }],
165
+ alignDirection: [{ type: Input }],
166
+ waitingForUserAction: [{ type: Output }],
167
+ sidePanelButtonClicked: [{ type: Output }],
168
+ showClass: [{ type: HostBinding, args: ["class.co-transaction-line-action-buttons",] }]
169
+ };
170
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tbGluZS1hY3Rpb24tYnV0dG9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC90cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zL3RyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSwyREFBMkQsQ0FBQztBQUMxRixPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDMUMsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBMERwRCxNQUFNLE9BQU8scUNBQXFDO0lBc0NoRCxZQUNTLGdCQUFrQyxFQUNqQyxtQkFBdUMsRUFDdkMsa0JBQXFDO1FBRnRDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDakMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFvQjtRQUN2Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBeEMvQixVQUFLLEdBQWdCLElBQUksQ0FBQztRQWFuQyxtQkFBYyxHQUFjLFNBQVMsQ0FBQyxJQUFJLENBQUM7UUFHM0MseUJBQW9CLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHMUUsMkJBQXNCLEdBQXNDLElB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LENBQUMsQ0FBQztJQUN4QyxDQUFDOzs7WUF4TEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlEVDtnQkFDRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTthQUN0Qzs7O1lBMURPLGdCQUFnQjtZQUpoQixrQkFBa0I7WUFHbEIsaUJBQWlCOzs7OEJBK0R0QixLQUFLOzZCQVVMLEtBQUs7bUNBR0wsTUFBTTtxQ0FHTixNQUFNO3dCQUdOLFdBQVcsU0FBQywwQ0FBMEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlL3RyYW5zYWN0aW9uLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcclxuaW1wb3J0IHtJY29ufSBmcm9tIFwiLi4vLi4vZW51bS9pY29uLmVudW1cIjtcclxuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7RGlyZWN0aW9ufSBmcm9tIFwiLi4vLi4vZW51bS9kaXJlY3Rpb24uZW51bVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uTGluZUluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tbGluZS1pbmZvLmJvXCI7XHJcbmltcG9ydCB7VHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24tYWRkLXRleHQtbGluZS1yZXF1ZXN0LmJvXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJjby10cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zXCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJ0cmFuc2FjdGlvbi1saW5lLWFjdGlvbi1idXR0b25zLXdyYXBwZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInNob3ctaGlkZS1idXR0b25cIj5cclxuICAgICAgICA8aWNvbiBbaWNvbl09XCJpY29ucy5UaGlja0xpbmVzXCIgKGNsaWNrKT1cImhhbmRsZVNob3dIaWRlQ2xpY2soKVwiPjwvaWNvbj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uLWJ1dHRvbnMtY29udGFpbmVyXCIgY2xpY2tPdXRzaWRlXHJcbiAgICAgICAgICAgKm5nSWY9XCJzaG93QWN0aW9uQnV0dG9uc1wiXHJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwiYWxpZ25EaXJlY3Rpb25cIlxyXG4gICAgICAgICAgIChjbGlja091dHNpZGUpPVwiaGFuZGxlU2hvd0hpZGVDbGljaygpXCI+XHJcblxyXG4gICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJzaG93T3ZlcnZpZXdCdXR0b24oKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1vdmVydmlldy1idXR0b24gY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zaG93XT1cInNob3dBY3Rpb25CdXR0b25zRGVsYXllZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlR4dClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygpXCI+PC9jby1idXR0b24+XHJcblxyXG4gICAgICAgIDxjby1idXR0b24gKm5nSWY9XCJzaG93QWRkVGV4dEJ1dHRvbigpXCJcclxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidHJhbnNhY3Rpb24tbGluZS1hZGQtdGV4dC1idXR0b24gY2lyY2xlXCJcclxuICAgICAgICAgICAgICAgICAgIFtjbGFzcy5zaG93XT1cInNob3dBY3Rpb25CdXR0b25zRGVsYXllZFwiXHJcbiAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlR4dClcIlxyXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoKVwiPjwvY28tYnV0dG9uPlxyXG5cclxuICAgICAgICA8Y28tYnV0dG9uICpuZ0lmPVwic2hvd1NpZGViYXJCdXR0b24oKVwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyYW5zYWN0aW9uLWxpbmUtc2hvdy1zaWRlYmFyLWJ1dHRvbiBjaXJjbGVcIlxyXG4gICAgICAgICAgICAgICAgICAgW2NsYXNzLnNob3ddPVwic2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkXCJcclxuICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuTWFzdGVyRGV0YWlsKVwiXHJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlU2hvd1NpZGVQYW5lbCgpXCI+PC9jby1idXR0b24+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGNvLXRyYW5zYWN0aW9uLWFydGljbGUtdGV4dC1vdmVydmlldyAqbmdJZj1cInNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0T3ZlcnZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGVhZGVyXT1cImFydGljbGVUZXh0SGVhZGVyIHwgbG9jYWxpemVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHJhbnNhY3Rpb25MaW5lXT1cInRyYW5zYWN0aW9uTGluZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzYXZlQ2xpY2spPVwic2F2ZVRyYW5zYWN0aW9uQXJ0aWNsZUxpbmVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrKT1cImNsb3NlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3KCRldmVudClcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0LW92ZXJ2aWV3PlxyXG5cclxuICAgIDxjby10cmFuc2FjdGlvbi1hcnRpY2xlLXRleHQgKm5nSWY9XCJzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoZWFkZXJdPVwiYXJ0aWNsZVRleHRIZWFkZXIgfCBsb2NhbGl6ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthcnRpY2xlTGluZU5yXT1cInRyYW5zYWN0aW9uTGluZS5saW5lTnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXJ0aWNsZVJlZl09XCJ0cmFuc2FjdGlvbkxpbmUuYXJ0aWNsZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFuc2FjdGlvbkxpbmVdPVwidHJhbnNhY3Rpb25MaW5lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VkaXRUZXh0XT1cInRleHRUb0VkaXRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2F2ZUNsaWNrKT1cInNhdmVUcmFuc2FjdGlvbkFydGljbGVMaW5lVGV4dCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2FuY2VsQ2xpY2spPVwiY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KCRldmVudClcIlxyXG4gICAgPjwvY28tdHJhbnNhY3Rpb24tYXJ0aWNsZS10ZXh0PlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25MaW5lQWN0aW9uQnV0dG9uc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHNldCB0cmFuc2FjdGlvbkxpbmUodmFsdWU6IFRyYW5zYWN0aW9uTGluZUluZm8pIHtcclxuICAgIHRoaXMuX3RyYW5zYWN0aW9uTGluZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5yZWFkb25seSA9IHRoaXMuX3RyYW5zYWN0aW9uTGluZS5oYXNJbnZvaWNlcztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgdHJhbnNhY3Rpb25MaW5lKCk6IFRyYW5zYWN0aW9uTGluZUluZm8ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RyYW5zYWN0aW9uTGluZTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGFsaWduRGlyZWN0aW9uOiBEaXJlY3Rpb24gPSBEaXJlY3Rpb24uRG93bjtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHdhaXRpbmdGb3JVc2VyQWN0aW9uOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBzaWRlUGFuZWxCdXR0b25DbGlja2VkOiBFdmVudEVtaXR0ZXI8VHJhbnNhY3Rpb25MaW5lSW5mbz4gPSBuZXcgRXZlbnRFbWl0dGVyPFRyYW5zYWN0aW9uTGluZUluZm8+KCk7XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXRyYW5zYWN0aW9uLWxpbmUtYWN0aW9uLWJ1dHRvbnNcIilcclxuICBwdWJsaWMgc2hvd0NsYXNzKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd0FjdGlvbkJ1dHRvbnM6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHRyYW5zYWN0aW9uS2luZDogVHJhbnNhY3Rpb25LaW5kO1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93VHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3OiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIGFydGljbGVUZXh0SGVhZGVyOiBzdHJpbmc7XHJcbiAgcHVibGljIHRleHRUb0VkaXQ6IHN0cmluZztcclxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25MaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfdHJhbnNhY3Rpb25TZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRyYW5zYWN0aW9uS2luZCA9IHRoaXMuX3RyYW5zYWN0aW9uU2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udHJhbnNhY3Rpb25JbmZvLnRyYW5zYWN0aW9uS2luZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTaG93SGlkZUNsaWNrKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zaG93QWN0aW9uQnV0dG9ucyA9ICF0aGlzLnNob3dBY3Rpb25CdXR0b25zO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkID0gIXRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkO1xyXG4gICAgfSwgMSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlVHJhbnNhY3Rpb25BcnRpY2xlVGV4dE92ZXJ2aWV3KCk6IHZvaWQge1xyXG4gICAgdGhpcy5hcnRpY2xlVGV4dEhlYWRlciA9IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIlRFWFRfQVJUSUNMRV9CT1VORFwiLCB0cnVlLCB0aGlzLnRyYW5zYWN0aW9uTGluZS5hcnRpY2xlTnVtYmVyKTtcclxuICAgIHRoaXMudGV4dFRvRWRpdCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuX3Nob3dBcnRpY2xlVGV4dE92ZXJ2aWV3RGlhbG9nKCk7XHJcbiAgICB0aGlzLnNob3dBY3Rpb25CdXR0b25zID0gZmFsc2U7XHJcbiAgICB0aGlzLnNob3dBY3Rpb25CdXR0b25zRGVsYXllZCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhbmRsZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmFydGljbGVUZXh0SGVhZGVyID0gdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiVEVYVF9BUlRJQ0xFX0JPVU5EXCIsIHRydWUsIHRoaXMudHJhbnNhY3Rpb25MaW5lLmFydGljbGVOdW1iZXIpO1xyXG4gICAgdGhpcy50ZXh0VG9FZGl0ID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5zaG93QXJ0aWNsZVRleHREaWFsb2coKTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2hvd1NpZGVQYW5lbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2lkZVBhbmVsQnV0dG9uQ2xpY2tlZC5uZXh0KHRoaXMudHJhbnNhY3Rpb25MaW5lKTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnMgPSBmYWxzZTtcclxuICAgIHRoaXMuc2hvd0FjdGlvbkJ1dHRvbnNEZWxheWVkID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd092ZXJ2aWV3QnV0dG9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLnRyYW5zYWN0aW9uS2luZCA9PT0gVHJhbnNhY3Rpb25LaW5kLlB1cmNoYXNlT3JkZXIgfHxcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5TYWxlc09yZGVyKSAmJiAhdGhpcy5yZWFkb25seTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QWRkVGV4dEJ1dHRvbigpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAodGhpcy50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyIHx8XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcikgJiYgIXRoaXMucmVhZG9ubHk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1NpZGViYXJCdXR0b24oKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbktpbmQgPT09IFRyYW5zYWN0aW9uS2luZC5QdXJjaGFzZU9yZGVyIHx8XHJcbiAgICAgIHRoaXMudHJhbnNhY3Rpb25LaW5kID09PSBUcmFuc2FjdGlvbktpbmQuU2FsZXNPcmRlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzYXZlVHJhbnNhY3Rpb25BcnRpY2xlTGluZVRleHQodHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3Q6IFRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0KTogdm9pZCB7XHJcbiAgICB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UuYWRkVGV4dExpbmUoXHJcbiAgICAgIHRyYW5zYWN0aW9uQWRkVGV4dExpbmVSZXF1ZXN0LnNob3dPbkRvY3VtZW50cyxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QudGV4dCxcclxuICAgICAgMCxcclxuICAgICAgdHJ1ZSxcclxuICAgICAgdHJhbnNhY3Rpb25BZGRUZXh0TGluZVJlcXVlc3QucmVmQXJ0aWNsZUxpbmVOcikudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xvc2VUcmFuc2FjdGlvbkFydGljbGVUZXh0KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICB0aGlzLl9oaWRlQXJ0aWNsZVRleHREaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbG9zZVRyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgdGhpcy5faGlkZUFydGljbGVUZXh0T3ZlcnZpZXdEaWFsb2coKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzaG93QXJ0aWNsZVRleHREaWFsb2coKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dUcmFuc2FjdGlvbkFydGljbGVUZXh0ID0gdHJ1ZTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2hpZGVBcnRpY2xlVGV4dERpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHQgPSBmYWxzZTtcclxuICAgIHRoaXMud2FpdGluZ0ZvclVzZXJBY3Rpb24ubmV4dChmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93QXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyA9IHRydWU7XHJcbiAgICB0aGlzLndhaXRpbmdGb3JVc2VyQWN0aW9uLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9oaWRlQXJ0aWNsZVRleHRPdmVydmlld0RpYWxvZygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd1RyYW5zYWN0aW9uQXJ0aWNsZVRleHRPdmVydmlldyA9IGZhbHNlO1xyXG4gICAgdGhpcy53YWl0aW5nRm9yVXNlckFjdGlvbi5uZXh0KGZhbHNlKTtcclxuICB9XHJcbn1cclxuIl19