@colijnit/transaction 12.1.6 → 12.1.9

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 (508) hide show
  1. package/README.md +10 -13
  2. package/bundles/colijnit-transaction.umd.js +5786 -7155
  3. package/bundles/colijnit-transaction.umd.js.map +1 -1
  4. package/colijnit-transaction.d.ts +57 -57
  5. package/colijnit-transaction.metadata.json +1 -1
  6. package/esm2015/colijnit-transaction.js +58 -58
  7. package/esm2015/lib/assets/dictionary/text.properties.js +418 -0
  8. package/esm2015/lib/component/checkout/checkout-login/checkout-login.component.js +106 -0
  9. package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +47 -0
  10. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +275 -0
  11. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +538 -0
  12. package/esm2015/lib/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +30 -0
  13. package/esm2015/lib/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +31 -0
  14. package/esm2015/lib/component/checkout/checkout.component.js +132 -0
  15. package/esm2015/lib/component/checkout/checkout.module.js +86 -0
  16. package/esm2015/lib/component/confirmation-dialog/confirmation-dialog.component.js +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 +41 -0
  25. package/esm2015/lib/component/core/stock-status-indicator/stock-status-indicator.component.js +24 -0
  26. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +40 -0
  27. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.module.js +26 -0
  28. package/esm2015/lib/component/discount/discount.component.js +107 -0
  29. package/esm2015/lib/component/discount/discount.module.js +29 -0
  30. package/esm2015/lib/component/payment/payment.component.js +73 -0
  31. package/esm2015/lib/component/payment/payment.module.js +27 -0
  32. package/esm2015/lib/component/payment-tile/payment-tile.component.js +32 -0
  33. package/esm2015/lib/component/payment-tile/payment-tile.module.js +25 -0
  34. package/esm2015/lib/component/relation-address/relation-address.component.js +125 -0
  35. package/esm2015/lib/component/relation-address/relation-address.module.js +28 -0
  36. package/esm2015/lib/component/relation-address-select/relation-address-select.component.js +146 -0
  37. package/esm2015/lib/component/relation-address-select/relation-address-select.module.js +33 -0
  38. package/esm2015/lib/component/relation-address-tile/relation-address-tile.component.js +61 -0
  39. package/esm2015/lib/component/relation-address-tile/relation-address-tile.module.js +32 -0
  40. package/esm2015/lib/component/seller-information/seller-information.component.js +61 -0
  41. package/esm2015/lib/component/seller-information/seller-information.module.js +21 -0
  42. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +118 -0
  43. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.module.js +31 -0
  44. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +129 -0
  45. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +34 -0
  46. package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +57 -0
  47. package/esm2015/lib/component/shopping-cart/shopping-cart.module.js +27 -0
  48. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +55 -0
  49. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.module.js +29 -0
  50. package/esm2015/lib/component/stepper/component/stepper-step.component.js +40 -0
  51. package/esm2015/lib/component/stepper/stepper.component.js +124 -0
  52. package/esm2015/lib/component/stepper/stepper.module.js +29 -0
  53. package/esm2015/lib/component/tile/tile.component.js +32 -0
  54. package/esm2015/lib/component/tile/tile.module.js +19 -0
  55. package/esm2015/lib/component/transaction/transaction.component.js +96 -0
  56. package/esm2015/lib/component/transaction/transaction.module.js +39 -0
  57. package/esm2015/lib/component/transaction-header/transaction-header.component.js +36 -0
  58. package/esm2015/lib/component/transaction-header/transaction-header.module.js +27 -0
  59. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.component.js +34 -0
  60. package/esm2015/lib/component/transaction-header-contact/transaction-header-contact.module.js +19 -0
  61. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.component.js +57 -0
  62. package/esm2015/lib/component/transaction-header-delivery/transaction-header-delivery.module.js +21 -0
  63. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.component.js +35 -0
  64. package/esm2015/lib/component/transaction-header-relation/transaction-header-relation.module.js +19 -0
  65. package/esm2015/lib/component/transaction-line/transaction-line.component.js +278 -0
  66. package/esm2015/lib/component/transaction-line/transaction-line.module.js +32 -0
  67. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.component.js +23 -0
  68. package/esm2015/lib/component/transaction-line-grid/transaction-line-grid.module.js +21 -0
  69. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +163 -0
  70. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +30 -0
  71. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +122 -0
  72. package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +31 -0
  73. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.component.js +58 -0
  74. package/esm2015/lib/component/transaction-lines-grid/transaction-lines-grid.module.js +26 -0
  75. package/esm2015/lib/component/transaction-totals/transaction-totals.component.js +44 -0
  76. package/esm2015/lib/component/transaction-totals/transaction-totals.module.js +23 -0
  77. package/esm2015/lib/enum/content-view-mode.enum.js +10 -0
  78. package/esm2015/lib/enum/icon.enum.js +24 -0
  79. package/esm2015/lib/enum/language-code.enum.js +8 -0
  80. package/esm2015/lib/enum/order-discount-type.enum.js +7 -0
  81. package/esm2015/lib/enum/time-size.type.js +10 -0
  82. package/esm2015/lib/factory/business-object-factory.js +120 -0
  83. package/esm2015/lib/factory/decorators/boolean.decorator.js +102 -0
  84. package/esm2015/lib/factory/decorators/complex-array.decorator.js +55 -0
  85. package/esm2015/lib/factory/decorators/complex-field.decorator.js +57 -0
  86. package/esm2015/lib/factory/decorators/date-field.decorator.js +36 -0
  87. package/esm2015/lib/factory/decorators/string-number.decorator.js +43 -0
  88. package/esm2015/lib/model/business-object.js +81 -0
  89. package/esm2015/lib/model/delivery-type.js +3 -0
  90. package/esm2015/lib/model/icon-svg.js +23 -0
  91. package/esm2015/lib/model/standard-text.js +3 -0
  92. package/esm2015/lib/model/text-value-container.js +3 -0
  93. package/esm2015/lib/pipe/append.pipe.js +17 -0
  94. package/esm2015/lib/pipe/co-currency.pipe.js +47 -0
  95. package/esm2015/lib/pipe/date-duration.pipe.js +57 -0
  96. package/esm2015/lib/pipe/delivery-time.pipe.js +33 -0
  97. package/esm2015/lib/pipe/localize.pipe.js +28 -0
  98. package/esm2015/lib/pipe/pipe.module.js +37 -0
  99. package/esm2015/lib/pipe/safe-html.pipe.js +19 -0
  100. package/esm2015/lib/pipe/safe-style.pipe.js +19 -0
  101. package/esm2015/lib/service/dialog.service.js +65 -0
  102. package/esm2015/lib/service/dictionary.service.js +76 -0
  103. package/esm2015/lib/service/icon-cache.service.js +51 -0
  104. package/esm2015/lib/service/ione-connector-adapter.service.js +591 -0
  105. package/esm2015/lib/service/options.service.js +69 -0
  106. package/esm2015/lib/service/pending-reason.service.js +172 -0
  107. package/esm2015/lib/service/transaction.service.js +521 -0
  108. package/esm2015/lib/utils/array-utils.js +183 -0
  109. package/esm2015/lib/utils/is-nill.function.js +5 -0
  110. package/esm2015/lib/utils/string-utils.js +64 -0
  111. package/esm2015/public_api.js +28 -10
  112. package/fesm2015/colijnit-transaction.js +5913 -7162
  113. package/fesm2015/colijnit-transaction.js.map +1 -1
  114. package/{assets → lib/assets}/dictionary/text.properties.d.ts +0 -0
  115. package/{app → lib}/component/checkout/checkout-login/checkout-login.component.d.ts +0 -0
  116. package/lib/component/checkout/checkout-login/checkout-login.component.scss +35 -0
  117. package/{app → lib}/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +0 -0
  118. package/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.scss +0 -0
  119. package/{app → lib}/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +23 -36
  120. package/lib/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +98 -0
  121. package/lib/component/checkout/checkout-overview-delivery-edit/style/_material-definition.scss +12 -0
  122. package/lib/component/checkout/checkout-overview-delivery-edit/style/_theme.scss +17 -0
  123. package/lib/component/checkout/checkout-overview-delivery-edit/style/material.scss +7 -0
  124. package/{app → lib}/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +41 -14
  125. package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +125 -0
  126. package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +18 -0
  127. package/lib/component/checkout/checkout-overview-relation-edit/style/_theme.scss +9 -0
  128. package/lib/component/checkout/checkout-overview-relation-edit/style/material.scss +10 -0
  129. package/{app → lib}/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.d.ts +2 -3
  130. package/lib/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +8 -0
  131. package/lib/component/checkout/checkout-relation-suggestions-list/style/_material-definition.scss +0 -0
  132. package/lib/component/checkout/checkout-relation-suggestions-list/style/_theme.scss +6 -0
  133. package/lib/component/checkout/checkout-relation-suggestions-list/style/material.scss +5 -0
  134. package/lib/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +8 -0
  135. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/_layout.scss +34 -0
  136. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/_material-definition.scss +8 -0
  137. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/_theme.scss +6 -0
  138. package/lib/component/checkout/checkout-relation-suggestions-list-item/style/material.scss +4 -0
  139. package/lib/component/checkout/checkout.component.d.ts +36 -0
  140. package/lib/component/checkout/checkout.module.d.ts +2 -0
  141. package/lib/component/checkout/style/_layout.scss +31 -0
  142. package/lib/component/checkout/style/_material-definition.scss +5 -0
  143. package/lib/component/checkout/style/_theme.scss +8 -0
  144. package/lib/component/checkout/style/material.scss +10 -0
  145. package/lib/component/confirmation-dialog/confirmation-dialog.component.d.ts +8 -0
  146. package/lib/component/confirmation-dialog/confirmation-dialog.module.d.ts +2 -0
  147. package/lib/component/confirmation-dialog/style/_layout.scss +22 -0
  148. package/lib/component/confirmation-dialog/style/_material-definition.scss +2 -0
  149. package/lib/component/confirmation-dialog/style/_theme.scss +6 -0
  150. package/lib/component/confirmation-dialog/style/material.scss +5 -0
  151. package/lib/component/core/base/dialog-base.component.d.ts +4 -0
  152. package/lib/component/core/base/style/_layout.scss +7 -0
  153. package/lib/component/core/base/style/_material-definition.scss +0 -0
  154. package/lib/component/core/base/style/_theme.scss +6 -0
  155. package/lib/component/core/base/style/material.scss +4 -0
  156. package/{app → lib}/component/core/base/transaction-base.component.d.ts +7 -23
  157. package/lib/component/core/characteristic-answer/characteristic-answer.component.scss +20 -0
  158. package/{app → lib}/component/core/core.module.d.ts +0 -0
  159. package/lib/component/core/enum/app-popup-button-type.enum.d.ts +9 -0
  160. package/{app → lib}/component/core/icon/icon.component.d.ts +3 -2
  161. package/lib/component/core/icon/icon.component.scss +87 -0
  162. package/lib/component/core/image-display/image-display.component.d.ts +5 -0
  163. package/lib/component/core/image-display/style/_layout.scss +57 -0
  164. package/lib/component/core/image-display/style/_material-definition.scss +4 -0
  165. package/lib/component/core/image-display/style/_theme.scss +6 -0
  166. package/lib/component/core/image-display/style/material.scss +4 -0
  167. package/lib/component/core/relation/customer-groups.component.d.ts +13 -0
  168. package/lib/component/core/relation/relation-customer-groups.component.scss +6 -0
  169. package/{app → lib}/component/core/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
  170. package/lib/component/core/stock-status-indicator/stock-status-indicator.component.scss +47 -0
  171. package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +10 -0
  172. package/lib/component/delivery-type-tile/delivery-type-tile.module.d.ts +2 -0
  173. package/lib/component/delivery-type-tile/style/_layout.scss +35 -0
  174. package/lib/component/delivery-type-tile/style/_material-definition.scss +16 -0
  175. package/lib/component/delivery-type-tile/style/_theme.scss +6 -0
  176. package/lib/component/delivery-type-tile/style/material.scss +5 -0
  177. package/lib/component/discount/discount.component.d.ts +19 -0
  178. package/lib/component/discount/discount.module.d.ts +2 -0
  179. package/lib/component/discount/style/_layout.scss +0 -0
  180. package/lib/component/discount/style/_material-definition.scss +0 -0
  181. package/lib/component/discount/style/_theme.scss +0 -0
  182. package/lib/component/discount/style/material.scss +0 -0
  183. package/lib/component/payment/payment.component.d.ts +18 -0
  184. package/lib/component/payment/payment.module.d.ts +2 -0
  185. package/lib/component/payment/style/_layout.scss +54 -0
  186. package/lib/component/payment/style/_material-definition.scss +17 -0
  187. package/lib/component/payment/style/_theme.scss +16 -0
  188. package/lib/component/payment/style/material.scss +5 -0
  189. package/lib/component/payment-tile/payment-tile.component.d.ts +9 -0
  190. package/lib/component/payment-tile/payment-tile.module.d.ts +2 -0
  191. package/lib/component/payment-tile/style/_layout.scss +22 -0
  192. package/lib/component/payment-tile/style/_material-definition.scss +0 -0
  193. package/lib/component/payment-tile/style/_theme.scss +6 -0
  194. package/lib/component/payment-tile/style/material.scss +5 -0
  195. package/lib/component/relation-address/relation-address.component.d.ts +28 -0
  196. package/lib/component/relation-address/relation-address.module.d.ts +2 -0
  197. package/lib/component/relation-address/style/_layout.scss +25 -0
  198. package/lib/component/relation-address/style/_material-definition.scss +3 -0
  199. package/lib/component/relation-address/style/_theme.scss +7 -0
  200. package/lib/component/relation-address/style/material.scss +5 -0
  201. package/lib/component/relation-address-select/relation-address-select.component.d.ts +33 -0
  202. package/lib/component/relation-address-select/relation-address-select.module.d.ts +2 -0
  203. package/lib/component/relation-address-select/style/_layout.scss +85 -0
  204. package/lib/component/relation-address-select/style/_material-definition.scss +4 -0
  205. package/lib/component/relation-address-select/style/_theme.scss +6 -0
  206. package/lib/component/relation-address-select/style/material.scss +5 -0
  207. package/lib/component/relation-address-tile/relation-address-tile.component.d.ts +14 -0
  208. package/lib/component/relation-address-tile/relation-address-tile.module.d.ts +2 -0
  209. package/lib/component/relation-address-tile/style/_layout.scss +42 -0
  210. package/lib/component/relation-address-tile/style/_material-definition.scss +16 -0
  211. package/lib/component/relation-address-tile/style/_theme.scss +21 -0
  212. package/lib/component/relation-address-tile/style/material.scss +5 -0
  213. package/lib/component/sell-order/sell-order-side-panel/sell-order-side-panel.component.scss +49 -0
  214. package/lib/component/sell-order/sell-order.component.scss +15 -0
  215. package/lib/component/seller-information/seller-information.component.d.ts +13 -0
  216. package/lib/component/seller-information/seller-information.module.d.ts +2 -0
  217. package/lib/component/seller-information/style/_layout.scss +21 -0
  218. package/lib/component/seller-information/style/_material-definition.scss +2 -0
  219. package/lib/component/seller-information/style/_theme.scss +7 -0
  220. package/lib/component/seller-information/style/material.scss +4 -0
  221. package/lib/component/service-order/service-order.component.scss +154 -0
  222. package/lib/component/service-order/summary/transaction-delivery-summary.component.scss +22 -0
  223. package/lib/component/service-order/summary/transaction-summary-block.component.scss +109 -0
  224. package/lib/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.scss +0 -0
  225. package/lib/component/service-order/transaction-manager/transaction-manager.component.scss +54 -0
  226. package/lib/component/service-order/transaction-order-line-view/transaction-order-line-view.component.scss +90 -0
  227. package/lib/component/service-order/transaction-order-lines/transaction-order-lines.component.scss +85 -0
  228. package/lib/component/service-order/transaction-order-totals/transaction-order-totals.component.scss +26 -0
  229. package/lib/component/service-order/transaction-relation/transaction-relation-edit.component.scss +24 -0
  230. package/lib/component/service-order/transaction-sidebar/transaction-line-accordion.component.scss +0 -0
  231. package/lib/component/service-order/transaction-sidebar/transaction-sidebar-right.component.scss +17 -0
  232. package/lib/component/service-order/warehouse/warehouse.component.scss +54 -0
  233. package/lib/component/shared/transaction-article-text/style/_layout.scss +42 -0
  234. package/lib/component/shared/transaction-article-text/style/_material-definition.scss +7 -0
  235. package/lib/component/shared/transaction-article-text/style/_theme.scss +11 -0
  236. package/lib/component/shared/transaction-article-text/style/material.scss +5 -0
  237. package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +31 -0
  238. package/lib/component/shared/transaction-article-text/transaction-article-text.module.d.ts +2 -0
  239. package/lib/component/shared/transaction-article-text-overview/style/_layout.scss +56 -0
  240. package/lib/component/shared/transaction-article-text-overview/style/_material-definition.scss +9 -0
  241. package/lib/component/shared/transaction-article-text-overview/style/_theme.scss +9 -0
  242. package/lib/component/shared/transaction-article-text-overview/style/material.scss +4 -0
  243. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +30 -0
  244. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.d.ts +2 -0
  245. package/lib/component/shopping-cart/shopping-cart.component.d.ts +15 -0
  246. package/lib/component/shopping-cart/shopping-cart.module.d.ts +2 -0
  247. package/lib/component/shopping-cart/style/_layout.scss +33 -0
  248. package/lib/component/shopping-cart/style/_material-definition.scss +10 -0
  249. package/lib/component/shopping-cart/style/_theme.scss +14 -0
  250. package/lib/component/shopping-cart/style/material.scss +4 -0
  251. package/lib/component/shopping-cart-OLD/shopping-cart-manager/shopping-cart-manager.component.scss +54 -0
  252. package/lib/component/shopping-cart-preview/shopping-cart-preview.component.d.ts +13 -0
  253. package/lib/component/shopping-cart-preview/shopping-cart-preview.module.d.ts +2 -0
  254. package/lib/component/shopping-cart-preview/style/_layout.scss +48 -0
  255. package/lib/component/shopping-cart-preview/style/_material-definition.scss +20 -0
  256. package/lib/component/shopping-cart-preview/style/_theme.scss +17 -0
  257. package/lib/component/shopping-cart-preview/style/material.scss +4 -0
  258. package/lib/component/stepper/component/stepper-step.component.d.ts +12 -0
  259. package/lib/component/stepper/stepper.component.d.ts +35 -0
  260. package/lib/component/stepper/stepper.module.d.ts +2 -0
  261. package/lib/component/stepper/style/_layout.scss +107 -0
  262. package/lib/component/stepper/style/_material-definition.scss +18 -0
  263. package/lib/component/stepper/style/_theme.scss +43 -0
  264. package/lib/component/stepper/style/material.scss +4 -0
  265. package/lib/component/tile/style/_layout.scss +36 -0
  266. package/lib/component/tile/style/_material-definition.scss +16 -0
  267. package/lib/component/tile/style/_theme.scss +36 -0
  268. package/lib/component/tile/style/material.scss +4 -0
  269. package/lib/component/tile/tile.component.d.ts +6 -0
  270. package/lib/component/tile/tile.module.d.ts +2 -0
  271. package/lib/component/transaction/style/_layout.scss +25 -0
  272. package/lib/component/transaction/style/_material-definition.scss +7 -0
  273. package/lib/component/transaction/style/_theme.scss +24 -0
  274. package/lib/component/transaction/style/material.scss +8 -0
  275. package/lib/component/transaction/transaction.component.d.ts +24 -0
  276. package/lib/component/transaction/transaction.module.d.ts +2 -0
  277. package/lib/component/transaction-header/style/_layout.scss +38 -0
  278. package/lib/component/transaction-header/style/_material-definition.scss +8 -0
  279. package/lib/component/transaction-header/style/_theme.scss +11 -0
  280. package/lib/component/transaction-header/style/material.scss +7 -0
  281. package/lib/component/transaction-header/transaction-header.component.d.ts +9 -0
  282. package/lib/component/transaction-header/transaction-header.module.d.ts +2 -0
  283. package/lib/component/transaction-header-contact/style/_layout.scss +25 -0
  284. package/lib/component/transaction-header-contact/style/_material-definition.scss +7 -0
  285. package/lib/component/transaction-header-contact/style/_theme.scss +11 -0
  286. package/lib/component/transaction-header-contact/style/material.scss +4 -0
  287. package/lib/component/transaction-header-contact/transaction-header-contact.component.d.ts +4 -0
  288. package/lib/component/transaction-header-contact/transaction-header-contact.module.d.ts +2 -0
  289. package/lib/component/transaction-header-delivery/style/_layout.scss +54 -0
  290. package/lib/component/transaction-header-delivery/style/_material-definition.scss +12 -0
  291. package/lib/component/transaction-header-delivery/style/_theme.scss +24 -0
  292. package/lib/component/transaction-header-delivery/style/material.scss +4 -0
  293. package/lib/component/transaction-header-delivery/transaction-header-delivery.component.d.ts +13 -0
  294. package/lib/component/transaction-header-delivery/transaction-header-delivery.module.d.ts +2 -0
  295. package/lib/component/transaction-header-relation/style/_layout.scss +25 -0
  296. package/lib/component/transaction-header-relation/style/_material-definition.scss +7 -0
  297. package/lib/component/transaction-header-relation/style/_theme.scss +11 -0
  298. package/lib/component/transaction-header-relation/style/material.scss +4 -0
  299. package/lib/component/transaction-header-relation/transaction-header-relation.component.d.ts +4 -0
  300. package/lib/component/transaction-header-relation/transaction-header-relation.module.d.ts +2 -0
  301. package/lib/component/transaction-line/style/_layout.scss +143 -0
  302. package/lib/component/transaction-line/style/_material-definition.scss +29 -0
  303. package/lib/component/transaction-line/style/_theme.scss +41 -0
  304. package/lib/component/transaction-line/style/material.scss +9 -0
  305. package/lib/component/transaction-line/transaction-line.component.d.ts +51 -0
  306. package/lib/component/transaction-line/transaction-line.module.d.ts +2 -0
  307. package/lib/component/transaction-line-grid/style/_layout.scss +6 -0
  308. package/lib/component/transaction-line-grid/style/_material-definition.scss +0 -0
  309. package/lib/component/transaction-line-grid/style/_theme.scss +6 -0
  310. package/lib/component/transaction-line-grid/style/material.scss +4 -0
  311. package/lib/component/transaction-line-grid/transaction-line-grid.component.d.ts +5 -0
  312. package/lib/component/transaction-line-grid/transaction-line-grid.module.d.ts +2 -0
  313. package/lib/component/transaction-line-side-panel/style/_layout.scss +47 -0
  314. package/lib/component/transaction-line-side-panel/style/_material-definition.scss +10 -0
  315. package/lib/component/transaction-line-side-panel/style/_theme.scss +7 -0
  316. package/lib/component/transaction-line-side-panel/style/material.scss +4 -0
  317. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +20 -0
  318. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.d.ts +2 -0
  319. package/lib/component/transaction-lines/style/_layout.scss +33 -0
  320. package/lib/component/transaction-lines/style/_material-definition.scss +3 -0
  321. package/lib/component/transaction-lines/style/_theme.scss +19 -0
  322. package/lib/component/transaction-lines/style/material.scss +7 -0
  323. package/lib/component/transaction-lines/transaction-lines.component.d.ts +32 -0
  324. package/lib/component/transaction-lines/transaction-lines.module.d.ts +2 -0
  325. package/lib/component/transaction-lines-grid/style/_layout.scss +37 -0
  326. package/lib/component/transaction-lines-grid/style/_material-definition.scss +19 -0
  327. package/lib/component/transaction-lines-grid/style/_theme.scss +15 -0
  328. package/lib/component/transaction-lines-grid/style/material.scss +5 -0
  329. package/lib/component/transaction-lines-grid/transaction-lines-grid.component.d.ts +17 -0
  330. package/lib/component/transaction-lines-grid/transaction-lines-grid.module.d.ts +2 -0
  331. package/lib/component/transaction-totals/style/_layout.scss +35 -0
  332. package/lib/component/transaction-totals/style/_material-definition.scss +15 -0
  333. package/lib/component/transaction-totals/style/_theme.scss +10 -0
  334. package/lib/component/transaction-totals/style/material.scss +4 -0
  335. package/lib/component/transaction-totals/transaction-totals.component.d.ts +9 -0
  336. package/lib/component/transaction-totals/transaction-totals.module.d.ts +2 -0
  337. package/{app → lib}/enum/content-view-mode.enum.d.ts +0 -0
  338. package/lib/enum/icon.enum.d.ts +22 -0
  339. package/{app → lib}/enum/language-code.enum.d.ts +0 -0
  340. package/{app → lib}/enum/order-discount-type.enum.d.ts +0 -0
  341. package/{app → lib}/enum/time-size.type.d.ts +0 -0
  342. package/{factory → lib/factory}/business-object-factory.d.ts +1 -1
  343. package/{factory → lib/factory}/decorators/boolean.decorator.d.ts +0 -0
  344. package/{factory → lib/factory}/decorators/complex-array.decorator.d.ts +0 -0
  345. package/{factory → lib/factory}/decorators/complex-field.decorator.d.ts +0 -0
  346. package/{factory → lib/factory}/decorators/date-field.decorator.d.ts +0 -0
  347. package/{factory → lib/factory}/decorators/string-number.decorator.d.ts +0 -0
  348. package/{app → lib}/model/business-object.d.ts +0 -0
  349. package/lib/model/delivery-type.d.ts +7 -0
  350. package/lib/model/icon-svg.d.ts +4 -0
  351. package/{app → lib}/model/standard-text.d.ts +0 -0
  352. package/{app → lib}/model/text-value-container.d.ts +0 -0
  353. package/{app → lib}/pipe/append.pipe.d.ts +0 -0
  354. package/{app → lib}/pipe/co-currency.pipe.d.ts +0 -0
  355. package/{app → lib}/pipe/date-duration.pipe.d.ts +0 -0
  356. package/{app → lib}/pipe/delivery-time.pipe.d.ts +0 -0
  357. package/{app → lib}/pipe/localize.pipe.d.ts +0 -0
  358. package/lib/pipe/pipe.module.d.ts +2 -0
  359. package/lib/pipe/safe-html.pipe.d.ts +7 -0
  360. package/{app/pipe/safe-style-pipe.d.ts → lib/pipe/safe-style.pipe.d.ts} +0 -0
  361. package/lib/service/dialog.service.d.ts +11 -0
  362. package/{app → lib}/service/dictionary.service.d.ts +0 -0
  363. package/lib/service/icon-cache.service.d.ts +18 -0
  364. package/{app → lib}/service/ione-connector-adapter.service.d.ts +15 -8
  365. package/lib/service/options.service.d.ts +12 -0
  366. package/lib/service/pending-reason.service.d.ts +31 -0
  367. package/{app → lib}/service/transaction.service.d.ts +16 -47
  368. package/lib/style/_mixin.scss +9 -0
  369. package/lib/style/_variables.scss +101 -0
  370. package/{utils → lib/utils}/array-utils.d.ts +0 -0
  371. package/{utils → lib/utils}/is-nill.function.d.ts +0 -0
  372. package/{app → lib}/utils/string-utils.d.ts +0 -0
  373. package/package.json +27 -34
  374. package/public_api.d.ts +27 -6
  375. package/app/component/checkout/checkout/checkout.component.d.ts +0 -32
  376. package/app/component/checkout/checkout-overview/checkout-overview.component.d.ts +0 -42
  377. package/app/component/checkout/checkout-overview-block/checkout-overview-block.component.d.ts +0 -12
  378. package/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.d.ts +0 -22
  379. package/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.d.ts +0 -12
  380. package/app/component/checkout/checkout-transaction/checkout-transaction.component.d.ts +0 -13
  381. package/app/component/checkout/ione-checkout.component.d.ts +0 -39
  382. package/app/component/checkout/ione-checkout.module.d.ts +0 -2
  383. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +0 -13
  384. package/app/component/core/characteristic-answer/characteristic-answer.component.d.ts +0 -22
  385. package/app/component/core/directive/template-wrapper.directive.d.ts +0 -13
  386. package/app/component/core/image-display/image-display.component.d.ts +0 -13
  387. package/app/component/core/no-image-display/no-image-display.component.d.ts +0 -5
  388. package/app/component/service-order/ione-service-order-module.d.ts +0 -2
  389. package/app/component/service-order/ione-service-order.component.d.ts +0 -25
  390. package/app/component/service-order/service-order.component.d.ts +0 -52
  391. package/app/component/service-order/summary/transaction-article-summary.component.d.ts +0 -17
  392. package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +0 -20
  393. package/app/component/service-order/summary/transaction-order-summary.component.d.ts +0 -16
  394. package/app/component/service-order/summary/transaction-payment-info.component.d.ts +0 -14
  395. package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +0 -7
  396. package/app/component/service-order/summary/transaction-product-summary.component.d.ts +0 -15
  397. package/app/component/service-order/summary/transaction-service-status.component.d.ts +0 -15
  398. package/app/component/service-order/summary/transaction-service-summary.component.d.ts +0 -15
  399. package/app/component/service-order/summary/transaction-summary-block.component.d.ts +0 -16
  400. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +0 -33
  401. package/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +0 -23
  402. package/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.d.ts +0 -19
  403. package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +0 -15
  404. package/app/component/service-order/transaction-manager/transaction-manager.component.d.ts +0 -64
  405. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +0 -16
  406. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +0 -25
  407. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +0 -6
  408. package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +0 -22
  409. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +0 -29
  410. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +0 -11
  411. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +0 -26
  412. package/app/component/service-order/warehouse/warehouse.component.d.ts +0 -35
  413. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +0 -71
  414. package/app/component/shopping-cart/ione-shopping-cart.module.d.ts +0 -2
  415. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +0 -61
  416. package/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.d.ts +0 -34
  417. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +0 -91
  418. package/app/enum/checkout-steps.enum.d.ts +0 -7
  419. package/app/enum/direction.enum.d.ts +0 -6
  420. package/app/enum/position-grid-row.enum.d.ts +0 -4
  421. package/app/model/transaction-add-text-line-request.d.ts +0 -9
  422. package/app/service/options.service.d.ts +0 -14
  423. package/app/service/transaction-event.service.d.ts +0 -53
  424. package/css/styles.css +0 -38
  425. package/esm2015/app/component/checkout/checkout/checkout.component.js +0 -149
  426. package/esm2015/app/component/checkout/checkout-login/checkout-login.component.js +0 -106
  427. package/esm2015/app/component/checkout/checkout-overview/checkout-overview.component.js +0 -185
  428. package/esm2015/app/component/checkout/checkout-overview-block/checkout-overview-block.component.js +0 -47
  429. package/esm2015/app/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +0 -47
  430. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +0 -420
  431. package/esm2015/app/component/checkout/checkout-overview-relation-address/checkout-overview-relation-address.component.js +0 -115
  432. package/esm2015/app/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +0 -396
  433. package/esm2015/app/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +0 -33
  434. package/esm2015/app/component/checkout/checkout-relation-suggestions-list-item/checkout-relation-suggestions-list-item.component.js +0 -53
  435. package/esm2015/app/component/checkout/checkout-transaction/checkout-transaction.component.js +0 -53
  436. package/esm2015/app/component/checkout/ione-checkout.component.js +0 -135
  437. package/esm2015/app/component/checkout/ione-checkout.module.js +0 -76
  438. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +0 -39
  439. package/esm2015/app/component/core/base/transaction-base.component.js +0 -146
  440. package/esm2015/app/component/core/characteristic-answer/characteristic-answer.component.js +0 -100
  441. package/esm2015/app/component/core/core.module.js +0 -43
  442. package/esm2015/app/component/core/directive/template-wrapper.directive.js +0 -69
  443. package/esm2015/app/component/core/icon/icon.component.js +0 -32
  444. package/esm2015/app/component/core/image-display/image-display.component.js +0 -41
  445. package/esm2015/app/component/core/no-image-display/no-image-display.component.js +0 -26
  446. package/esm2015/app/component/core/stock-status-indicator/stock-status-indicator.component.js +0 -24
  447. package/esm2015/app/component/service-order/ione-service-order-module.js +0 -114
  448. package/esm2015/app/component/service-order/ione-service-order.component.js +0 -96
  449. package/esm2015/app/component/service-order/service-order.component.js +0 -199
  450. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +0 -55
  451. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +0 -59
  452. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +0 -43
  453. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +0 -35
  454. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +0 -38
  455. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +0 -41
  456. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +0 -37
  457. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +0 -38
  458. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +0 -53
  459. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +0 -140
  460. package/esm2015/app/component/service-order/transaction-article-text-overview/transaction-article-text-overview.component.js +0 -105
  461. package/esm2015/app/component/service-order/transaction-edit-article-text/transaction-edit-article-text.component.js +0 -73
  462. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +0 -83
  463. package/esm2015/app/component/service-order/transaction-manager/transaction-manager.component.js +0 -314
  464. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +0 -76
  465. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +0 -71
  466. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +0 -36
  467. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +0 -116
  468. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +0 -225
  469. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +0 -172
  470. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +0 -120
  471. package/esm2015/app/component/service-order/warehouse/warehouse.component.js +0 -133
  472. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +0 -185
  473. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +0 -62
  474. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +0 -294
  475. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +0 -172
  476. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +0 -451
  477. package/esm2015/app/enum/checkout-steps.enum.js +0 -10
  478. package/esm2015/app/enum/content-view-mode.enum.js +0 -10
  479. package/esm2015/app/enum/direction.enum.js +0 -9
  480. package/esm2015/app/enum/language-code.enum.js +0 -8
  481. package/esm2015/app/enum/order-discount-type.enum.js +0 -7
  482. package/esm2015/app/enum/position-grid-row.enum.js +0 -6
  483. package/esm2015/app/enum/time-size.type.js +0 -10
  484. package/esm2015/app/model/business-object.js +0 -81
  485. package/esm2015/app/model/standard-text.js +0 -3
  486. package/esm2015/app/model/text-value-container.js +0 -3
  487. package/esm2015/app/model/transaction-add-text-line-request.js +0 -11
  488. package/esm2015/app/pipe/append.pipe.js +0 -17
  489. package/esm2015/app/pipe/co-currency.pipe.js +0 -47
  490. package/esm2015/app/pipe/date-duration.pipe.js +0 -57
  491. package/esm2015/app/pipe/delivery-time.pipe.js +0 -33
  492. package/esm2015/app/pipe/localize.pipe.js +0 -28
  493. package/esm2015/app/pipe/safe-style-pipe.js +0 -19
  494. package/esm2015/app/service/dictionary.service.js +0 -76
  495. package/esm2015/app/service/ione-connector-adapter.service.js +0 -553
  496. package/esm2015/app/service/options.service.js +0 -92
  497. package/esm2015/app/service/transaction-event.service.js +0 -26
  498. package/esm2015/app/service/transaction.service.js +0 -572
  499. package/esm2015/app/utils/string-utils.js +0 -64
  500. package/esm2015/assets/dictionary/text.properties.js +0 -332
  501. package/esm2015/factory/business-object-factory.js +0 -120
  502. package/esm2015/factory/decorators/boolean.decorator.js +0 -102
  503. package/esm2015/factory/decorators/complex-array.decorator.js +0 -55
  504. package/esm2015/factory/decorators/complex-field.decorator.js +0 -57
  505. package/esm2015/factory/decorators/date-field.decorator.js +0 -36
  506. package/esm2015/factory/decorators/string-number.decorator.js +0 -43
  507. package/esm2015/utils/array-utils.js +0 -183
  508. package/esm2015/utils/is-nill.function.js +0 -5
@@ -1,420 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild } from "@angular/core";
3
- import { FormComponent } from "@colijnit/corecomponents_v12";
4
- import { Address } from "@colijnit/transactionapi/build/model/address.bo";
5
- import { AddressType } from "@colijnit/transactionapi/build/enum/address-type.enum";
6
- import { TransactionService } from "../../../service/transaction.service";
7
- import { DictionaryService } from "../../../service/dictionary.service";
8
- export class CheckoutOverviewDeliveryEditComponent {
9
- constructor(cdr, _dictionaryService, service) {
10
- this.cdr = cdr;
11
- this._dictionaryService = _dictionaryService;
12
- this.service = service;
13
- this.deliveryAddressType = AddressType.DeliveryAddress;
14
- this.billingAddressType = AddressType.BillingAddress;
15
- this.validSubmit = new EventEmitter();
16
- this.invalidSubmit = new EventEmitter();
17
- this.deliveryOptionList = [];
18
- this.deliveryOptions = [];
19
- this.deliveryOptionFields = { text: "description", value: "code" };
20
- this.deliveryMethods = [];
21
- this.deliveryMethodFields = { text: "description", value: "code" };
22
- this.addLocationPopup = false;
23
- this.changeLocationPopup = false;
24
- this.preferredDateOptions = [
25
- { text: "NOT_AFTER", value: ">" },
26
- { text: "NOT_BEFORE", value: "<" },
27
- { text: "ON_DATE", value: "=" },
28
- ];
29
- this.preferredDate = new Date();
30
- this.marketing = [];
31
- this.marketingFields = { text: "description", value: "code" };
32
- this.addresses = [];
33
- this.columns = [];
34
- // TODO: Deze velden nog opnemen in Transaction!!
35
- this.deliveryDateFinal = false;
36
- this.assemblyDate = new Date();
37
- this.totalAssemblyTime = "";
38
- this.dropshipment = false;
39
- this.columns.push({ field: "streetName", headerText: this._dictionaryService.get("STREET") }, { field: "houseNo", headerText: this._dictionaryService.get("HOUSE_NO") }, { field: "houseNoAddition", headerText: this._dictionaryService.get("HOUSE_NO_ADDITION") }, { field: "postalCode", headerText: this._dictionaryService.get("POSTAL_CODE"), allowFiltering: false }, { field: "city", headerText: this._dictionaryService.get("CITY") });
40
- }
41
- get billingAddress() {
42
- if (this.transaction.invoiceAddress === undefined) {
43
- if (this.relation &&
44
- this.relation.firstBillingAddress &&
45
- this.relation.firstBillingAddress.isNotEmptyAddress()) {
46
- this.transaction.invoiceAddress = this.relation.firstBillingAddress;
47
- this._setCountryNameToAddress(this.transaction.invoiceAddress).then();
48
- }
49
- }
50
- return this.transaction.invoiceAddress;
51
- }
52
- get deliveryAddress() {
53
- if (this.transaction.transactionAddress === undefined) {
54
- if (this.relation &&
55
- this.relation.firstDeliveryAddress &&
56
- this.relation.firstDeliveryAddress.isNotEmptyAddress()) {
57
- this.transaction.transactionAddress = this.relation.firstDeliveryAddress;
58
- this._setCountryNameToAddress(this.transaction.transactionAddress).then();
59
- }
60
- }
61
- return this.transaction.transactionAddress;
62
- }
63
- get deliveryDate() {
64
- if (this.transaction.deliveryDate === undefined) {
65
- this.transaction.deliveryDate = new Date();
66
- }
67
- return this.transaction.deliveryDate;
68
- }
69
- set deliveryDate(value) {
70
- this.transaction.deliveryDate = value;
71
- }
72
- get preferredDeliveryDate() {
73
- if (this.transaction.preferredDeliveryDate === undefined) {
74
- this.transaction.preferredDeliveryDate = new Date();
75
- }
76
- return this.transaction.preferredDeliveryDate;
77
- }
78
- set preferredDeliveryDate(value) {
79
- this.transaction.preferredDeliveryDate = value;
80
- }
81
- newRelationAddress() {
82
- if (this.relation) {
83
- const address = new Address();
84
- address.addressType = AddressType.DeliveryAddress;
85
- address.startDate = new Date();
86
- address.sequence = this.relation.getNextAddressSequence();
87
- this.relation.addresses.push(address);
88
- return address;
89
- }
90
- }
91
- ngOnInit() {
92
- return __awaiter(this, void 0, void 0, function* () {
93
- if (this.transaction) {
94
- if (this.transaction.transactionAddress === undefined && !this.deliveryAddress) {
95
- this.transaction.transactionAddress = this.deliveryAddress;
96
- }
97
- if (this.transaction.invoiceAddress === undefined && !this.billingAddress) {
98
- this.transaction.invoiceAddress = this.billingAddress;
99
- }
100
- }
101
- this.deliveryCosts = this.calculateDeliveryCosts();
102
- this.assemblyCosts = this.calculateAssemblyCosts();
103
- this.deliveryMethods = yield this.service.getDeliveryMethods();
104
- this.deliveryOptionList = yield this.service.getDeliveryOptions();
105
- this.marketing = yield this.service.getMarketingCodes();
106
- yield this.onDeliveryMethodChange(this.transaction.deliveryMethod);
107
- });
108
- }
109
- ngAfterViewInit() {
110
- this.cdr.detectChanges();
111
- }
112
- submit() {
113
- return this.deliveryForm.submit();
114
- }
115
- onDeliveryMethodChange(deliveryMethodId) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- const deliveryMethod = this.selectDeliveryMethodById(deliveryMethodId);
118
- this.transaction.deliveryMethod = deliveryMethodId;
119
- if (deliveryMethod.length) {
120
- this.deliveryOptions = this.selectDeliveryOptionsByDeliveryMethod(deliveryMethod[0]);
121
- this.transaction.deliveryOptions = [];
122
- if (this.deliveryOptions.length) {
123
- this.transaction.deliveryOptions.push(this.deliveryOptions[0].code);
124
- }
125
- }
126
- });
127
- }
128
- selectDeliveryOptionsByDeliveryMethod(deliveryMethod) {
129
- return this.deliveryOptionList.filter(deliveryOption => deliveryMethod.deliveryOptions.indexOf(deliveryOption.code) !== -1);
130
- }
131
- selectDeliveryMethodById(deliveryMethodId) {
132
- return this.deliveryMethods.filter(delivery => delivery.code === deliveryMethodId);
133
- }
134
- changeAddress(addressType) {
135
- this._addressType = addressType;
136
- this.addresses = this.relation.addresses;
137
- this.changeLocationPopup = true;
138
- }
139
- saveNewLocation() {
140
- this.locationForm.submit();
141
- }
142
- saveLocation() {
143
- this.addLocation();
144
- this.changeLocationPopup = false;
145
- }
146
- addLocation() {
147
- this.updateAddress(this.newAddress).then();
148
- this.relation.addresses.push(this.newAddress);
149
- this.service.saveRelation().then();
150
- this.addLocationPopup = false;
151
- }
152
- updateAddress(address) {
153
- return __awaiter(this, void 0, void 0, function* () {
154
- if (this._addressType === AddressType.DeliveryAddress) {
155
- this.transaction.transactionAddress = address;
156
- }
157
- else {
158
- this.transaction.invoiceAddress = address;
159
- }
160
- yield this._setCountryNameToAddress(address);
161
- });
162
- }
163
- isDeliveryOptionChecked(deliveryOptionItem) {
164
- return (this.transaction.deliveryOptions.indexOf(deliveryOptionItem.code, 0) === 0);
165
- }
166
- changePreferredDeliveryDate2(preferredDateOption) {
167
- this.transaction.preferredDeliveryDate2 = preferredDateOption;
168
- }
169
- onMarketingCodeChange(marketingCode) {
170
- this.transaction.marketingCode = marketingCode;
171
- }
172
- onChangeLocationCancelClick() {
173
- this.changeLocationPopup = false;
174
- }
175
- onAddLocationOkClick() {
176
- this._addAddress(this._addressType);
177
- this.addLocationPopup = true;
178
- }
179
- handleAddressSelected(rows) {
180
- this.selectedAddress = (rows.find(x => x !== undefined));
181
- this.updateAddress(this.selectedAddress);
182
- this.changeLocationPopup = false;
183
- }
184
- calculateDeliveryCosts() {
185
- return 0;
186
- }
187
- calculateAssemblyCosts() {
188
- return 0;
189
- }
190
- _addAddress(addressType) {
191
- this.newAddress = new Address();
192
- this.newAddress.addressType = addressType;
193
- this.newAddress.startDate = new Date();
194
- this.newAddress.sequence = this.relation.getNextAddressSequence();
195
- }
196
- _setCountryNameToAddress(address) {
197
- return __awaiter(this, void 0, void 0, function* () {
198
- if (address.countryId && !address.countryName) {
199
- const country = yield this.service.getCountry(address.countryId);
200
- address.countryName = country.description;
201
- }
202
- });
203
- }
204
- }
205
- CheckoutOverviewDeliveryEditComponent.decorators = [
206
- { type: Component, args: [{
207
- selector: "checkout-overview-delivery-edit",
208
- template: `
209
- <co-form #deliveryForm (validSubmit)="validSubmit.emit()" (invalidSubmit)="invalidSubmit.emit()">
210
- <div>
211
- <div>
212
- <label [textContent]="'DELIVERY' | localize"
213
- class="checkout-label-h2"
214
- ></label>
215
- </div>
216
- </div>
217
-
218
- <div class="default-flex-row">
219
- <div class="default-flex-column">
220
- <label [textContent]="'DELIVERY_ADDRESS' | localize"
221
- class="checkout-label-h3"
222
- ></label>
223
- <checkout-overview-delivery-address [address]="deliveryAddress"></checkout-overview-delivery-address>
224
- <div class="container-button-change-address">
225
- <co-button [label]="'DELIVERY_ADDRESS_CHANGE' | localize" (click)="changeAddress(deliveryAddressType)"></co-button>
226
- </div>
227
- </div>
228
-
229
- <div class="default-flex-column">
230
- <label [textContent]="'INVOICE_ADDRESS' | localize"
231
- class="checkout-label-h3"
232
- ></label>
233
- <checkout-overview-delivery-address [address]="billingAddress"></checkout-overview-delivery-address>
234
- <div class="container-button-change-address">
235
- <co-button [label]="'INVOICE_ADDRESS_CHANGE' | localize" (click)="changeAddress(billingAddressType)"></co-button>
236
- </div>
237
- </div>
238
- </div>
239
-
240
- <div>
241
- <label [textContent]="'DELIVERY_MOMENT' | localize"
242
- class="checkout-label-h3"
243
- ></label>
244
- </div>
245
-
246
- <div class="default-flex-row">
247
- <div class="default-flex-column">
248
- <co-input-date [placeholder]="'DELIVERY_DATE' | localize " [(model)]="deliveryDate"></co-input-date>
249
- <co-input-checkbox [label]="'PART_DELIVERIES' | localize" [(model)]="transaction.allowPartialDelivery"></co-input-checkbox>
250
- </div>
251
- <div class="default-flex-column">
252
- <co-input-date [placeholder]="'PREFERRED_DATE' | localize " [(model)]="preferredDate"></co-input-date>
253
- <ng-container *ngFor="let preferredDateOption of preferredDateOptions">
254
- <co-input-radio-button [name]="'preferedDeliveryDate2'"
255
- [label]="preferredDateOption.text | localize"
256
- [value]="preferredDateOption.value"
257
- [checked]="transaction.preferredDeliveryDate2 === preferredDateOption.value"
258
- (modelChange)="changePreferredDeliveryDate2(preferredDateOption.value)"
259
- ></co-input-radio-button>
260
- </ng-container>
261
- </div>
262
- </div>
263
-
264
- <div class="default-flex-row">
265
- <div class="default-flex-column">
266
- <co-input-combo-box [(model)]="transaction.deliveryMethod"
267
- [source]="deliveryMethods"
268
- [fields]="deliveryMethodFields"
269
- [placeholder]="'DELIVERY_METHOD2' | localize"
270
- [required]="true"
271
- (modelChange)="onDeliveryMethodChange($event)"
272
- ></co-input-combo-box>
273
- </div>
274
- </div>
275
-
276
- <div>
277
- <label [textContent]="'DELIVERY_OPTIONS' | localize"
278
- class="checkout-label-h3"
279
- ></label>
280
- </div>
281
-
282
- <div class="default-flex-row">
283
- <div class="default-flex-column">
284
- <co-multi-select-list
285
- [placeHolder]="'DELIVERY_OPTIONS' | localize"
286
- [collection]="deliveryOptions"
287
- [fields]="deliveryOptionFields"
288
- [(model)]="transaction.deliveryOptions"
289
- [showCheckbox]="true"
290
- [required]="true"
291
- ></co-multi-select-list>
292
- </div>
293
- </div>
294
-
295
- <div class="">
296
- <label [textContent]="'REMARKS' | localize"
297
- class="checkout-label-h3"
298
- ></label>
299
- </div>
300
-
301
- <div class="default-flex-row">
302
- <div class="default-flex-column">
303
- <co-input-text [(model)]="transaction.remark" [placeholder]="'REMARKS' | localize"></co-input-text>
304
- </div>
305
- </div>
306
-
307
- <div class="default-flex-column">
308
- <co-input-checkbox [label]="'DELIVERY_DATE_FINAL' | localize" [(model)]="deliveryDateFinal"></co-input-checkbox>
309
- </div>
310
- <div class="default-flex-column">
311
- <co-input-date [placeholder]="'ASSEMBLY_DATE' | localize " [(model)]="assemblyDate"></co-input-date>
312
- </div>
313
- <div class="default-flex-column">
314
- <co-input-text [placeholder]="'TOTAL_ASSEMBLY_TIME' | localize " [(model)]="totalAssemblyTime"></co-input-text>
315
- </div>
316
- <div class="default-flex-column">
317
- <co-input-checkbox [label]="'DROPSHIPMENT' | localize" [(model)]="dropshipment"></co-input-checkbox>
318
- </div>
319
-
320
- <div class="default-flex-row">
321
- <div>
322
- <label [textContent]="'DELIVERY_COSTS' | localize"
323
- class="checkout-label-h3"
324
- ></label>
325
- <div>{{ deliveryCosts }}</div>
326
- </div>
327
- <div>
328
- <label [textContent]="'ASSEMBLY_COSTS' | localize"
329
- class="checkout-label-h3"
330
- ></label>
331
- <div>{{ assemblyCosts }}</div>
332
- </div>
333
- </div>
334
-
335
- <div>
336
- <label [textContent]="'MARKETING' | localize"
337
- class="checkout-label-h3"
338
- ></label>
339
- </div>
340
-
341
- <div class="default-flex-row">
342
- <div class="default-flex-column">
343
- <co-input-combo-box [(model)]="transaction.marketingCode"
344
- [source]="marketing"
345
- [fields]="marketingFields"
346
- [placeholder]="'MARKETING' | localize"
347
- [required]="true"
348
- (modelChange)="onMarketingCodeChange($event)"
349
- ></co-input-combo-box>
350
- </div>
351
- </div>
352
-
353
- <div class="default-flex-row">
354
- <div class="default-flex-column">
355
- <co-input-text [(model)]="transaction.relationReference" [placeholder]="'REFERENCE_RELATION' | localize"></co-input-text>
356
- </div>
357
- <div class="default-flex-column">
358
- <co-input-text [(model)]="transaction.ownReference" [placeholder]="'OWN_REFERENCE' | localize"></co-input-text>
359
- </div>
360
- </div>
361
-
362
- </co-form>
363
-
364
- <co-dialog [visible]="addLocationPopup">
365
- <ng-container header>{{ 'NEW_LOCATION' | localize }}</ng-container>
366
- <co-form #locationForm (validSubmit)="saveLocation()">
367
- <checkout-overview-relation-address
368
- label="ADDRESS" [address]="newAddress"
369
- ></checkout-overview-relation-address>
370
- <div fxLayout="row" fxLayoutGap="10px" fxLayoutAlign="end">
371
- <co-button [label]="'CANCEL' | localize" (click)="addLocationPopup = false;"></co-button>
372
- <co-button [label]="'SAVE' | localize" (click)="saveNewLocation()"></co-button>
373
- </div>
374
- </co-form>
375
- </co-dialog>
376
-
377
- <co-dialog #changeLocationDialog
378
- [visible]="changeLocationPopup"
379
- (closeClick)="onChangeLocationCancelClick()"
380
- (overlayClick)="onChangeLocationCancelClick()"
381
- >
382
- <ng-container header>{{ 'ADDRESS' | localize }}</ng-container>
383
- <co-form>
384
- <div class="form-content">
385
- <div>
386
- <co-grid #addressGrid
387
- [data]="addresses"
388
- [columns]="columns"
389
- [pagingEnabled]="true"
390
- [maxNumberOfRows]="20"
391
- (rowsSelected)="handleAddressSelected($event)"
392
- ></co-grid>
393
- </div>
394
- </div>
395
- <div class="flex-center" fxLayoutGap="10px">
396
- <co-button [label]="'ADDRESS_ADD' | localize" (click)="onAddLocationOkClick()"></co-button>
397
- <co-button [label]="'CANCEL' | localize" (click)="onChangeLocationCancelClick()"></co-button>
398
- </div>
399
- </co-form>
400
- </co-dialog>
401
- `,
402
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.overview-header .overview-step-nr{border-radius:50%}.flex-center,.step-content-delivery,.step-content-customer{display:flex}.flex-center,.step-content-delivery{flex-direction:row}.step-content-customer{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.step-content-customer,.step-content-delivery{padding-bottom:20px}.step-content-customer,.step-content-delivery{padding-top:20px}.step-content-customer,.step-content-delivery{padding-left:20px}.step-content-customer,.step-content-delivery{padding-right:20px}.overview-body{padding-left:30px}.overview-body{padding-right:30px}.overview-body{padding-top:30px}.overview-body{padding-bottom:30px}ul.cart-buttons>li{padding-left:11px}ul.cart-buttons>li{padding-right:11px}ul.cart-buttons{margin-top:20px}ul.cart-buttons{margin-bottom:20px}.overview-header .overview-step-nr{color:#f7fafa}.overview-header .overview-step-nr{background-color:#2b60a7}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}.checkout-viewport{max-width:60%;margin-left:20%}.mat-label{font-family:Montserrat,Arial,Helvetica,sans-serif}.default-flex-row{flex-direction:row;box-sizing:border-box;grid-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:flex}.default-flex-column{display:flex;flex-direction:column;width:200px}.privacy-row{display:flex;flex-direction:row;margin-bottom:20px}.privacy-column-left{display:flex;flex-direction:column;min-width:150px;max-width:150px;overflow-wrap:break-word}.privacy-column-right{display:flex;flex-direction:row;margin-left:50px}.checkout-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.checkout-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}co-input-radio-button{margin-left:16px}.checkout-overview h2{font-size:18px;font-weight:bold}.checkout-overview h3{font-size:15px}mat-horizontal-stepper{position:sticky;top:0;z-index:30}::ng-deep .mat-horizontal-content-container{display:none}.step-content-customer{background-color:#fff}.step-content-delivery{background-color:#fff}::ng-deep .step-wrapper{width:auto;background:rgba(255,255,255,.25)}::ng-deep .step-wrapper button-colijn{margin-top:20px}::ng-deep .step-wrapper.payment{align-items:center!important;justify-content:left!important}.overview-header{background:rgba(255,255,255,.25);border-top-left-radius:5px;border-top-right-radius:5px}.overview-header .overview-step-nr{width:20px;height:20px;text-align:center;font-weight:bold}.overview-body{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.overview-body .contact-option-value{align-self:center}.overview-header-label{font-weight:bold}.overview-label{font-weight:bold}ul.cart-buttons{display:flex;justify-content:space-between;flex-wrap:nowrap;list-style-type:none}ul.cart-buttons>li{display:flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:40px;background-color:#f7fafa;cursor:pointer;font-size:15px;color:#2b60a7;border:1px solid #DCE4EA;border-radius:5px;opacity:1}ul.cart-buttons>li a{white-space:nowrap}\n", ".container-button-change-address{margin-top:5px}\n"]
403
- },] }
404
- ];
405
- CheckoutOverviewDeliveryEditComponent.ctorParameters = () => [
406
- { type: ChangeDetectorRef },
407
- { type: DictionaryService },
408
- { type: TransactionService }
409
- ];
410
- CheckoutOverviewDeliveryEditComponent.propDecorators = {
411
- deliveryForm: [{ type: ViewChild, args: ["deliveryForm", { read: FormComponent },] }],
412
- locationForm: [{ type: ViewChild, args: ["locationForm", { read: FormComponent },] }],
413
- changeLocationDialog: [{ type: ViewChild, args: ["changeLocationDialog",] }],
414
- addressGrid: [{ type: ViewChild, args: ["addressGrid",] }],
415
- relation: [{ type: Input }],
416
- transaction: [{ type: Input }],
417
- validSubmit: [{ type: Output }],
418
- invalidSubmit: [{ type: Output }]
419
- };
420
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1lZGl0L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQWdCLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQVUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFxQyxhQUFhLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRixPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFHeEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHVEQUF1RCxDQUFDO0FBR2xGLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBR3hFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBNE10RSxNQUFNLE9BQU8scUNBQXFDO0lBNEloRCxZQUNZLEdBQXNCLEVBQ3RCLGtCQUFxQyxFQUN0QyxPQUEyQjtRQUYxQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQW9CO1FBOUl0Qix3QkFBbUIsR0FBZ0IsV0FBVyxDQUFDLGVBQWUsQ0FBQztRQUMvRCx1QkFBa0IsR0FBZ0IsV0FBVyxDQUFDLGNBQWMsQ0FBQztRQXFCdEUsZ0JBQVcsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUczRCxrQkFBYSxHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTdELHVCQUFrQixHQUFxQixFQUFFLENBQUM7UUFDMUMs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LEVBQUUsQ0FBQztRQUN2QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDcEUsQ0FBQztJQUVhLHdCQUF3QixDQUFDLE9BQWdCOztZQUNyRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFO2dCQUM3QyxNQUFNLE9BQU8sR0FBWSxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDMUUsT0FBTyxDQUFDLFdBQVcsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDO2FBQzNDO1FBQ0gsQ0FBQztLQUFBOzs7WUF6Y0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQ0FBaUM7Z0JBQzNDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlNVDs7YUFLRjs7O1lBdk5zQixpQkFBaUI7WUFZaEMsaUJBQWlCO1lBSGpCLGtCQUFrQjs7OzJCQW1OdkIsU0FBUyxTQUFDLGNBQWMsRUFBRSxFQUFDLElBQUksRUFBRSxhQUFhLEVBQUM7MkJBRy9DLFNBQVMsU0FBQyxjQUFjLEVBQUUsRUFBQyxJQUFJLEVBQUUsYUFBYSxFQUFDO21DQUcvQyxTQUFTLFNBQUMsc0JBQXNCOzBCQUdoQyxTQUFTLFNBQUMsYUFBYTt1QkFHdkIsS0FBSzswQkFHTCxLQUFLOzBCQUdMLE1BQU07NEJBR04sTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtDb0RpYWxvZ0NvbXBvbmVudCwgQ29HcmlkQ29tcG9uZW50LCBGb3JtQ29tcG9uZW50fSBmcm9tIFwiQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMlwiO1xuaW1wb3J0IHtSZWxhdGlvbkFueVR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvcmVsYXRpb24tYW55LXR5cGVcIjtcbmltcG9ydCB7QWRkcmVzc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvXCI7XG5pbXBvcnQge0dlbmRlclR5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9nZW5kZXItdHlwZS5lbnVtXCI7XG5pbXBvcnQge01hcmtldGluZ30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9tYXJrZXRpbmcuYm9cIjtcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9hZGRyZXNzLXR5cGUuZW51bVwiO1xuaW1wb3J0IHtEZWxpdmVyeU1ldGhvZH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9kZWxpdmVyeS1tZXRob2QuYm9cIjtcbmltcG9ydCB7RGVsaXZlcnlPcHRpb259IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZGVsaXZlcnktb3B0aW9uLmJvXCI7XG5pbXBvcnQge1RyYW5zYWN0aW9uU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvdHJhbnNhY3Rpb24uc2VydmljZVwiO1xuaW1wb3J0IHtUZXh0VmFsdWVDb250YWluZXJ9IGZyb20gXCIuLi8uLi8uLi9tb2RlbC90ZXh0LXZhbHVlLWNvbnRhaW5lclwiO1xuaW1wb3J0IHtUcmFuc2FjdGlvbkluZm99IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvdHJhbnNhY3Rpb24taW5mby5ib1wiO1xuaW1wb3J0IHtEaWN0aW9uYXJ5U2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvZGljdGlvbmFyeS5zZXJ2aWNlXCI7XG5pbXBvcnQge0NvdW50cnl9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvY291bnRyeS5ib1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwiY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdFwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxjby1mb3JtICNkZWxpdmVyeUZvcm0gKHZhbGlkU3VibWl0KT1cInZhbGlkU3VibWl0LmVtaXQoKVwiIChpbnZhbGlkU3VibWl0KT1cImludmFsaWRTdWJtaXQuZW1pdCgpXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ0RFTElWRVJZJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oMlwiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9BRERSRVNTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWgzXCJcbiAgICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3MgW2FkZHJlc3NdPVwiZGVsaXZlcnlBZGRyZXNzXCI+PC9jaGVja291dC1vdmVydmlldy1kZWxpdmVyeS1hZGRyZXNzPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b24tY2hhbmdlLWFkZHJlc3NcIj5cbiAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0RFTElWRVJZX0FERFJFU1NfQ0hBTkdFJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cImNoYW5nZUFkZHJlc3MoZGVsaXZlcnlBZGRyZXNzVHlwZSlcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgPGxhYmVsIFt0ZXh0Q29udGVudF09XCInSU5WT0lDRV9BRERSRVNTJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWgzXCJcbiAgICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgICAgPGNoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3MgW2FkZHJlc3NdPVwiYmlsbGluZ0FkZHJlc3NcIj48L2NoZWNrb3V0LW92ZXJ2aWV3LWRlbGl2ZXJ5LWFkZHJlc3M+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWJ1dHRvbi1jaGFuZ2UtYWRkcmVzc1wiPlxuICAgICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInSU5WT0lDRV9BRERSRVNTX0NIQU5HRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJjaGFuZ2VBZGRyZXNzKGJpbGxpbmdBZGRyZXNzVHlwZSlcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9NT01FTlQnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgPGNvLWlucHV0LWRhdGUgW3BsYWNlaG9sZGVyXT1cIidERUxJVkVSWV9EQVRFJyB8IGxvY2FsaXplIFwiIFsobW9kZWwpXT1cImRlbGl2ZXJ5RGF0ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW2xhYmVsXT1cIidQQVJUX0RFTElWRVJJRVMnIHwgbG9jYWxpemVcIiBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5hbGxvd1BhcnRpYWxEZWxpdmVyeVwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgIDxjby1pbnB1dC1kYXRlIFtwbGFjZWhvbGRlcl09XCInUFJFRkVSUkVEX0RBVEUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwicHJlZmVycmVkRGF0ZVwiPjwvY28taW5wdXQtZGF0ZT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBwcmVmZXJyZWREYXRlT3B0aW9uIG9mIHByZWZlcnJlZERhdGVPcHRpb25zXCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtcmFkaW8tYnV0dG9uIFtuYW1lXT1cIidwcmVmZXJlZERlbGl2ZXJ5RGF0ZTInXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cInByZWZlcnJlZERhdGVPcHRpb24udGV4dCB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInByZWZlcnJlZERhdGVPcHRpb24udmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ0cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUyID09PSBwcmVmZXJyZWREYXRlT3B0aW9uLnZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZVByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIocHJlZmVycmVkRGF0ZU9wdGlvbi52YWx1ZSlcIlxuICAgICAgICAgICAgPjwvY28taW5wdXQtcmFkaW8tYnV0dG9uPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgIDxjby1pbnB1dC1jb21iby1ib3ggWyhtb2RlbCldPVwidHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwiZGVsaXZlcnlNZXRob2RzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmllbGRzXT1cImRlbGl2ZXJ5TWV0aG9kRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0RFTElWRVJZX01FVEhPRDInIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWxDaGFuZ2UpPVwib25EZWxpdmVyeU1ldGhvZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID48L2NvLWlucHV0LWNvbWJvLWJveD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9PUFRJT05TJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgICAgPjwvbGFiZWw+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICA8Y28tbXVsdGktc2VsZWN0LWxpc3RcbiAgICAgICAgICAgIFtwbGFjZUhvbGRlcl09XCInREVMSVZFUllfT1BUSU9OUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICBbY29sbGVjdGlvbl09XCJkZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgW2ZpZWxkc109XCJkZWxpdmVyeU9wdGlvbkZpZWxkc1wiXG4gICAgICAgICAgICBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnNcIlxuICAgICAgICAgICAgW3Nob3dDaGVja2JveF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICA+PC9jby1tdWx0aS1zZWxlY3QtbGlzdD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwiJ1JFTUFSS1MnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cInRyYW5zYWN0aW9uLnJlbWFya1wiIFtwbGFjZWhvbGRlcl09XCInUkVNQVJLUycgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtY2hlY2tib3ggW2xhYmVsXT1cIidERUxJVkVSWV9EQVRFX0ZJTkFMJyB8IGxvY2FsaXplXCIgWyhtb2RlbCldPVwiZGVsaXZlcnlEYXRlRmluYWxcIj48L2NvLWlucHV0LWNoZWNrYm94PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtZGF0ZSBbcGxhY2Vob2xkZXJdPVwiJ0FTU0VNQkxZX0RBVEUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwiYXNzZW1ibHlEYXRlXCI+PC9jby1pbnB1dC1kYXRlPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICA8Y28taW5wdXQtdGV4dCBbcGxhY2Vob2xkZXJdPVwiJ1RPVEFMX0FTU0VNQkxZX1RJTUUnIHwgbG9jYWxpemUgXCIgWyhtb2RlbCldPVwidG90YWxBc3NlbWJseVRpbWVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgIDxjby1pbnB1dC1jaGVja2JveCBbbGFiZWxdPVwiJ0RST1BTSElQTUVOVCcgfCBsb2NhbGl6ZVwiIFsobW9kZWwpXT1cImRyb3BzaGlwbWVudFwiPjwvY28taW5wdXQtY2hlY2tib3g+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1yb3dcIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9DT1NUUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtaDNcIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgIDxkaXY+e3sgZGVsaXZlcnlDb3N0cyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidBU1NFTUJMWV9DT1NUUycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tvdXQtbGFiZWwtaDNcIlxuICAgICAgICAgID48L2xhYmVsPlxuICAgICAgICAgIDxkaXY+e3sgYXNzZW1ibHlDb3N0cyB9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2PlxuICAgICAgICA8bGFiZWwgW3RleHRDb250ZW50XT1cIidNQVJLRVRJTkcnIHwgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja291dC1sYWJlbC1oM1wiXG4gICAgICAgID48L2xhYmVsPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgPGNvLWlucHV0LWNvbWJvLWJveCBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5tYXJrZXRpbmdDb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzb3VyY2VdPVwibWFya2V0aW5nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaWVsZHNdPVwibWFya2V0aW5nRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInTUFSS0VUSU5HJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSk9XCJvbk1hcmtldGluZ0NvZGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvY28taW5wdXQtY29tYm8tYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LXJvd1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwidHJhbnNhY3Rpb24ucmVsYXRpb25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ1JFRkVSRU5DRV9SRUxBVElPTicgfCBsb2NhbGl6ZVwiPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJ0cmFuc2FjdGlvbi5vd25SZWZlcmVuY2VcIiBbcGxhY2Vob2xkZXJdPVwiJ09XTl9SRUZFUkVOQ0UnIHwgbG9jYWxpemVcIj48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICA8L2NvLWZvcm0+XG5cbiAgICA8Y28tZGlhbG9nIFt2aXNpYmxlXT1cImFkZExvY2F0aW9uUG9wdXBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgaGVhZGVyPnt7ICdORVdfTE9DQVRJT04nIHwgbG9jYWxpemUgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGNvLWZvcm0gI2xvY2F0aW9uRm9ybSAodmFsaWRTdWJtaXQpPVwic2F2ZUxvY2F0aW9uKClcIj5cbiAgICAgICAgICA8Y2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tYWRkcmVzc1xuICAgICAgICAgICAgbGFiZWw9XCJBRERSRVNTXCIgW2FkZHJlc3NdPVwibmV3QWRkcmVzc1wiXG4gICAgICAgICAgPjwvY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tYWRkcmVzcz5cbiAgICAgICAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgZnhMYXlvdXRHYXA9XCIxMHB4XCIgZnhMYXlvdXRBbGlnbj1cImVuZFwiPlxuICAgICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0NBTkNFTCcgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJhZGRMb2NhdGlvblBvcHVwID0gZmFsc2U7XCI+PC9jby1idXR0b24+XG4gICAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInU0FWRScgfCBsb2NhbGl6ZVwiIChjbGljayk9XCJzYXZlTmV3TG9jYXRpb24oKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2NvLWZvcm0+XG4gICAgPC9jby1kaWFsb2c+XG5cbiAgICA8Y28tZGlhbG9nICNjaGFuZ2VMb2NhdGlvbkRpYWxvZ1xuICAgICAgICAgICAgICAgW3Zpc2libGVdPVwiY2hhbmdlTG9jYXRpb25Qb3B1cFwiXG4gICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJvbkNoYW5nZUxvY2F0aW9uQ2FuY2VsQ2xpY2soKVwiXG4gICAgICAgICAgICAgICAob3ZlcmxheUNsaWNrKT1cIm9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyIGhlYWRlcj57eyAnQUREUkVTUycgfCBsb2NhbGl6ZSB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPGNvLWZvcm0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRlbnRcIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGNvLWdyaWQgI2FkZHJlc3NHcmlkXG4gICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJhZGRyZXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgW2NvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgICAgICAgICAgICAgICBbcGFnaW5nRW5hYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgIFttYXhOdW1iZXJPZlJvd3NdPVwiMjBcIlxuICAgICAgICAgICAgICAgICAgICAgKHJvd3NTZWxlY3RlZCk9XCJoYW5kbGVBZGRyZXNzU2VsZWN0ZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICA+PC9jby1ncmlkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtY2VudGVyXCIgZnhMYXlvdXRHYXA9XCIxMHB4XCI+XG4gICAgICAgICAgPGNvLWJ1dHRvbiBbbGFiZWxdPVwiJ0FERFJFU1NfQUREJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uQWRkTG9jYXRpb25Pa0NsaWNrKClcIj48L2NvLWJ1dHRvbj5cbiAgICAgICAgICA8Y28tYnV0dG9uIFtsYWJlbF09XCInQ0FOQ0VMJyB8IGxvY2FsaXplXCIgKGNsaWNrKT1cIm9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpXCI+PC9jby1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9jby1mb3JtPlxuICAgIDwvY28tZGlhbG9nPlxuICBgLFxuICBzdHlsZVVybHM6IFtcbiAgICBcIi4vLi4vY2hlY2tvdXQvY2hlY2tvdXQuY29tcG9uZW50LnNjc3NcIixcbiAgICBcIi4vY2hlY2tvdXQtb3ZlcnZpZXctZGVsaXZlcnktZWRpdC5jb21wb25lbnQuc2Nzc1wiXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tvdXRPdmVydmlld0RlbGl2ZXJ5RWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHB1YmxpYyByZWFkb25seSBkZWxpdmVyeUFkZHJlc3NUeXBlOiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcztcbiAgcHVibGljIHJlYWRvbmx5IGJpbGxpbmdBZGRyZXNzVHlwZTogQWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5CaWxsaW5nQWRkcmVzcztcblxuICBAVmlld0NoaWxkKFwiZGVsaXZlcnlGb3JtXCIsIHtyZWFkOiBGb3JtQ29tcG9uZW50fSlcbiAgcHVibGljIGRlbGl2ZXJ5Rm9ybTogRm9ybUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwibG9jYXRpb25Gb3JtXCIsIHtyZWFkOiBGb3JtQ29tcG9uZW50fSlcbiAgcHVibGljIGxvY2F0aW9uRm9ybTogRm9ybUNvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiY2hhbmdlTG9jYXRpb25EaWFsb2dcIilcbiAgcHVibGljIGNoYW5nZUxvY2F0aW9uRGlhbG9nOiBDb0RpYWxvZ0NvbXBvbmVudDtcblxuICBAVmlld0NoaWxkKFwiYWRkcmVzc0dyaWRcIilcbiAgcHVibGljIGFkZHJlc3NHcmlkOiBDb0dyaWRDb21wb25lbnQ8YW55PjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVsYXRpb246IFJlbGF0aW9uQW55VHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgdHJhbnNhY3Rpb246IFRyYW5zYWN0aW9uSW5mbztcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBpbnZhbGlkU3VibWl0OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgcHVibGljIGRlbGl2ZXJ5T3B0aW9uTGlzdDogRGVsaXZlcnlPcHRpb25bXSA9IFtdO1xuICBwdWJsaWMgZGVsaXZlcnlPcHRpb25zOiBEZWxpdmVyeU9wdGlvbltdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU9wdGlvbkZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgZGVsaXZlcnlNZXRob2RzOiBEZWxpdmVyeU1ldGhvZFtdID0gW107XG4gIHB1YmxpYyBkZWxpdmVyeU1ldGhvZEZpZWxkczogVGV4dFZhbHVlQ29udGFpbmVyID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgYWRkTG9jYXRpb25Qb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgY2hhbmdlTG9jYXRpb25Qb3B1cDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgbmV3QWRkcmVzczogQWRkcmVzcztcbiAgcHVibGljIHByZWZlcnJlZERhdGVPcHRpb25zOiBUZXh0VmFsdWVDb250YWluZXJbXSA9IFtcbiAgICAgIHt0ZXh0OiBcIk5PVF9BRlRFUlwiLCB2YWx1ZTogXCI+XCIgfSxcbiAgICAgIHt0ZXh0OiBcIk5PVF9CRUZPUkVcIiwgdmFsdWU6IFwiPFwiIH0sXG4gICAgICB7dGV4dDogXCJPTl9EQVRFXCIsIHZhbHVlOiBcIj1cIiB9LFxuICAgIF07XG4gIHB1YmxpYyBwcmVmZXJyZWREYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIGdlbmRlcjogR2VuZGVyVHlwZTtcbiAgcHVibGljIG1hcmtldGluZzogTWFya2V0aW5nW10gPSBbXTtcbiAgcHVibGljIG1hcmtldGluZ0ZpZWxkczogT2JqZWN0ID0geyB0ZXh0OiBcImRlc2NyaXB0aW9uXCIsIHZhbHVlOiBcImNvZGVcIiB9O1xuICBwdWJsaWMgbWFya2V0aW5nQ29kZTogc3RyaW5nO1xuICBwdWJsaWMgYXNzZW1ibHlDb3N0czogbnVtYmVyO1xuICBwdWJsaWMgZGVsaXZlcnlDb3N0czogbnVtYmVyO1xuXG4gIHB1YmxpYyBhZGRyZXNzZXM6IEFkZHJlc3NbXSA9IFtdO1xuICBwdWJsaWMgc2VsZWN0ZWRBZGRyZXNzOiBBZGRyZXNzO1xuICBwdWJsaWMgY29sdW1uczogYW55W10gPSBbXTtcblxuICAvLyBUT0RPOiBEZXplIHZlbGRlbiBub2cgb3BuZW1lbiBpbiBUcmFuc2FjdGlvbiEhXG4gIHB1YmxpYyBkZWxpdmVyeURhdGVGaW5hbDogYm9vbGVhbiA9IGZhbHNlO1xuICBwdWJsaWMgYXNzZW1ibHlEYXRlOiBEYXRlID0gbmV3IERhdGUoKTtcbiAgcHVibGljIHRvdGFsQXNzZW1ibHlUaW1lOiBzdHJpbmcgPSBcIlwiO1xuICBwdWJsaWMgZHJvcHNoaXBtZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfYWRkcmVzc1R5cGU6IEFkZHJlc3NUeXBlO1xuXG4gIHB1YmxpYyBnZXQgYmlsbGluZ0FkZHJlc3MoKTogQWRkcmVzcyB7XG4gICAgaWYgKHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpb24gJiZcbiAgICAgICAgdGhpcy5yZWxhdGlvbi5maXJzdEJpbGxpbmdBZGRyZXNzICYmXG4gICAgICAgIHRoaXMucmVsYXRpb24uZmlyc3RCaWxsaW5nQWRkcmVzcy5pc05vdEVtcHR5QWRkcmVzcygpKSB7XG4gICAgICAgIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPSB0aGlzLnJlbGF0aW9uLmZpcnN0QmlsbGluZ0FkZHJlc3M7XG4gICAgICAgIHRoaXMuX3NldENvdW50cnlOYW1lVG9BZGRyZXNzKHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MpLnRoZW4oKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlbGl2ZXJ5QWRkcmVzcygpOiBBZGRyZXNzIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHRoaXMucmVsYXRpb24gJiZcbiAgICAgICAgdGhpcy5yZWxhdGlvbi5maXJzdERlbGl2ZXJ5QWRkcmVzcyAmJlxuICAgICAgICB0aGlzLnJlbGF0aW9uLmZpcnN0RGVsaXZlcnlBZGRyZXNzLmlzTm90RW1wdHlBZGRyZXNzKCkpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPSB0aGlzLnJlbGF0aW9uLmZpcnN0RGVsaXZlcnlBZGRyZXNzO1xuICAgICAgICB0aGlzLl9zZXRDb3VudHJ5TmFtZVRvQWRkcmVzcyh0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uQWRkcmVzcykudGhlbigpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3M7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRlbGl2ZXJ5RGF0ZSgpOiBEYXRlIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeURhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IGRlbGl2ZXJ5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24uZGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHByZWZlcnJlZERlbGl2ZXJ5RGF0ZSgpOiBEYXRlIHtcbiAgICBpZiAodGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGUgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2FjdGlvbi5wcmVmZXJyZWREZWxpdmVyeURhdGU7XG4gIH1cblxuICBwdWJsaWMgc2V0IHByZWZlcnJlZERlbGl2ZXJ5RGF0ZSh2YWx1ZTogRGF0ZSkge1xuICAgIHRoaXMudHJhbnNhY3Rpb24ucHJlZmVycmVkRGVsaXZlcnlEYXRlID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgbmV3UmVsYXRpb25BZGRyZXNzKCk6IEFkZHJlc3Mge1xuICAgIGlmICh0aGlzLnJlbGF0aW9uKSB7XG4gICAgICBjb25zdCBhZGRyZXNzOiBBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcbiAgICAgIGFkZHJlc3MuYWRkcmVzc1R5cGUgPSBBZGRyZXNzVHlwZS5EZWxpdmVyeUFkZHJlc3M7XG4gICAgICBhZGRyZXNzLnN0YXJ0RGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICBhZGRyZXNzLnNlcXVlbmNlID0gdGhpcy5yZWxhdGlvbi5nZXROZXh0QWRkcmVzc1NlcXVlbmNlKCk7XG4gICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5wdXNoKGFkZHJlc3MpO1xuICAgICAgcmV0dXJuIGFkZHJlc3M7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPT09IHVuZGVmaW5lZCAmJiAhdGhpcy5kZWxpdmVyeUFkZHJlc3MpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi50cmFuc2FjdGlvbkFkZHJlc3MgPSB0aGlzLmRlbGl2ZXJ5QWRkcmVzcztcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID09PSB1bmRlZmluZWQgJiYgIXRoaXMuYmlsbGluZ0FkZHJlc3MpIHtcbiAgICAgICAgICB0aGlzLnRyYW5zYWN0aW9uLmludm9pY2VBZGRyZXNzID0gdGhpcy5iaWxsaW5nQWRkcmVzcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuZGVsaXZlcnlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlRGVsaXZlcnlDb3N0cygpO1xuICAgIHRoaXMuYXNzZW1ibHlDb3N0cyA9IHRoaXMuY2FsY3VsYXRlQXNzZW1ibHlDb3N0cygpO1xuICAgIHRoaXMuZGVsaXZlcnlNZXRob2RzID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5TWV0aG9kcygpO1xuICAgIHRoaXMuZGVsaXZlcnlPcHRpb25MaXN0ID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldERlbGl2ZXJ5T3B0aW9ucygpO1xuICAgIHRoaXMubWFya2V0aW5nID0gYXdhaXQgdGhpcy5zZXJ2aWNlLmdldE1hcmtldGluZ0NvZGVzKCk7XG4gICAgYXdhaXQgdGhpcy5vbkRlbGl2ZXJ5TWV0aG9kQ2hhbmdlKHRoaXMudHJhbnNhY3Rpb24uZGVsaXZlcnlNZXRob2QpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgcHJpdmF0ZSBfZGljdGlvbmFyeVNlcnZpY2U6IERpY3Rpb25hcnlTZXJ2aWNlLFxuICAgICAgcHVibGljIHNlcnZpY2U6IFRyYW5zYWN0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgdGhpcy5jb2x1bW5zLnB1c2goXG4gICAgICB7ZmllbGQ6IFwic3RyZWV0TmFtZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJTVFJFRVRcIil9LFxuICAgICAge2ZpZWxkOiBcImhvdXNlTm9cIiwgaGVhZGVyVGV4dDogdGhpcy5fZGljdGlvbmFyeVNlcnZpY2UuZ2V0KFwiSE9VU0VfTk9cIil9LFxuICAgICAge2ZpZWxkOiBcImhvdXNlTm9BZGRpdGlvblwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJIT1VTRV9OT19BRERJVElPTlwiKX0sXG4gICAgICB7ZmllbGQ6IFwicG9zdGFsQ29kZVwiLCBoZWFkZXJUZXh0OiB0aGlzLl9kaWN0aW9uYXJ5U2VydmljZS5nZXQoXCJQT1NUQUxfQ09ERVwiKSwgYWxsb3dGaWx0ZXJpbmc6IGZhbHNlfSxcbiAgICAgIHtmaWVsZDogXCJjaXR5XCIsIGhlYWRlclRleHQ6IHRoaXMuX2RpY3Rpb25hcnlTZXJ2aWNlLmdldChcIkNJVFlcIil9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgc3VibWl0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5Rm9ybS5zdWJtaXQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvbkRlbGl2ZXJ5TWV0aG9kQ2hhbmdlKGRlbGl2ZXJ5TWV0aG9kSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGRlbGl2ZXJ5TWV0aG9kOiBEZWxpdmVyeU1ldGhvZFtdID0gdGhpcy5zZWxlY3REZWxpdmVyeU1ldGhvZEJ5SWQoZGVsaXZlcnlNZXRob2RJZCk7XG4gICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU1ldGhvZCA9IGRlbGl2ZXJ5TWV0aG9kSWQ7XG4gICAgaWYgKGRlbGl2ZXJ5TWV0aG9kLmxlbmd0aCkge1xuICAgICAgdGhpcy5kZWxpdmVyeU9wdGlvbnMgPSB0aGlzLnNlbGVjdERlbGl2ZXJ5T3B0aW9uc0J5RGVsaXZlcnlNZXRob2QoZGVsaXZlcnlNZXRob2RbMF0pO1xuICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnMgPSBbXTtcbiAgICAgIGlmICh0aGlzLmRlbGl2ZXJ5T3B0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy50cmFuc2FjdGlvbi5kZWxpdmVyeU9wdGlvbnMucHVzaCh0aGlzLmRlbGl2ZXJ5T3B0aW9uc1swXS5jb2RlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlPcHRpb25zQnlEZWxpdmVyeU1ldGhvZChkZWxpdmVyeU1ldGhvZDogRGVsaXZlcnlNZXRob2QpOiBEZWxpdmVyeU9wdGlvbltdIHtcbiAgICByZXR1cm4gdGhpcy5kZWxpdmVyeU9wdGlvbkxpc3QuZmlsdGVyKGRlbGl2ZXJ5T3B0aW9uID0+IGRlbGl2ZXJ5TWV0aG9kLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uLmNvZGUpICE9PSAtMSk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGVsaXZlcnlNZXRob2RCeUlkKGRlbGl2ZXJ5TWV0aG9kSWQ6IHN0cmluZyk6IERlbGl2ZXJ5TWV0aG9kW10ge1xuICAgIHJldHVybiB0aGlzLmRlbGl2ZXJ5TWV0aG9kcy5maWx0ZXIoZGVsaXZlcnkgPT4gZGVsaXZlcnkuY29kZSA9PT0gZGVsaXZlcnlNZXRob2RJZCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlQWRkcmVzcyhhZGRyZXNzVHlwZTogQWRkcmVzc1R5cGUpOiB2b2lkIHtcbiAgICB0aGlzLl9hZGRyZXNzVHlwZSA9IGFkZHJlc3NUeXBlO1xuICAgIHRoaXMuYWRkcmVzc2VzID0gdGhpcy5yZWxhdGlvbi5hZGRyZXNzZXM7XG4gICAgdGhpcy5jaGFuZ2VMb2NhdGlvblBvcHVwID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlTmV3TG9jYXRpb24oKTogdm9pZCB7XG4gICAgIHRoaXMubG9jYXRpb25Gb3JtLnN1Ym1pdCgpO1xuICB9XG5cbiAgcHVibGljIHNhdmVMb2NhdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmFkZExvY2F0aW9uKCk7XG4gICAgdGhpcy5jaGFuZ2VMb2NhdGlvblBvcHVwID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgYWRkTG9jYXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy51cGRhdGVBZGRyZXNzKHRoaXMubmV3QWRkcmVzcykudGhlbigpO1xuICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLnB1c2godGhpcy5uZXdBZGRyZXNzKTtcbiAgICB0aGlzLnNlcnZpY2Uuc2F2ZVJlbGF0aW9uKCkudGhlbigpO1xuICAgIHRoaXMuYWRkTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZUFkZHJlc3MoYWRkcmVzczogQWRkcmVzcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLl9hZGRyZXNzVHlwZSA9PT0gQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzKSB7XG4gICAgICB0aGlzLnRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uQWRkcmVzcyA9IGFkZHJlc3M7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudHJhbnNhY3Rpb24uaW52b2ljZUFkZHJlc3MgPSBhZGRyZXNzO1xuICAgIH1cbiAgICBhd2FpdCB0aGlzLl9zZXRDb3VudHJ5TmFtZVRvQWRkcmVzcyhhZGRyZXNzKTtcbiAgfVxuXG4gIHB1YmxpYyBpc0RlbGl2ZXJ5T3B0aW9uQ2hlY2tlZChkZWxpdmVyeU9wdGlvbkl0ZW06IERlbGl2ZXJ5T3B0aW9uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnRyYW5zYWN0aW9uLmRlbGl2ZXJ5T3B0aW9ucy5pbmRleE9mKGRlbGl2ZXJ5T3B0aW9uSXRlbS5jb2RlLCAwKSA9PT0gMCk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlUHJlZmVycmVkRGVsaXZlcnlEYXRlMihwcmVmZXJyZWREYXRlT3B0aW9uOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLnByZWZlcnJlZERlbGl2ZXJ5RGF0ZTIgPSBwcmVmZXJyZWREYXRlT3B0aW9uO1xuICB9XG5cbiAgcHVibGljIG9uTWFya2V0aW5nQ29kZUNoYW5nZShtYXJrZXRpbmdDb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRyYW5zYWN0aW9uLm1hcmtldGluZ0NvZGUgPSBtYXJrZXRpbmdDb2RlO1xuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlTG9jYXRpb25DYW5jZWxDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZUxvY2F0aW9uUG9wdXAgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZExvY2F0aW9uT2tDbGljaygpOiB2b2lkIHtcbiAgICB0aGlzLl9hZGRBZGRyZXNzKHRoaXMuX2FkZHJlc3NUeXBlKTtcbiAgICB0aGlzLmFkZExvY2F0aW9uUG9wdXAgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUFkZHJlc3NTZWxlY3RlZChyb3dzOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkQWRkcmVzcyA9IChyb3dzLmZpbmQoeCA9PiB4ICE9PSB1bmRlZmluZWQpKTtcbiAgICB0aGlzLnVwZGF0ZUFkZHJlc3ModGhpcy5zZWxlY3RlZEFkZHJlc3MpO1xuICAgIHRoaXMuY2hhbmdlTG9jYXRpb25Qb3B1cCA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBjYWxjdWxhdGVEZWxpdmVyeUNvc3RzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIDA7XG4gIH1cblxuICBwcml2YXRlIGNhbGN1bGF0ZUFzc2VtYmx5Q29zdHMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gMDtcbiAgfVxuXG4gIHByaXZhdGUgX2FkZEFkZHJlc3MoYWRkcmVzc1R5cGU6IEFkZHJlc3NUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5uZXdBZGRyZXNzID0gbmV3IEFkZHJlc3MoKTtcbiAgICB0aGlzLm5ld0FkZHJlc3MuYWRkcmVzc1R5cGUgPSBhZGRyZXNzVHlwZTtcbiAgICB0aGlzLm5ld0FkZHJlc3Muc3RhcnREYXRlID0gbmV3IERhdGUoKTtcbiAgICB0aGlzLm5ld0FkZHJlc3Muc2VxdWVuY2UgPSB0aGlzLnJlbGF0aW9uLmdldE5leHRBZGRyZXNzU2VxdWVuY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3NldENvdW50cnlOYW1lVG9BZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoYWRkcmVzcy5jb3VudHJ5SWQgJiYgIWFkZHJlc3MuY291bnRyeU5hbWUpIHtcbiAgICAgIGNvbnN0IGNvdW50cnk6IENvdW50cnkgPSBhd2FpdCB0aGlzLnNlcnZpY2UuZ2V0Q291bnRyeShhZGRyZXNzLmNvdW50cnlJZCk7XG4gICAgICBhZGRyZXNzLmNvdW50cnlOYW1lID0gY291bnRyeS5kZXNjcmlwdGlvbjtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,115 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, Input } from "@angular/core";
3
- import { Address } from "@colijnit/transactionapi/build/model/address.bo";
4
- import { isNill } from "@colijnit/transactionapi/build/utils/function/is-nill.function";
5
- import { IOneConnectorAdapterService } from "../../../service/ione-connector-adapter.service";
6
- import { StringUtils } from "../../../utils/string-utils";
7
- import { DictionaryService } from "../../../service/dictionary.service";
8
- export class CheckoutOverviewRelationAddressComponent {
9
- constructor(_dictionary, _connector) {
10
- this._dictionary = _dictionary;
11
- this._connector = _connector;
12
- this.countries = [];
13
- this.fields = { text: "description", value: "code" };
14
- this.postalCodeCheckErrorMessage = "";
15
- this._prevPostalCodeForCheck = "";
16
- }
17
- set address(address) {
18
- this._address = address;
19
- }
20
- get address() {
21
- if (this._address === undefined) {
22
- this._address = new Address();
23
- }
24
- return this._address;
25
- }
26
- ngOnInit() {
27
- return __awaiter(this, void 0, void 0, function* () {
28
- this.countries = yield this._connector.getCountries();
29
- });
30
- }
31
- checkForPostalCodeCheckError() {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- if (!this.address.postalCode || isNill(this.address.houseNo)) {
34
- this.postalCodeCheckErrorMessage = "";
35
- return;
36
- }
37
- if (this._prevPostalCodeForCheck !== this.address.postalCode || this._prevHouseNoForCheck !== this.address.houseNo) {
38
- this._prevPostalCodeForCheck = this.address.postalCode;
39
- this._prevHouseNoForCheck = this.address.houseNo;
40
- const postalCodeResponse = yield this._connector.getPostalCodeRetrieval((this.address.postalCode ? this.address.postalCode : ""), StringUtils.ParseString(this.address.houseNo));
41
- if (postalCodeResponse && postalCodeResponse.isBadAddress) {
42
- this.postalCodeCheckErrorMessage = this._dictionary.get("UNKNOWN_ADDRESS_CHECK_IT");
43
- }
44
- else {
45
- this.postalCodeCheckErrorMessage = "";
46
- this.address.streetName = postalCodeResponse.street;
47
- this.address.city = postalCodeResponse.city;
48
- }
49
- }
50
- });
51
- }
52
- changeHouseNo() {
53
- this.address.houseNo = Number(this.address.houseNo);
54
- }
55
- }
56
- CheckoutOverviewRelationAddressComponent.decorators = [
57
- { type: Component, args: [{
58
- selector: "checkout-overview-relation-address",
59
- template: `
60
- <label [textContent]="label | localize"
61
- class="checkout-label-h3"
62
- ></label>
63
- <div class="default-flex-row">
64
- <div class="default-flex-column">
65
- <co-input-text [(model)]="address.postalCode"
66
- [placeholder]="'POSTAL_CODE' | localize"
67
- (blur)="checkForPostalCodeCheckError()"
68
- required
69
- ></co-input-text>
70
- </div>
71
- <div class="default-flex-column">
72
- <co-input-text [(model)]="address.houseNo"
73
- [placeholder]="'HOUSE_NO' | localize"
74
- (blur)="checkForPostalCodeCheckError()"
75
- (modelChange) = "changeHouseNo()"
76
- required
77
- ></co-input-text>
78
- </div>
79
- <div class="default-flex-column">
80
- <co-input-text [(model)]="address.houseNoAddition"
81
- [placeholder]="'HOUSE_NO_ADDITION' | localize"
82
- ></co-input-text>
83
- </div>
84
- </div>
85
- <div>
86
- <div class="default-flex-row">
87
- <div class="default-flex-column">
88
- <co-input-text [(model)]="address.streetName" [placeholder]="'STREET' | localize" required></co-input-text>
89
- </div>
90
- <div class="default-flex-column">
91
- <co-input-text [(model)]="address.city" [placeholder]="'CITY' | localize" required></co-input-text>
92
- </div>
93
- <div class="default-flex-column">
94
- <co-input-combo-box [(model)]="address.countryId"
95
- [source]="countries"
96
- [fields]="fields"
97
- [placeholder]="'COUNTRY'| localize"
98
- [required]="true"
99
- ></co-input-combo-box>
100
- </div>
101
- </div>
102
- </div>
103
- `,
104
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.overview-header .overview-step-nr{border-radius:50%}.flex-center,.step-content-delivery,.step-content-customer{display:flex}.flex-center,.step-content-delivery{flex-direction:row}.step-content-customer{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.step-content-customer,.step-content-delivery{padding-bottom:20px}.step-content-customer,.step-content-delivery{padding-top:20px}.step-content-customer,.step-content-delivery{padding-left:20px}.step-content-customer,.step-content-delivery{padding-right:20px}.overview-body{padding-left:30px}.overview-body{padding-right:30px}.overview-body{padding-top:30px}.overview-body{padding-bottom:30px}ul.cart-buttons>li{padding-left:11px}ul.cart-buttons>li{padding-right:11px}ul.cart-buttons{margin-top:20px}ul.cart-buttons{margin-bottom:20px}.overview-header .overview-step-nr{color:#f7fafa}.overview-header .overview-step-nr{background-color:#2b60a7}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}.checkout-viewport{max-width:60%;margin-left:20%}.mat-label{font-family:Montserrat,Arial,Helvetica,sans-serif}.default-flex-row{flex-direction:row;box-sizing:border-box;grid-column-gap:20px;-moz-column-gap:20px;column-gap:20px;display:flex}.default-flex-column{display:flex;flex-direction:column;width:200px}.privacy-row{display:flex;flex-direction:row;margin-bottom:20px}.privacy-column-left{display:flex;flex-direction:column;min-width:150px;max-width:150px;overflow-wrap:break-word}.privacy-column-right{display:flex;flex-direction:row;margin-left:50px}.checkout-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.checkout-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}co-input-radio-button{margin-left:16px}.checkout-overview h2{font-size:18px;font-weight:bold}.checkout-overview h3{font-size:15px}mat-horizontal-stepper{position:sticky;top:0;z-index:30}::ng-deep .mat-horizontal-content-container{display:none}.step-content-customer{background-color:#fff}.step-content-delivery{background-color:#fff}::ng-deep .step-wrapper{width:auto;background:rgba(255,255,255,.25)}::ng-deep .step-wrapper button-colijn{margin-top:20px}::ng-deep .step-wrapper.payment{align-items:center!important;justify-content:left!important}.overview-header{background:rgba(255,255,255,.25);border-top-left-radius:5px;border-top-right-radius:5px}.overview-header .overview-step-nr{width:20px;height:20px;text-align:center;font-weight:bold}.overview-body{border-bottom-left-radius:5px;border-bottom-right-radius:5px}.overview-body .contact-option-value{align-self:center}.overview-header-label{font-weight:bold}.overview-label{font-weight:bold}ul.cart-buttons{display:flex;justify-content:space-between;flex-wrap:nowrap;list-style-type:none}ul.cart-buttons>li{display:flex;align-items:center;justify-content:center;flex-grow:0;flex-shrink:0;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;height:40px;background-color:#f7fafa;cursor:pointer;font-size:15px;color:#2b60a7;border:1px solid #DCE4EA;border-radius:5px;opacity:1}ul.cart-buttons>li a{white-space:nowrap}\n"]
105
- },] }
106
- ];
107
- CheckoutOverviewRelationAddressComponent.ctorParameters = () => [
108
- { type: DictionaryService },
109
- { type: IOneConnectorAdapterService }
110
- ];
111
- CheckoutOverviewRelationAddressComponent.propDecorators = {
112
- label: [{ type: Input }],
113
- address: [{ type: Input }]
114
- };
115
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tvdXQtb3ZlcnZpZXctcmVsYXRpb24tYWRkcmVzcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvbXBvbmVudC9jaGVja291dC9jaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1hZGRyZXNzL2NoZWNrb3V0LW92ZXJ2aWV3LXJlbGF0aW9uLWFkZHJlc3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFVLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUMvRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFFeEUsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdFQUFnRSxDQUFDO0FBQ3RGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRTVGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQXNEdEUsTUFBTSxPQUFPLHdDQUF3QztJQXFCbkQsWUFDVSxXQUE4QixFQUM5QixVQUF1QztRQUR2QyxnQkFBVyxHQUFYLFdBQVcsQ0FBbUI7UUFDOUIsZUFBVSxHQUFWLFVBQVUsQ0FBNkI7UUFMMUMsY0FBUyxHQUFjLEVBQUUsQ0FBQztRQUMxQixXQUFNLEdBQVcsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztRQU94RCxnQ0FBMkIsR0FBVyxFQUFFLENBQUM7UUFFeEMsNEJBQXVCLEdBQVcsRUFBRSxDQUFDO0lBSjFDLENBQUM7SUFuQkosSUFDVyxPQUFPLENBQUMsT0FBZ0I7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztTQUMvQjtRQUVELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBZ0JLLFFBQVE7O1lBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEQsQ0FBQztLQUFBO0lBRVksNEJBQTRCOztZQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQzVELElBQUksQ0FBQywyQkFBMkIsR0FBRyxFQUFFLENBQUM7Z0JBQ3RDLE9BQU87YUFDUjtZQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtnQkFDbEgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO2dCQUN2RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7Z0JBQ2pELE1BQU0sa0JBQWtCLEdBQXVDLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ3BLLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUMvQyxJQUFJLGtCQUFrQixJQUFJLGtCQUFrQixDQUFDLFlBQVksRUFBRTtvQkFDekQsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDLENBQUM7aUJBQ3JGO3FCQUFNO29CQUNMLElBQUksQ0FBQywyQkFBMkIsR0FBRyxFQUFFLENBQUM7b0JBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxHQUFHLGtCQUFrQixDQUFDLE1BQU0sQ0FBQztvQkFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDO2lCQUM3QzthQUNGO1FBQ0gsQ0FBQztLQUFBO0lBRU0sYUFBYTtRQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0RCxDQUFDOzs7WUE5R0YsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxvQ0FBb0M7Z0JBQzlDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E0Q1A7O2FBSUo7OztZQXJETyxpQkFBaUI7WUFIakIsMkJBQTJCOzs7b0JBMkRoQyxLQUFLO3NCQUdMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtBZGRyZXNzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm9cIjtcbmltcG9ydCB7Q291bnRyeX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9tb2RlbC9jb3VudHJ5LmJvXCI7XG5pbXBvcnQge2lzTmlsbH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9pcy1uaWxsLmZ1bmN0aW9uXCI7XG5pbXBvcnQge0lPbmVDb25uZWN0b3JBZGFwdGVyU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2UvaW9uZS1jb25uZWN0b3ItYWRhcHRlci5zZXJ2aWNlXCI7XG5pbXBvcnQge0dldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvbW9kZWwvZ2V0LXBvc3RhbC1jb2RlLXJldHJpZXZhbC1vdXRwdXQtcGFyYW1zXCI7XG5pbXBvcnQge1N0cmluZ1V0aWxzfSBmcm9tIFwiLi4vLi4vLi4vdXRpbHMvc3RyaW5nLXV0aWxzXCI7XG5pbXBvcnQge0RpY3Rpb25hcnlTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vLi4vc2VydmljZS9kaWN0aW9uYXJ5LnNlcnZpY2VcIjtcbmltcG9ydCB7UmVsYXRpb25BbnlUeXBlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL21vZGVsL3JlbGF0aW9uLWFueS10eXBlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJjaGVja291dC1vdmVydmlldy1yZWxhdGlvbi1hZGRyZXNzXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgICAgIDxsYWJlbCBbdGV4dENvbnRlbnRdPVwibGFiZWwgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrb3V0LWxhYmVsLWgzXCJcbiAgICAgICAgPjwvbGFiZWw+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtcm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJhZGRyZXNzLnBvc3RhbENvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1BPU1RBTF9DT0RFJyB8IGxvY2FsaXplXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJsdXIpPVwiY2hlY2tGb3JQb3N0YWxDb2RlQ2hlY2tFcnJvcigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWRcbiAgICAgICAgICAgICAgPjwvY28taW5wdXQtdGV4dD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgPGNvLWlucHV0LXRleHQgWyhtb2RlbCldPVwiYWRkcmVzcy5ob3VzZU5vXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidIT1VTRV9OTycgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cImNoZWNrRm9yUG9zdGFsQ29kZUNoZWNrRXJyb3IoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbENoYW5nZSkgPSBcImNoYW5nZUhvdXNlTm8oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWZsZXgtY29sdW1uXCI+XG4gICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cImFkZHJlc3MuaG91c2VOb0FkZGl0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidIT1VTRV9OT19BRERJVElPTicgfCBsb2NhbGl6ZVwiXG4gICAgICAgICAgICAgID48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LXJvd1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC10ZXh0IFsobW9kZWwpXT1cImFkZHJlc3Muc3RyZWV0TmFtZVwiIFtwbGFjZWhvbGRlcl09XCInU1RSRUVUJyB8IGxvY2FsaXplXCIgcmVxdWlyZWQ+PC9jby1pbnB1dC10ZXh0PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZmxleC1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICA8Y28taW5wdXQtdGV4dCBbKG1vZGVsKV09XCJhZGRyZXNzLmNpdHlcIiBbcGxhY2Vob2xkZXJdPVwiJ0NJVFknIHwgbG9jYWxpemVcIiByZXF1aXJlZD48L2NvLWlucHV0LXRleHQ+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1mbGV4LWNvbHVtblwiPlxuICAgICAgICAgICAgICAgIDxjby1pbnB1dC1jb21iby1ib3ggWyhtb2RlbCldPVwiYWRkcmVzcy5jb3VudHJ5SWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NvdXJjZV09XCJjb3VudHJpZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpZWxkc109XCJmaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidDT1VOVFJZJ3wgbG9jYWxpemVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2NvLWlucHV0LWNvbWJvLWJveD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgYCxcbiAgc3R5bGVVcmxzOiBbXG4gICAgXCIuLy4uL2NoZWNrb3V0L2NoZWNrb3V0LmNvbXBvbmVudC5zY3NzXCJcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDaGVja291dE92ZXJ2aWV3UmVsYXRpb25BZGRyZXNzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFkZHJlc3MoYWRkcmVzczogQWRkcmVzcykge1xuICAgIHRoaXMuX2FkZHJlc3MgPSBhZGRyZXNzO1xuICB9XG5cbiAgcHVibGljIGdldCBhZGRyZXNzKCk6IEFkZHJlc3Mge1xuICAgIGlmICh0aGlzLl9hZGRyZXNzID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuX2FkZHJlc3MgPSBuZXcgQWRkcmVzcygpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9hZGRyZXNzO1xuICB9XG5cbiAgcHVibGljIGNvdW50cmllczogQ291bnRyeVtdID0gW107XG4gIHB1YmxpYyBmaWVsZHM6IE9iamVjdCA9IHsgdGV4dDogXCJkZXNjcmlwdGlvblwiLCB2YWx1ZTogXCJjb2RlXCIgfTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfZGljdGlvbmFyeTogRGljdGlvbmFyeVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfY29ubmVjdG9yOiBJT25lQ29ubmVjdG9yQWRhcHRlclNlcnZpY2VcbiAgKSB7fVxuXG4gIHB1YmxpYyBwb3N0YWxDb2RlQ2hlY2tFcnJvck1lc3NhZ2U6IHN0cmluZyA9IFwiXCI7XG5cbiAgcHJpdmF0ZSBfcHJldlBvc3RhbENvZGVGb3JDaGVjazogc3RyaW5nID0gXCJcIjtcbiAgcHJpdmF0ZSBfcHJldkhvdXNlTm9Gb3JDaGVjazogbnVtYmVyO1xuICBwcml2YXRlIF9hZGRyZXNzOiBBZGRyZXNzO1xuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMuY291bnRyaWVzID0gYXdhaXQgdGhpcy5fY29ubmVjdG9yLmdldENvdW50cmllcygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNoZWNrRm9yUG9zdGFsQ29kZUNoZWNrRXJyb3IoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmFkZHJlc3MucG9zdGFsQ29kZSB8fCBpc05pbGwodGhpcy5hZGRyZXNzLmhvdXNlTm8pKSB7XG4gICAgICB0aGlzLnBvc3RhbENvZGVDaGVja0Vycm9yTWVzc2FnZSA9IFwiXCI7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuX3ByZXZQb3N0YWxDb2RlRm9yQ2hlY2sgIT09IHRoaXMuYWRkcmVzcy5wb3N0YWxDb2RlIHx8IHRoaXMuX3ByZXZIb3VzZU5vRm9yQ2hlY2sgIT09IHRoaXMuYWRkcmVzcy5ob3VzZU5vKSB7XG4gICAgICB0aGlzLl9wcmV2UG9zdGFsQ29kZUZvckNoZWNrID0gdGhpcy5hZGRyZXNzLnBvc3RhbENvZGU7XG4gICAgICB0aGlzLl9wcmV2SG91c2VOb0ZvckNoZWNrID0gdGhpcy5hZGRyZXNzLmhvdXNlTm87XG4gICAgICBjb25zdCBwb3N0YWxDb2RlUmVzcG9uc2U6IEdldFBvc3RhbENvZGVSZXRyaWV2YWxPdXRwdXRQYXJhbXMgPSBhd2FpdCB0aGlzLl9jb25uZWN0b3IuZ2V0UG9zdGFsQ29kZVJldHJpZXZhbCgodGhpcy5hZGRyZXNzLnBvc3RhbENvZGUgPyB0aGlzLmFkZHJlc3MucG9zdGFsQ29kZSA6IFwiXCIpLFxuICAgICAgU3RyaW5nVXRpbHMuUGFyc2VTdHJpbmcodGhpcy5hZGRyZXNzLmhvdXNlTm8pKTtcbiAgICAgIGlmIChwb3N0YWxDb2RlUmVzcG9uc2UgJiYgcG9zdGFsQ29kZVJlc3BvbnNlLmlzQmFkQWRkcmVzcykge1xuICAgICAgICB0aGlzLnBvc3RhbENvZGVDaGVja0Vycm9yTWVzc2FnZSA9IHRoaXMuX2RpY3Rpb25hcnkuZ2V0KFwiVU5LTk9XTl9BRERSRVNTX0NIRUNLX0lUXCIpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5wb3N0YWxDb2RlQ2hlY2tFcnJvck1lc3NhZ2UgPSBcIlwiO1xuICAgICAgICB0aGlzLmFkZHJlc3Muc3RyZWV0TmFtZSA9IHBvc3RhbENvZGVSZXNwb25zZS5zdHJlZXQ7XG4gICAgICAgIHRoaXMuYWRkcmVzcy5jaXR5ID0gcG9zdGFsQ29kZVJlc3BvbnNlLmNpdHk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGNoYW5nZUhvdXNlTm8oKTogdm9pZCB7XG4gICAgdGhpcy5hZGRyZXNzLmhvdXNlTm8gPSBOdW1iZXIodGhpcy5hZGRyZXNzLmhvdXNlTm8pO1xuICB9XG59XG4iXX0=