@colijnit/transaction 12.1.7 → 12.1.10

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 (662) hide show
  1. package/README.md +10 -13
  2. package/bundles/colijnit-transaction.umd.js +7754 -6787
  3. package/bundles/colijnit-transaction.umd.js.map +1 -1
  4. package/colijnit-transaction.d.ts +106 -58
  5. package/colijnit-transaction.metadata.json +1 -1
  6. package/esm2015/colijnit-transaction.js +107 -59
  7. package/esm2015/lib/assets/dictionary/text.properties.js +456 -0
  8. package/esm2015/lib/component/checkout/checkout-login/checkout-login.component.js +106 -0
  9. package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +47 -0
  10. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +275 -0
  11. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +538 -0
  12. package/esm2015/lib/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +30 -0
  13. package/esm2015/lib/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +31 -0
  14. package/esm2015/lib/component/checkout/checkout.component.js +132 -0
  15. package/esm2015/lib/component/checkout/checkout.module.js +86 -0
  16. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +52 -0
  17. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.module.js +24 -0
  18. package/esm2015/lib/component/core/base/default-ok-cancel-buttons.component.js +41 -0
  19. package/esm2015/lib/component/core/base/dialog-base.component.js +6 -0
  20. package/esm2015/lib/component/core/base/transaction-base.component.js +94 -0
  21. package/esm2015/lib/component/core/core.module.js +39 -0
  22. package/esm2015/lib/component/core/enum/app-popup-button-type.enum.js +11 -0
  23. package/esm2015/lib/component/core/enum/app-popup-type.enum.js +8 -0
  24. package/esm2015/{app → lib}/component/core/icon/icon.component.js +3 -4
  25. package/esm2015/lib/component/core/image-display/image-display.component.js +29 -0
  26. package/esm2015/lib/component/core/relation/customer-groups.component.js +41 -0
  27. package/esm2015/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.js +2 -2
  28. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +40 -0
  29. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.module.js +26 -0
  30. package/esm2015/lib/component/discount/discount.component.js +107 -0
  31. package/esm2015/lib/component/discount/discount.module.js +29 -0
  32. package/esm2015/lib/component/order-confirmation-grid.component/order-confirmation-grid.component.js +70 -0
  33. package/esm2015/lib/component/order-confirmation-grid.component/order-confirmation-grid.module.js +29 -0
  34. package/esm2015/lib/component/order-grid/order-grid.component.js +99 -0
  35. package/esm2015/lib/component/order-grid/order-grid.module.js +28 -0
  36. package/esm2015/lib/component/payment/payment.component.js +73 -0
  37. package/esm2015/lib/component/payment/payment.module.js +27 -0
  38. package/esm2015/lib/component/payment-tile/payment-tile.component.js +32 -0
  39. package/esm2015/lib/component/payment-tile/payment-tile.module.js +25 -0
  40. package/esm2015/lib/component/relation-address/relation-address.component.js +125 -0
  41. package/esm2015/lib/component/relation-address/relation-address.module.js +28 -0
  42. package/esm2015/lib/component/relation-address-select/relation-address-select.component.js +146 -0
  43. package/esm2015/lib/component/relation-address-select/relation-address-select.module.js +33 -0
  44. package/esm2015/lib/component/relation-address-tile/relation-address-tile.component.js +61 -0
  45. package/esm2015/lib/component/relation-address-tile/relation-address-tile.module.js +32 -0
  46. package/esm2015/lib/component/seller-information/seller-information.component.js +61 -0
  47. package/esm2015/lib/component/seller-information/seller-information.module.js +21 -0
  48. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +118 -0
  49. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.module.js +31 -0
  50. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +129 -0
  51. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +34 -0
  52. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +57 -0
  53. package/esm2015/lib/component/shopping-cart/shopping-cart.module.js +27 -0
  54. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +55 -0
  55. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.module.js +29 -0
  56. package/esm2015/lib/component/stepper/component/stepper-step.component.js +40 -0
  57. package/esm2015/lib/component/stepper/stepper.component.js +124 -0
  58. package/esm2015/lib/component/stepper/stepper.module.js +29 -0
  59. package/esm2015/lib/component/tile/tile.component.js +32 -0
  60. package/esm2015/lib/component/tile/tile.module.js +19 -0
  61. package/esm2015/lib/component/transaction/transaction.component.js +154 -0
  62. package/esm2015/lib/component/transaction/transaction.module.js +47 -0
  63. package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.component.js +46 -0
  64. package/esm2015/lib/component/transaction-commit-bar/transaction-commit-bar.module.js +27 -0
  65. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.js +28 -0
  66. package/esm2015/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.js +27 -0
  67. package/esm2015/lib/component/transaction-header/transaction-header.component.js +46 -0
  68. package/esm2015/lib/component/transaction-header/transaction-header.module.js +27 -0
  69. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.component.js +34 -0
  70. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.module.js +19 -0
  71. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.component.js +60 -0
  72. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.module.js +21 -0
  73. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.component.js +35 -0
  74. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.module.js +19 -0
  75. package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.component.js +47 -0
  76. package/esm2015/lib/component/transaction-history-grid/transaction-history-grid.module.js +27 -0
  77. package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.js +36 -0
  78. package/esm2015/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.js +23 -0
  79. package/esm2015/lib/component/transaction-line/transaction-line.component.js +282 -0
  80. package/esm2015/lib/component/transaction-line/transaction-line.module.js +30 -0
  81. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +49 -0
  82. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.module.js +23 -0
  83. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.component.js +40 -0
  84. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.module.js +23 -0
  85. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.component.js +48 -0
  86. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-method.module.js +23 -0
  87. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.component.js +50 -0
  88. package/esm2015/lib/component/transaction-line-fields/transaction-line-discount-amount.module.js +23 -0
  89. package/esm2015/lib/component/transaction-line-fields/transaction-line-fields-base.component.js +22 -0
  90. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.component.js +50 -0
  91. package/esm2015/lib/component/transaction-line-fields/transaction-line-line-discount.module.js +23 -0
  92. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.component.js +49 -0
  93. package/esm2015/lib/component/transaction-line-fields/transaction-line-price-list.module.js +23 -0
  94. package/esm2015/lib/component/transaction-line-fields/transaction-line-price.component.js +49 -0
  95. package/esm2015/lib/component/transaction-line-fields/transaction-line-price.module.js +23 -0
  96. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.component.js +36 -0
  97. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantity.module.js +23 -0
  98. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.js +50 -0
  99. package/esm2015/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.js +23 -0
  100. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.component.js +48 -0
  101. package/esm2015/lib/component/transaction-line-fields/transaction-line-reference.module.js +23 -0
  102. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.component.js +50 -0
  103. package/esm2015/lib/component/transaction-line-fields/transaction-line-special-discount.module.js +23 -0
  104. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +49 -0
  105. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.module.js +23 -0
  106. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.component.js +49 -0
  107. package/esm2015/lib/component/transaction-line-fields/transaction-line-warehouse.module.js +24 -0
  108. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.component.js +23 -0
  109. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.module.js +21 -0
  110. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +91 -0
  111. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +36 -0
  112. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +134 -0
  113. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.js +56 -0
  114. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +128 -0
  115. package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +31 -0
  116. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.component.js +63 -0
  117. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.module.js +27 -0
  118. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.js +29 -0
  119. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.component.js +65 -0
  120. package/esm2015/lib/component/transaction-nav-bar/transaction-nav-bar.module.js +26 -0
  121. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.js +39 -0
  122. package/esm2015/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.module.js +25 -0
  123. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.js +28 -0
  124. package/esm2015/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.js +27 -0
  125. package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +44 -0
  126. package/esm2015/lib/component/transaction-totals/transaction-totals.module.js +23 -0
  127. package/esm2015/lib/enum/content-view-mode.enum.js +10 -0
  128. package/esm2015/lib/enum/icon.enum.js +28 -0
  129. package/esm2015/lib/enum/language-code.enum.js +8 -0
  130. package/esm2015/lib/enum/order-discount-type.enum.js +7 -0
  131. package/esm2015/lib/enum/status-type.enum.js +5 -0
  132. package/esm2015/lib/enum/tab-category.enum.js +10 -0
  133. package/esm2015/lib/enum/time-size.type.js +10 -0
  134. package/esm2015/lib/factory/business-object-factory.js +120 -0
  135. package/esm2015/lib/factory/decorators/boolean.decorator.js +102 -0
  136. package/esm2015/lib/factory/decorators/complex-array.decorator.js +55 -0
  137. package/esm2015/lib/factory/decorators/complex-field.decorator.js +57 -0
  138. package/esm2015/lib/factory/decorators/date-field.decorator.js +36 -0
  139. package/esm2015/lib/factory/decorators/string-number.decorator.js +43 -0
  140. package/esm2015/lib/model/business-object.js +81 -0
  141. package/esm2015/lib/model/delivery-type.js +3 -0
  142. package/esm2015/lib/model/icon-svg.js +27 -0
  143. package/esm2015/lib/model/standard-text.js +3 -0
  144. package/esm2015/lib/model/text-value-container.js +3 -0
  145. package/esm2015/lib/pipe/append.pipe.js +17 -0
  146. package/esm2015/lib/pipe/co-currency.pipe.js +47 -0
  147. package/esm2015/lib/pipe/date-duration.pipe.js +57 -0
  148. package/esm2015/lib/pipe/delivery-time.pipe.js +36 -0
  149. package/esm2015/lib/pipe/localize.pipe.js +28 -0
  150. package/esm2015/lib/pipe/pipe.module.js +37 -0
  151. package/esm2015/lib/pipe/safe-html.pipe.js +19 -0
  152. package/esm2015/lib/pipe/safe-style.pipe.js +19 -0
  153. package/esm2015/lib/service/dialog.service.js +76 -0
  154. package/esm2015/lib/service/dictionary.service.js +76 -0
  155. package/esm2015/lib/service/icon-cache.service.js +51 -0
  156. package/esm2015/lib/service/ione-connector-adapter.service.js +836 -0
  157. package/esm2015/lib/service/options.service.js +69 -0
  158. package/esm2015/lib/service/pending-reason.service.js +183 -0
  159. package/esm2015/lib/service/transaction.service.js +679 -0
  160. package/esm2015/lib/utils/array-utils.js +183 -0
  161. package/esm2015/lib/utils/is-nill.function.js +5 -0
  162. package/esm2015/lib/utils/string-utils.js +64 -0
  163. package/esm2015/public_api.js +28 -10
  164. package/fesm2015/colijnit-transaction.js +7894 -6976
  165. package/fesm2015/colijnit-transaction.js.map +1 -1
  166. package/{assets → lib/assets}/dictionary/text.properties.d.ts +0 -0
  167. package/{app → lib}/component/checkout/checkout-login/checkout-login.component.d.ts +0 -0
  168. package/{app → lib}/component/checkout/checkout-login/checkout-login.component.scss +0 -0
  169. package/{app → lib}/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +0 -0
  170. package/{app → lib}/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
  171. package/{app → lib}/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +23 -36
  172. package/lib/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +98 -0
  173. package/lib/component/checkout/checkout-overview-delivery-edit/style/_material-definition.scss +12 -0
  174. package/lib/component/checkout/checkout-overview-delivery-edit/style/_theme.scss +17 -0
  175. package/lib/component/checkout/checkout-overview-delivery-edit/style/material.scss +7 -0
  176. package/{app → lib}/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +40 -12
  177. package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +125 -0
  178. package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +18 -0
  179. package/{app → lib}/component/checkout/checkout-overview-relation-edit/style/_theme.scss +1 -1
  180. package/lib/component/checkout/checkout-overview-relation-edit/style/material.scss +10 -0
  181. package/{app → lib}/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.d.ts +0 -0
  182. package/{app → lib}/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +3 -2
  183. package/{app/component/checkout/checkout-overview-relation-address → lib/component/checkout/checkout-relation-suggestions-list}/style/_material-definition.scss +0 -0
  184. package/{app → lib}/component/checkout/checkout-relation-suggestions-list/style/_theme.scss +1 -1
  185. package/{app → lib}/component/checkout/checkout-relation-suggestions-list/style/material.scss +1 -1
  186. package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +0 -0
  187. package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/style/_layout.scss +1 -1
  188. package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/style/_material-definition.scss +0 -0
  189. package/{app → lib}/component/checkout/checkout-relation-suggestions-list-item/style/_theme.scss +1 -1
  190. package/{app/component/core/base → lib/component/checkout/checkout-relation-suggestions-list-item}/style/material.scss +1 -1
  191. package/lib/component/checkout/checkout.component.d.ts +36 -0
  192. package/lib/component/checkout/checkout.module.d.ts +2 -0
  193. package/lib/component/checkout/style/_layout.scss +31 -0
  194. package/lib/component/checkout/style/_material-definition.scss +5 -0
  195. package/lib/component/checkout/style/_theme.scss +8 -0
  196. package/lib/component/checkout/style/material.scss +10 -0
  197. package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +12 -0
  198. package/lib/component/confirmation-dialog/confirmation-dialog.module.d.ts +2 -0
  199. package/lib/component/confirmation-dialog/style/_layout.scss +22 -0
  200. package/lib/component/confirmation-dialog/style/_material-definition.scss +2 -0
  201. package/lib/component/confirmation-dialog/style/_theme.scss +6 -0
  202. package/lib/component/confirmation-dialog/style/material.scss +5 -0
  203. package/{app → lib}/component/core/base/default-ok-cancel-buttons.component.d.ts +0 -0
  204. package/lib/component/core/base/dialog-base.component.d.ts +4 -0
  205. package/{app → lib}/component/core/base/style/_layout.scss +1 -1
  206. package/{app/component/checkout/checkout-relation-suggestions-list → lib/component/core/base}/style/_material-definition.scss +0 -0
  207. package/{app → lib}/component/core/base/style/_theme.scss +1 -1
  208. package/{app/component/checkout/checkout-overview-relation-address → lib/component/core/base}/style/material.scss +1 -1
  209. package/{app → lib}/component/core/base/transaction-base.component.d.ts +7 -23
  210. package/{app → lib}/component/core/characteristic-answer/characteristic-answer.component.scss +3 -1
  211. package/{app → lib}/component/core/core.module.d.ts +0 -0
  212. package/lib/component/core/enum/app-popup-button-type.enum.d.ts +9 -0
  213. package/lib/component/core/enum/app-popup-type.enum.d.ts +6 -0
  214. package/{app → lib}/component/core/icon/icon.component.d.ts +3 -2
  215. package/{app → lib}/component/core/icon/icon.component.scss +3 -1
  216. package/lib/component/core/image-display/image-display.component.d.ts +5 -0
  217. package/lib/component/core/image-display/style/_layout.scss +55 -0
  218. package/lib/component/core/image-display/style/_material-definition.scss +4 -0
  219. package/{app → lib}/component/core/image-display/style/_theme.scss +1 -1
  220. package/{app → lib}/component/core/image-display/style/material.scss +1 -1
  221. package/{app → lib}/component/core/relation/customer-groups.component.d.ts +0 -0
  222. package/lib/component/core/relation/relation-customer-groups.component.scss +6 -0
  223. package/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
  224. package/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.scss +3 -1
  225. package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +10 -0
  226. package/lib/component/delivery-type-tile/delivery-type-tile.module.d.ts +2 -0
  227. package/lib/component/delivery-type-tile/style/_layout.scss +35 -0
  228. package/lib/component/delivery-type-tile/style/_material-definition.scss +16 -0
  229. package/lib/component/delivery-type-tile/style/_theme.scss +6 -0
  230. package/lib/component/delivery-type-tile/style/material.scss +5 -0
  231. package/lib/component/discount/discount.component.d.ts +19 -0
  232. package/lib/component/discount/discount.module.d.ts +2 -0
  233. package/{app/component/checkout/checkout-overview-block/checkout-overview-block.component.scss → lib/component/discount/style/_layout.scss} +0 -0
  234. package/{app/component/core/base → lib/component/discount}/style/_material-definition.scss +0 -0
  235. package/{app/component/checkout/checkout-overview/checkout-overview.component.scss → lib/component/discount/style/_theme.scss} +0 -0
  236. package/{app/component/core/image-display/style/_material-definition.scss → lib/component/discount/style/material.scss} +0 -0
  237. package/lib/component/order-confirmation-create/style/_layout.scss +5 -0
  238. package/lib/component/order-confirmation-create/style/_material-definition.scss +1 -0
  239. package/lib/component/order-confirmation-create/style/_theme.scss +5 -0
  240. package/{app/component/checkout/checkout-relation-suggestions-list-item → lib/component/order-confirmation-create}/style/material.scss +1 -1
  241. package/lib/component/order-confirmation-grid.component/order-confirmation-grid.component.d.ts +15 -0
  242. package/lib/component/order-confirmation-grid.component/order-confirmation-grid.module.d.ts +2 -0
  243. package/lib/component/order-confirmation-grid.component/style/_layout.scss +5 -0
  244. package/lib/component/order-confirmation-grid.component/style/_material-definition.scss +1 -0
  245. package/lib/component/order-confirmation-grid.component/style/_theme.scss +5 -0
  246. package/lib/component/order-confirmation-grid.component/style/material.scss +4 -0
  247. package/lib/component/order-grid/order-grid.component.d.ts +23 -0
  248. package/lib/component/order-grid/order-grid.module.d.ts +2 -0
  249. package/lib/component/order-grid/style/_layout.scss +21 -0
  250. package/lib/component/order-grid/style/_material-definition.scss +2 -0
  251. package/lib/component/order-grid/style/_theme.scss +6 -0
  252. package/lib/component/order-grid/style/material.scss +4 -0
  253. package/lib/component/payment/payment.component.d.ts +18 -0
  254. package/lib/component/payment/payment.module.d.ts +2 -0
  255. package/lib/component/payment/style/_layout.scss +54 -0
  256. package/lib/component/payment/style/_material-definition.scss +17 -0
  257. package/lib/component/payment/style/_theme.scss +16 -0
  258. package/lib/component/payment/style/material.scss +5 -0
  259. package/lib/component/payment-tile/payment-tile.component.d.ts +9 -0
  260. package/lib/component/payment-tile/payment-tile.module.d.ts +2 -0
  261. package/lib/component/payment-tile/style/_layout.scss +22 -0
  262. package/{app/component/core/no-image-display/no-image-display.component.scss → lib/component/payment-tile/style/_material-definition.scss} +0 -0
  263. package/lib/component/payment-tile/style/_theme.scss +6 -0
  264. package/lib/component/payment-tile/style/material.scss +5 -0
  265. package/lib/component/relation-address/relation-address.component.d.ts +28 -0
  266. package/lib/component/relation-address/relation-address.module.d.ts +2 -0
  267. package/lib/component/relation-address/style/_layout.scss +25 -0
  268. package/lib/component/relation-address/style/_material-definition.scss +3 -0
  269. package/lib/component/relation-address/style/_theme.scss +7 -0
  270. package/lib/component/relation-address/style/material.scss +5 -0
  271. package/lib/component/relation-address-select/relation-address-select.component.d.ts +33 -0
  272. package/lib/component/relation-address-select/relation-address-select.module.d.ts +2 -0
  273. package/lib/component/relation-address-select/style/_layout.scss +85 -0
  274. package/lib/component/relation-address-select/style/_material-definition.scss +4 -0
  275. package/lib/component/relation-address-select/style/_theme.scss +6 -0
  276. package/lib/component/relation-address-select/style/material.scss +5 -0
  277. package/lib/component/relation-address-tile/relation-address-tile.component.d.ts +14 -0
  278. package/lib/component/relation-address-tile/relation-address-tile.module.d.ts +2 -0
  279. package/lib/component/relation-address-tile/style/_layout.scss +42 -0
  280. package/lib/component/relation-address-tile/style/_material-definition.scss +16 -0
  281. package/lib/component/relation-address-tile/style/_theme.scss +21 -0
  282. package/lib/component/relation-address-tile/style/material.scss +5 -0
  283. package/lib/component/seller-information/seller-information.component.d.ts +13 -0
  284. package/lib/component/seller-information/seller-information.module.d.ts +2 -0
  285. package/lib/component/seller-information/style/_layout.scss +21 -0
  286. package/lib/component/seller-information/style/_material-definition.scss +2 -0
  287. package/lib/component/seller-information/style/_theme.scss +7 -0
  288. package/lib/component/seller-information/style/material.scss +4 -0
  289. package/lib/component/shared/transaction-article-text/style/_layout.scss +42 -0
  290. package/lib/component/shared/transaction-article-text/style/_material-definition.scss +7 -0
  291. package/lib/component/shared/transaction-article-text/style/_theme.scss +11 -0
  292. package/lib/component/shared/transaction-article-text/style/material.scss +5 -0
  293. package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +31 -0
  294. package/lib/component/shared/transaction-article-text/transaction-article-text.module.d.ts +2 -0
  295. package/lib/component/shared/transaction-article-text-overview/style/_layout.scss +56 -0
  296. package/lib/component/shared/transaction-article-text-overview/style/_material-definition.scss +9 -0
  297. package/lib/component/shared/transaction-article-text-overview/style/_theme.scss +9 -0
  298. package/lib/component/shared/transaction-article-text-overview/style/material.scss +4 -0
  299. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +30 -0
  300. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.d.ts +2 -0
  301. package/lib/component/shopping-cart/shopping-cart.component.d.ts +15 -0
  302. package/lib/component/shopping-cart/shopping-cart.module.d.ts +2 -0
  303. package/lib/component/shopping-cart/style/_layout.scss +33 -0
  304. package/lib/component/shopping-cart/style/_material-definition.scss +10 -0
  305. package/lib/component/shopping-cart/style/_theme.scss +14 -0
  306. package/lib/component/shopping-cart/style/material.scss +4 -0
  307. package/{app/component/shopping-cart → lib/component/shopping-cart-OLD}/shopping-cart-manager/shopping-cart-manager.component.scss +4 -2
  308. package/lib/component/shopping-cart-preview/shopping-cart-preview.component.d.ts +13 -0
  309. package/lib/component/shopping-cart-preview/shopping-cart-preview.module.d.ts +2 -0
  310. package/lib/component/shopping-cart-preview/style/_layout.scss +48 -0
  311. package/lib/component/shopping-cart-preview/style/_material-definition.scss +20 -0
  312. package/lib/component/shopping-cart-preview/style/_theme.scss +17 -0
  313. package/lib/component/shopping-cart-preview/style/material.scss +4 -0
  314. package/lib/component/stepper/component/stepper-step.component.d.ts +12 -0
  315. package/lib/component/stepper/stepper.component.d.ts +35 -0
  316. package/lib/component/stepper/stepper.module.d.ts +2 -0
  317. package/lib/component/stepper/style/_layout.scss +107 -0
  318. package/lib/component/stepper/style/_material-definition.scss +18 -0
  319. package/lib/component/stepper/style/_theme.scss +43 -0
  320. package/lib/component/stepper/style/material.scss +4 -0
  321. package/lib/component/tile/style/_layout.scss +36 -0
  322. package/lib/component/tile/style/_material-definition.scss +16 -0
  323. package/lib/component/tile/style/_theme.scss +36 -0
  324. package/lib/component/tile/style/material.scss +4 -0
  325. package/lib/component/tile/tile.component.d.ts +6 -0
  326. package/lib/component/tile/tile.module.d.ts +2 -0
  327. package/lib/component/transaction/style/_layout.scss +31 -0
  328. package/lib/component/transaction/style/_material-definition.scss +7 -0
  329. package/lib/component/transaction/style/_theme.scss +24 -0
  330. package/lib/component/transaction/style/material.scss +11 -0
  331. package/lib/component/transaction/transaction.component.d.ts +39 -0
  332. package/lib/component/transaction/transaction.module.d.ts +2 -0
  333. package/lib/component/transaction-commit-bar/style/_layout.scss +16 -0
  334. package/lib/component/transaction-commit-bar/style/_material-definition.scss +1 -0
  335. package/lib/component/transaction-commit-bar/style/_theme.scss +7 -0
  336. package/lib/component/transaction-commit-bar/style/material.scss +4 -0
  337. package/lib/component/transaction-commit-bar/transaction-commit-bar.component.d.ts +11 -0
  338. package/lib/component/transaction-commit-bar/transaction-commit-bar.module.d.ts +2 -0
  339. package/lib/component/transaction-confirmation-history/style/_layout.scss +7 -0
  340. package/lib/component/transaction-confirmation-history/style/_material-definition.scss +1 -0
  341. package/lib/component/transaction-confirmation-history/style/_theme.scss +7 -0
  342. package/lib/component/transaction-confirmation-history/style/material.scss +4 -0
  343. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.component.d.ts +5 -0
  344. package/lib/component/transaction-confirmation-history/transaction-confirmation-history.module.d.ts +2 -0
  345. package/lib/component/transaction-header/style/_layout.scss +38 -0
  346. package/lib/component/transaction-header/style/_material-definition.scss +8 -0
  347. package/lib/component/transaction-header/style/_theme.scss +11 -0
  348. package/lib/component/transaction-header/style/material.scss +7 -0
  349. package/lib/component/transaction-header/transaction-header.component.d.ts +12 -0
  350. package/lib/component/transaction-header/transaction-header.module.d.ts +2 -0
  351. package/lib/component/transaction-header-contact/style/_layout.scss +25 -0
  352. package/lib/component/transaction-header-contact/style/_material-definition.scss +7 -0
  353. package/lib/component/transaction-header-contact/style/_theme.scss +11 -0
  354. package/lib/component/transaction-header-contact/style/material.scss +4 -0
  355. package/lib/component/transaction-header-contact/transaction-header-contact.component.d.ts +4 -0
  356. package/lib/component/transaction-header-contact/transaction-header-contact.module.d.ts +2 -0
  357. package/lib/component/transaction-header-delivery/style/_layout.scss +54 -0
  358. package/lib/component/transaction-header-delivery/style/_material-definition.scss +12 -0
  359. package/lib/component/transaction-header-delivery/style/_theme.scss +24 -0
  360. package/lib/component/transaction-header-delivery/style/material.scss +4 -0
  361. package/lib/component/transaction-header-delivery/transaction-header-delivery.component.d.ts +13 -0
  362. package/lib/component/transaction-header-delivery/transaction-header-delivery.module.d.ts +2 -0
  363. package/lib/component/transaction-header-relation/style/_layout.scss +25 -0
  364. package/lib/component/transaction-header-relation/style/_material-definition.scss +7 -0
  365. package/lib/component/transaction-header-relation/style/_theme.scss +11 -0
  366. package/lib/component/transaction-header-relation/style/material.scss +4 -0
  367. package/lib/component/transaction-header-relation/transaction-header-relation.component.d.ts +4 -0
  368. package/lib/component/transaction-header-relation/transaction-header-relation.module.d.ts +2 -0
  369. package/lib/component/transaction-history-grid/style/_layout.scss +7 -0
  370. package/{app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.scss → lib/component/transaction-history-grid/style/_material-definition.scss} +0 -0
  371. package/lib/component/transaction-history-grid/style/_theme.scss +7 -0
  372. package/lib/component/transaction-history-grid/style/material.scss +4 -0
  373. package/lib/component/transaction-history-grid/transaction-history-grid.component.d.ts +14 -0
  374. package/lib/component/transaction-history-grid/transaction-history-grid.module.d.ts +2 -0
  375. package/lib/component/transaction-history-grid-status/style/_layout.scss +28 -0
  376. package/{app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.scss → lib/component/transaction-history-grid-status/style/_material-definition.scss} +0 -0
  377. package/lib/component/transaction-history-grid-status/style/_theme.scss +7 -0
  378. package/lib/component/transaction-history-grid-status/style/material.scss +4 -0
  379. package/lib/component/transaction-history-grid-status/transaction-history-grid-status.component.d.ts +9 -0
  380. package/lib/component/transaction-history-grid-status/transaction-history-grid-status.module.d.ts +2 -0
  381. package/lib/component/transaction-line/style/_layout.scss +143 -0
  382. package/lib/component/transaction-line/style/_material-definition.scss +29 -0
  383. package/lib/component/transaction-line/style/_theme.scss +41 -0
  384. package/lib/component/transaction-line/style/material.scss +9 -0
  385. package/lib/component/transaction-line/transaction-line.component.d.ts +52 -0
  386. package/lib/component/transaction-line/transaction-line.module.d.ts +2 -0
  387. package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +12 -0
  388. package/lib/component/transaction-line-fields/transaction-line-commission-code.module.d.ts +2 -0
  389. package/lib/component/transaction-line-fields/transaction-line-delivery-date.component.d.ts +7 -0
  390. package/lib/component/transaction-line-fields/transaction-line-delivery-date.module.d.ts +2 -0
  391. package/lib/component/transaction-line-fields/transaction-line-delivery-method.component.d.ts +12 -0
  392. package/lib/component/transaction-line-fields/transaction-line-delivery-method.module.d.ts +2 -0
  393. package/lib/component/transaction-line-fields/transaction-line-discount-amount.component.d.ts +10 -0
  394. package/lib/component/transaction-line-fields/transaction-line-discount-amount.module.d.ts +2 -0
  395. package/lib/component/transaction-line-fields/transaction-line-fields-base.component.d.ts +6 -0
  396. package/lib/component/transaction-line-fields/transaction-line-line-discount.component.d.ts +10 -0
  397. package/lib/component/transaction-line-fields/transaction-line-line-discount.module.d.ts +2 -0
  398. package/lib/component/transaction-line-fields/transaction-line-price-list.component.d.ts +12 -0
  399. package/lib/component/transaction-line-fields/transaction-line-price-list.module.d.ts +2 -0
  400. package/lib/component/transaction-line-fields/transaction-line-price.component.d.ts +10 -0
  401. package/lib/component/transaction-line-fields/transaction-line-price.module.d.ts +2 -0
  402. package/lib/component/transaction-line-fields/transaction-line-quantity.component.d.ts +7 -0
  403. package/lib/component/transaction-line-fields/transaction-line-quantity.module.d.ts +2 -0
  404. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.component.d.ts +10 -0
  405. package/lib/component/transaction-line-fields/transaction-line-quantum-discount.module.d.ts +2 -0
  406. package/lib/component/transaction-line-fields/transaction-line-reference.component.d.ts +10 -0
  407. package/lib/component/transaction-line-fields/transaction-line-reference.module.d.ts +2 -0
  408. package/lib/component/transaction-line-fields/transaction-line-special-discount.component.d.ts +10 -0
  409. package/lib/component/transaction-line-fields/transaction-line-special-discount.module.d.ts +2 -0
  410. package/lib/component/transaction-line-fields/transaction-line-vat.component.d.ts +12 -0
  411. package/lib/component/transaction-line-fields/transaction-line-vat.module.d.ts +2 -0
  412. package/lib/component/transaction-line-fields/transaction-line-warehouse.component.d.ts +12 -0
  413. package/lib/component/transaction-line-fields/transaction-line-warehouse.module.d.ts +2 -0
  414. package/lib/component/transaction-line-grid/style/_layout.scss +6 -0
  415. package/{app/component/service-order/transaction-sidebar/transaction-line-accordion.component.scss → lib/component/transaction-line-grid/style/_material-definition.scss} +0 -0
  416. package/lib/component/transaction-line-grid/style/_theme.scss +6 -0
  417. package/lib/component/transaction-line-grid/style/material.scss +4 -0
  418. package/lib/component/transaction-line-grid/transaction-line-grid.component.d.ts +5 -0
  419. package/lib/component/transaction-line-grid/transaction-line-grid.module.d.ts +2 -0
  420. package/lib/component/transaction-line-side-panel/style/_layout.scss +64 -0
  421. package/lib/component/transaction-line-side-panel/style/_material-definition.scss +8 -0
  422. package/lib/component/transaction-line-side-panel/style/_theme.scss +9 -0
  423. package/lib/component/transaction-line-side-panel/style/material.scss +9 -0
  424. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +18 -0
  425. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.d.ts +2 -0
  426. package/lib/component/transaction-line-side-panel-default/style/_layout.scss +29 -0
  427. package/lib/component/transaction-line-side-panel-default/style/_material-definition.scss +10 -0
  428. package/lib/component/transaction-line-side-panel-default/style/_theme.scss +7 -0
  429. package/lib/component/transaction-line-side-panel-default/style/material.scss +4 -0
  430. package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.d.ts +16 -0
  431. package/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.module.d.ts +2 -0
  432. package/lib/component/transaction-lines/style/_layout.scss +33 -0
  433. package/lib/component/transaction-lines/style/_material-definition.scss +3 -0
  434. package/lib/component/transaction-lines/style/_theme.scss +19 -0
  435. package/lib/component/transaction-lines/style/material.scss +7 -0
  436. package/lib/component/transaction-lines/transaction-lines.component.d.ts +37 -0
  437. package/lib/component/transaction-lines/transaction-lines.module.d.ts +2 -0
  438. package/lib/component/transaction-lines-grid/style/_layout.scss +37 -0
  439. package/lib/component/transaction-lines-grid/style/_material-definition.scss +19 -0
  440. package/lib/component/transaction-lines-grid/style/_theme.scss +15 -0
  441. package/lib/component/transaction-lines-grid/style/material.scss +5 -0
  442. package/lib/component/transaction-lines-grid/transaction-lines-grid.component.d.ts +20 -0
  443. package/lib/component/transaction-lines-grid/transaction-lines-grid.module.d.ts +2 -0
  444. package/lib/component/transaction-nav-bar/style/_layout.scss +13 -0
  445. package/lib/component/transaction-nav-bar/style/_material-definition.scss +1 -0
  446. package/lib/component/transaction-nav-bar/style/_theme.scss +7 -0
  447. package/lib/component/transaction-nav-bar/style/material.scss +4 -0
  448. package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.d.ts +14 -0
  449. package/lib/component/transaction-nav-bar/transaction-nav-bar-button/transaction-nav-bar-button.component.scss +23 -0
  450. package/lib/component/transaction-nav-bar/transaction-nav-bar.component.d.ts +18 -0
  451. package/lib/component/transaction-nav-bar/transaction-nav-bar.module.d.ts +2 -0
  452. package/lib/component/transaction-receiving-goods-details/style/_layout.scss +38 -0
  453. package/lib/component/transaction-receiving-goods-details/style/_material-definition.scss +1 -0
  454. package/lib/component/transaction-receiving-goods-details/style/_theme.scss +7 -0
  455. package/lib/component/transaction-receiving-goods-details/style/material.scss +4 -0
  456. package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.component.d.ts +6 -0
  457. package/lib/component/transaction-receiving-goods-details/transaction-receiving-goods-details.module.d.ts +2 -0
  458. package/lib/component/transaction-receiving-goods-history/style/_layout.scss +7 -0
  459. package/lib/component/transaction-receiving-goods-history/style/_material-definition.scss +1 -0
  460. package/lib/component/transaction-receiving-goods-history/style/_theme.scss +7 -0
  461. package/lib/component/transaction-receiving-goods-history/style/material.scss +4 -0
  462. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.component.d.ts +5 -0
  463. package/lib/component/transaction-receiving-goods-history/transaction-receiving-goods-history.module.d.ts +2 -0
  464. package/lib/component/transaction-totals/style/_layout.scss +35 -0
  465. package/lib/component/transaction-totals/style/_material-definition.scss +15 -0
  466. package/lib/component/transaction-totals/style/_theme.scss +10 -0
  467. package/lib/component/transaction-totals/style/material.scss +4 -0
  468. package/lib/component/transaction-totals/transaction-totals.component.d.ts +9 -0
  469. package/lib/component/transaction-totals/transaction-totals.module.d.ts +2 -0
  470. package/{app → lib}/enum/content-view-mode.enum.d.ts +0 -0
  471. package/lib/enum/icon.enum.d.ts +26 -0
  472. package/{app → lib}/enum/language-code.enum.d.ts +0 -0
  473. package/{app → lib}/enum/order-discount-type.enum.d.ts +0 -0
  474. package/lib/enum/status-type.enum.d.ts +3 -0
  475. package/lib/enum/tab-category.enum.d.ts +8 -0
  476. package/{app → lib}/enum/time-size.type.d.ts +0 -0
  477. package/{factory → lib/factory}/business-object-factory.d.ts +1 -1
  478. package/{factory → lib/factory}/decorators/boolean.decorator.d.ts +0 -0
  479. package/{factory → lib/factory}/decorators/complex-array.decorator.d.ts +0 -0
  480. package/{factory → lib/factory}/decorators/complex-field.decorator.d.ts +0 -0
  481. package/{factory → lib/factory}/decorators/date-field.decorator.d.ts +0 -0
  482. package/{factory → lib/factory}/decorators/string-number.decorator.d.ts +0 -0
  483. package/{app → lib}/model/business-object.d.ts +0 -0
  484. package/lib/model/delivery-type.d.ts +7 -0
  485. package/lib/model/icon-svg.d.ts +4 -0
  486. package/{app → lib}/model/standard-text.d.ts +0 -0
  487. package/{app → lib}/model/text-value-container.d.ts +0 -0
  488. package/{app → lib}/pipe/append.pipe.d.ts +0 -0
  489. package/{app → lib}/pipe/co-currency.pipe.d.ts +0 -0
  490. package/{app → lib}/pipe/date-duration.pipe.d.ts +0 -0
  491. package/{app → lib}/pipe/delivery-time.pipe.d.ts +0 -0
  492. package/{app → lib}/pipe/localize.pipe.d.ts +0 -0
  493. package/lib/pipe/pipe.module.d.ts +2 -0
  494. package/lib/pipe/safe-html.pipe.d.ts +7 -0
  495. package/{app/pipe/safe-style-pipe.d.ts → lib/pipe/safe-style.pipe.d.ts} +0 -0
  496. package/lib/service/dialog.service.d.ts +12 -0
  497. package/{app → lib}/service/dictionary.service.d.ts +0 -0
  498. package/lib/service/icon-cache.service.d.ts +18 -0
  499. package/{app → lib}/service/ione-connector-adapter.service.d.ts +34 -13
  500. package/{app → lib}/service/options.service.d.ts +3 -4
  501. package/lib/service/pending-reason.service.d.ts +32 -0
  502. package/{app → lib}/service/transaction.service.d.ts +35 -55
  503. package/{style → lib/style}/_mixin.scss +0 -0
  504. package/{style → lib/style}/_variables.scss +29 -3
  505. package/{utils → lib/utils}/array-utils.d.ts +0 -0
  506. package/{utils → lib/utils}/is-nill.function.d.ts +0 -0
  507. package/{app → lib}/utils/string-utils.d.ts +0 -0
  508. package/package.json +27 -33
  509. package/public_api.d.ts +27 -6
  510. package/app/app.component.scss +0 -39
  511. package/app/component/checkout/checkout/checkout.component.d.ts +0 -34
  512. package/app/component/checkout/checkout/checkout.component.scss +0 -137
  513. package/app/component/checkout/checkout-overview/checkout-overview.component.d.ts +0 -42
  514. package/app/component/checkout/checkout-overview-block/checkout-overview-block.component.d.ts +0 -12
  515. package/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.scss +0 -3
  516. package/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.d.ts +0 -23
  517. package/app/component/checkout/checkout-overview-relation-address/style/_layout.scss +0 -19
  518. package/app/component/checkout/checkout-overview-relation-address/style/_theme.scss +0 -7
  519. package/app/component/checkout/checkout-overview-relation-edit/style/_layout.scss +0 -92
  520. package/app/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +0 -15
  521. package/app/component/checkout/checkout-overview-relation-edit/style/material.scss +0 -5
  522. package/app/component/checkout/checkout-transaction/checkout-transaction.component.d.ts +0 -16
  523. package/app/component/checkout/checkout-transaction/checkout-transaction.component.scss +0 -11
  524. package/app/component/checkout/ione-checkout.component.d.ts +0 -41
  525. package/app/component/checkout/ione-checkout.module.d.ts +0 -2
  526. package/app/component/core/characteristic-answer/characteristic-answer.component.d.ts +0 -22
  527. package/app/component/core/directive/template-wrapper.directive.d.ts +0 -13
  528. package/app/component/core/image-display/image-display.component.d.ts +0 -14
  529. package/app/component/core/image-display/style/_layout.scss +0 -39
  530. package/app/component/core/no-image-display/no-image-display.component.d.ts +0 -5
  531. package/app/component/service-order/ione-service-order-module.d.ts +0 -2
  532. package/app/component/service-order/ione-service-order.component.d.ts +0 -25
  533. package/app/component/service-order/service-order.component.d.ts +0 -52
  534. package/app/component/service-order/service-order.component.scss +0 -152
  535. package/app/component/service-order/summary/transaction-article-summary.component.d.ts +0 -17
  536. package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +0 -20
  537. package/app/component/service-order/summary/transaction-delivery-summary.component.scss +0 -20
  538. package/app/component/service-order/summary/transaction-order-summary.component.d.ts +0 -16
  539. package/app/component/service-order/summary/transaction-payment-info.component.d.ts +0 -14
  540. package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +0 -7
  541. package/app/component/service-order/summary/transaction-product-summary.component.d.ts +0 -15
  542. package/app/component/service-order/summary/transaction-service-status.component.d.ts +0 -15
  543. package/app/component/service-order/summary/transaction-service-summary.component.d.ts +0 -15
  544. package/app/component/service-order/summary/transaction-summary-block.component.d.ts +0 -16
  545. package/app/component/service-order/summary/transaction-summary-block.component.scss +0 -107
  546. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +0 -33
  547. package/app/component/service-order/transaction-article-text/transaction-article-text.component.scss +0 -6
  548. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +0 -23
  549. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +0 -19
  550. package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +0 -15
  551. package/app/component/service-order/transaction-header-block/transaction-header-block.component.scss +0 -65
  552. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +0 -64
  553. package/app/component/service-order/transaction-manager/transaction-manager.component.scss +0 -52
  554. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +0 -16
  555. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.scss +0 -88
  556. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +0 -25
  557. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.scss +0 -83
  558. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +0 -6
  559. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.scss +0 -24
  560. package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +0 -22
  561. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +0 -29
  562. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.scss +0 -24
  563. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +0 -11
  564. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +0 -26
  565. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.scss +0 -17
  566. package/app/component/service-order/warehouse/warehouse.component.d.ts +0 -35
  567. package/app/component/service-order/warehouse/warehouse.component.scss +0 -52
  568. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +0 -71
  569. package/app/component/shopping-cart/ione-shopping-cart.module.d.ts +0 -2
  570. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +0 -61
  571. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.scss +0 -79
  572. package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.d.ts +0 -34
  573. package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.scss +0 -107
  574. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +0 -91
  575. package/app/enum/checkout-steps.enum.d.ts +0 -7
  576. package/app/enum/position-grid-row.enum.d.ts +0 -4
  577. package/app/model/transaction-add-text-line-request.d.ts +0 -9
  578. package/app/service/transaction-event.service.d.ts +0 -53
  579. package/esm2015/app/component/checkout/checkout/checkout.component.js +0 -157
  580. package/esm2015/app/component/checkout/checkout-login/checkout-login.component.js +0 -106
  581. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +0 -185
  582. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +0 -47
  583. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +0 -47
  584. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +0 -420
  585. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +0 -103
  586. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +0 -377
  587. package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +0 -30
  588. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +0 -31
  589. package/esm2015/app/component/checkout/checkout-transaction/checkout-transaction.component.js +0 -55
  590. package/esm2015/app/component/checkout/ione-checkout.component.js +0 -137
  591. package/esm2015/app/component/checkout/ione-checkout.module.js +0 -76
  592. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +0 -41
  593. package/esm2015/app/component/core/base/transaction-base.component.js +0 -146
  594. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +0 -100
  595. package/esm2015/app/component/core/core.module.js +0 -48
  596. package/esm2015/app/component/core/directive/template-wrapper.directive.js +0 -69
  597. package/esm2015/app/component/core/image-display/image-display.component.js +0 -45
  598. package/esm2015/app/component/core/no-image-display/no-image-display.component.js +0 -26
  599. package/esm2015/app/component/core/relation/customer-groups.component.js +0 -40
  600. package/esm2015/app/component/service-order/ione-service-order-module.js +0 -114
  601. package/esm2015/app/component/service-order/ione-service-order.component.js +0 -96
  602. package/esm2015/app/component/service-order/service-order.component.js +0 -199
  603. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +0 -55
  604. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +0 -59
  605. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +0 -43
  606. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +0 -35
  607. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +0 -38
  608. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +0 -41
  609. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +0 -37
  610. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +0 -38
  611. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +0 -53
  612. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +0 -140
  613. package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +0 -105
  614. package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +0 -73
  615. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +0 -83
  616. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +0 -314
  617. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +0 -76
  618. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +0 -71
  619. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +0 -36
  620. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +0 -116
  621. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +0 -225
  622. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +0 -172
  623. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +0 -120
  624. package/esm2015/app/component/service-order/warehouse/warehouse.component.js +0 -133
  625. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +0 -185
  626. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +0 -62
  627. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +0 -294
  628. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +0 -172
  629. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +0 -451
  630. package/esm2015/app/enum/checkout-steps.enum.js +0 -10
  631. package/esm2015/app/enum/content-view-mode.enum.js +0 -10
  632. package/esm2015/app/enum/language-code.enum.js +0 -8
  633. package/esm2015/app/enum/order-discount-type.enum.js +0 -7
  634. package/esm2015/app/enum/position-grid-row.enum.js +0 -6
  635. package/esm2015/app/enum/time-size.type.js +0 -10
  636. package/esm2015/app/model/business-object.js +0 -81
  637. package/esm2015/app/model/standard-text.js +0 -3
  638. package/esm2015/app/model/text-value-container.js +0 -3
  639. package/esm2015/app/model/transaction-add-text-line-request.js +0 -11
  640. package/esm2015/app/pipe/append.pipe.js +0 -17
  641. package/esm2015/app/pipe/co-currency.pipe.js +0 -47
  642. package/esm2015/app/pipe/date-duration.pipe.js +0 -57
  643. package/esm2015/app/pipe/delivery-time.pipe.js +0 -33
  644. package/esm2015/app/pipe/localize.pipe.js +0 -28
  645. package/esm2015/app/pipe/safe-style-pipe.js +0 -19
  646. package/esm2015/app/service/dictionary.service.js +0 -76
  647. package/esm2015/app/service/ione-connector-adapter.service.js +0 -567
  648. package/esm2015/app/service/options.service.js +0 -91
  649. package/esm2015/app/service/transaction-event.service.js +0 -26
  650. package/esm2015/app/service/transaction.service.js +0 -584
  651. package/esm2015/app/utils/string-utils.js +0 -64
  652. package/esm2015/assets/dictionary/text.properties.js +0 -332
  653. package/esm2015/factory/business-object-factory.js +0 -120
  654. package/esm2015/factory/decorators/boolean.decorator.js +0 -102
  655. package/esm2015/factory/decorators/complex-array.decorator.js +0 -55
  656. package/esm2015/factory/decorators/complex-field.decorator.js +0 -57
  657. package/esm2015/factory/decorators/date-field.decorator.js +0 -36
  658. package/esm2015/factory/decorators/string-number.decorator.js +0 -43
  659. package/esm2015/utils/array-utils.js +0 -183
  660. package/esm2015/utils/is-nill.function.js +0 -5
  661. package/style/styles.scss +0 -367
  662. package/styles.scss +0 -11
@@ -1,567 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Injectable } from "@angular/core";
3
- import { CustomerFullObject } from "@colijnit/transactionapi/build/model/customer-full-object.bo";
4
- import { TransactionInfoResponse } from "@colijnit/transactionapi/build/model/transaction-info-response.bo";
5
- import { RelationPrivacySetting } from "@colijnit/transactionapi/build/model/relation-privacy-setting.bo";
6
- import { GetPostalCodeRetrievalOutputParams } from "@colijnit/transactionapi/build/model/get-postal-code-retrieval-output-params";
7
- import { RelationListObject } from "@colijnit/transactionapi/build/model/relation-list-object.bo";
8
- import { ArticleFullObject } from "@colijnit/transactionapi/build/model/article-full-object";
9
- import { LineOperationResponse } from "@colijnit/transactionapi/build/model/line-operation-response.bo";
10
- import { Transaction } from "@colijnit/transactionapi/build/transaction";
11
- import { BusinessObjectFactory } from "../../factory/business-object-factory";
12
- import { ImageUtils } from "@colijnit/transactionapi/build/utils/image-utils";
13
- import { StandardText } from "../model/standard-text";
14
- import * as i0 from "@angular/core";
15
- export class IOneConnectorAdapterService {
16
- constructor() {
17
- this._boFactory = new BusinessObjectFactory();
18
- this._countryList = [];
19
- }
20
- connect(options) {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- if (this.options === undefined) {
23
- this.options = options;
24
- this.connector = new Transaction(options);
25
- this.options.session = this.connector.session;
26
- }
27
- });
28
- }
29
- disconnect() {
30
- return __awaiter(this, void 0, void 0, function* () {
31
- this.options = undefined;
32
- });
33
- }
34
- getArticleFullObject(goodId) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- return new Promise((resolve, reject) => {
37
- return this.connector.getArticleFullObject(goodId).then((result) => {
38
- if (result.validationResult && result.validationResult.success) {
39
- if (result.resultObject) {
40
- resolve(this._boFactory.makeWithRawBackendData(ArticleFullObject, result.resultObject));
41
- }
42
- }
43
- else {
44
- reject(result.validationMessagesAsString);
45
- }
46
- });
47
- });
48
- });
49
- }
50
- getGoodIdFromArticleNr(articleNr) {
51
- return new Promise((resolve, reject) => {
52
- return this.connector.getGoodIdFromArticleNr(articleNr).then((result) => {
53
- if (result.validationResult && result.validationResult.success) {
54
- resolve(result.resultObject);
55
- }
56
- else {
57
- reject(result.validationMessagesAsString);
58
- }
59
- });
60
- });
61
- }
62
- getSingleImage(nodeId, publication, includeMimetype, thumb) {
63
- return new Promise((resolve, reject) => {
64
- return this.connector.getSingleImage(nodeId, publication, includeMimetype, thumb).then((result) => {
65
- if (result.validationResult && result.validationResult.success) {
66
- if (result.resultObject && result.resultObject.filePath !== null && result.resultObject.filePath !== "") {
67
- return resolve(ImageUtils.getFixedImageFilepathUrl(result.resultObject.filePath));
68
- }
69
- else {
70
- if (result.resultObject) {
71
- if (includeMimetype) {
72
- return resolve(ImageUtils.getDocBodyWithMimeTypeDefinition(result.resultObject.fileName, thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody));
73
- }
74
- return resolve(thumb ? result.resultObject.thumbnailBody : result.resultObject.documentBody);
75
- }
76
- else {
77
- reject(result.validationMessagesAsString);
78
- }
79
- }
80
- }
81
- else {
82
- reject(result.validationMessagesAsString);
83
- }
84
- });
85
- });
86
- }
87
- getDocumentContent(id, thumbnail) {
88
- return new Promise((resolve, reject) => {
89
- return this.connector.getDocumentContent(id, thumbnail).then((result) => {
90
- if (result.validationResult && result.validationResult.success) {
91
- resolve(result.resultObject.documentContent);
92
- }
93
- else {
94
- reject(result.validationMessagesAsString);
95
- }
96
- });
97
- });
98
- }
99
- getCountries() {
100
- if (this._countryList.length > 0) {
101
- return new Promise((resolve) => {
102
- resolve(this._countryList);
103
- });
104
- }
105
- return new Promise((resolve, reject) => {
106
- return this.connector.getCountries().then((result) => {
107
- if (result.validationResult && result.validationResult.success) {
108
- this._countryList = result.resultObjects;
109
- resolve(result.resultObjects);
110
- }
111
- else {
112
- reject(result.validationMessagesAsString);
113
- }
114
- });
115
- });
116
- }
117
- getCustomerGroups() {
118
- return __awaiter(this, void 0, void 0, function* () {
119
- const response = yield this.connector.getCustomerGroups();
120
- if (response && response.validationResult && response.validationResult.success) {
121
- return response.resultObjects;
122
- }
123
- else {
124
- return [];
125
- }
126
- });
127
- }
128
- getCountry(countryCode) {
129
- this.getCountries();
130
- return this._countryList.find(country => country.code === countryCode);
131
- }
132
- getPrivacySettings() {
133
- return new Promise((resolve, reject) => {
134
- return this.connector.getPrivacySettings().then((result) => {
135
- if (result.validationResult && result.validationResult.success) {
136
- resolve(result.resultObjects);
137
- }
138
- else {
139
- reject(result.validationMessagesAsString);
140
- }
141
- });
142
- });
143
- }
144
- getRelationPrivacySettings() {
145
- return __awaiter(this, void 0, void 0, function* () {
146
- const privacySettings = [];
147
- const basePrivacySettings = yield this.getPrivacySettings();
148
- for (let i = 0, len = basePrivacySettings.length; i < len; i++) {
149
- const basePrivSetting = basePrivacySettings[i];
150
- const newRelPrivSet = this._boFactory.instantiateNewBo(RelationPrivacySetting);
151
- newRelPrivSet.applyBasePrivacySettingValues(basePrivSetting);
152
- privacySettings.push(newRelPrivSet);
153
- }
154
- return privacySettings;
155
- });
156
- }
157
- getMarketingCodes() {
158
- return new Promise((resolve, reject) => {
159
- return this.connector.getMarketingCodes().then((result) => {
160
- if (result.validationResult && result.validationResult.success) {
161
- resolve(result.resultObjects);
162
- }
163
- else {
164
- reject(result.validationMessagesAsString);
165
- }
166
- });
167
- });
168
- }
169
- createTransaction(kind, branchNr) {
170
- return new Promise((resolve, reject) => {
171
- return this.connector.createTransaction(kind, branchNr).then((result) => {
172
- if (result.validationResult && result.validationResult.success) {
173
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
174
- }
175
- else {
176
- reject(result.validationMessagesAsString);
177
- }
178
- });
179
- });
180
- }
181
- getTransactionByNrAndKind(kind, transactionNo) {
182
- return new Promise((resolve, reject) => {
183
- return this.connector.getTransactionByNrAndKind(kind, transactionNo).then((result) => {
184
- if (result.validationResult && result.validationResult.success) {
185
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
186
- }
187
- else {
188
- reject(result.validationMessagesAsString);
189
- }
190
- });
191
- });
192
- }
193
- getTransactionById(transactionId) {
194
- return new Promise((resolve, reject) => {
195
- return this.connector.getTransactionById(transactionId).then((result) => {
196
- if (result.validationResult && result.validationResult.success) {
197
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
198
- }
199
- else {
200
- reject(result.validationMessagesAsString);
201
- }
202
- });
203
- });
204
- }
205
- commit() {
206
- return this.connector.commit();
207
- }
208
- saveTransaction(uuid) {
209
- return new Promise((resolve, reject) => {
210
- return this.connector.saveTransaction(uuid).then((result) => {
211
- if (result.validationResult && result.validationResult.success) {
212
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
213
- }
214
- else {
215
- reject(result.validationMessagesAsString);
216
- }
217
- });
218
- });
219
- }
220
- getCustomerFullObject(relationNo) {
221
- return new Promise((resolve, reject) => {
222
- return this.connector.getCustomerFullObject(relationNo).then((result) => {
223
- if (result.validationResult && result.validationResult.success) {
224
- resolve(this._boFactory.makeWithRawBackendData(CustomerFullObject, result.resultObject));
225
- }
226
- else {
227
- reject(result.validationMessagesAsString);
228
- }
229
- });
230
- });
231
- }
232
- getRelationNumber(relationId) {
233
- return __awaiter(this, void 0, void 0, function* () {
234
- return new Promise((resolve, reject) => {
235
- return this.connector.getRelationNumber(relationId).then((result) => {
236
- if (result.validationResult && result.validationResult.success) {
237
- resolve(result.resultObject);
238
- }
239
- else {
240
- reject(result.validationMessagesAsString);
241
- }
242
- });
243
- });
244
- });
245
- }
246
- getSequenceValue(sequenceName) {
247
- return __awaiter(this, void 0, void 0, function* () {
248
- return new Promise((resolve, reject) => {
249
- return this.connector.getSequenceValue(sequenceName).then((result) => {
250
- if (result.validationResult && result.validationResult.success) {
251
- resolve(result.resultObject);
252
- }
253
- else {
254
- reject(result.validationMessagesAsString);
255
- }
256
- });
257
- });
258
- });
259
- }
260
- insertCustomer(relation) {
261
- return __awaiter(this, void 0, void 0, function* () {
262
- return new Promise((resolve, reject) => {
263
- return this.connector.insertCustomer(relation).then((result) => {
264
- if (result.validationResult && result.validationResult.success) {
265
- resolve(this._boFactory.makeWithRawBackendData(CustomerFullObject, result.resultObject));
266
- }
267
- else {
268
- reject(result.validationMessagesAsString);
269
- }
270
- });
271
- });
272
- });
273
- }
274
- updateCustomer(relation) {
275
- return __awaiter(this, void 0, void 0, function* () {
276
- return new Promise((resolve, reject) => {
277
- return this.connector.updateCustomer(relation).then((result) => {
278
- if (result.validationResult && result.validationResult.success) {
279
- resolve(this._boFactory.makeWithRawBackendData(CustomerFullObject, result.resultObject));
280
- }
281
- else {
282
- reject(result.validationMessagesAsString);
283
- }
284
- });
285
- });
286
- });
287
- }
288
- getDeliveryMethods() {
289
- return __awaiter(this, void 0, void 0, function* () {
290
- return new Promise((resolve, reject) => {
291
- return this.connector.getDeliveryMethods().then((result) => {
292
- if (result.validationResult && result.validationResult.success) {
293
- resolve(result.resultObjects);
294
- }
295
- else {
296
- reject(result.validationMessagesAsString);
297
- }
298
- });
299
- });
300
- });
301
- }
302
- getDeliveryOptions() {
303
- return __awaiter(this, void 0, void 0, function* () {
304
- return new Promise((resolve, reject) => {
305
- return this.connector.getDeliveryOptions().then((result) => {
306
- if (result.validationResult && result.validationResult.success) {
307
- resolve(result.resultObjects);
308
- }
309
- else {
310
- reject(result.validationMessagesAsString);
311
- }
312
- });
313
- });
314
- });
315
- }
316
- addRelationToTransaction(uuid, relationId) {
317
- return __awaiter(this, void 0, void 0, function* () {
318
- return new Promise((resolve, reject) => {
319
- return this.connector.addRelationToTransaction(uuid, relationId).then((result) => {
320
- if (result.validationResult && result.validationResult.success) {
321
- resolve(result.validationResult.success);
322
- }
323
- else {
324
- reject(result.validationMessagesAsString);
325
- }
326
- });
327
- });
328
- });
329
- }
330
- setTransactionDeliveryOptions(transactionDeliveryOptionsRequest) {
331
- return __awaiter(this, void 0, void 0, function* () {
332
- return new Promise((resolve, reject) => {
333
- return this.connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest).then((result) => {
334
- if (result.validationResult && result.validationResult.success) {
335
- resolve(result.resultObject);
336
- }
337
- else {
338
- reject(result.validationMessagesAsString);
339
- }
340
- });
341
- });
342
- });
343
- }
344
- getPostalCodeRetrieval(postcalCode, houseNo) {
345
- return __awaiter(this, void 0, void 0, function* () {
346
- return new Promise((resolve, reject) => {
347
- return this.connector.getPostalCodeRetrieval(postcalCode, houseNo).then((result) => {
348
- if (result.validationResult && result.validationResult.success) {
349
- const outputParams = new GetPostalCodeRetrievalOutputParams();
350
- outputParams.city = result.resultObject.city;
351
- outputParams.street = result.resultObject.street;
352
- outputParams.status = result.resultObject.status;
353
- outputParams.netNumber = result.resultObject.netNumber;
354
- resolve(outputParams);
355
- }
356
- else {
357
- reject(result.validationMessagesAsString);
358
- }
359
- });
360
- });
361
- });
362
- }
363
- getRelationListObjects(relationRequest) {
364
- return __awaiter(this, void 0, void 0, function* () {
365
- return new Promise((resolve, reject) => {
366
- return this.connector.getRelationListObjects(relationRequest).then((result) => {
367
- if (result.validationResult && result.validationResult.success) {
368
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(RelationListObject, result.resultObjects));
369
- }
370
- else {
371
- reject(result.validationMessagesAsString);
372
- }
373
- });
374
- });
375
- });
376
- }
377
- addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr) {
378
- return __awaiter(this, void 0, void 0, function* () {
379
- return new Promise((resolve, reject) => {
380
- return this.connector.addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr).then((result) => {
381
- if (result.validationResult && result.validationResult.success) {
382
- resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
383
- }
384
- else {
385
- reject(result.validationMessagesAsString);
386
- }
387
- });
388
- });
389
- });
390
- }
391
- addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
392
- return __awaiter(this, void 0, void 0, function* () {
393
- return new Promise((resolve, reject) => {
394
- return this.connector.addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr).then((result) => {
395
- if (result.validationResult && result.validationResult.success) {
396
- resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
397
- }
398
- else {
399
- reject(result.validationMessagesAsString);
400
- }
401
- });
402
- });
403
- });
404
- }
405
- changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr) {
406
- return __awaiter(this, void 0, void 0, function* () {
407
- return new Promise((resolve, reject) => {
408
- return this.connector.changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr).then((result) => {
409
- if (result.validationResult && result.validationResult.success) {
410
- resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
411
- }
412
- else {
413
- reject(result.validationMessagesAsString);
414
- }
415
- });
416
- });
417
- });
418
- }
419
- cancelAddTransactionLine(lineUuid) {
420
- return __awaiter(this, void 0, void 0, function* () {
421
- return new Promise((resolve, reject) => {
422
- return this.connector.cancelAddTransactionLine(lineUuid).then((result) => {
423
- if (result.validationResult && result.validationResult.success) {
424
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
425
- }
426
- else {
427
- reject(result.validationMessagesAsString);
428
- }
429
- });
430
- });
431
- });
432
- }
433
- deleteTransactionLine(uuid, lineUuid) {
434
- return __awaiter(this, void 0, void 0, function* () {
435
- return new Promise((resolve, reject) => {
436
- return this.connector.deleteTransactionLine(uuid, lineUuid).then((result) => {
437
- if (result.validationResult && result.validationResult.success) {
438
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
439
- }
440
- else {
441
- reject(result.validationMessagesAsString);
442
- }
443
- });
444
- });
445
- });
446
- }
447
- changeTransactionLineQuantity(uuid, lineUuid, newQuantity) {
448
- return __awaiter(this, void 0, void 0, function* () {
449
- return new Promise((resolve, reject) => {
450
- return this.connector.changeTransactionLineQuantity(uuid, lineUuid, newQuantity).then((result) => {
451
- if (result.validationResult && result.validationResult.success) {
452
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
453
- }
454
- else {
455
- reject(result.validationMessagesAsString);
456
- }
457
- });
458
- });
459
- });
460
- }
461
- resolvePendingLineReason(pendingLineValues) {
462
- return __awaiter(this, void 0, void 0, function* () {
463
- return new Promise((resolve, reject) => {
464
- return this.connector.resolvePendingLineReason(pendingLineValues).then((result) => {
465
- if (result.validationResult && result.validationResult.success) {
466
- resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
467
- }
468
- else {
469
- reject(result.validationMessagesAsString);
470
- }
471
- });
472
- });
473
- });
474
- }
475
- getCommissionCodes(languageCode) {
476
- return __awaiter(this, void 0, void 0, function* () {
477
- return new Promise((resolve, reject) => {
478
- return this.connector.getCommissionCodes(languageCode).then((result) => {
479
- if (result.validationResult && result.validationResult.success) {
480
- resolve(result.resultObjects);
481
- }
482
- else {
483
- reject(result.validationMessagesAsString);
484
- }
485
- });
486
- });
487
- });
488
- }
489
- getInOutCollection(languageCode) {
490
- return __awaiter(this, void 0, void 0, function* () {
491
- return new Promise((resolve, reject) => {
492
- return this.connector.getInOutCollection(languageCode).then((result) => {
493
- if (result.validationResult && result.validationResult.success) {
494
- resolve(result.resultObjects);
495
- }
496
- else {
497
- reject(result.validationMessagesAsString);
498
- }
499
- });
500
- });
501
- });
502
- }
503
- getTransactionArticleWarehouses(goodId) {
504
- return __awaiter(this, void 0, void 0, function* () {
505
- return new Promise((resolve, reject) => {
506
- return this.connector.getTransactionArticleWarehouses(goodId).then((result) => {
507
- if (result.validationResult && result.validationResult.success) {
508
- resolve(result.resultObjects);
509
- }
510
- else {
511
- reject(result.validationMessagesAsString);
512
- }
513
- });
514
- });
515
- });
516
- }
517
- setRelationByUser(uuid, username, password) {
518
- return __awaiter(this, void 0, void 0, function* () {
519
- return new Promise((resolve, reject) => {
520
- return this.connector.setRelationByUser(uuid, username, password).then((result) => {
521
- if (result.validationResult && result.validationResult.success) {
522
- resolve(result.validationResult.success);
523
- }
524
- else {
525
- reject(result.validationMessagesAsString);
526
- }
527
- });
528
- });
529
- });
530
- }
531
- getTextTypes(languageCode) {
532
- return __awaiter(this, void 0, void 0, function* () {
533
- return new Promise((resolve, reject) => {
534
- return this.connector.getTextTypes(languageCode).then((result) => {
535
- if (result.validationResult && result.validationResult.success) {
536
- resolve(result.resultObjects);
537
- }
538
- else {
539
- reject(result.validationMessagesAsString);
540
- }
541
- });
542
- });
543
- });
544
- }
545
- getStandardTexts(languageCode) {
546
- return __awaiter(this, void 0, void 0, function* () {
547
- return new Promise((resolve, reject) => {
548
- return this.connector.getStandardTexts(languageCode).then((result) => {
549
- if (result.validationResult && result.validationResult.success) {
550
- resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(StandardText, result.resultObject));
551
- }
552
- else {
553
- reject(result.validationMessagesAsString);
554
- }
555
- });
556
- });
557
- });
558
- }
559
- }
560
- IOneConnectorAdapterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IOneConnectorAdapterService_Factory() { return new IOneConnectorAdapterService(); }, token: IOneConnectorAdapterService, providedIn: "root" });
561
- IOneConnectorAdapterService.decorators = [
562
- { type: Injectable, args: [{
563
- providedIn: "root"
564
- },] }
565
- ];
566
- IOneConnectorAdapterService.ctorParameters = () => [];
567
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2FwcC9zZXJ2aWNlL2lvbmUtY29ubmVjdG9yLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQUNoRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxtRUFBbUUsQ0FBQztBQUkxRyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUt4RyxPQUFPLEVBQUMsa0NBQWtDLEVBQUMsTUFBTSw4RUFBOEUsQ0FBQztBQUNoSSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQU1oRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwwREFBMEQsQ0FBQztBQUMzRixPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSxpRUFBaUUsQ0FBQztBQUV0RyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFFdkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDNUUsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGtEQUFrRCxDQUFDO0FBQzVFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLDJCQUEyQjtJQVF0QztRQUhRLGVBQVUsR0FBMEIsSUFBSSxxQkFBcUIsRUFBRSxDQUFDO1FBQ2hFLGlCQUFZLEdBQWMsRUFBRSxDQUFDO0lBRXRCLENBQUM7SUFFSCxPQUFPLENBQUMsT0FBWTs7WUFDL0IsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLFNBQVMsRUFBRTtnQkFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFP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QUMsT0FBaUIsRUFBRSxNQUFnQixFQUFFLEVBQUU7Z0JBQ3pELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUErQixFQUFFLEVBQUU7b0JBQzVGLElBQUksTUFBTSxDQUFDLGdCQUFnQixJQUFJLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUU7d0JBQzlELE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtDQUFrQyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztxQkFDaEc7eUJBQU07d0JBQ0wsTUFBTSxDQUFDLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO3FCQUMzQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztLQUFBOzs7O1lBM2ZGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7TWFya2V0aW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL21hcmtldGluZy5ib1wiO1xuaW1wb3J0IHtDdXN0b21lckZ1bGxPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZnVsbC1vYmplY3QuYm9cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbktpbmR9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS90cmFuc2FjdGlvbi1raW5kLmVudW1cIjtcbmltcG9ydCB7Q291bnRyeX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jb3VudHJ5LmJvXCI7XG5pbXBvcnQge1ByaXZhY3lTZXR0aW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3ByaXZhY3ktc2V0dGluZy5ib1wiO1xuaW1wb3J0IHtSZWxhdGlvblByaXZhY3lTZXR0aW5nfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXByaXZhY3ktc2V0dGluZy5ib1wiO1xuaW1wb3J0IHtTZXF1ZW5jZU5hbWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9zZXF1ZW5jZS1uYW1lLmVudW1cIjtcbmltcG9ydCB7RGVsaXZlcnlNZXRob2R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktbWV0aG9kLmJvXCI7XG5pbXBvcnQge0RlbGl2ZXJ5T3B0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RlbGl2ZXJ5LW9wdGlvbi5ib1wiO1xuaW1wb3J0IHtTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvc2V0LXRyYW5zYWN0aW9uLWRlbGl2ZXJ5LW9wdGlvbnMtcmVxdWVzdC5ib1wiO1xuaW1wb3J0IHtHZXRQb3N0YWxDb2RlUmV0cmlldmFsT3V0cHV0UGFyYW1zfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2dldC1wb3N0YWwtY29kZS1yZXRyaWV2YWwtb3V0cHV0LXBhcmFtc1wiO1xuaW1wb3J0IHtSZWxhdGlvbkxpc3RPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tbGlzdC1vYmplY3QuYm9cIjtcbmltcG9ydCB7UmVsYXRpb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLXJlcXVlc3RcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RyYW5zYWN0aW9uLWxpbmUtdHlwZS5lbnVtXCI7XG5pbXBvcnQge1Jlc29sdmVQZW5kaW5nTGluZVJlYXNvblJlcXVlc3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVzb2x2ZS1wZW5kaW5nLXJlYXNvbi1yZXF1ZXN0LmJvXCI7XG5pbXBvcnQge0NvRG9tYWluVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY28tZG9tYWluLXZhbHVlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uQXJ0aWNsZVdhcmVob3VzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1hcnRpY2xlLXdhcmVob3VzZS5ib1wiO1xuaW1wb3J0IHtBcnRpY2xlRnVsbE9iamVjdH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hcnRpY2xlLWZ1bGwtb2JqZWN0XCI7XG5pbXBvcnQge0xpbmVPcGVyYXRpb25SZXNwb25zZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9saW5lLW9wZXJhdGlvbi1yZXNwb25zZS5ib1wiO1xuaW1wb3J0IHtUcmFuc2FjdGlvblJlc3BvbnNlQmFzZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1yZXNwb25zZS1iYXNlLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3RyYW5zYWN0aW9uXCI7XG5pbXBvcnQge0RhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2RhdGEtc2VydmljZS1yZXNwb25zZS1kYXRhXCI7XG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSBcIi4uLy4uL2ZhY3RvcnkvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnlcIjtcbmltcG9ydCB7SW1hZ2VVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9pbWFnZS11dGlsc1wiO1xuaW1wb3J0IHtTdGFuZGFyZFRleHR9IGZyb20gXCIuLi9tb2RlbC9zdGFuZGFyZC10ZXh0XCI7XG5pbXBvcnQge0N1c3RvbWVyR3JvdXB9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY3VzdG9tZXItZ3JvdXAuYm9cIjtcbmltcG9ydCB7RGF0YX0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXG59KVxuZXhwb3J0IGNsYXNzIElPbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZSB7XG4gIHB1YmxpYyBvcHRpb25zOiBhbnk7XG5cbiAgcHVibGljIGNvbm5lY3RvcjogVHJhbnNhY3Rpb247XG5cbiAgcHJpdmF0ZSBfYm9GYWN0b3J5OiBCdXNpbmVzc09iamVjdEZhY3RvcnkgPSBuZXcgQnVzaW5lc3NPYmplY3RGYWN0b3J5KCk7XG4gIHByaXZhdGUgX2NvdW50cnlMaXN0OiBDb3VudHJ5W10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgcHVibGljIGFzeW5jIGNvbm5lY3Qob3B0aW9uczogYW55KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKHRoaXMub3B0aW9ucyA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuICAgICAgdGhpcy5jb25uZWN0b3IgPSBuZXcgVHJhbnNhY3Rpb24ob3B0aW9ucyk7XG4gICAgICB0aGlzLm9wdGlvbnMuc2Vzc2lvbiA9IHRoaXMuY29ubmVjdG9yLnNlc3Npb247XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2Nvbm5lY3QoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5vcHRpb25zID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEFydGljbGVGdWxsT2JqZWN0KGdvb2RJZDogbnVtYmVyKTogUHJvbWlzZTxBcnRpY2xlRnVsbE9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRBcnRpY2xlRnVsbE9iamVjdChnb29kSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCkge1xuICAgICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBcnRpY2xlRnVsbE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRHb29kSWRGcm9tQXJ0aWNsZU5yKGFydGljbGVOcjogc3RyaW5nKTogUHJvbWlzZTxudW1iZXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0R29vZElkRnJvbUFydGljbGVOcihhcnRpY2xlTnIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaW5nbGVJbWFnZShub2RlSWQ6IG51bWJlciB8IHN0cmluZywgcHVibGljYXRpb246IG51bWJlciwgaW5jbHVkZU1pbWV0eXBlOiBib29sZWFuLCB0aHVtYjogYm9vbGVhbik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFNpbmdsZUltYWdlKG5vZGVJZCwgcHVibGljYXRpb24sIGluY2x1ZGVNaW1ldHlwZSwgdGh1bWIpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBpZiAocmVzdWx0LnJlc3VsdE9iamVjdCAmJiByZXN1bHQucmVzdWx0T2JqZWN0LmZpbGVQYXRoICE9PSBudWxsICYmIHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZVBhdGggIT09IFwiXCIpIHtcbiAgICAgICAgICAgIHJldHVybiByZXNvbHZlKEltYWdlVXRpbHMuZ2V0Rml4ZWRJbWFnZUZpbGVwYXRoVXJsKHJlc3VsdC5yZXN1bHRPYmplY3QuZmlsZVBhdGgpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5yZXN1bHRPYmplY3QpIHtcbiAgICAgICAgICAgICAgaWYgKGluY2x1ZGVNaW1ldHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKEltYWdlVXRpbHMuZ2V0RG9jQm9keVdpdGhNaW1lVHlwZURlZmluaXRpb24ocmVzdWx0LnJlc3VsdE9iamVjdC5maWxlTmFtZSxcbiAgICAgICAgICAgICAgICAgIHRodW1iID8gcmVzdWx0LnJlc3VsdE9iamVjdC50aHVtYm5haWxCb2R5IDogcmVzdWx0LnJlc3VsdE9iamVjdC5kb2N1bWVudEJvZHkpKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSh0aHVtYiA/IHJlc3VsdC5yZXN1bHRPYmplY3QudGh1bWJuYWlsQm9keSA6IHJlc3VsdC5yZXN1bHRPYmplY3QuZG9jdW1lbnRCb2R5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldERvY3VtZW50Q29udGVudChpZDogbnVtYmVyLCB0aHVtYm5haWw6IGJvb2xlYW4pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXREb2N1bWVudENvbnRlbnQoaWQsIHRodW1ibmFpbCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdC5kb2N1bWVudENvbnRlbnQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDb3VudHJpZXMoKTogUHJvbWlzZTxDb3VudHJ5W10+IHtcbiAgICBpZiAodGhpcy5fY291bnRyeUxpc3QubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbikgPT4ge1xuICAgICAgICByZXNvbHZlKHRoaXMuX2NvdW50cnlMaXN0KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRDb3VudHJpZXMoKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgdGhpcy5fY291bnRyeUxpc3QgPSByZXN1bHQucmVzdWx0T2JqZWN0cztcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0Q3VzdG9tZXJHcm91cHMoKTogUHJvbWlzZTxDdXN0b21lckdyb3VwW10+IHtcbiAgICBjb25zdCByZXNwb25zZTogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEgPSBhd2FpdCB0aGlzLmNvbm5lY3Rvci5nZXRDdXN0b21lckdyb3VwcygpO1xuICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3BvbnNlLnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgcmV0dXJuIHJlc3BvbnNlLnJlc3VsdE9iamVjdHM7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRyeShjb3VudHJ5Q29kZTogc3RyaW5nKTogQ291bnRyeSB7XG4gICAgdGhpcy5nZXRDb3VudHJpZXMoKTtcbiAgICByZXR1cm4gdGhpcy5fY291bnRyeUxpc3QuZmluZChjb3VudHJ5ID0+IGNvdW50cnkuY29kZSA9PT0gY291bnRyeUNvZGUpO1xuICB9XG5cbiAgcHVibGljIGdldFByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFByaXZhY3lTZXR0aW5nW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0UHJpdmFjeVNldHRpbmdzKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPFByaXZhY3lTZXR0aW5nW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRSZWxhdGlvblByaXZhY3lTZXR0aW5ncygpOiBQcm9taXNlPFJlbGF0aW9uUHJpdmFjeVNldHRpbmdbXT4ge1xuICAgIGNvbnN0IHByaXZhY3lTZXR0aW5nczogUmVsYXRpb25Qcml2YWN5U2V0dGluZ1tdID0gW107XG5cbiAgICBjb25zdCBiYXNlUHJpdmFjeVNldHRpbmdzOiBQcml2YWN5U2V0dGluZ1tdID0gYXdhaXQgdGhpcy5nZXRQcml2YWN5U2V0dGluZ3MoKTtcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwLCBsZW46IG51bWJlciA9IGJhc2VQcml2YWN5U2V0dGluZ3MubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgIGNvbnN0IGJhc2VQcml2U2V0dGluZzogUHJpdmFjeVNldHRpbmcgPSBiYXNlUHJpdmFjeVNldHRpbmdzW2ldO1xuICAgICAgY29uc3QgbmV3UmVsUHJpdlNldDogUmVsYXRpb25Qcml2YWN5U2V0dGluZyA9IDxSZWxhdGlvblByaXZhY3lTZXR0aW5nPjx1bmtub3duPnRoaXMuX2JvRmFjdG9yeS5pbnN0YW50aWF0ZU5ld0JvKFJlbGF0aW9uUHJpdmFjeVNldHRpbmcpO1xuICAgICAgbmV3UmVsUHJpdlNldC5hcHBseUJhc2VQcml2YWN5U2V0dGluZ1ZhbHVlcyhiYXNlUHJpdlNldHRpbmcpO1xuICAgICAgcHJpdmFjeVNldHRpbmdzLnB1c2gobmV3UmVsUHJpdlNldCk7XG4gICAgfVxuICAgIHJldHVybiBwcml2YWN5U2V0dGluZ3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0TWFya2V0aW5nQ29kZXMoKTogUHJvbWlzZTxNYXJrZXRpbmdbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRNYXJrZXRpbmdDb2RlcygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxDb0RvbWFpblZhbHVlW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjcmVhdGVUcmFuc2FjdGlvbihraW5kOiBUcmFuc2FjdGlvbktpbmQsIGJyYW5jaE5yOiBzdHJpbmcpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNyZWF0ZVRyYW5zYWN0aW9uKGtpbmQsIGJyYW5jaE5yKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQ6IFRyYW5zYWN0aW9uS2luZCwgdHJhbnNhY3Rpb25ObzogbnVtYmVyKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRUcmFuc2FjdGlvbkJ5TnJBbmRLaW5kKGtpbmQsIHRyYW5zYWN0aW9uTm8pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFRyYW5zYWN0aW9uQnlJZCh0cmFuc2FjdGlvbklkOiBudW1iZXIpOiBQcm9taXNlPFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFRyYW5zYWN0aW9uQnlJZCh0cmFuc2FjdGlvbklkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjb21taXQoKTogUHJvbWlzZTxEYXRhU2VydmljZVJlc3BvbnNlRGF0YT4ge1xuICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jb21taXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlVHJhbnNhY3Rpb24odXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5zYXZlVHJhbnNhY3Rpb24odXVpZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VzdG9tZXJGdWxsT2JqZWN0KHJlbGF0aW9uTm86IG51bWJlcik6IFByb21pc2U8Q3VzdG9tZXJGdWxsT2JqZWN0PiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldEN1c3RvbWVyRnVsbE9iamVjdChyZWxhdGlvbk5vKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShDdXN0b21lckZ1bGxPYmplY3QsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25OdW1iZXIocmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0UmVsYXRpb25OdW1iZXIocmVsYXRpb25JZCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFNlcXVlbmNlVmFsdWUoc2VxdWVuY2VOYW1lOiBTZXF1ZW5jZU5hbWUpOiBQcm9taXNlPG51bWJlcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRTZXF1ZW5jZVZhbHVlKHNlcXVlbmNlTmFtZSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluc2VydEN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5pbnNlcnRDdXN0b21lcihyZWxhdGlvbikudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3VzdG9tZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUN1c3RvbWVyKHJlbGF0aW9uOiBDdXN0b21lckZ1bGxPYmplY3QpOiBQcm9taXNlPEN1c3RvbWVyRnVsbE9iamVjdD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci51cGRhdGVDdXN0b21lcihyZWxhdGlvbikudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQ3VzdG9tZXJGdWxsT2JqZWN0LCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldERlbGl2ZXJ5TWV0aG9kcygpOiBQcm9taXNlPERlbGl2ZXJ5TWV0aG9kW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0RGVsaXZlcnlNZXRob2RzKCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUoPERlbGl2ZXJ5TWV0aG9kW10+cmVzdWx0LnJlc3VsdE9iamVjdHMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXREZWxpdmVyeU9wdGlvbnMoKTogUHJvbWlzZTxEZWxpdmVyeU9wdGlvbltdPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldERlbGl2ZXJ5T3B0aW9ucygpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxEZWxpdmVyeU1ldGhvZFtdPnJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkUmVsYXRpb25Ub1RyYW5zYWN0aW9uKHV1aWQ6IHN0cmluZywgcmVsYXRpb25JZDogbnVtYmVyKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmFkZFJlbGF0aW9uVG9UcmFuc2FjdGlvbih1dWlkLCByZWxhdGlvbklkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZShyZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgc2V0VHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnModHJhbnNhY3Rpb25EZWxpdmVyeU9wdGlvbnNSZXF1ZXN0OiBTZXRUcmFuc2FjdGlvbkRlbGl2ZXJ5T3B0aW9uc1JlcXVlc3QpOiBQcm9taXNlPFRyYW5zYWN0aW9uUmVzcG9uc2VCYXNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLnNldFRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zKHRyYW5zYWN0aW9uRGVsaXZlcnlPcHRpb25zUmVxdWVzdCkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUocmVzdWx0LnJlc3VsdE9iamVjdCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldFBvc3RhbENvZGVSZXRyaWV2YWwocG9zdGNhbENvZGU6IHN0cmluZywgaG91c2VObzogc3RyaW5nKTogUHJvbWlzZTxHZXRQb3N0YWxDb2RlUmV0cmlldmFsT3V0cHV0UGFyYW1zPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmdldFBvc3RhbENvZGVSZXRyaWV2YWwocG9zdGNhbENvZGUsIGhvdXNlTm8pLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBjb25zdCBvdXRwdXRQYXJhbXM6IEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXMgPSBuZXcgR2V0UG9zdGFsQ29kZVJldHJpZXZhbE91dHB1dFBhcmFtcygpO1xuICAgICAgICAgIG91dHB1dFBhcmFtcy5jaXR5ID0gcmVzdWx0LnJlc3VsdE9iamVjdC5jaXR5O1xuICAgICAgICAgIG91dHB1dFBhcmFtcy5zdHJlZXQgPSByZXN1bHQucmVzdWx0T2JqZWN0LnN0cmVldDtcbiAgICAgICAgICBvdXRwdXRQYXJhbXMuc3RhdHVzID0gcmVzdWx0LnJlc3VsdE9iamVjdC5zdGF0dXM7XG4gICAgICAgICAgb3V0cHV0UGFyYW1zLm5ldE51bWJlciA9IHJlc3VsdC5yZXN1bHRPYmplY3QubmV0TnVtYmVyO1xuICAgICAgICAgIHJlc29sdmUob3V0cHV0UGFyYW1zKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3Q6IFJlbGF0aW9uUmVxdWVzdCk6IFByb21pc2U8UmVsYXRpb25MaXN0T2JqZWN0W10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0UmVsYXRpb25MaXN0T2JqZWN0cyhyZWxhdGlvblJlcXVlc3QpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFJlbGF0aW9uTGlzdE9iamVjdCwgcmVzdWx0LnJlc3VsdE9iamVjdHMpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgYWRkVHJhbnNhY3Rpb25MaW5lKHV1aWQ6IHN0cmluZywgYXJ0aWNsZUxpbmU6IFRyYW5zYWN0aW9uTGluZVR5cGUsIGFydGljbGVObzogc3RyaW5nLCBhbW91bnQ6IG51bWJlciwgd2FyZWhvdXNlTm86IG51bWJlciwgY29tbWlzc2lvbkNvZGU6IHN0cmluZywgaXNSZXR1cm46IGJvb2xlYW4sIGFib3ZlTGluZU5yOiBudW1iZXIsIGJlbG93TGluZU5yOiBudW1iZXIpOlxuICAgIFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmFkZFRyYW5zYWN0aW9uTGluZSh1dWlkLCBhcnRpY2xlTGluZSwgYXJ0aWNsZU5vLCBhbW91bnQsIHdhcmVob3VzZU5vLCBjb21taXNzaW9uQ29kZSwgaXNSZXR1cm4sIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcikudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoTGluZU9wZXJhdGlvblJlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZFRleHRMaW5lVG9UcmFuc2FjdGlvbih1dWlkOiBzdHJpbmcsIHNob3dPbkRvY3VtZW50czogbnVtYmVyLCB0ZXh0OiBzdHJpbmcsIGFtb3VudDogbnVtYmVyLCBhcnRpY2xlQm91bmQ6IGJvb2xlYW4sIHJlZkFydGljbGVMaW5lTnI6IG51bWJlciwgYWJvdmVMaW5lTnI/OiBudW1iZXIsIGJlbG93TGluZU5yPzogbnVtYmVyKTpcbiAgICBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5hZGRUZXh0TGluZVRvVHJhbnNhY3Rpb24odXVpZCwgc2hvd09uRG9jdW1lbnRzLCB0ZXh0LCBhbW91bnQsIGFydGljbGVCb3VuZCwgcmVmQXJ0aWNsZUxpbmVOciwgYWJvdmVMaW5lTnIsIGJlbG93TGluZU5yKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShMaW5lT3BlcmF0aW9uUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY2hhbmdlTGluZVNlcXVlbmNlKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgYWJvdmVMaW5lTnI/OiBudW1iZXIsIGJlbG93TGluZU5yPzogbnVtYmVyKTpcbiAgICBQcm9taXNlPExpbmVPcGVyYXRpb25SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jaGFuZ2VMaW5lU2VxdWVuY2UodXVpZCwgbGluZVV1aWQsIGFib3ZlTGluZU5yLCBiZWxvd0xpbmVOcikudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoTGluZU9wZXJhdGlvblJlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNhbmNlbEFkZFRyYW5zYWN0aW9uTGluZShsaW5lVXVpZDogc3RyaW5nKTogUHJvbWlzZTxUcmFuc2FjdGlvbkluZm9SZXNwb25zZT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5jYW5jZWxBZGRUcmFuc2FjdGlvbkxpbmUobGluZVV1aWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlV2l0aFJhd0JhY2tlbmREYXRhKFRyYW5zYWN0aW9uSW5mb1Jlc3BvbnNlLCByZXN1bHQucmVzdWx0T2JqZWN0KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZyk6IFByb21pc2U8VHJhbnNhY3Rpb25JbmZvUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHV1aWQsIGxpbmVVdWlkKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG5cbiAgcHVibGljIGFzeW5jIGNoYW5nZVRyYW5zYWN0aW9uTGluZVF1YW50aXR5KHV1aWQ6IHN0cmluZywgbGluZVV1aWQ6IHN0cmluZywgbmV3UXVhbnRpdHk6IG51bWJlcik6IFByb21pc2U8TGluZU9wZXJhdGlvblJlc3BvbnNlPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiBGdW5jdGlvbiwgcmVqZWN0OiBGdW5jdGlvbikgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY29ubmVjdG9yLmNoYW5nZVRyYW5zYWN0aW9uTGluZVF1YW50aXR5KHV1aWQsIGxpbmVVdWlkLCBuZXdRdWFudGl0eSkudGhlbigocmVzdWx0OiBEYXRhU2VydmljZVJlc3BvbnNlRGF0YSkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0LnZhbGlkYXRpb25SZXN1bHQgJiYgcmVzdWx0LnZhbGlkYXRpb25SZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIHJlc29sdmUodGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoVHJhbnNhY3Rpb25JbmZvUmVzcG9uc2UsIHJlc3VsdC5yZXN1bHRPYmplY3QpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzOiBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KTogUHJvbWlzZTxMaW5lT3BlcmF0aW9uUmVzcG9uc2U+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHBlbmRpbmdMaW5lVmFsdWVzKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSh0aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShUcmFuc2FjdGlvbkluZm9SZXNwb25zZSwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRDb21taXNzaW9uQ29kZXMobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENvRG9tYWluVmFsdWVbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRDb21taXNzaW9uQ29kZXMobGFuZ3VhZ2VDb2RlKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSg8Q29Eb21haW5WYWx1ZVtdPnJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRJbk91dENvbGxlY3Rpb24obGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENvRG9tYWluVmFsdWVbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRJbk91dENvbGxlY3Rpb24obGFuZ3VhZ2VDb2RlKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSg8Q29Eb21haW5WYWx1ZVtdPnJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQ6IG51bWJlcik6IFByb21pc2U8VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0VHJhbnNhY3Rpb25BcnRpY2xlV2FyZWhvdXNlcyhnb29kSWQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKDxUcmFuc2FjdGlvbkFydGljbGVXYXJlaG91c2VbXT5yZXN1bHQucmVzdWx0T2JqZWN0cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVqZWN0KHJlc3VsdC52YWxpZGF0aW9uTWVzc2FnZXNBc1N0cmluZyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNldFJlbGF0aW9uQnlVc2VyKHV1aWQ6IHN0cmluZywgdXNlcm5hbWU6IHN0cmluZywgcGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5zZXRSZWxhdGlvbkJ5VXNlcih1dWlkLCB1c2VybmFtZSwgcGFzc3dvcmQpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBnZXRUZXh0VHlwZXMobGFuZ3VhZ2VDb2RlOiBzdHJpbmcpOiBQcm9taXNlPENvRG9tYWluVmFsdWVbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZTogRnVuY3Rpb24sIHJlamVjdDogRnVuY3Rpb24pID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNvbm5lY3Rvci5nZXRUZXh0VHlwZXMobGFuZ3VhZ2VDb2RlKS50aGVuKChyZXN1bHQ6IERhdGFTZXJ2aWNlUmVzcG9uc2VEYXRhKSA9PiB7XG4gICAgICAgIGlmIChyZXN1bHQudmFsaWRhdGlvblJlc3VsdCAmJiByZXN1bHQudmFsaWRhdGlvblJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgICAgcmVzb2x2ZSg8Q29Eb21haW5WYWx1ZVtdPnJlc3VsdC5yZXN1bHRPYmplY3RzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZWplY3QocmVzdWx0LnZhbGlkYXRpb25NZXNzYWdlc0FzU3RyaW5nKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZ2V0U3RhbmRhcmRUZXh0cyhsYW5ndWFnZUNvZGU6IHN0cmluZyk6IFByb21pc2U8U3RhbmRhcmRUZXh0W10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmU6IEZ1bmN0aW9uLCByZWplY3Q6IEZ1bmN0aW9uKSA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5jb25uZWN0b3IuZ2V0U3RhbmRhcmRUZXh0cyhsYW5ndWFnZUNvZGUpLnRoZW4oKHJlc3VsdDogRGF0YVNlcnZpY2VSZXNwb25zZURhdGEpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0ICYmIHJlc3VsdC52YWxpZGF0aW9uUmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICByZXNvbHZlKHRoaXMuX2JvRmFjdG9yeS5tYWtlQk9BcnJheUZyb21SYXdCYWNrZW5kRGF0YUFycmF5KFN0YW5kYXJkVGV4dCwgcmVzdWx0LnJlc3VsdE9iamVjdCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlamVjdChyZXN1bHQudmFsaWRhdGlvbk1lc3NhZ2VzQXNTdHJpbmcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19