@colijnit/transaction 12.1.5 → 12.1.8

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 (455) hide show
  1. package/README.md +10 -13
  2. package/bundles/colijnit-transaction.umd.js +5427 -7279
  3. package/bundles/colijnit-transaction.umd.js.map +1 -1
  4. package/colijnit-transaction.d.ts +45 -57
  5. package/colijnit-transaction.metadata.json +1 -1
  6. package/esm2015/colijnit-transaction.js +46 -58
  7. package/esm2015/lib/assets/dictionary/text.properties.js +346 -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 +443 -0
  11. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +371 -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 +102 -0
  15. package/esm2015/lib/component/checkout/checkout.module.js +77 -0
  16. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +38 -0
  17. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.module.js +24 -0
  18. package/esm2015/lib/component/core/base/dialog-base.component.js +6 -0
  19. package/esm2015/lib/component/core/base/transaction-base.component.js +96 -0
  20. package/esm2015/lib/component/core/core.module.js +36 -0
  21. package/esm2015/lib/component/core/enum/app-popup-button-type.enum.js +11 -0
  22. package/esm2015/lib/component/core/icon/icon.component.js +31 -0
  23. package/esm2015/lib/component/core/image-display/image-display.component.js +29 -0
  24. package/esm2015/lib/component/core/relation/customer-groups.component.js +40 -0
  25. package/esm2015/lib/component/core/stock-status-indicator/stock-status-indicator.component.js +24 -0
  26. package/esm2015/lib/component/discount/discount.component.js +107 -0
  27. package/esm2015/lib/component/discount/discount.module.js +29 -0
  28. package/esm2015/lib/component/relation-address/relation-address.component.js +125 -0
  29. package/esm2015/lib/component/relation-address/relation-address.module.js +28 -0
  30. package/esm2015/lib/component/relation-address-select/relation-address-select.component.js +146 -0
  31. package/esm2015/lib/component/relation-address-select/relation-address-select.module.js +33 -0
  32. package/esm2015/lib/component/relation-address-tile/relation-address-tile.component.js +73 -0
  33. package/esm2015/lib/component/relation-address-tile/relation-address-tile.module.js +30 -0
  34. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +118 -0
  35. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.module.js +31 -0
  36. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +129 -0
  37. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +34 -0
  38. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +57 -0
  39. package/esm2015/lib/component/shopping-cart/shopping-cart.module.js +27 -0
  40. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +51 -0
  41. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.module.js +29 -0
  42. package/esm2015/lib/component/stepper/component/stepper-step.component.js +40 -0
  43. package/esm2015/lib/component/stepper/stepper.component.js +126 -0
  44. package/esm2015/lib/component/stepper/stepper.module.js +26 -0
  45. package/esm2015/lib/component/transaction/transaction.component.js +96 -0
  46. package/esm2015/lib/component/transaction/transaction.module.js +39 -0
  47. package/esm2015/lib/component/transaction-header/transaction-header.component.js +36 -0
  48. package/esm2015/lib/component/transaction-header/transaction-header.module.js +27 -0
  49. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.component.js +34 -0
  50. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.module.js +19 -0
  51. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.component.js +57 -0
  52. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.module.js +21 -0
  53. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.component.js +35 -0
  54. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.module.js +19 -0
  55. package/esm2015/lib/component/transaction-line/transaction-line.component.js +250 -0
  56. package/esm2015/lib/component/transaction-line/transaction-line.module.js +30 -0
  57. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.component.js +23 -0
  58. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.module.js +21 -0
  59. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +117 -0
  60. package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +31 -0
  61. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.component.js +58 -0
  62. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.module.js +26 -0
  63. package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +44 -0
  64. package/esm2015/lib/component/transaction-totals/transaction-totals.module.js +23 -0
  65. package/esm2015/lib/enum/content-view-mode.enum.js +10 -0
  66. package/esm2015/lib/enum/icon.enum.js +17 -0
  67. package/esm2015/lib/enum/language-code.enum.js +8 -0
  68. package/esm2015/lib/enum/order-discount-type.enum.js +7 -0
  69. package/esm2015/lib/enum/time-size.type.js +10 -0
  70. package/esm2015/lib/factory/business-object-factory.js +120 -0
  71. package/esm2015/lib/factory/decorators/boolean.decorator.js +102 -0
  72. package/esm2015/lib/factory/decorators/complex-array.decorator.js +55 -0
  73. package/esm2015/lib/factory/decorators/complex-field.decorator.js +57 -0
  74. package/esm2015/lib/factory/decorators/date-field.decorator.js +36 -0
  75. package/esm2015/lib/factory/decorators/string-number.decorator.js +43 -0
  76. package/esm2015/lib/model/business-object.js +81 -0
  77. package/esm2015/lib/model/icon-svg.js +16 -0
  78. package/esm2015/lib/model/standard-text.js +3 -0
  79. package/esm2015/lib/model/text-value-container.js +3 -0
  80. package/esm2015/lib/pipe/append.pipe.js +17 -0
  81. package/esm2015/lib/pipe/co-currency.pipe.js +47 -0
  82. package/esm2015/lib/pipe/date-duration.pipe.js +57 -0
  83. package/esm2015/lib/pipe/delivery-time.pipe.js +33 -0
  84. package/esm2015/lib/pipe/localize.pipe.js +28 -0
  85. package/esm2015/lib/pipe/pipe.module.js +37 -0
  86. package/esm2015/lib/pipe/safe-html.pipe.js +19 -0
  87. package/esm2015/lib/pipe/safe-style.pipe.js +19 -0
  88. package/esm2015/lib/service/dialog.service.js +65 -0
  89. package/esm2015/lib/service/dictionary.service.js +76 -0
  90. package/esm2015/lib/service/icon-cache.service.js +51 -0
  91. package/esm2015/lib/service/ione-connector-adapter.service.js +578 -0
  92. package/esm2015/lib/service/options.service.js +69 -0
  93. package/esm2015/lib/service/pending-reason.service.js +171 -0
  94. package/esm2015/lib/service/transaction.service.js +513 -0
  95. package/esm2015/lib/utils/array-utils.js +183 -0
  96. package/esm2015/lib/utils/is-nill.function.js +5 -0
  97. package/esm2015/lib/utils/string-utils.js +64 -0
  98. package/esm2015/public_api.js +28 -10
  99. package/fesm2015/colijnit-transaction.js +5287 -7210
  100. package/fesm2015/colijnit-transaction.js.map +1 -1
  101. package/{assets → lib/assets}/dictionary/text.properties.d.ts +0 -0
  102. package/{app → lib}/component/checkout/checkout-login/checkout-login.component.d.ts +0 -0
  103. package/lib/component/checkout/checkout-login/checkout-login.component.scss +35 -0
  104. package/{app → lib}/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +0 -0
  105. package/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
  106. package/{app → lib}/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +38 -14
  107. package/lib/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +91 -0
  108. package/lib/component/checkout/checkout-overview-delivery-edit/style/_material-definition.scss +12 -0
  109. package/lib/component/checkout/checkout-overview-delivery-edit/style/_theme.scss +17 -0
  110. package/lib/component/checkout/checkout-overview-delivery-edit/style/material.scss +8 -0
  111. package/{app → lib}/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +12 -13
  112. package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +97 -0
  113. package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +17 -0
  114. package/lib/component/checkout/checkout-overview-relation-edit/style/_theme.scss +9 -0
  115. package/lib/component/checkout/checkout-overview-relation-edit/style/material.scss +6 -0
  116. package/{app → lib}/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.d.ts +2 -3
  117. package/lib/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +7 -0
  118. package/lib/component/checkout/checkout-relation-suggestions-list/style/_material-definition.scss +0 -0
  119. package/lib/component/checkout/checkout-relation-suggestions-list/style/_theme.scss +6 -0
  120. package/lib/component/checkout/checkout-relation-suggestions-list/style/material.scss +5 -0
  121. package/lib/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +8 -0
  122. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/_layout.scss +34 -0
  123. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/_material-definition.scss +8 -0
  124. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/_theme.scss +6 -0
  125. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/material.scss +4 -0
  126. package/lib/component/checkout/checkout.component.d.ts +27 -0
  127. package/lib/component/checkout/checkout.module.d.ts +2 -0
  128. package/lib/component/checkout/style/_layout.scss +6 -0
  129. package/lib/component/checkout/style/_material-definition.scss +0 -0
  130. package/lib/component/checkout/style/_theme.scss +8 -0
  131. package/lib/component/checkout/style/material.scss +8 -0
  132. package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +8 -0
  133. package/lib/component/confirmation-dialog/confirmation-dialog.module.d.ts +2 -0
  134. package/lib/component/confirmation-dialog/style/_layout.scss +22 -0
  135. package/lib/component/confirmation-dialog/style/_material-definition.scss +2 -0
  136. package/lib/component/confirmation-dialog/style/_theme.scss +6 -0
  137. package/lib/component/confirmation-dialog/style/material.scss +4 -0
  138. package/lib/component/core/base/dialog-base.component.d.ts +4 -0
  139. package/lib/component/core/base/style/_layout.scss +7 -0
  140. package/lib/component/core/base/style/_material-definition.scss +0 -0
  141. package/lib/component/core/base/style/_theme.scss +6 -0
  142. package/lib/component/core/base/style/material.scss +4 -0
  143. package/{app → lib}/component/core/base/transaction-base.component.d.ts +7 -23
  144. package/lib/component/core/characteristic-answer/characteristic-answer.component.scss +20 -0
  145. package/{app → lib}/component/core/core.module.d.ts +0 -0
  146. package/lib/component/core/enum/app-popup-button-type.enum.d.ts +9 -0
  147. package/{app/component/common → lib/component/core}/icon/icon.component.d.ts +3 -2
  148. package/lib/component/core/icon/icon.component.scss +87 -0
  149. package/lib/component/core/image-display/image-display.component.d.ts +5 -0
  150. package/lib/component/core/image-display/style/_layout.scss +57 -0
  151. package/lib/component/core/image-display/style/_material-definition.scss +4 -0
  152. package/lib/component/core/image-display/style/_theme.scss +6 -0
  153. package/lib/component/core/image-display/style/material.scss +4 -0
  154. package/lib/component/core/relation/customer-groups.component.d.ts +13 -0
  155. package/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
  156. package/lib/component/core/stock-status-indicator/stock-status-indicator.component.scss +47 -0
  157. package/lib/component/discount/discount.component.d.ts +19 -0
  158. package/lib/component/discount/discount.module.d.ts +2 -0
  159. package/lib/component/discount/style/_layout.scss +0 -0
  160. package/lib/component/discount/style/_material-definition.scss +0 -0
  161. package/lib/component/discount/style/_theme.scss +0 -0
  162. package/lib/component/discount/style/material.scss +0 -0
  163. package/lib/component/relation-address/relation-address.component.d.ts +28 -0
  164. package/lib/component/relation-address/relation-address.module.d.ts +2 -0
  165. package/lib/component/relation-address/style/_layout.scss +20 -0
  166. package/lib/component/relation-address/style/_material-definition.scss +3 -0
  167. package/lib/component/relation-address/style/_theme.scss +7 -0
  168. package/lib/component/relation-address/style/material.scss +5 -0
  169. package/lib/component/relation-address-select/relation-address-select.component.d.ts +33 -0
  170. package/lib/component/relation-address-select/relation-address-select.module.d.ts +2 -0
  171. package/lib/component/relation-address-select/style/_layout.scss +85 -0
  172. package/lib/component/relation-address-select/style/_material-definition.scss +4 -0
  173. package/lib/component/relation-address-select/style/_theme.scss +6 -0
  174. package/lib/component/relation-address-select/style/material.scss +5 -0
  175. package/lib/component/relation-address-tile/relation-address-tile.component.d.ts +13 -0
  176. package/lib/component/relation-address-tile/relation-address-tile.module.d.ts +2 -0
  177. package/lib/component/relation-address-tile/style/_layout.scss +63 -0
  178. package/lib/component/relation-address-tile/style/_material-definition.scss +15 -0
  179. package/lib/component/relation-address-tile/style/_theme.scss +51 -0
  180. package/lib/component/relation-address-tile/style/material.scss +4 -0
  181. package/lib/component/service-order/service-order.component.scss +154 -0
  182. package/lib/component/service-order/summary/transaction-delivery-summary.component.scss +22 -0
  183. package/lib/component/service-order/summary/transaction-summary-block.component.scss +109 -0
  184. package/lib/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.scss +0 -0
  185. package/lib/component/service-order/transaction-manager/transaction-manager.component.scss +54 -0
  186. package/lib/component/service-order/transaction-order-line-view/transaction-order-line-view.component.scss +90 -0
  187. package/lib/component/service-order/transaction-order-lines/transaction-order-lines.component.scss +85 -0
  188. package/lib/component/service-order/transaction-order-totals/transaction-order-totals.component.scss +26 -0
  189. package/lib/component/service-order/transaction-relation/transaction-relation-edit.component.scss +24 -0
  190. package/lib/component/service-order/transaction-sidebar/transaction-line-accordion.component.scss +0 -0
  191. package/lib/component/service-order/transaction-sidebar/transaction-sidebar-right.component.scss +17 -0
  192. package/lib/component/service-order/warehouse/warehouse.component.scss +54 -0
  193. package/lib/component/shared/transaction-article-text/style/_layout.scss +42 -0
  194. package/lib/component/shared/transaction-article-text/style/_material-definition.scss +7 -0
  195. package/lib/component/shared/transaction-article-text/style/_theme.scss +11 -0
  196. package/lib/component/shared/transaction-article-text/style/material.scss +5 -0
  197. package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +31 -0
  198. package/lib/component/shared/transaction-article-text/transaction-article-text.module.d.ts +2 -0
  199. package/lib/component/shared/transaction-article-text-overview/style/_layout.scss +56 -0
  200. package/lib/component/shared/transaction-article-text-overview/style/_material-definition.scss +9 -0
  201. package/lib/component/shared/transaction-article-text-overview/style/_theme.scss +9 -0
  202. package/lib/component/shared/transaction-article-text-overview/style/material.scss +4 -0
  203. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +30 -0
  204. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.d.ts +2 -0
  205. package/lib/component/shopping-cart/shopping-cart.component.d.ts +15 -0
  206. package/lib/component/shopping-cart/shopping-cart.module.d.ts +2 -0
  207. package/lib/component/shopping-cart/style/_layout.scss +33 -0
  208. package/lib/component/shopping-cart/style/_material-definition.scss +10 -0
  209. package/lib/component/shopping-cart/style/_theme.scss +14 -0
  210. package/lib/component/shopping-cart/style/material.scss +4 -0
  211. package/lib/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.scss +54 -0
  212. package/lib/component/shopping-cart-preview/shopping-cart-preview.component.d.ts +11 -0
  213. package/lib/component/shopping-cart-preview/shopping-cart-preview.module.d.ts +2 -0
  214. package/lib/component/shopping-cart-preview/style/_layout.scss +44 -0
  215. package/lib/component/shopping-cart-preview/style/_material-definition.scss +20 -0
  216. package/lib/component/shopping-cart-preview/style/_theme.scss +17 -0
  217. package/lib/component/shopping-cart-preview/style/material.scss +4 -0
  218. package/lib/component/stepper/component/stepper-step.component.d.ts +12 -0
  219. package/lib/component/stepper/stepper.component.d.ts +30 -0
  220. package/lib/component/stepper/stepper.module.d.ts +2 -0
  221. package/lib/component/stepper/style/_layout.scss +75 -0
  222. package/lib/component/stepper/style/_material-definition.scss +11 -0
  223. package/lib/component/stepper/style/_theme.scss +7 -0
  224. package/lib/component/stepper/style/material.scss +4 -0
  225. package/lib/component/transaction/style/_layout.scss +25 -0
  226. package/lib/component/transaction/style/_material-definition.scss +7 -0
  227. package/lib/component/transaction/style/_theme.scss +24 -0
  228. package/lib/component/transaction/style/material.scss +8 -0
  229. package/lib/component/transaction/transaction.component.d.ts +24 -0
  230. package/lib/component/transaction/transaction.module.d.ts +2 -0
  231. package/lib/component/transaction-header/style/_layout.scss +38 -0
  232. package/lib/component/transaction-header/style/_material-definition.scss +8 -0
  233. package/lib/component/transaction-header/style/_theme.scss +11 -0
  234. package/lib/component/transaction-header/style/material.scss +7 -0
  235. package/lib/component/transaction-header/transaction-header.component.d.ts +9 -0
  236. package/lib/component/transaction-header/transaction-header.module.d.ts +2 -0
  237. package/lib/component/transaction-header-contact/style/_layout.scss +25 -0
  238. package/lib/component/transaction-header-contact/style/_material-definition.scss +7 -0
  239. package/lib/component/transaction-header-contact/style/_theme.scss +11 -0
  240. package/lib/component/transaction-header-contact/style/material.scss +4 -0
  241. package/lib/component/transaction-header-contact/transaction-header-contact.component.d.ts +4 -0
  242. package/lib/component/transaction-header-contact/transaction-header-contact.module.d.ts +2 -0
  243. package/lib/component/transaction-header-delivery/style/_layout.scss +54 -0
  244. package/lib/component/transaction-header-delivery/style/_material-definition.scss +12 -0
  245. package/lib/component/transaction-header-delivery/style/_theme.scss +24 -0
  246. package/lib/component/transaction-header-delivery/style/material.scss +4 -0
  247. package/lib/component/transaction-header-delivery/transaction-header-delivery.component.d.ts +13 -0
  248. package/lib/component/transaction-header-delivery/transaction-header-delivery.module.d.ts +2 -0
  249. package/lib/component/transaction-header-relation/style/_layout.scss +25 -0
  250. package/lib/component/transaction-header-relation/style/_material-definition.scss +7 -0
  251. package/lib/component/transaction-header-relation/style/_theme.scss +11 -0
  252. package/lib/component/transaction-header-relation/style/material.scss +4 -0
  253. package/lib/component/transaction-header-relation/transaction-header-relation.component.d.ts +4 -0
  254. package/lib/component/transaction-header-relation/transaction-header-relation.module.d.ts +2 -0
  255. package/lib/component/transaction-line/style/_layout.scss +143 -0
  256. package/lib/component/transaction-line/style/_material-definition.scss +29 -0
  257. package/lib/component/transaction-line/style/_theme.scss +36 -0
  258. package/lib/component/transaction-line/style/material.scss +8 -0
  259. package/lib/component/transaction-line/transaction-line.component.d.ts +46 -0
  260. package/lib/component/transaction-line/transaction-line.module.d.ts +2 -0
  261. package/lib/component/transaction-line-grid/style/_layout.scss +6 -0
  262. package/lib/component/transaction-line-grid/style/_material-definition.scss +0 -0
  263. package/lib/component/transaction-line-grid/style/_theme.scss +6 -0
  264. package/lib/component/transaction-line-grid/style/material.scss +4 -0
  265. package/lib/component/transaction-line-grid/transaction-line-grid.component.d.ts +5 -0
  266. package/lib/component/transaction-line-grid/transaction-line-grid.module.d.ts +2 -0
  267. package/lib/component/transaction-lines/style/_layout.scss +33 -0
  268. package/lib/component/transaction-lines/style/_material-definition.scss +3 -0
  269. package/lib/component/transaction-lines/style/_theme.scss +19 -0
  270. package/lib/component/transaction-lines/style/material.scss +7 -0
  271. package/lib/component/transaction-lines/transaction-lines.component.d.ts +31 -0
  272. package/lib/component/transaction-lines/transaction-lines.module.d.ts +2 -0
  273. package/lib/component/transaction-lines-grid/style/_layout.scss +37 -0
  274. package/lib/component/transaction-lines-grid/style/_material-definition.scss +19 -0
  275. package/lib/component/transaction-lines-grid/style/_theme.scss +15 -0
  276. package/lib/component/transaction-lines-grid/style/material.scss +5 -0
  277. package/lib/component/transaction-lines-grid/transaction-lines-grid.component.d.ts +17 -0
  278. package/lib/component/transaction-lines-grid/transaction-lines-grid.module.d.ts +2 -0
  279. package/lib/component/transaction-totals/style/_layout.scss +35 -0
  280. package/lib/component/transaction-totals/style/_material-definition.scss +15 -0
  281. package/lib/component/transaction-totals/style/_theme.scss +10 -0
  282. package/lib/component/transaction-totals/style/material.scss +4 -0
  283. package/lib/component/transaction-totals/transaction-totals.component.d.ts +9 -0
  284. package/lib/component/transaction-totals/transaction-totals.module.d.ts +2 -0
  285. package/{app → lib}/enum/content-view-mode.enum.d.ts +0 -0
  286. package/lib/enum/icon.enum.d.ts +15 -0
  287. package/{app → lib}/enum/language-code.enum.d.ts +0 -0
  288. package/{app → lib}/enum/order-discount-type.enum.d.ts +0 -0
  289. package/{app → lib}/enum/time-size.type.d.ts +0 -0
  290. package/{factory → lib/factory}/business-object-factory.d.ts +1 -1
  291. package/{factory → lib/factory}/decorators/boolean.decorator.d.ts +0 -0
  292. package/{factory → lib/factory}/decorators/complex-array.decorator.d.ts +0 -0
  293. package/{factory → lib/factory}/decorators/complex-field.decorator.d.ts +0 -0
  294. package/{factory → lib/factory}/decorators/date-field.decorator.d.ts +0 -0
  295. package/{factory → lib/factory}/decorators/string-number.decorator.d.ts +0 -0
  296. package/{app → lib}/model/business-object.d.ts +0 -0
  297. package/lib/model/icon-svg.d.ts +4 -0
  298. package/{app → lib}/model/standard-text.d.ts +0 -0
  299. package/{app → lib}/model/text-value-container.d.ts +0 -0
  300. package/{app → lib}/pipe/append.pipe.d.ts +0 -0
  301. package/{app → lib}/pipe/co-currency.pipe.d.ts +0 -0
  302. package/{app → lib}/pipe/date-duration.pipe.d.ts +0 -0
  303. package/{app → lib}/pipe/delivery-time.pipe.d.ts +0 -0
  304. package/{app → lib}/pipe/localize.pipe.d.ts +0 -0
  305. package/lib/pipe/pipe.module.d.ts +2 -0
  306. package/lib/pipe/safe-html.pipe.d.ts +7 -0
  307. package/{app/pipe/safe-style-pipe.d.ts → lib/pipe/safe-style.pipe.d.ts} +0 -0
  308. package/lib/service/dialog.service.d.ts +11 -0
  309. package/{app → lib}/service/dictionary.service.d.ts +0 -0
  310. package/lib/service/icon-cache.service.d.ts +18 -0
  311. package/{app → lib}/service/ione-connector-adapter.service.d.ts +12 -7
  312. package/lib/service/options.service.d.ts +12 -0
  313. package/lib/service/pending-reason.service.d.ts +31 -0
  314. package/{app → lib}/service/transaction.service.d.ts +13 -47
  315. package/lib/style/_mixin.scss +9 -0
  316. package/lib/style/_variables.scss +93 -0
  317. package/{utils → lib/utils}/array-utils.d.ts +0 -0
  318. package/{utils → lib/utils}/is-nill.function.d.ts +0 -0
  319. package/{app → lib}/utils/string-utils.d.ts +0 -0
  320. package/package.json +27 -34
  321. package/public_api.d.ts +27 -6
  322. package/app/component/checkout/checkout/checkout.component.d.ts +0 -32
  323. package/app/component/checkout/checkout-overview/checkout-overview.component.d.ts +0 -42
  324. package/app/component/checkout/checkout-overview-block/checkout-overview-block.component.d.ts +0 -12
  325. package/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.d.ts +0 -22
  326. package/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +0 -12
  327. package/app/component/checkout/ione-checkout.component.d.ts +0 -41
  328. package/app/component/checkout/ione-checkout.module.d.ts +0 -2
  329. package/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.d.ts +0 -13
  330. package/app/component/common/image-display/image-display.component.d.ts +0 -13
  331. package/app/component/common/no-image-display/no-image-display.component.d.ts +0 -5
  332. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +0 -13
  333. package/app/component/core/characteristic-answer/characteristic-answer.component.d.ts +0 -22
  334. package/app/component/core/directive/template-wrapper.directive.d.ts +0 -13
  335. package/app/component/service-order/ione-service-order-module.d.ts +0 -2
  336. package/app/component/service-order/ione-service-order.component.d.ts +0 -25
  337. package/app/component/service-order/service-order.component.d.ts +0 -52
  338. package/app/component/service-order/summary/transaction-article-summary.component.d.ts +0 -17
  339. package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +0 -20
  340. package/app/component/service-order/summary/transaction-order-summary.component.d.ts +0 -16
  341. package/app/component/service-order/summary/transaction-payment-info.component.d.ts +0 -14
  342. package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +0 -7
  343. package/app/component/service-order/summary/transaction-product-summary.component.d.ts +0 -15
  344. package/app/component/service-order/summary/transaction-service-status.component.d.ts +0 -15
  345. package/app/component/service-order/summary/transaction-service-summary.component.d.ts +0 -15
  346. package/app/component/service-order/summary/transaction-summary-block.component.d.ts +0 -16
  347. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +0 -33
  348. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +0 -23
  349. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +0 -19
  350. package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +0 -15
  351. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +0 -64
  352. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +0 -16
  353. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +0 -25
  354. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +0 -6
  355. package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +0 -22
  356. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +0 -29
  357. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +0 -11
  358. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +0 -26
  359. package/app/component/service-order/warehouse/warehouse.component.d.ts +0 -35
  360. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +0 -71
  361. package/app/component/shopping-cart/ione-shopping-cart.module.d.ts +0 -2
  362. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +0 -61
  363. package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.d.ts +0 -34
  364. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +0 -91
  365. package/app/enum/checkout-steps.enum.d.ts +0 -7
  366. package/app/enum/direction.enum.d.ts +0 -6
  367. package/app/model/transaction-add-text-line-request.d.ts +0 -9
  368. package/app/service/options.service.d.ts +0 -14
  369. package/app/service/transaction-event.service.d.ts +0 -53
  370. package/css/styles.css +0 -38
  371. package/enum/position-grid-row.enum.d.ts +0 -4
  372. package/esm2015/app/component/checkout/checkout/checkout.component.js +0 -149
  373. package/esm2015/app/component/checkout/checkout-login/checkout-login.component.js +0 -106
  374. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +0 -185
  375. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +0 -47
  376. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +0 -47
  377. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +0 -420
  378. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +0 -115
  379. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +0 -396
  380. package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +0 -33
  381. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +0 -53
  382. package/esm2015/app/component/checkout/ione-checkout.component.js +0 -137
  383. package/esm2015/app/component/checkout/ione-checkout.module.js +0 -76
  384. package/esm2015/app/component/checkout/retail-transaction-checkout/retail-transaction-checkout.component.js +0 -53
  385. package/esm2015/app/component/common/icon/icon.component.js +0 -32
  386. package/esm2015/app/component/common/image-display/image-display.component.js +0 -41
  387. package/esm2015/app/component/common/no-image-display/no-image-display.component.js +0 -26
  388. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +0 -39
  389. package/esm2015/app/component/core/base/transaction-base.component.js +0 -146
  390. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +0 -100
  391. package/esm2015/app/component/core/core.module.js +0 -43
  392. package/esm2015/app/component/core/directive/template-wrapper.directive.js +0 -69
  393. package/esm2015/app/component/core/stock-status-indicator/stock-status-indicator.component.js +0 -24
  394. package/esm2015/app/component/service-order/ione-service-order-module.js +0 -114
  395. package/esm2015/app/component/service-order/ione-service-order.component.js +0 -96
  396. package/esm2015/app/component/service-order/service-order.component.js +0 -199
  397. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +0 -55
  398. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +0 -59
  399. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +0 -43
  400. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +0 -35
  401. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +0 -38
  402. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +0 -41
  403. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +0 -37
  404. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +0 -38
  405. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +0 -53
  406. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +0 -140
  407. package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +0 -105
  408. package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +0 -73
  409. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +0 -83
  410. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +0 -314
  411. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +0 -76
  412. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +0 -71
  413. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +0 -36
  414. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +0 -116
  415. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +0 -225
  416. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +0 -172
  417. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +0 -120
  418. package/esm2015/app/component/service-order/warehouse/warehouse.component.js +0 -133
  419. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +0 -185
  420. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +0 -62
  421. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +0 -294
  422. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +0 -172
  423. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +0 -451
  424. package/esm2015/app/enum/checkout-steps.enum.js +0 -10
  425. package/esm2015/app/enum/content-view-mode.enum.js +0 -10
  426. package/esm2015/app/enum/direction.enum.js +0 -9
  427. package/esm2015/app/enum/language-code.enum.js +0 -8
  428. package/esm2015/app/enum/order-discount-type.enum.js +0 -7
  429. package/esm2015/app/enum/time-size.type.js +0 -10
  430. package/esm2015/app/model/business-object.js +0 -81
  431. package/esm2015/app/model/standard-text.js +0 -3
  432. package/esm2015/app/model/text-value-container.js +0 -3
  433. package/esm2015/app/model/transaction-add-text-line-request.js +0 -11
  434. package/esm2015/app/pipe/append.pipe.js +0 -17
  435. package/esm2015/app/pipe/co-currency.pipe.js +0 -47
  436. package/esm2015/app/pipe/date-duration.pipe.js +0 -57
  437. package/esm2015/app/pipe/delivery-time.pipe.js +0 -33
  438. package/esm2015/app/pipe/localize.pipe.js +0 -28
  439. package/esm2015/app/pipe/safe-style-pipe.js +0 -19
  440. package/esm2015/app/service/dictionary.service.js +0 -76
  441. package/esm2015/app/service/ione-connector-adapter.service.js +0 -553
  442. package/esm2015/app/service/options.service.js +0 -92
  443. package/esm2015/app/service/transaction-event.service.js +0 -26
  444. package/esm2015/app/service/transaction.service.js +0 -572
  445. package/esm2015/app/utils/string-utils.js +0 -64
  446. package/esm2015/assets/dictionary/text.properties.js +0 -332
  447. package/esm2015/enum/position-grid-row.enum.js +0 -6
  448. package/esm2015/factory/business-object-factory.js +0 -120
  449. package/esm2015/factory/decorators/boolean.decorator.js +0 -102
  450. package/esm2015/factory/decorators/complex-array.decorator.js +0 -55
  451. package/esm2015/factory/decorators/complex-field.decorator.js +0 -57
  452. package/esm2015/factory/decorators/date-field.decorator.js +0 -36
  453. package/esm2015/factory/decorators/string-number.decorator.js +0 -43
  454. package/esm2015/utils/array-utils.js +0 -183
  455. package/esm2015/utils/is-nill.function.js +0 -5
@@ -1,294 +0,0 @@
1
- import { ChangeDetectorRef, Component, EventEmitter, HostBinding, Input, Output, ViewChild } from "@angular/core";
2
- import { DictionaryService } from "../../../service/dictionary.service";
3
- import { TransactionService } from "../../../service/transaction.service";
4
- import { OrderDiscountType } from "../../../enum/order-discount-type.enum";
5
- import { SortDirection } from "@colijnit/transactionapi/build/enum/sort-direction";
6
- import { SortType } from "@colijnit/transactionapi/build/enum/sort-type.enum";
7
- import { CoreComponentsIcon, CoSidebarComponent, IconCacheService } from "@colijnit/corecomponents_v12";
8
- import { TransactionEventService } from "../../../service/transaction-event.service";
9
- import { ContentViewMode } from "../../../enum/content-view-mode.enum";
10
- import { PositionGridRow } from "../../../../enum/position-grid-row.enum";
11
- export class ShoppingCartComponent {
12
- constructor(iconCacheService, _dictionary, service, _transactionEvents, _changeDetector) {
13
- this.iconCacheService = iconCacheService;
14
- this._dictionary = _dictionary;
15
- this.service = service;
16
- this._transactionEvents = _transactionEvents;
17
- this._changeDetector = _changeDetector;
18
- this.orderDiscountType = OrderDiscountType;
19
- this.iconThickLines = CoreComponentsIcon.ThickLines;
20
- this.iconThinLines = CoreComponentsIcon.ThinLines;
21
- this.viewModes = ContentViewMode;
22
- this.hideOverviewButton = false;
23
- this.hideCheckoutButton = false;
24
- this.hideCloseCartButton = false;
25
- this.closeCart = new EventEmitter();
26
- this.checkout = new EventEmitter();
27
- this.overview = new EventEmitter();
28
- this.activeViewMode = ContentViewMode.List;
29
- this.columns = [];
30
- this.contextMenuItems = [];
31
- this.showDiscountsSidebar = false;
32
- this._transactionUpdated = this.service.transactionUpdated.subscribe(() => {
33
- this.setFilteredCollection(this.service.currentLines);
34
- });
35
- this.setFilteredCollection(this.service.currentLines);
36
- const mediaQuery = "(min-width: 500px)";
37
- this.columns.push({ field: "lineNr", headerText: this._dictionary.get("NR"), allowFiltering: false, allowSorting: false }, { field: "text", headerText: this._dictionary.get("TEXT") }, { field: "articleNumber", headerText: this._dictionary.get("ARTICLE_NR") }, { field: "goodDescription", headerText: this._dictionary.get("GOOD_DESCRIPTION"), hideAtMedia: mediaQuery }, { field: "amount", headerText: this._dictionary.get("NUMBER"), textAlign: "Right" }, { field: "price", headerText: this._dictionary.get("PRICE"), format: "C2", textAlign: "Right" }, { field: "priceListCode", headerText: this._dictionary.get("PRICE_LIST"), hideAtMedia: mediaQuery }, { field: "lineDiscount", headerText: this._dictionary.get("DISCOUNT_PERCENTAGE"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "specialDiscount", headerText: this._dictionary.get("SPECIAL_DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "discountAmount", headerText: this._dictionary.get("DISCOUNT_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "surchargeAmount", headerText: this._dictionary.get("SURCHARGE_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "assemblyCost", headerText: this._dictionary.get("ASSEMBLY_COSTS"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "grossLineTotal", headerText: this._dictionary.get("TOTAL_GROSS"), format: "C2", visible: true, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "lineTotalDiscountAmount", headerText: this._dictionary.get("DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "netLineTotal", headerText: this._dictionary.get("SUBTOTAL"), format: "C2", visible: false, textAlign: "Right" }, { field: "vatId", headerText: this._dictionary.get("VAT"), hideAtMedia: mediaQuery, visible: false, textAlign: "Right" }, { field: "priceDeclaration", headerText: this._dictionary.get("TRANSACTION_PRICE_DECLARATION"), visible: false, hideAtMedia: mediaQuery }, { field: "netto", headerText: this._dictionary.get("NETT"), format: "C2", hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "warehouseNumber", headerText: this._dictionary.get("WAREHOUSE"), hideAtMedia: mediaQuery, textAlign: "Right" });
38
- this.contextMenuItems.push({ text: this._dictionary.get("ADD_ARTICLE_LINE_UP"), target: ".e-content", id: "articleLineUp" }, { text: this._dictionary.get("ADD_ARTICLE_LINE_DOWN"), target: ".e-content", id: "articleLineDown" }, { text: this._dictionary.get("ADD_ARTICLE_TEXT_LINE_UP"), target: ".e-content", id: "articleTextLineUp" }, { text: this._dictionary.get("ADD_ARTICLE_TEXT_LINE_DOWN"), target: ".e-content", id: "articleTextLineDown" });
39
- }
40
- get filteredCollection() {
41
- return this._filteredCollection;
42
- }
43
- setFilteredCollection(value) {
44
- this._filteredCollection = value;
45
- const sortByLineNr = {
46
- active: true,
47
- direction: SortDirection.Ascending,
48
- property: "lineNr",
49
- type: SortType.Number
50
- };
51
- // SortUtils.SortObjectArray(this._filteredCollection, [sortByLineNr]);
52
- }
53
- ngAfterViewInit() {
54
- this.hideSidebar();
55
- }
56
- ngOnDestroy() {
57
- this._transactionUpdated.unsubscribe();
58
- }
59
- getCartLabel() {
60
- return this._dictionary.get("SHOPPING_CART_OVERVIEW", true) + "(" + this.service.articleAmount.toString() + ")";
61
- }
62
- addDiscount() {
63
- this.showSidebar();
64
- // TODO
65
- // this.transactionDiscountPercentage = this.service.currentTransaction.transactionDiscountPercentage;
66
- // this.transactionDiscountAmount = this.service.currentTransaction.transactionDiscountAmount;
67
- // this.transactionTotal = undefined;
68
- }
69
- onStartDiscountInput(discountType, header) {
70
- this.hideSidebar();
71
- this.discountType = discountType;
72
- this.discountHeader = header;
73
- this.inputDiscounts = true;
74
- }
75
- openShoppingCartModule() {
76
- this._transactionEvents.openShoppingCartModule.next();
77
- this.closeCart.emit();
78
- }
79
- setDiscountHeader(discountType) {
80
- switch (this.discountType) {
81
- case OrderDiscountType.DiscountPercentage:
82
- this.discountHeader = this._dictionary.get("DISCOUNT_PERCENTAGE", true);
83
- break;
84
- case OrderDiscountType.DiscountAmount:
85
- this.discountHeader = this._dictionary.get("DISCOUNT_AMOUNT", true);
86
- break;
87
- case OrderDiscountType.OrderTotal:
88
- this.discountHeader = this._dictionary.get("ORDER_TOTAL", true);
89
- break;
90
- }
91
- }
92
- onInputDiscountsOkClick() {
93
- let valueToUse;
94
- switch (this.discountType) {
95
- case OrderDiscountType.DiscountPercentage:
96
- valueToUse = this.transactionDiscountPercentage;
97
- break;
98
- case OrderDiscountType.DiscountAmount:
99
- valueToUse = this.transactionDiscountAmount;
100
- break;
101
- case OrderDiscountType.OrderTotal:
102
- valueToUse = this.transactionTotal;
103
- break;
104
- }
105
- //TODO this.service.setTransactionDiscounts(this.service.currentTransaction.uuid, this.discountType, valueToUse);
106
- this.inputDiscounts = false;
107
- }
108
- trackByFn(index, line) {
109
- return line.lineNr;
110
- }
111
- handleRowsSelected(rows) {
112
- this._selectedRow = rows.find(x => x !== undefined);
113
- }
114
- showSidebar() {
115
- this.showDiscountsSidebar = true;
116
- this._changeDetector.detectChanges();
117
- if (this.discountsSidebar) {
118
- this.discountsSidebar.show();
119
- }
120
- }
121
- hideSidebar() {
122
- this.showDiscountsSidebar = false;
123
- this._changeDetector.detectChanges();
124
- if (this.discountsSidebar) {
125
- this.discountsSidebar.hide();
126
- }
127
- }
128
- menuItemClick(args) {
129
- const lineNr = this._selectedRow.lineNr;
130
- switch (args.item.id) {
131
- case "articleLineUp":
132
- // this._transactionEvents.addArticleLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.Before});
133
- this._transactionEvents.addArticleLineAt.next({ sku: "iPod", amount: 1, lineNr: lineNr, beforeOrAfter: PositionGridRow.Before });
134
- break;
135
- case "articleLineDown":
136
- // this._transactionEvents.addArticleLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.After});
137
- this._transactionEvents.addArticleLineAt.next({ sku: "iPod", amount: 1, lineNr: lineNr, beforeOrAfter: PositionGridRow.After });
138
- break;
139
- case "articleTextLineUp":
140
- // this._transactionEvents.addTextLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.Before});
141
- this._transactionEvents.addTextLineAt.next({ text: "textregel before", lineNr: lineNr, beforeOrAfter: PositionGridRow.Before });
142
- break;
143
- case "articleTextLineDown":
144
- // this._transactionEvents.addTextLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.After});
145
- this._transactionEvents.addTextLineAt.next({ text: "textregel after", lineNr: lineNr, beforeOrAfter: PositionGridRow.After });
146
- break;
147
- }
148
- }
149
- rowDrop(args) {
150
- this._transactionEvents.changeLineSequence.next({ fromIndex: args.fromIndex, toIndex: args.dropIndex });
151
- // Transaction lines will be reloaded by previous action on success, not by failure. So, cancel the drop in all cases.
152
- args.cancel = true;
153
- }
154
- }
155
- ShoppingCartComponent.decorators = [
156
- { type: Component, args: [{
157
- // eslint-disable-next-line @angular-eslint/component-selector
158
- selector: "shopping-cart",
159
- template: `
160
- <div class="cart-header">
161
- <span class="cart-header-label" [textContent]="getCartLabel()"></span>
162
- <div class="view-mode-buttons">
163
- <co-button [iconData]="iconCacheService.getIcon(iconThickLines)"
164
- [title]="'LIST_VIEW' | localize"
165
- (click)="this.activeViewMode = viewModes.List"
166
- class="triangle white"
167
- iconClass="medium light"></co-button>
168
- <co-button [iconData]="iconCacheService.getIcon(iconThinLines)"
169
- [title]="'GRID_VIEW' | localize"
170
- (click)="this.activeViewMode = viewModes.Grid"
171
- class="triangle white"
172
- iconClass="medium light"></co-button>
173
- </div>
174
- </div>
175
- <div class="cart-lines">
176
- <div class="cart-list-wrapper" *ngIf="activeViewMode === viewModes.List" fxFlex="column">
177
- <shopping-cart-line [overlayMode]="overlayMode" [overviewMode]="overviewMode"
178
- *ngFor="let line of filteredCollection; trackBy:trackByFn;"
179
- [line]="line"
180
- ></shopping-cart-line>
181
- </div>
182
- <div class="cart-list-wrapper" *ngIf="activeViewMode === viewModes.Grid" fxFlex="column">
183
- <co-grid
184
- [data]="filteredCollection"
185
- [rowDragAndDropEnabled]="true"
186
- [contextMenuItems]="contextMenuItems"
187
- [sortingEnabled]="false"
188
- [columns]="columns"
189
- [pagingEnabled]="'true'"
190
- [maxNumberOfRows]="'20'"
191
- (rowsSelected)="handleRowsSelected($event)"
192
- (contextMenuItemClick)="menuItemClick($event)"
193
- (rowDropEvent)="rowDrop($event)"
194
- ></co-grid>
195
- </div>
196
- </div>
197
- <div class="shopping-cart-totals" fxLayout="column" fxLayoutGap="10px">
198
- <div fxLayout="row">
199
- <span [textContent]="'ORDER_GROSS' | localize"></span>
200
- <span [textContent]="service.currentTotals?.grossAmount | coCurrency: true"></span>
201
- </div>
202
- <div fxLayout="row" *ngIf="service.currentTotals?.discountAmount">
203
- <span [textContent]="'DISCOUNT_AMOUNT' | localize"></span>
204
- <span [textContent]="service.currentTotals?.discountAmount | coCurrency: true"></span>
205
- </div>
206
- <div fxLayout="row" *ngIf="service.currentTotals?.transactionDiscountAmount">
207
- <span [textContent]="'TRANSACTION_DISCOUNT' | localize"></span>
208
- <span [textContent]="service.currentTotals?.transactionDiscountAmount | coCurrency: true"></span>
209
- </div>
210
- <div fxLayout="row" *ngIf="service.currentTotals?.transactionDiscountPercentage">
211
- <span [textContent]="'TRANSACTION_DISCOUNT_PERC' | localize"></span>
212
- <span [textContent]="service.currentTotals?.transactionDiscountPercentage.toString() | append:' %'"></span>
213
- </div>
214
- <div fxLayout="row">
215
- <span [textContent]="'ORDER_NET'| localize"></span>
216
- <span [textContent]="service.currentTotals?.netAmount | coCurrency: true"></span>
217
- </div>
218
- <a (click)="addDiscount()" [textContent]="'ADD_DISCOUNTS' | localize"></a>
219
- </div>
220
- <div class="shopping-cart-row-end">
221
- <co-button *ngIf="!hideOverviewButton" [label]="'OVERVIEW' | localize"
222
- (click)="overview.emit()"
223
- ></co-button>
224
- <co-button *ngIf="!hideCloseCartButton"[label]="'SHOPPING_CART_RESUME' | localize"
225
- (click)="closeCart.emit()"
226
- ></co-button>
227
- <co-button *ngIf="!hideCheckoutButton" [label]="'SHOPPING_CART_CHECKOUT' | localize"
228
- [disabled]="!service.articleAmount"
229
- (click)="checkout.emit()"></co-button>
230
- </div>
231
-
232
- <co-sidebar #discountsSidebar isOpen="false" *ngIf="showDiscountsSidebar">
233
- <div fxLayout="column" fxLayoutGap="10px">
234
- <co-button class="rectangular" [label]="'TRANSACTION_DISCOUNT_PERC' | localize"
235
- (click)="onStartDiscountInput(orderDiscountType.DiscountPercentage, 'TRANSACTION_DISCOUNT_PERC')"></co-button>
236
- <co-button class="rectangular" [label]="'TRANSACTION_DISCOUNT'| localize"
237
- (click)="onStartDiscountInput(orderDiscountType.DiscountAmount, 'TRANSACTION_DISCOUNT')"></co-button>
238
- <co-button class="rectangular" [label]="'TRANSACTION_TOTAL'| localize"
239
- (click)="onStartDiscountInput(orderDiscountType.OrderTotal, 'TRANSACTION_TOTAL')"></co-button>
240
-
241
- </div>
242
- </co-sidebar>
243
-
244
- <co-dialog [visible]="inputDiscounts">
245
- <ng-container header>{{ discountHeader | localize }}</ng-container>
246
- <co-form>
247
- <co-input-text
248
- *ngIf="discountType === orderDiscountType.DiscountPercentage"
249
- [type]="'number'"
250
- [(model)]="transactionDiscountPercentage"
251
- [placeholder]="'TRANSACTION_DISCOUNT_PERC' | localize"
252
- ></co-input-text>
253
- <co-input-text
254
- *ngIf="discountType === orderDiscountType.DiscountAmount"
255
- [type]="'number'"
256
- [(model)]="transactionDiscountAmount"
257
- [placeholder]="'TRANSACTION_DISCOUNT' | localize"
258
- ></co-input-text>
259
- <co-input-text
260
- *ngIf="discountType === orderDiscountType.OrderTotal"
261
- [type]="'number'"
262
- [(model)]="transactionTotal"
263
- [placeholder]="'TRANSACTION_TOTAL' | localize"
264
- ></co-input-text>
265
-
266
- <div fxLayout="row" fxLayoutGap="10px" fxLayoutAlign="end">
267
- <co-button [label]="'CANCEL' | localize" (click)="inputDiscounts = false"></co-button>
268
- <co-button [label]="'OK' | localize" (click)="onInputDiscountsOkClick()"></co-button>
269
- </div>
270
- </co-form>
271
- </co-dialog>
272
- `,
273
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.shopping-cart-totals{padding-bottom:20px}.shopping-cart-totals{padding-top:20px}.cart-header{margin-top:20px}.cart-header{margin-bottom:20px}.cart-header .view-mode-buttons{margin-left:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{background-color:#fff;opacity:1;display:flex;flex-direction:column;height:100%;color:#22313c}.cart-header{display:flex;justify-content:space-between}.cart-header .cart-header-label{font-weight:bold}.cart-header .view-mode-buttons{display:flex;flex-direction:row}.cart-header .view-mode-buttons co-button{padding:0}.cart-header .view-mode-buttons co-button ::ng-deep co-button{border-radius:0}.cart-header .view-mode-buttons co-button:first-child ::ng-deep co-button{border-radius:3px}.cart-header .view-mode-buttons co-button:nth-child(2) ::ng-deep co-button{border-top-left-radius:3px;border-bottom-left-radius:3px}.cart-header .view-mode-buttons co-button:last-child ::ng-deep co-button{border-top-right-radius:3px;border-bottom-right-radius:3px}.cart-lines{display:flex;height:100%;overflow:auto}.shopping-cart-totals{align-items:flex-end}.shopping-cart-totals>div{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.shopping-cart-totals>div span:last-of-type{min-width:6em;text-align:right}.shopping-cart-totals div:last-of-type{font-weight:bold}\n", ":host .shopping-cart-viewport{max-width:60%;margin-left:20%}:host .shopping-cart-row-end{display:flex;flex-direction:row;grid-column-gap:10px;-moz-column-gap:10px;column-gap:10px;justify-content:flex-end}\n"]
274
- },] }
275
- ];
276
- ShoppingCartComponent.ctorParameters = () => [
277
- { type: IconCacheService },
278
- { type: DictionaryService },
279
- { type: TransactionService },
280
- { type: TransactionEventService },
281
- { type: ChangeDetectorRef }
282
- ];
283
- ShoppingCartComponent.propDecorators = {
284
- discountsSidebar: [{ type: ViewChild, args: [CoSidebarComponent, { static: false },] }],
285
- overlayMode: [{ type: Input }, { type: HostBinding, args: ["class.overlayed",] }],
286
- overviewMode: [{ type: Input }, { type: HostBinding, args: ["class.overview",] }],
287
- hideOverviewButton: [{ type: Input }],
288
- hideCheckoutButton: [{ type: Input }],
289
- hideCloseCartButton: [{ type: Input }],
290
- closeCart: [{ type: Output }],
291
- checkout: [{ type: Output }],
292
- overview: [{ type: Output }]
293
- };
294
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9zaG9wcGluZy1jYXJ0L3Nob3BwaW5nLWNhcnQvc2hvcHBpbmctY2FydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUd6RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDakYsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBRTVFLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3RHLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDO0FBQ25GLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUlyRSxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUE0SHhFLE1BQU0sT0FBTyxxQkFBcUI7SUFtRWhDLFlBQ1MsZ0JBQWtDLEVBQ2pDLFdBQThCLEVBQy9CLE9BQTJCLEVBQzFCLGtCQUEyQyxFQUMzQyxlQUFrQztRQUpuQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2pDLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQUMvQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMx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RUFBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBQyxDQUFDLENBQUM7UUFFdEcsc0hBQXNIO1FBQ3RILElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO0lBQ3JCLENBQUM7OztZQWpXRixTQUFTLFNBQUM7Z0JBQ1QsOERBQThEO2dCQUM5RCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlIVDs7YUFLRjs7O1lBakkrQyxnQkFBZ0I7WUFSeEQsaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQVFsQix1QkFBdUI7WUFsQjdCLGlCQUFpQjs7OytCQTBKaEIsU0FBUyxTQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTswQkFHL0MsS0FBSyxZQUNMLFdBQVcsU0FBQyxpQkFBaUI7MkJBRzdCLEtBQUssWUFDTCxXQUFXLFNBQUMsZ0JBQWdCO2lDQUc1QixLQUFLO2lDQUdMLEtBQUs7a0NBR0wsS0FBSzt3QkFHTCxNQUFNO3VCQUdOLE1BQU07dUJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge09yZGVyRGlzY291bnRUeXBlfSBmcm9tIFwiLi4vLi4vLi4vZW51bS9vcmRlci1kaXNjb3VudC10eXBlLmVudW1cIjtcbmltcG9ydCB7QnVzaW5lc3NPYmplY3R9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0XCI7XG5pbXBvcnQge1NvcnRQcm9wZXJ0eX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9pbnRlcmZhY2Uvc29ydC1wcm9wZXJ0eVwiO1xuaW1wb3J0IHtTb3J0RGlyZWN0aW9ufSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vc29ydC1kaXJlY3Rpb25cIjtcbmltcG9ydCB7U29ydFR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9zb3J0LXR5cGUuZW51bVwiO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbiwgQ29TaWRlYmFyQ29tcG9uZW50LCBJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkV2ZW50U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24tZXZlbnQuc2VydmljZVwiO1xuaW1wb3J0IHtDb250ZW50Vmlld01vZGV9IGZyb20gXCIuLi8uLi8uLi9lbnVtL2NvbnRlbnQtdmlldy1tb2RlLmVudW1cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25MaW5lSW5mb30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC90cmFuc2FjdGlvbi1saW5lLWluZm8uYm9cIjtcbmltcG9ydCB7Q29udGV4dE1lbnVJdGVtTW9kZWwsIFJvd0RyYWdFdmVudEFyZ3N9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1ncmlkc1wiO1xuaW1wb3J0IHtNZW51RXZlbnRBcmdzfSBmcm9tIFwiQHN5bmNmdXNpb24vZWoyLWFuZ3VsYXItbmF2aWdhdGlvbnNcIjtcbmltcG9ydCB7UG9zaXRpb25HcmlkUm93fSBmcm9tIFwiLi4vLi4vLi4vLi4vZW51bS9wb3NpdGlvbi1ncmlkLXJvdy5lbnVtXCI7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogXCJzaG9wcGluZy1jYXJ0XCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImNhcnQtaGVhZGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImNhcnQtaGVhZGVyLWxhYmVsXCIgW3RleHRDb250ZW50XT1cImdldENhcnRMYWJlbCgpXCI+PC9zcGFuPlxuICAgICAgPGRpdiBjbGFzcz1cInZpZXctbW9kZS1idXR0b25zXCI+XG4gICAgICAgIDxjby1idXR0b24gW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29uVGhpY2tMaW5lcylcIlxuICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCInTElTVF9WSUVXJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidGhpcy5hY3RpdmVWaWV3TW9kZSA9IHZpZXdNb2Rlcy5MaXN0XCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRyaWFuZ2xlIHdoaXRlXCJcbiAgICAgICAgICAgICAgICAgICBpY29uQ2xhc3M9XCJtZWRpdW0gbGlnaHRcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgPGNvLWJ1dHRvbiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25UaGluTGluZXMpXCJcbiAgICAgICAgICAgICAgICAgICBbdGl0bGVdPVwiJ0dSSURfVklFVycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInRoaXMuYWN0aXZlVmlld01vZGUgPSB2aWV3TW9kZXMuR3JpZFwiXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlhbmdsZSB3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwibWVkaXVtIGxpZ2h0XCI+PC9jby1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FydC1saW5lc1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcnQtbGlzdC13cmFwcGVyXCIgKm5nSWY9XCJhY3RpdmVWaWV3TW9kZSA9PT0gdmlld01vZGVzLkxpc3RcIiBmeEZsZXg9XCJjb2x1bW5cIj5cbiAgICAgICAgPHNob3BwaW5nLWNhcnQtbGluZSBbb3ZlcmxheU1vZGVdPVwib3ZlcmxheU1vZGVcIiBbb3ZlcnZpZXdNb2RlXT1cIm92ZXJ2aWV3TW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGxpbmUgb2YgZmlsdGVyZWRDb2xsZWN0aW9uOyB0cmFja0J5OnRyYWNrQnlGbjtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5lXT1cImxpbmVcIlxuICAgICAgICA+PC9zaG9wcGluZy1jYXJ0LWxpbmU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJ0LWxpc3Qtd3JhcHBlclwiICpuZ0lmPVwiYWN0aXZlVmlld01vZGUgPT09IHZpZXdNb2Rlcy5HcmlkXCIgZnhGbGV4PVwiY29sdW1uXCI+XG4gICAgICAgIDxjby1ncmlkXG4gICAgICAgICAgW2RhdGFdPVwiZmlsdGVyZWRDb2xsZWN0aW9uXCJcbiAgICAgICAgICBbcm93RHJhZ0FuZERyb3BFbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgIFtjb250ZXh0TWVudUl0ZW1zXT1cImNvbnRleHRNZW51SXRlbXNcIlxuICAgICAgICAgIFtzb3J0aW5nRW5hYmxlZF09XCJmYWxzZVwiXG4gICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgW3BhZ2luZ0VuYWJsZWRdPVwiJ3RydWUnXCJcbiAgICAgICAgICBbbWF4TnVtYmVyT2ZSb3dzXT1cIicyMCdcIlxuICAgICAgICAgIChyb3dzU2VsZWN0ZWQpPVwiaGFuZGxlUm93c1NlbGVjdGVkKCRldmVudClcIlxuICAgICAgICAgIChjb250ZXh0TWVudUl0ZW1DbGljayk9XCJtZW51SXRlbUNsaWNrKCRldmVudClcIlxuICAgICAgICAgIChyb3dEcm9wRXZlbnQpPVwicm93RHJvcCgkZXZlbnQpXCJcbiAgICAgICAgPjwvY28tZ3JpZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzaG9wcGluZy1jYXJ0LXRvdGFsc1wiIGZ4TGF5b3V0PVwiY29sdW1uXCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCI+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInT1JERVJfR1JPU1MnIHwgbG9jYWxpemVcIj48L3NwYW4+XG4gICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJzZXJ2aWNlLmN1cnJlbnRUb3RhbHM/Lmdyb3NzQW1vdW50IHwgY29DdXJyZW5jeTogdHJ1ZVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiICpuZ0lmPVwic2VydmljZS5jdXJyZW50VG90YWxzPy5kaXNjb3VudEFtb3VudFwiPlxuICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ0RJU0NPVU5UX0FNT1VOVCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNlcnZpY2UuY3VycmVudFRvdGFscz8uZGlzY291bnRBbW91bnQgfCBjb0N1cnJlbmN5OiB0cnVlXCI+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgKm5nSWY9XCJzZXJ2aWNlLmN1cnJlbnRUb3RhbHM/LnRyYW5zYWN0aW9uRGlzY291bnRBbW91bnRcIj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidUUkFOU0FDVElPTl9ESVNDT1VOVCcgfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNlcnZpY2UuY3VycmVudFRvdGFscz8udHJhbnNhY3Rpb25EaXNjb3VudEFtb3VudCB8IGNvQ3VycmVuY3k6IHRydWVcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiAqbmdJZj1cInNlcnZpY2UuY3VycmVudFRvdGFscz8udHJhbnNhY3Rpb25EaXNjb3VudFBlcmNlbnRhZ2VcIj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidUUkFOU0FDVElPTl9ESVNDT1VOVF9QRVJDJyB8IGxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwic2VydmljZS5jdXJyZW50VG90YWxzPy50cmFuc2FjdGlvbkRpc2NvdW50UGVyY2VudGFnZS50b1N0cmluZygpIHwgYXBwZW5kOicgJSdcIj48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidPUkRFUl9ORVQnfCBsb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cInNlcnZpY2UuY3VycmVudFRvdGFscz8ubmV0QW1vdW50IHwgY29DdXJyZW5jeTogdHJ1ZVwiPjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGEgKGNsaWNrKT1cImFkZERpc2NvdW50KClcIiBbdGV4dENvbnRlbnRdPVwiJ0FERF9ESVNDT1VOVFMnIHwgbG9jYWxpemVcIj48L2E+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInNob3BwaW5nLWNhcnQtcm93LWVuZFwiPlxuICAgICAgPGNvLWJ1dHRvbiAqbmdJZj1cIiFoaWRlT3ZlcnZpZXdCdXR0b25cIiBbbGFiZWxdPVwiJ09WRVJWSUVXJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm92ZXJ2aWV3LmVtaXQoKVwiXG4gICAgICA+PC9jby1idXR0b24+XG4gICAgICA8Y28tYnV0dG9uICpuZ0lmPVwiIWhpZGVDbG9zZUNhcnRCdXR0b25cIltsYWJlbF09XCInU0hPUFBJTkdfQ0FSVF9SRVNVTUUnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2xvc2VDYXJ0LmVtaXQoKVwiXG4gICAgICA+PC9jby1idXR0b24+XG4gICAgICA8Y28tYnV0dG9uICpuZ0lmPVwiIWhpZGVDaGVja291dEJ1dHRvblwiIFtsYWJlbF09XCInU0hPUFBJTkdfQ0FSVF9DSEVDS09VVCcgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhc2VydmljZS5hcnRpY2xlQW1vdW50XCJcbiAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNoZWNrb3V0LmVtaXQoKVwiPjwvY28tYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPGNvLXNpZGViYXIgI2Rpc2NvdW50c1NpZGViYXIgaXNPcGVuPVwiZmFsc2VcIiAqbmdJZj1cInNob3dEaXNjb3VudHNTaWRlYmFyXCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBmeExheW91dEdhcD1cIjEwcHhcIj5cbiAgICAgICAgICA8Y28tYnV0dG9uICBjbGFzcz1cInJlY3Rhbmd1bGFyXCIgW2xhYmVsXT1cIidUUkFOU0FDVElPTl9ESVNDT1VOVF9QRVJDJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdGFydERpc2NvdW50SW5wdXQob3JkZXJEaXNjb3VudFR5cGUuRGlzY291bnRQZXJjZW50YWdlLCAnVFJBTlNBQ1RJT05fRElTQ09VTlRfUEVSQycpXCI+PC9jby1idXR0b24+XG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInJlY3Rhbmd1bGFyXCIgW2xhYmVsXT1cIidUUkFOU0FDVElPTl9ESVNDT1VOVCd8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdGFydERpc2NvdW50SW5wdXQob3JkZXJEaXNjb3VudFR5cGUuRGlzY291bnRBbW91bnQsICdUUkFOU0FDVElPTl9ESVNDT1VOVCcpXCI+PC9jby1idXR0b24+XG4gICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInJlY3Rhbmd1bGFyXCIgW2xhYmVsXT1cIidUUkFOU0FDVElPTl9UT1RBTCd8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdGFydERpc2NvdW50SW5wdXQob3JkZXJEaXNjb3VudFR5cGUuT3JkZXJUb3RhbCwgJ1RSQU5TQUNUSU9OX1RPVEFMJylcIj48L2NvLWJ1dHRvbj5cblxuICAgICAgICA8L2Rpdj5cbiAgICA8L2NvLXNpZGViYXI+XG5cbiAgICA8Y28tZGlhbG9nIFt2aXNpYmxlXT1cImlucHV0RGlzY291bnRzXCI+XG4gICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyBkaXNjb3VudEhlYWRlciB8IGxvY2FsaXplIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxjby1mb3JtPlxuICAgICAgICAgIDxjby1pbnB1dC10ZXh0XG4gICAgICAgICAgICAqbmdJZj1cImRpc2NvdW50VHlwZSA9PT0gb3JkZXJEaXNjb3VudFR5cGUuRGlzY291bnRQZXJjZW50YWdlXCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcbiAgICAgICAgICAgIFsobW9kZWwpXT1cInRyYW5zYWN0aW9uRGlzY291bnRQZXJjZW50YWdlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInVFJBTlNBQ1RJT05fRElTQ09VTlRfUEVSQycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICA8Y28taW5wdXQtdGV4dFxuICAgICAgICAgICAgKm5nSWY9XCJkaXNjb3VudFR5cGUgPT09IG9yZGVyRGlzY291bnRUeXBlLkRpc2NvdW50QW1vdW50XCJcbiAgICAgICAgICAgIFt0eXBlXT1cIidudW1iZXInXCJcbiAgICAgICAgICAgIFsobW9kZWwpXT1cInRyYW5zYWN0aW9uRGlzY291bnRBbW91bnRcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidUUkFOU0FDVElPTl9ESVNDT1VOVCcgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICA8Y28taW5wdXQtdGV4dFxuICAgICAgICAgICAgKm5nSWY9XCJkaXNjb3VudFR5cGUgPT09IG9yZGVyRGlzY291bnRUeXBlLk9yZGVyVG90YWxcIlxuICAgICAgICAgICAgW3R5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICAgICAgWyhtb2RlbCldPVwidHJhbnNhY3Rpb25Ub3RhbFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1RSQU5TQUNUSU9OX1RPVEFMJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICA+PC9jby1pbnB1dC10ZXh0PlxuXG4gICAgICAgICAgPGRpdiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0R2FwPVwiMTBweFwiIGZ4TGF5b3V0QWxpZ249XCJlbmRcIj5cbiAgICAgICAgICAgIDxjby1idXR0b24gW2xhYmVsXT1cIidDQU5DRUwnIHwgbG9jYWxpemVcIiAoY2xpY2spPVwiaW5wdXREaXNjb3VudHMgPSBmYWxzZVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ09LJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uSW5wdXREaXNjb3VudHNPa0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9jby1mb3JtPlxuICAgIDwvY28tZGlhbG9nPlxuICBgLFxuICBzdHlsZVVybHM6IFtcbiAgICBcIi4vc2hvcHBpbmctY2FydC5jb21wb25lbnQuc2Nzc1wiLFxuICAgIFwiLi4vc2hvcHBpbmctY2FydC1vdmVydmlldy9zaG9wcGluZy1jYXJ0LW92ZXJ2aWV3LmNvbXBvbmVudC5zY3NzXCIsXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hvcHBpbmdDYXJ0Q29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcHVibGljIHJlYWRvbmx5IG9yZGVyRGlzY291bnRUeXBlOiB0eXBlb2YgT3JkZXJEaXNjb3VudFR5cGUgPSBPcmRlckRpc2NvdW50VHlwZTtcbiAgcHVibGljIHJlYWRvbmx5IGljb25UaGlja0xpbmVzOiBDb3JlQ29tcG9uZW50c0ljb24gPSBDb3JlQ29tcG9uZW50c0ljb24uVGhpY2tMaW5lcztcbiAgcHVibGljIHJlYWRvbmx5IGljb25UaGluTGluZXM6IENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbi5UaGluTGluZXM7XG4gIHB1YmxpYyByZWFkb25seSB2aWV3TW9kZXM6IHR5cGVvZiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGU7XG5cblxuICBAVmlld0NoaWxkKENvU2lkZWJhckNvbXBvbmVudCwgeyBzdGF0aWM6IGZhbHNlIH0pXG4gIHB1YmxpYyBkaXNjb3VudHNTaWRlYmFyOiBDb1NpZGViYXJDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3Mub3ZlcmxheWVkXCIpXG4gIHB1YmxpYyBvdmVybGF5TW9kZTogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5vdmVydmlld1wiKVxuICBwdWJsaWMgb3ZlcnZpZXdNb2RlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoaWRlT3ZlcnZpZXdCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaGlkZUNoZWNrb3V0QnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGhpZGVDbG9zZUNhcnRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNsb3NlQ2FydDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hlY2tvdXQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIG92ZXJ2aWV3OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIGdldCBmaWx0ZXJlZENvbGxlY3Rpb24oKTogVHJhbnNhY3Rpb25MaW5lSW5mb1tdIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyZWRDb2xsZWN0aW9uO1xuICB9XG5cbiAgcHVibGljIHNldEZpbHRlcmVkQ29sbGVjdGlvbih2YWx1ZTogQnVzaW5lc3NPYmplY3RbXSk6IHZvaWQge1xuICAgIHRoaXMuX2ZpbHRlcmVkQ29sbGVjdGlvbiA9ICh2YWx1ZSBhcyBUcmFuc2FjdGlvbkxpbmVJbmZvW10pO1xuICAgIGNvbnN0IHNvcnRCeUxpbmVOcjogU29ydFByb3BlcnR5ID0ge1xuICAgICAgYWN0aXZlOiB0cnVlLFxuICAgICAgZGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uLkFzY2VuZGluZyxcbiAgICAgIHByb3BlcnR5OiBcImxpbmVOclwiLFxuICAgICAgdHlwZTogU29ydFR5cGUuTnVtYmVyfTtcbi8vICAgIFNvcnRVdGlscy5Tb3J0T2JqZWN0QXJyYXkodGhpcy5fZmlsdGVyZWRDb2xsZWN0aW9uLCBbc29ydEJ5TGluZU5yXSk7XG4gIH1cblxuICBwdWJsaWMgZGlzY291bnRIZWFkZXI6IHN0cmluZztcbiAgcHVibGljIGlucHV0RGlzY291bnRzOiBib29sZWFuO1xuICBwdWJsaWMgdHJhbnNhY3Rpb25EaXNjb3VudEFtb3VudDogbnVtYmVyO1xuICBwdWJsaWMgdHJhbnNhY3Rpb25EaXNjb3VudFBlcmNlbnRhZ2U6IG51bWJlcjtcbiAgcHVibGljIHRyYW5zYWN0aW9uVG90YWw6IG51bWJlcjtcbiAgcHVibGljIGRpc2NvdW50VHlwZTogT3JkZXJEaXNjb3VudFR5cGU7XG5cbiAgcHVibGljIGFjdGl2ZVZpZXdNb2RlOiBDb250ZW50Vmlld01vZGUgPSBDb250ZW50Vmlld01vZGUuTGlzdDtcbiAgcHVibGljIGNvbHVtbnM6IGFueVtdID0gW107XG5cbiAgcHVibGljIGNvbnRleHRNZW51SXRlbXM6IENvbnRleHRNZW51SXRlbU1vZGVsW10gPSBbXTtcblxuICBwdWJsaWMgc2hvd0Rpc2NvdW50c1NpZGViYXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZmlsdGVyZWRDb2xsZWN0aW9uOiBUcmFuc2FjdGlvbkxpbmVJbmZvW107XG4gIHByaXZhdGUgX3RyYW5zYWN0aW9uVXBkYXRlZDogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9zZWxlY3RlZFJvdzogVHJhbnNhY3Rpb25MaW5lSW5mbztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5OiBEaWN0aW9uYXJ5U2VydmljZSxcbiAgICBwdWJsaWMgc2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgX3RyYW5zYWN0aW9uRXZlbnRzOiBUcmFuc2FjdGlvbkV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIF9jaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5fdHJhbnNhY3Rpb25VcGRhdGVkID0gdGhpcy5zZXJ2aWNlLnRyYW5zYWN0aW9uVXBkYXRlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRGaWx0ZXJlZENvbGxlY3Rpb24odGhpcy5zZXJ2aWNlLmN1cnJlbnRMaW5lcyk7XG4gICAgfSk7XG4gICAgdGhpcy5zZXRGaWx0ZXJlZENvbGxlY3Rpb24odGhpcy5zZXJ2aWNlLmN1cnJlbnRMaW5lcyk7XG5cbiAgICBjb25zdCBtZWRpYVF1ZXJ5OiBzdHJpbmcgPSBcIihtaW4td2lkdGg6IDUwMHB4KVwiO1xuXG4gICAgdGhpcy5jb2x1bW5zLnB1c2goXG4gICAgICB7ZmllbGQ6IFwibGluZU5yXCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiTlJcIiksIGFsbG93RmlsdGVyaW5nOiBmYWxzZSwgYWxsb3dTb3J0aW5nOiBmYWxzZX0sXG4gICAgICB7ZmllbGQ6IFwidGV4dFwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIlRFWFRcIil9LFxuICAgICAge2ZpZWxkOiBcImFydGljbGVOdW1iZXJcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJBUlRJQ0xFX05SXCIpfSxcbiAgICAgIHtmaWVsZDogXCJnb29kRGVzY3JpcHRpb25cIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJHT09EX0RFU0NSSVBUSU9OXCIpLCBoaWRlQXRNZWRpYTogbWVkaWFRdWVyeX0sXG4gICAgICB7ZmllbGQ6IFwiYW1vdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiTlVNQkVSXCIpLCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwicHJpY2VcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJQUklDRVwiKSwgIGZvcm1hdDogXCJDMlwiLCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwicHJpY2VMaXN0Q29kZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIlBSSUNFX0xJU1RcIiksIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5fSxcbiAgICAgIHtmaWVsZDogXCJsaW5lRGlzY291bnRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJESVNDT1VOVF9QRVJDRU5UQUdFXCIpLCBmb3JtYXQ6IFwiQzJcIiwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwic3BlY2lhbERpc2NvdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiU1BFQ0lBTF9ESVNDT1VOVFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCBoaWRlQXRNZWRpYTogbWVkaWFRdWVyeSwgdGV4dEFsaWduOiBcIlJpZ2h0XCJ9LFxuICAgICAge2ZpZWxkOiBcImRpc2NvdW50QW1vdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiRElTQ09VTlRfQU1PVU5UXCIpLCBmb3JtYXQ6IFwiQzJcIiwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwic3VyY2hhcmdlQW1vdW50XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiU1VSQ0hBUkdFX0FNT1VOVFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCBoaWRlQXRNZWRpYTogbWVkaWFRdWVyeSwgdGV4dEFsaWduOiBcIlJpZ2h0XCJ9LFxuICAgICAge2ZpZWxkOiBcImFzc2VtYmx5Q29zdFwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIkFTU0VNQkxZX0NPU1RTXCIpLCBmb3JtYXQ6IFwiQzJcIiwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwiZ3Jvc3NMaW5lVG90YWxcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJUT1RBTF9HUk9TU1wiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IHRydWUsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwibGluZVRvdGFsRGlzY291bnRBbW91bnRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJESVNDT1VOVFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCAgaGlkZUF0TWVkaWE6IG1lZGlhUXVlcnksIHRleHRBbGlnbjogXCJSaWdodFwifSxcbiAgICAgIHtmaWVsZDogXCJuZXRMaW5lVG90YWxcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJTVUJUT1RBTFwiKSwgZm9ybWF0OiBcIkMyXCIsIHZpc2libGU6IGZhbHNlLCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgICB7ZmllbGQ6IFwidmF0SWRcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJWQVRcIiksIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB2aXNpYmxlOiBmYWxzZSwgdGV4dEFsaWduOiBcIlJpZ2h0XCJ9LFxuICAgICAge2ZpZWxkOiBcInByaWNlRGVjbGFyYXRpb25cIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJUUkFOU0FDVElPTl9QUklDRV9ERUNMQVJBVElPTlwiKSwgdmlzaWJsZTogZmFsc2UsIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5fSxcbiAgICAgIHtmaWVsZDogXCJuZXR0b1wiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIk5FVFRcIiksIGZvcm1hdDogXCJDMlwiLCAgaGlkZUF0TWVkaWE6IG1lZGlhUXVlcnksIHRleHRBbGlnbjogXCJSaWdodFwifSxcbiAgICAgIHtmaWVsZDogXCJ3YXJlaG91c2VOdW1iZXJcIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJXQVJFSE9VU0VcIiksIGhpZGVBdE1lZGlhOiBtZWRpYVF1ZXJ5LCB0ZXh0QWxpZ246IFwiUmlnaHRcIn0sXG4gICAgKTtcblxuICAgIHRoaXMuY29udGV4dE1lbnVJdGVtcy5wdXNoKFxuICAgICAgeyB0ZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIkFERF9BUlRJQ0xFX0xJTkVfVVBcIiksIHRhcmdldDogXCIuZS1jb250ZW50XCIsIGlkOiBcImFydGljbGVMaW5lVXBcIiB9LFxuICAgICAgeyB0ZXh0OiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIkFERF9BUlRJQ0xFX0xJTkVfRE9XTlwiKSwgdGFyZ2V0OiBcIi5lLWNvbnRlbnRcIiwgaWQ6IFwiYXJ0aWNsZUxpbmVEb3duXCIgfSxcbiAgICAgIHsgdGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJBRERfQVJUSUNMRV9URVhUX0xJTkVfVVBcIiksIHRhcmdldDogXCIuZS1jb250ZW50XCIsIGlkOiBcImFydGljbGVUZXh0TGluZVVwXCIgfSxcbiAgICAgIHsgdGV4dDogdGhpcy5fZGljdGlvbmFyeS5nZXQoXCJBRERfQVJUSUNMRV9URVhUX0xJTkVfRE9XTlwiKSwgdGFyZ2V0OiBcIi5lLWNvbnRlbnRcIiwgaWQ6IFwiYXJ0aWNsZVRleHRMaW5lRG93blwiIH1cbiAgICApO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVNpZGViYXIoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uVXBkYXRlZC51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIGdldENhcnRMYWJlbCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIlNIT1BQSU5HX0NBUlRfT1ZFUlZJRVdcIiwgdHJ1ZSkgKyBcIihcIiArIHRoaXMuc2VydmljZS5hcnRpY2xlQW1vdW50LnRvU3RyaW5nKCkgKyBcIilcIjtcblxuICB9XG5cbiAgcHVibGljIGFkZERpc2NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd1NpZGViYXIoKTtcblxuICAgIC8vIFRPRE9cbiAgICAvLyB0aGlzLnRyYW5zYWN0aW9uRGlzY291bnRQZXJjZW50YWdlID0gdGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi50cmFuc2FjdGlvbkRpc2NvdW50UGVyY2VudGFnZTtcbiAgICAvLyB0aGlzLnRyYW5zYWN0aW9uRGlzY291bnRBbW91bnQgPSB0aGlzLnNlcnZpY2UuY3VycmVudFRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uRGlzY291bnRBbW91bnQ7XG4gICAgLy8gdGhpcy50cmFuc2FjdGlvblRvdGFsID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHVibGljIG9uU3RhcnREaXNjb3VudElucHV0KGRpc2NvdW50VHlwZTogT3JkZXJEaXNjb3VudFR5cGUsIGhlYWRlcjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlU2lkZWJhcigpO1xuXG4gICAgdGhpcy5kaXNjb3VudFR5cGUgPSBkaXNjb3VudFR5cGU7XG4gICAgdGhpcy5kaXNjb3VudEhlYWRlciA9IGhlYWRlcjtcbiAgICB0aGlzLmlucHV0RGlzY291bnRzID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuU2hvcHBpbmdDYXJ0TW9kdWxlKCk6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRzLm9wZW5TaG9wcGluZ0NhcnRNb2R1bGUubmV4dCgpO1xuICAgIHRoaXMuY2xvc2VDYXJ0LmVtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNjb3VudEhlYWRlcihkaXNjb3VudFR5cGU6IE9yZGVyRGlzY291bnRUeXBlKTogdm9pZCB7XG4gICAgc3dpdGNoICh0aGlzLmRpc2NvdW50VHlwZSkge1xuICAgICAgY2FzZSBPcmRlckRpc2NvdW50VHlwZS5EaXNjb3VudFBlcmNlbnRhZ2U6XG4gICAgICAgIHRoaXMuZGlzY291bnRIZWFkZXIgPSB0aGlzLl9kaWN0aW9uYXJ5LmdldChcIkRJU0NPVU5UX1BFUkNFTlRBR0VcIiwgdHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBPcmRlckRpc2NvdW50VHlwZS5EaXNjb3VudEFtb3VudDpcbiAgICAgICAgdGhpcy5kaXNjb3VudEhlYWRlciA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiRElTQ09VTlRfQU1PVU5UXCIsIHRydWUpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3JkZXJEaXNjb3VudFR5cGUuT3JkZXJUb3RhbDpcbiAgICAgICAgdGhpcy5kaXNjb3VudEhlYWRlciA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiT1JERVJfVE9UQUxcIiwgdHJ1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbklucHV0RGlzY291bnRzT2tDbGljaygpOiB2b2lkIHtcbiAgICBsZXQgdmFsdWVUb1VzZTogbnVtYmVyO1xuICAgIHN3aXRjaCAodGhpcy5kaXNjb3VudFR5cGUpIHtcbiAgICAgIGNhc2UgT3JkZXJEaXNjb3VudFR5cGUuRGlzY291bnRQZXJjZW50YWdlOlxuICAgICAgICB2YWx1ZVRvVXNlID0gdGhpcy50cmFuc2FjdGlvbkRpc2NvdW50UGVyY2VudGFnZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE9yZGVyRGlzY291bnRUeXBlLkRpc2NvdW50QW1vdW50OlxuICAgICAgICB2YWx1ZVRvVXNlID0gdGhpcy50cmFuc2FjdGlvbkRpc2NvdW50QW1vdW50O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgT3JkZXJEaXNjb3VudFR5cGUuT3JkZXJUb3RhbDpcbiAgICAgICAgdmFsdWVUb1VzZSA9IHRoaXMudHJhbnNhY3Rpb25Ub3RhbDtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIC8vVE9ETyB0aGlzLnNlcnZpY2Uuc2V0VHJhbnNhY3Rpb25EaXNjb3VudHModGhpcy5zZXJ2aWNlLmN1cnJlbnRUcmFuc2FjdGlvbi51dWlkLCB0aGlzLmRpc2NvdW50VHlwZSwgdmFsdWVUb1VzZSk7XG4gICAgdGhpcy5pbnB1dERpc2NvdW50cyA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBsaW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvKTogYW55IHtcbiAgICByZXR1cm4gbGluZS5saW5lTnI7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlUm93c1NlbGVjdGVkKHJvd3M6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuX3NlbGVjdGVkUm93ID0gcm93cy5maW5kKHggPT4geCAhPT0gdW5kZWZpbmVkKTtcbiAgfVxuXG4gIHB1YmxpYyBzaG93U2lkZWJhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEaXNjb3VudHNTaWRlYmFyID0gdHJ1ZTtcbiAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAodGhpcy5kaXNjb3VudHNTaWRlYmFyKSB7XG4gICAgICB0aGlzLmRpc2NvdW50c1NpZGViYXIuc2hvdygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBoaWRlU2lkZWJhcigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dEaXNjb3VudHNTaWRlYmFyID0gZmFsc2U7XG4gICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgaWYgKHRoaXMuZGlzY291bnRzU2lkZWJhcikge1xuICAgICAgdGhpcy5kaXNjb3VudHNTaWRlYmFyLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbWVudUl0ZW1DbGljayhhcmdzOiBNZW51RXZlbnRBcmdzKTogdm9pZCB7XG4gICAgY29uc3QgbGluZU5yOiBudW1iZXIgPSB0aGlzLl9zZWxlY3RlZFJvdy5saW5lTnI7XG4gICAgc3dpdGNoIChhcmdzLml0ZW0uaWQpIHtcbiAgICAgIGNhc2UgXCJhcnRpY2xlTGluZVVwXCI6XG4vLyAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudHMuYWRkQXJ0aWNsZUxpbmUubmV4dCh7bGluZU5yOiBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdy5CZWZvcmV9KTtcbiAgICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50cy5hZGRBcnRpY2xlTGluZUF0Lm5leHQoe3NrdTogXCJpUG9kXCIsIGFtb3VudDogMSwgbGluZU5yOiBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdy5CZWZvcmV9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiYXJ0aWNsZUxpbmVEb3duXCI6XG4vLyAgICAgICAgdGhpcy5fdHJhbnNhY3Rpb25FdmVudHMuYWRkQXJ0aWNsZUxpbmUubmV4dCh7bGluZU5yOiBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdy5BZnRlcn0pO1xuICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50cy5hZGRBcnRpY2xlTGluZUF0Lm5leHQoe3NrdTogXCJpUG9kXCIsIGFtb3VudDogMSwgbGluZU5yOiBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdy5BZnRlcn0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJhcnRpY2xlVGV4dExpbmVVcFwiOlxuLy8gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRzLmFkZFRleHRMaW5lLm5leHQoe2xpbmVOcjogbGluZU5yLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cuQmVmb3JlfSk7XG4gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRzLmFkZFRleHRMaW5lQXQubmV4dCh7dGV4dDogXCJ0ZXh0cmVnZWwgYmVmb3JlXCIsIGxpbmVOcjogbGluZU5yLCBiZWZvcmVPckFmdGVyOiBQb3NpdGlvbkdyaWRSb3cuQmVmb3JlfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcImFydGljbGVUZXh0TGluZURvd25cIjpcbi8vICAgICAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50cy5hZGRUZXh0TGluZS5uZXh0KHtsaW5lTnI6IGxpbmVOciwgYmVmb3JlT3JBZnRlcjogUG9zaXRpb25HcmlkUm93LkFmdGVyfSk7XG4gICAgICAgIHRoaXMuX3RyYW5zYWN0aW9uRXZlbnRzLmFkZFRleHRMaW5lQXQubmV4dCh7dGV4dDogXCJ0ZXh0cmVnZWwgYWZ0ZXJcIiwgbGluZU5yOiBsaW5lTnIsIGJlZm9yZU9yQWZ0ZXI6IFBvc2l0aW9uR3JpZFJvdy5BZnRlcn0pO1xuICAgICAgICBicmVhaztcblxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByb3dEcm9wKGFyZ3M6IFJvd0RyYWdFdmVudEFyZ3MpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2FjdGlvbkV2ZW50cy5jaGFuZ2VMaW5lU2VxdWVuY2UubmV4dCh7ZnJvbUluZGV4OiBhcmdzLmZyb21JbmRleCwgdG9JbmRleDogYXJncy5kcm9wSW5kZXh9KTtcblxuICAgIC8vIFRyYW5zYWN0aW9uIGxpbmVzIHdpbGwgYmUgcmVsb2FkZWQgYnkgcHJldmlvdXMgYWN0aW9uIG9uIHN1Y2Nlc3MsIG5vdCBieSBmYWlsdXJlLiBTbywgY2FuY2VsIHRoZSBkcm9wIGluIGFsbCBjYXNlcy5cbiAgICBhcmdzLmNhbmNlbCA9IHRydWU7XG4gIH1cbn1cbiJdfQ==
@@ -1,172 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, HostBinding, Input } from "@angular/core";
3
- import { StockStatus } from "@colijnit/transactionapi/build/enum/refcode/stock-status.enum";
4
- import { TransactionService } from "../../../service/transaction.service";
5
- import { CoreComponentsIcon, IconCacheService, PromptService } from "@colijnit/corecomponents_v12";
6
- import { DictionaryService } from "../../../service/dictionary.service";
7
- import { ResolvePendingLineReasonRequest } from "@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo";
8
- import { PendingReasonType } from "@colijnit/transactionapi/build/enum/pending-reason-type.enum";
9
- export class ShoppingCartLineComponent {
10
- constructor(iconCacheService, service, _promptService, _dictionaryService) {
11
- this.iconCacheService = iconCacheService;
12
- this.service = service;
13
- this._promptService = _promptService;
14
- this._dictionaryService = _dictionaryService;
15
- this.iconTrashBin = CoreComponentsIcon.TrashBin;
16
- this.stock = StockStatus.Low;
17
- }
18
- get line() {
19
- return this._line;
20
- }
21
- set line(value) {
22
- this._line = value;
23
- this.localAmount = this._line.amount;
24
- this.isText = this._line.isText;
25
- this.isArticle = this._line.isArticle;
26
- this.isSelected = this._line.isSelected;
27
- this._loadLineImage();
28
- }
29
- ngAfterViewInit() {
30
- this._loadLineImage();
31
- }
32
- changeLineAmount(amount) {
33
- this.service.changeTransactionLineQuantity(this.line.uuid, amount).then((value) => {
34
- if (!value || !value.isSuccess) {
35
- this.localAmount = this._line.amount;
36
- return;
37
- }
38
- this._handleLine(value).then();
39
- });
40
- }
41
- deleteTransactionLineClick() {
42
- return __awaiter(this, void 0, void 0, function* () {
43
- const deleteLine = yield this._promptService.showYesNo(this._dictionaryService.get("DELETE_TRANSACTION_LINE"), " ");
44
- if (deleteLine) {
45
- this.service.deleteTransactionLine(this.service.currentTransaction.uuid, this.line.uuid).then((value) => {
46
- this._handleLine(value);
47
- });
48
- }
49
- });
50
- }
51
- _loadLineImage() {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- this.image = this.line ? yield this.service.retrieveLineImage(this.line) : undefined;
54
- });
55
- }
56
- _confirmAction(lineOperationResponse) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- this.currentReason.confirmation = yield this._promptService.showYesNo(lineOperationResponse.pendingReason, " ");
59
- this.service.resolvePendingLineReason(this.currentReason)
60
- .then((value) => {
61
- this._handleLine(value);
62
- });
63
- });
64
- }
65
- _showInformation(lineOperationResponse) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- yield this._promptService.showOkModal(lineOperationResponse.pendingReason, " ");
68
- this.service.resolvePendingLineReason(this.currentReason)
69
- .then((value) => {
70
- this._handleLine(value);
71
- });
72
- });
73
- }
74
- _handleLine(lineOperationResponse) {
75
- return __awaiter(this, void 0, void 0, function* () {
76
- if (lineOperationResponse === undefined) {
77
- return;
78
- }
79
- this.currentReason = new ResolvePendingLineReasonRequest(lineOperationResponse.lineUuid, lineOperationResponse.pendingReason, lineOperationResponse.pendingReasonType);
80
- switch (lineOperationResponse.pendingReasonType) {
81
- case PendingReasonType.ABORTED:
82
- case PendingReasonType.CANCELLED:
83
- this.localAmount = this._line.amount;
84
- if (lineOperationResponse.pendingReason !== "USER_DECISION") {
85
- yield this._promptService.showNotification(this._dictionaryService.get(lineOperationResponse.pendingReason), " ");
86
- }
87
- break;
88
- case PendingReasonType.CONFIRMATION_NEEDED:
89
- yield this._confirmAction(lineOperationResponse);
90
- break;
91
- case PendingReasonType.NON_CRITICAL_DISCONTINUATION:
92
- yield this._showInformation(lineOperationResponse);
93
- break;
94
- case PendingReasonType.INVALID_LOGISTICS:
95
- this.localAmount = this._line.amount;
96
- yield this._promptService.showError(this._dictionaryService.get(lineOperationResponse.pendingReason), " ");
97
- break;
98
- case PendingReasonType.NONE:
99
- default:
100
- break;
101
- }
102
- });
103
- }
104
- }
105
- ShoppingCartLineComponent.decorators = [
106
- { type: Component, args: [{
107
- selector: "shopping-cart-line",
108
- template: `
109
- <div *ngIf="line.isArticle" class="cart-line-r" fxFlex>
110
- <div fxLayout="row" class="full-width">
111
- <div fxLayout="column" class="cart-line-image" *ngIf="!overviewMode">
112
- <co-button [iconData]="iconCacheService.getIcon(iconTrashBin)"
113
- [title]="'DELETE_TRANSACTION_LINE_HINT' | localize"
114
- (click)="deleteTransactionLineClick()"
115
- class="triangle white"
116
- iconClass="medium light"></co-button>
117
- </div>
118
- <div fxLayout="column" class="cart-line-image" *ngIf="!overviewMode">
119
- <image-display [model]="image" hideOnEmptyModel></image-display>
120
- </div>
121
- <div fxLayout="column" class="cart-line-description" fxLayoutGap="20px">
122
- <div fxLayout="row" fxLayoutGap="10px">
123
- <span [textContent]="line.goodDescription" class="cart-line-description-main"></span>
124
- <span *ngIf="line.goodDescription && line.articleNumber">|</span>
125
- <span [textContent]="line.articleNumber" class="cart-line-description-artnr"></span>
126
- </div>
127
- <span [innerHTML]="line.configurationReadable"></span>
128
- </div>
129
- </div>
130
- <div fxLayout="row" class="cart-line-right">
131
- <div fxLayout="column" class="cart-line-stock" *ngIf="!overlayMode && !overviewMode">
132
- <span [textContent]="'STOCK' | localize" class="small-font"></span>
133
- <stock-status-indicator [model]="stock"></stock-status-indicator>
134
- <span [textContent]="'DELIVERY_TIME_PERIOD' | localize" class="small-font"></span>
135
- <span [textContent]="line.deliveryDate | deliveryTime"></span>
136
- </div>
137
- <div class="cart-line-amount">
138
- <co-input-number-picker
139
- class="horizontal"
140
- [(model)]="localAmount" [min]="0" [buttonShowMode]="'always'"
141
- [readonly]="true"
142
- (modelChange)="changeLineAmount($event)"></co-input-number-picker>
143
- </div>
144
-
145
- <div class="cart-line-totals">
146
- <span [textContent]="line.displayNetLineTotal | coCurrency: true"></span>
147
- </div>
148
- </div>
149
- </div>
150
- <div *ngIf="line.isText" class="cart-line-t" fxFlex
151
- [class.article-text]="line.articleBound"
152
- [textContent]="line.text">
153
- </div>
154
- `,
155
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.cart-line-r .cart-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}:host{padding-bottom:20px}:host{padding-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-bottom:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t,.cart-line-r .cart-line-right .cart-line-totals{margin-left:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:flex;flex-wrap:wrap;border-bottom:1px solid #DBE3E8;width:100%}:host.overlayed.is-text{display:none!important}:host.overlayed.is-selected{background-color:#add8e6}:host.overview.is-text{display:none!important}:host.overview.is-selected{background-color:#add8e6}.horizontal{display:flex;flex-direction:row}.cart-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.cart-line-r{flex-direction:column}}.cart-line-r co-button{border:0;padding:0}.cart-line-r .cart-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center}.cart-line-r .cart-line-image image-display{width:6em;height:6em}.cart-line-r .cart-line-description{display:flex;flex-direction:column;width:100%}.cart-line-r .cart-line-description .cart-line-description-main{font-weight:bold}.cart-line-r .cart-line-right{justify-content:flex-end}.cart-line-r .cart-line-right .cart-line-stock{width:10em}.cart-line-r .cart-line-right .cart-line-amount{width:15em}.cart-line-r .cart-line-right .cart-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.cart-line-r .cart-line-right .cart-line-totals span{text-align:right}.cart-line-t.article-text{padding-left:10em}\n"]
156
- },] }
157
- ];
158
- ShoppingCartLineComponent.ctorParameters = () => [
159
- { type: IconCacheService },
160
- { type: TransactionService },
161
- { type: PromptService },
162
- { type: DictionaryService }
163
- ];
164
- ShoppingCartLineComponent.propDecorators = {
165
- overlayMode: [{ type: Input }, { type: HostBinding, args: ["class.overlayed",] }],
166
- overviewMode: [{ type: Input }, { type: HostBinding, args: ["class.overview",] }],
167
- isText: [{ type: HostBinding, args: ["class.is-text",] }],
168
- isArticle: [{ type: HostBinding, args: ["class.is-article",] }],
169
- isSelected: [{ type: HostBinding, args: ["class.is-selected",] }],
170
- line: [{ type: Input }]
171
- };
172
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC1saW5lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvY29tcG9uZW50L3Nob3BwaW5nLWNhcnQvc2hvcHBpbmctY2FydC1saW5lL3Nob3BwaW5nLWNhcnQtbGluZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFdBQVcsRUFBVSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQzFGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUMsK0JBQStCLEVBQUMsTUFBTSx3RUFBd0UsQ0FBQztBQUN2SCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSw4REFBOEQsQ0FBQztBQXNEL0YsTUFBTSxPQUFPLHlCQUF5QjtJQXlDcEMsWUFDUyxnQkFBa0MsRUFDbEMsT0FBMkIsRUFDMUIsY0FBNkIsRUFDN0Isa0JBQXFDO1FBSHRDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDMUIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFDN0IsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQTVDL0IsaUJBQVksR0FBdUIsa0JBQWtCLENBQUMsUUFBUSxDQUFDO1FBbUN4RSxVQUFLLEdBQWdCLFdBQVcsQ0FBQyxHQUFHLENBQUM7SUFVNUMsQ0FBQztJQTFCRCxJQUNXLElBQUk7UUFDYixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIs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SUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDM0csTUFBTTtnQkFDUixLQUFLLGlCQUFpQixDQUFDLElBQUksQ0FBQztnQkFDNUI7b0JBQ0UsTUFBTTthQUNUO1FBQ0gsQ0FBQztLQUFBOzs7WUE1S0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQkFBb0I7Z0JBQzlCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThDVDs7YUFFRjs7O1lBeEQyQixnQkFBZ0I7WUFEcEMsa0JBQWtCO1lBQ29CLGFBQWE7WUFDbkQsaUJBQWlCOzs7MEJBMkR0QixLQUFLLFlBQ0wsV0FBVyxTQUFDLGlCQUFpQjsyQkFHN0IsS0FBSyxZQUNMLFdBQVcsU0FBQyxnQkFBZ0I7cUJBRzVCLFdBQVcsU0FBQyxlQUFlO3dCQUczQixXQUFXLFNBQUMsa0JBQWtCO3lCQUc5QixXQUFXLFNBQUMsbUJBQW1CO21CQUcvQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbmplY3QsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkxpbmVJbmZvfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3RyYW5zYWN0aW9uLWxpbmUtaW5mby5ib1wiO1xuaW1wb3J0IHtTdG9ja1N0YXR1c30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3JlZmNvZGUvc3RvY2stc3RhdHVzLmVudW1cIjtcbmltcG9ydCB7VHJhbnNhY3Rpb25TZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS90cmFuc2FjdGlvbi5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvcmVDb21wb25lbnRzSWNvbiwgSWNvbkNhY2hlU2VydmljZSwgUHJvbXB0U2VydmljZX0gZnJvbSBcIkBjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTJcIjtcbmltcG9ydCB7RGljdGlvbmFyeVNlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlL2RpY3Rpb25hcnkuc2VydmljZVwiO1xuaW1wb3J0IHtSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0fSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3Jlc29sdmUtcGVuZGluZy1yZWFzb24tcmVxdWVzdC5ib1wiO1xuaW1wb3J0IHtQZW5kaW5nUmVhc29uVHlwZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3BlbmRpbmctcmVhc29uLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtMaW5lT3BlcmF0aW9uUmVzcG9uc2V9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvbGluZS1vcGVyYXRpb24tcmVzcG9uc2UuYm9cIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInNob3BwaW5nLWNhcnQtbGluZVwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgKm5nSWY9XCJsaW5lLmlzQXJ0aWNsZVwiIGNsYXNzPVwiY2FydC1saW5lLXJcIiBmeEZsZXg+XG4gICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJmdWxsLXdpZHRoXCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImNhcnQtbGluZS1pbWFnZVwiICpuZ0lmPVwiIW92ZXJ2aWV3TW9kZVwiPlxuICAgICAgICA8Y28tYnV0dG9uIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvblRyYXNoQmluKVwiXG4gICAgICAgICAgICAgICAgICAgW3RpdGxlXT1cIidERUxFVEVfVFJBTlNBQ1RJT05fTElORV9ISU5UJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0cmlhbmdsZSB3aGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwibWVkaXVtIGxpZ2h0XCI+PC9jby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJjYXJ0LWxpbmUtaW1hZ2VcIiAqbmdJZj1cIiFvdmVydmlld01vZGVcIj5cbiAgICAgICAgICA8aW1hZ2UtZGlzcGxheSBbbW9kZWxdPVwiaW1hZ2VcIiBoaWRlT25FbXB0eU1vZGVsPjwvaW1hZ2UtZGlzcGxheT5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImNhcnQtbGluZS1kZXNjcmlwdGlvblwiIGZ4TGF5b3V0R2FwPVwiMjBweFwiPlxuICAgICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEdhcD1cIjEwcHhcIj5cbiAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCJsaW5lLmdvb2REZXNjcmlwdGlvblwiIGNsYXNzPVwiY2FydC1saW5lLWRlc2NyaXB0aW9uLW1haW5cIj48L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImxpbmUuZ29vZERlc2NyaXB0aW9uICYmIGxpbmUuYXJ0aWNsZU51bWJlclwiPnw8L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5hcnRpY2xlTnVtYmVyXCIgY2xhc3M9XCJjYXJ0LWxpbmUtZGVzY3JpcHRpb24tYXJ0bnJcIj48L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJsaW5lLmNvbmZpZ3VyYXRpb25SZWFkYWJsZVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cImNhcnQtbGluZS1yaWdodFwiPlxuICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwiY29sdW1uXCIgY2xhc3M9XCJjYXJ0LWxpbmUtc3RvY2tcIiAqbmdJZj1cIiFvdmVybGF5TW9kZSAmJiAhb3ZlcnZpZXdNb2RlXCI+XG4gICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidTVE9DSycgfCBsb2NhbGl6ZVwiIGNsYXNzPVwic21hbGwtZm9udFwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3RvY2stc3RhdHVzLWluZGljYXRvciBbbW9kZWxdPVwic3RvY2tcIj48L3N0b2NrLXN0YXR1cy1pbmRpY2F0b3I+XG4gICAgICAgICAgPHNwYW4gW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9USU1FX1BFUklPRCcgfCBsb2NhbGl6ZVwiIGNsYXNzPVwic21hbGwtZm9udFwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5kZWxpdmVyeURhdGUgfCBkZWxpdmVyeVRpbWVcIj48L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FydC1saW5lLWFtb3VudFwiPlxuICAgICAgICAgIDxjby1pbnB1dC1udW1iZXItcGlja2VyXG4gICAgICAgICAgICBjbGFzcz1cImhvcml6b250YWxcIlxuICAgICAgICAgICAgWyhtb2RlbCldPVwibG9jYWxBbW91bnRcIiBbbWluXT1cIjBcIiBbYnV0dG9uU2hvd01vZGVdPVwiJ2Fsd2F5cydcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInRydWVcIlxuICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZUxpbmVBbW91bnQoJGV2ZW50KVwiPjwvY28taW5wdXQtbnVtYmVyLXBpY2tlcj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhcnQtbGluZS10b3RhbHNcIj5cbiAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwibGluZS5kaXNwbGF5TmV0TGluZVRvdGFsIHwgY29DdXJyZW5jeTogdHJ1ZVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibGluZS5pc1RleHRcIiBjbGFzcz1cImNhcnQtbGluZS10XCIgZnhGbGV4XG4gICAgICAgICBbY2xhc3MuYXJ0aWNsZS10ZXh0XT1cImxpbmUuYXJ0aWNsZUJvdW5kXCJcbiAgICAgICAgIFt0ZXh0Q29udGVudF09XCJsaW5lLnRleHRcIj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVVcmxzOiBbXCIuL3Nob3BwaW5nLWNhcnQtbGluZS5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBTaG9wcGluZ0NhcnRMaW5lQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBpY29uVHJhc2hCaW46IENvcmVDb21wb25lbnRzSWNvbiA9IENvcmVDb21wb25lbnRzSWNvbi5UcmFzaEJpbjtcblxuICBASW5wdXQoKVxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5vdmVybGF5ZWRcIilcbiAgcHVibGljIG92ZXJsYXlNb2RlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLm92ZXJ2aWV3XCIpXG4gIHB1YmxpYyBvdmVydmlld01vZGU6IGJvb2xlYW47XG5cbiAgQEhvc3RCaW5kaW5nKFwiY2xhc3MuaXMtdGV4dFwiKVxuICBwdWJsaWMgaXNUZXh0OiBib29sZWFuO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmlzLWFydGljbGVcIilcbiAgcHVibGljIGlzQXJ0aWNsZTogYm9vbGVhbjtcblxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5pcy1zZWxlY3RlZFwiKVxuICBwdWJsaWMgaXNTZWxlY3RlZDogYm9vbGVhbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGxpbmUoKTogVHJhbnNhY3Rpb25MaW5lSW5mbyB7XG4gICAgcmV0dXJuIHRoaXMuX2xpbmU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGxpbmUodmFsdWU6IFRyYW5zYWN0aW9uTGluZUluZm8pIHtcbiAgICB0aGlzLl9saW5lID0gdmFsdWU7XG4gICAgdGhpcy5sb2NhbEFtb3VudCA9IHRoaXMuX2xpbmUuYW1vdW50O1xuICAgIHRoaXMuaXNUZXh0ID0gdGhpcy5fbGluZS5pc1RleHQ7XG4gICAgdGhpcy5pc0FydGljbGUgPSB0aGlzLl9saW5lLmlzQXJ0aWNsZTtcbiAgICB0aGlzLmlzU2VsZWN0ZWQgPSB0aGlzLl9saW5lLmlzU2VsZWN0ZWQ7XG4gICAgdGhpcy5fbG9hZExpbmVJbWFnZSgpO1xuICB9XG5cbiAgcHVibGljIGxvY2FsQW1vdW50OiBudW1iZXI7XG4gIHB1YmxpYyBpbWFnZTogc3RyaW5nO1xuICBwdWJsaWMgc3RvY2s6IFN0b2NrU3RhdHVzID0gU3RvY2tTdGF0dXMuTG93O1xuICBwdWJsaWMgY3VycmVudFJlYXNvbjogUmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uUmVxdWVzdDtcblxuICBwcml2YXRlIF9saW5lOiBUcmFuc2FjdGlvbkxpbmVJbmZvO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBzZXJ2aWNlOiBUcmFuc2FjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfcHJvbXB0U2VydmljZTogUHJvbXB0U2VydmljZSxcbiAgICBwcml2YXRlIF9kaWN0aW9uYXJ5U2VydmljZTogRGljdGlvbmFyeVNlcnZpY2UpIHtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9sb2FkTGluZUltYWdlKCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlTGluZUFtb3VudChhbW91bnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuc2VydmljZS5jaGFuZ2VUcmFuc2FjdGlvbkxpbmVRdWFudGl0eSh0aGlzLmxpbmUudXVpZCwgYW1vdW50KS50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS5pc1N1Y2Nlc3MpIHtcbiAgICAgICAgdGhpcy5sb2NhbEFtb3VudCA9IHRoaXMuX2xpbmUuYW1vdW50O1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKS50aGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVsZXRlVHJhbnNhY3Rpb25MaW5lQ2xpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZGVsZXRlTGluZTogYm9vbGVhbiAgPSBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dZZXNObyh0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJERUxFVEVfVFJBTlNBQ1RJT05fTElORVwiKSwgXCIgXCIpO1xuICAgIGlmIChkZWxldGVMaW5lKSB7XG4gICAgICB0aGlzLnNlcnZpY2UuZGVsZXRlVHJhbnNhY3Rpb25MaW5lKHRoaXMuc2VydmljZS5jdXJyZW50VHJhbnNhY3Rpb24udXVpZCwgdGhpcy5saW5lLnV1aWQpLnRoZW4oKHZhbHVlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpID0+IHtcbiAgICAgICAgdGhpcy5faGFuZGxlTGluZSh2YWx1ZSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9sb2FkTGluZUltYWdlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuaW1hZ2UgPSB0aGlzLmxpbmUgPyBhd2FpdCB0aGlzLnNlcnZpY2UucmV0cmlldmVMaW5lSW1hZ2UodGhpcy5saW5lKSA6IHVuZGVmaW5lZDtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBhc3luYyBfY29uZmlybUFjdGlvbihsaW5lT3BlcmF0aW9uUmVzcG9uc2U6IExpbmVPcGVyYXRpb25SZXNwb25zZSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY3VycmVudFJlYXNvbi5jb25maXJtYXRpb24gID0gYXdhaXQgdGhpcy5fcHJvbXB0U2VydmljZS5zaG93WWVzTm8obGluZU9wZXJhdGlvblJlc3BvbnNlLnBlbmRpbmdSZWFzb24sIFwiIFwiKTtcbiAgICB0aGlzLnNlcnZpY2UucmVzb2x2ZVBlbmRpbmdMaW5lUmVhc29uKHRoaXMuY3VycmVudFJlYXNvbilcbiAgICAgIC50aGVuKCh2YWx1ZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKSA9PiB7XG4gICAgICAgIHRoaXMuX2hhbmRsZUxpbmUodmFsdWUpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9zaG93SW5mb3JtYXRpb24obGluZU9wZXJhdGlvblJlc3BvbnNlOiBMaW5lT3BlcmF0aW9uUmVzcG9uc2UpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dPa01vZGFsKGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBcIiBcIik7XG4gICAgdGhpcy5zZXJ2aWNlLnJlc29sdmVQZW5kaW5nTGluZVJlYXNvbih0aGlzLmN1cnJlbnRSZWFzb24pXG4gICAgICAudGhlbigodmFsdWU6IExpbmVPcGVyYXRpb25SZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLl9oYW5kbGVMaW5lKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgIGFzeW5jIF9oYW5kbGVMaW5lKGxpbmVPcGVyYXRpb25SZXNwb25zZTogTGluZU9wZXJhdGlvblJlc3BvbnNlKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKGxpbmVPcGVyYXRpb25SZXNwb25zZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY3VycmVudFJlYXNvbiA9IG5ldyBSZXNvbHZlUGVuZGluZ0xpbmVSZWFzb25SZXF1ZXN0KGxpbmVPcGVyYXRpb25SZXNwb25zZS5saW5lVXVpZCxcbiAgICAgIGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uLCBsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvblR5cGUpO1xuXG4gICAgc3dpdGNoIChsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvblR5cGUpIHtcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQUJPUlRFRDpcbiAgICAgIGNhc2UgUGVuZGluZ1JlYXNvblR5cGUuQ0FOQ0VMTEVEOlxuICAgICAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XG4gICAgICAgIGlmIChsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvbiAhPT0gXCJVU0VSX0RFQ0lTSU9OXCIpIHtcbiAgICAgICAgICBhd2FpdCB0aGlzLl9wcm9tcHRTZXJ2aWNlLnNob3dOb3RpZmljYXRpb24odGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KGxpbmVPcGVyYXRpb25SZXNwb25zZS5wZW5kaW5nUmVhc29uKSwgXCIgXCIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5DT05GSVJNQVRJT05fTkVFREVEOlxuICAgICAgICBhd2FpdCB0aGlzLl9jb25maXJtQWN0aW9uKGxpbmVPcGVyYXRpb25SZXNwb25zZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBQZW5kaW5nUmVhc29uVHlwZS5OT05fQ1JJVElDQUxfRElTQ09OVElOVUFUSU9OOlxuICAgICAgICBhd2FpdCB0aGlzLl9zaG93SW5mb3JtYXRpb24obGluZU9wZXJhdGlvblJlc3BvbnNlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLklOVkFMSURfTE9HSVNUSUNTOlxuICAgICAgICB0aGlzLmxvY2FsQW1vdW50ID0gdGhpcy5fbGluZS5hbW91bnQ7XG4gICAgICAgIGF3YWl0IHRoaXMuX3Byb21wdFNlcnZpY2Uuc2hvd0Vycm9yKHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChsaW5lT3BlcmF0aW9uUmVzcG9uc2UucGVuZGluZ1JlYXNvbiksIFwiIFwiKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFBlbmRpbmdSZWFzb25UeXBlLk5PTkU6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxufVxuIl19