@colijnit/transaction 12.1.8 → 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 (129) hide show
  1. package/bundles/colijnit-transaction.umd.js +1180 -698
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +31 -19
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +32 -20
  6. package/esm2015/lib/assets/dictionary/text.properties.js +80 -8
  7. package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +1 -1
  8. package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +120 -288
  9. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +279 -112
  10. package/esm2015/lib/component/checkout/checkout-relation-suggestions-list/checkout-relation-suggestions-list.component.js +2 -2
  11. package/esm2015/lib/component/checkout/checkout.component.js +64 -34
  12. package/esm2015/lib/component/checkout/checkout.module.js +11 -2
  13. package/esm2015/lib/component/core/relation/customer-groups.component.js +4 -3
  14. package/esm2015/lib/component/core/stock-status-indicator/stock-status-indicator.component.js +1 -1
  15. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.component.js +40 -0
  16. package/esm2015/lib/component/delivery-type-tile/delivery-type-tile.module.js +26 -0
  17. package/esm2015/lib/component/payment/payment.component.js +73 -0
  18. package/esm2015/lib/component/payment/payment.module.js +27 -0
  19. package/esm2015/lib/component/payment-tile/payment-tile.component.js +32 -0
  20. package/esm2015/lib/component/payment-tile/payment-tile.module.js +25 -0
  21. package/esm2015/lib/component/relation-address-select/relation-address-select.component.js +1 -1
  22. package/esm2015/lib/component/relation-address-tile/relation-address-tile.component.js +12 -24
  23. package/esm2015/lib/component/relation-address-tile/relation-address-tile.module.js +4 -2
  24. package/esm2015/lib/component/seller-information/seller-information.component.js +61 -0
  25. package/esm2015/lib/component/seller-information/seller-information.module.js +21 -0
  26. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.module.js +1 -1
  27. package/esm2015/lib/component/shopping-cart-preview/shopping-cart-preview.component.js +7 -3
  28. package/esm2015/lib/component/stepper/component/stepper-step.component.js +3 -3
  29. package/esm2015/lib/component/stepper/stepper.component.js +39 -41
  30. package/esm2015/lib/component/stepper/stepper.module.js +6 -3
  31. package/esm2015/lib/component/tile/tile.component.js +32 -0
  32. package/esm2015/lib/component/tile/tile.module.js +19 -0
  33. package/esm2015/lib/component/transaction/transaction.component.js +1 -1
  34. package/esm2015/lib/component/transaction-line/transaction-line.component.js +30 -2
  35. package/esm2015/lib/component/transaction-line/transaction-line.module.js +4 -2
  36. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.js +163 -0
  37. package/esm2015/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.js +30 -0
  38. package/esm2015/lib/component/transaction-lines/transaction-lines.component.js +8 -3
  39. package/esm2015/lib/enum/icon.enum.js +8 -1
  40. package/esm2015/lib/model/delivery-type.js +3 -0
  41. package/esm2015/lib/model/icon-svg.js +8 -1
  42. package/esm2015/lib/pipe/date-duration.pipe.js +1 -1
  43. package/esm2015/lib/pipe/delivery-time.pipe.js +1 -1
  44. package/esm2015/lib/pipe/localize.pipe.js +1 -1
  45. package/esm2015/lib/pipe/safe-html.pipe.js +1 -1
  46. package/esm2015/lib/pipe/safe-style.pipe.js +1 -1
  47. package/esm2015/lib/service/dialog.service.js +1 -1
  48. package/esm2015/lib/service/dictionary.service.js +1 -1
  49. package/esm2015/lib/service/ione-connector-adapter.service.js +19 -6
  50. package/esm2015/lib/service/pending-reason.service.js +2 -1
  51. package/esm2015/lib/service/transaction.service.js +9 -1
  52. package/fesm2015/colijnit-transaction.js +1658 -985
  53. package/fesm2015/colijnit-transaction.js.map +1 -1
  54. package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +8 -45
  55. package/lib/component/checkout/checkout-overview-delivery-edit/style/_layout.scss +13 -6
  56. package/lib/component/checkout/checkout-overview-delivery-edit/style/material.scss +1 -2
  57. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +31 -3
  58. package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +28 -0
  59. package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +1 -0
  60. package/lib/component/checkout/checkout-overview-relation-edit/style/material.scss +4 -0
  61. package/lib/component/checkout/checkout-relation-suggestions-list/style/_layout.scss +1 -0
  62. package/lib/component/checkout/checkout.component.d.ts +10 -1
  63. package/lib/component/checkout/style/_layout.scss +25 -0
  64. package/lib/component/checkout/style/_material-definition.scss +5 -0
  65. package/lib/component/checkout/style/material.scss +2 -0
  66. package/lib/component/confirmation-dialog/style/material.scss +1 -0
  67. package/lib/component/core/relation/relation-customer-groups.component.scss +6 -0
  68. package/lib/component/delivery-type-tile/delivery-type-tile.component.d.ts +10 -0
  69. package/lib/component/delivery-type-tile/delivery-type-tile.module.d.ts +2 -0
  70. package/lib/component/delivery-type-tile/style/_layout.scss +35 -0
  71. package/lib/component/delivery-type-tile/style/_material-definition.scss +16 -0
  72. package/lib/component/delivery-type-tile/style/_theme.scss +6 -0
  73. package/lib/component/delivery-type-tile/style/material.scss +5 -0
  74. package/lib/component/payment/payment.component.d.ts +18 -0
  75. package/lib/component/payment/payment.module.d.ts +2 -0
  76. package/lib/component/payment/style/_layout.scss +54 -0
  77. package/lib/component/payment/style/_material-definition.scss +17 -0
  78. package/lib/component/payment/style/_theme.scss +16 -0
  79. package/lib/component/payment/style/material.scss +5 -0
  80. package/lib/component/payment-tile/payment-tile.component.d.ts +9 -0
  81. package/lib/component/payment-tile/payment-tile.module.d.ts +2 -0
  82. package/lib/component/payment-tile/style/_layout.scss +22 -0
  83. package/lib/component/payment-tile/style/_material-definition.scss +0 -0
  84. package/lib/component/payment-tile/style/_theme.scss +6 -0
  85. package/lib/component/payment-tile/style/material.scss +5 -0
  86. package/lib/component/relation-address/style/_layout.scss +5 -0
  87. package/lib/component/relation-address-tile/relation-address-tile.component.d.ts +1 -0
  88. package/lib/component/relation-address-tile/style/_layout.scss +0 -21
  89. package/lib/component/relation-address-tile/style/_material-definition.scss +2 -1
  90. package/lib/component/relation-address-tile/style/_theme.scss +0 -30
  91. package/lib/component/relation-address-tile/style/material.scss +1 -0
  92. package/lib/component/sell-order/sell-order-side-panel/sell-order-side-panel.component.scss +49 -0
  93. package/lib/component/sell-order/sell-order.component.scss +15 -0
  94. package/lib/component/seller-information/seller-information.component.d.ts +13 -0
  95. package/lib/component/seller-information/seller-information.module.d.ts +2 -0
  96. package/lib/component/seller-information/style/_layout.scss +21 -0
  97. package/lib/component/seller-information/style/_material-definition.scss +2 -0
  98. package/lib/component/seller-information/style/_theme.scss +7 -0
  99. package/lib/component/seller-information/style/material.scss +4 -0
  100. package/lib/component/shopping-cart-preview/shopping-cart-preview.component.d.ts +2 -0
  101. package/lib/component/shopping-cart-preview/style/_layout.scss +6 -2
  102. package/lib/component/shopping-cart-preview/style/_material-definition.scss +1 -1
  103. package/lib/component/stepper/component/stepper-step.component.d.ts +1 -1
  104. package/lib/component/stepper/stepper.component.d.ts +10 -5
  105. package/lib/component/stepper/style/_layout.scss +52 -20
  106. package/lib/component/stepper/style/_material-definition.scss +9 -2
  107. package/lib/component/stepper/style/_theme.scss +36 -0
  108. package/lib/component/tile/style/_layout.scss +36 -0
  109. package/lib/component/tile/style/_material-definition.scss +16 -0
  110. package/lib/component/tile/style/_theme.scss +36 -0
  111. package/lib/component/tile/style/material.scss +4 -0
  112. package/lib/component/tile/tile.component.d.ts +6 -0
  113. package/lib/component/tile/tile.module.d.ts +2 -0
  114. package/lib/component/transaction-line/style/_theme.scss +5 -0
  115. package/lib/component/transaction-line/style/material.scss +1 -0
  116. package/lib/component/transaction-line/transaction-line.component.d.ts +5 -0
  117. package/lib/component/transaction-line-side-panel/style/_layout.scss +47 -0
  118. package/lib/component/transaction-line-side-panel/style/_material-definition.scss +10 -0
  119. package/lib/component/transaction-line-side-panel/style/_theme.scss +7 -0
  120. package/lib/component/transaction-line-side-panel/style/material.scss +4 -0
  121. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.component.d.ts +20 -0
  122. package/lib/component/transaction-line-side-panel/transaction-line-side-panel.module.d.ts +2 -0
  123. package/lib/component/transaction-lines/transaction-lines.component.d.ts +1 -0
  124. package/lib/enum/icon.enum.d.ts +7 -0
  125. package/lib/model/delivery-type.d.ts +7 -0
  126. package/lib/service/ione-connector-adapter.service.d.ts +3 -1
  127. package/lib/service/transaction.service.d.ts +3 -0
  128. package/lib/style/_variables.scss +10 -2
  129. package/package.json +1 -1
@@ -12,6 +12,7 @@ import { TransactionInfoResponse } from '@colijnit/transactionapi/build/model/tr
12
12
  import { ResolvePendingLineReasonRequest } from '@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo';
13
13
  import { CustomerFullObject } from '@colijnit/transactionapi/build/model/customer-full-object.bo';
14
14
  import { RelationPrivacySetting } from '@colijnit/transactionapi/build/model/relation-privacy-setting.bo';
15
+ import { DeliveryMethod } from '@colijnit/transactionapi/build/model/delivery-method.bo';
15
16
  import { GetPostalCodeRetrievalOutputParams } from '@colijnit/transactionapi/build/model/get-postal-code-retrieval-output-params';
16
17
  import { RelationListObject } from '@colijnit/transactionapi/build/model/relation-list-object.bo';
17
18
  import { CoDomainValue } from '@colijnit/transactionapi/build/model/co-domain-value.bo';
@@ -33,9 +34,10 @@ import { JsonFieldFieldDecorator } from '@colijnit/transactionapi/build/factory/
33
34
  import { ComplexArrayDecorator as ComplexArrayDecorator$1 } from '@colijnit/transactionapi/build/factory/decorators/complex-array.decorator';
34
35
  import { ImageUtils } from '@colijnit/transactionapi/build/utils/image-utils';
35
36
  import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
37
+ import { CashRegister } from '@colijnit/transactionapi/build/model/cash-register';
36
38
  import { SetTransactionDeliveryOptionsRequest } from '@colijnit/transactionapi/build/model/set-transaction-delivery-options-request.bo';
37
39
  import { RelationStatus } from '@colijnit/transactionapi/build/enum/relation-status.enum';
38
- import { FormMasterService, FormComponent, CoDialogModule, ButtonModule, InputComboBoxModule, InputTextModule, FormModule, InputRadioButtonModule, IconModule, InputCheckboxModule, InputDatePickerModule, InputNumberPickerModule, CoDialogPromptModule, MultiSelectListModule, DropDownModule, PopupModule, CoSidebarModule, CoGridModule, CoRichTextEditorModule, Carousel3dModule, InputTextareaModule, InputListboxModule, ColumnAlign, SimpleGridModule } from '@colijnit/corecomponents_v12';
40
+ import { FormMasterService, FormComponent, CoDialogModule, ButtonModule, InputComboBoxModule, InputTextModule, FormModule, InputRadioButtonModule, IconModule, InputCheckboxModule, InputListboxModule, DropDownModule, InputTextComponent, CollapsibleModule, InputDatePickerModule, InputNumberPickerModule, PriceDisplayPipeModule, CoDialogPromptModule, MultiSelectListModule, PopupModule, CoSidebarModule, CoGridModule, CoRichTextEditorModule, Carousel3dModule, InputTextareaModule, ColumnAlign, SimpleGridModule } from '@colijnit/corecomponents_v12';
39
41
  import { FlexModule } from '@angular/flex-layout';
40
42
  import { CommunicationType } from '@colijnit/transactionapi/build/enum/communication-type.enum';
41
43
  import { ContactOption } from '@colijnit/transactionapi/build/model/contact-option.bo';
@@ -45,15 +47,14 @@ import { BusinessObjectUtils } from '@colijnit/transactionapi/build/utils/busine
45
47
  import { FunctionUtils } from '@colijnit/transactionapi/build/utils/function-utils';
46
48
  import { Address } from '@colijnit/transactionapi/build/model/address.bo';
47
49
  import { trigger, state, style, transition, animate } from '@angular/animations';
48
- import { CommonModule } from '@angular/common';
49
50
  import * as i1 from '@angular/platform-browser';
50
51
  import { DomSanitizer } from '@angular/platform-browser';
51
- import { ReactiveFormsModule, FormsModule } from '@angular/forms';
52
+ import { CommonModule } from '@angular/common';
53
+ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
52
54
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
53
55
  import { TransactionAddTextLineRequest } from '@colijnit/transactionapi/build/model/transaction-add-text-line-request.bo';
54
56
  import { StockStatus } from '@colijnit/transactionapi/build/enum/refcode/stock-status.enum';
55
57
  import { RelationRequest } from '@colijnit/transactionapi/build/model/relation-request';
56
- import { DeliveryMethod } from '@colijnit/transactionapi/build/model/delivery-method.bo';
57
58
 
58
59
  var LanguageCode;
59
60
  (function (LanguageCode) {
@@ -138,23 +139,31 @@ class Dictionary {
138
139
  "ADD_ARTICLE_LINE_DOWN": "Artikelregel onder toevoegen",
139
140
  "ADD_ARTICLE_TEXT_LINE_UP": "Tekstregel boven toevoegen",
140
141
  "ADD_ARTICLE_TEXT_LINE_DOWN": "Tekstregel onder toevoegen",
142
+ "ADD_DELIVERY_OPTION": "Voeg een leveroptie toe",
141
143
  "ADD_DISCOUNTS": "Korting toevoegen",
144
+ "ADD_REFERENCE": "Voeg referentie toe",
145
+ "ADD_REMARK": "Voeg een opmerking toe",
142
146
  "ADDRESS": "Adres",
143
147
  "ADDRESSES": "Adressen",
144
148
  "ADDRESS_ADD": "Adres toevoegen",
145
149
  "ADDRESS_CHANGE": "Adres wijzigen",
150
+ "ADMINISTRATIVE_MANAGER": "Administratief verantwoordelijke",
146
151
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Controleer magazijn en commissiecode",
147
152
  "ARTICLE": "Artikel",
148
153
  "ARTICLE_DESCRIPTION": "Artikelomschrijving",
149
154
  "ARTICLE_IN_OUT_COLLECTION": "Status van artikel is '|~'. Weet u zeker dat u door wilt gaan?",
150
155
  "ARTICLE_NR": "Artikelnummer",
156
+ "ARTICLE_NR_SUPPLIER": "Artikelnr leverancier",
151
157
  "ARTICLE_UNKNOWN": "Onbekend artikel",
152
158
  "ASSEMBLY_COSTS": "Montagekosten",
153
159
  "ASSEMBLY_DATE": "Montagedatum",
160
+ "ASSEMBLY_TIME": "Montagetijd",
154
161
  "AMOUNT": "Aantal",
155
162
  "AVAILABLE_STOCK": "Bechikbaar",
156
163
  "BACK": "Terug",
157
164
  "BACK_TO_STOCK_LINES": "Terug naar voorraadregels",
165
+ "BRANCH": "Filiaal",
166
+ "BUSINESS_RULE_DISCOUNT": "Business rule korting",
158
167
  "CANCEL": "Annuleren",
159
168
  "CANNOT_CHANGE_NEGATIVE_QUANTITY": "Een negatieve voorraad kan niet gewijzigd worden.",
160
169
  "CART": "Winkelwagen",
@@ -165,6 +174,7 @@ class Dictionary {
165
174
  "COMPANY": "Bedrijf",
166
175
  "COMPANY_NAME": "Bedrijfsnaam",
167
176
  "COMMISSION_CODE": "Commisiecode",
177
+ "CONTACT_DETAILS": "Contactgegevens",
168
178
  "CONTINUE": "Volgende",
169
179
  "CONTINUE_ORDER_WHILE_STOCK_AVAILABLE_PLEASE_CONFIRM": "U heeft gekozen voor het bestellen van artikelen terwijl er nog voorraad aanwezig is. Wilt u verdergaan?",
170
180
  "CONTINUE_WITHOUT_ACCOUNT": "Ga door zonder account",
@@ -172,6 +182,8 @@ class Dictionary {
172
182
  "COUNTRY": "Land",
173
183
  "CREATE_ACCOUNT": "Maak een account aan",
174
184
  "CREATE_ACCOUNT_IN_2_MIN": "Maak binnen 2 minuten een account aan.",
185
+ "CUSTOMER": "Klant",
186
+ "CUSTOMER_GROUP": "Klantgroep",
175
187
  "DATE_OF_BIRTH": "Geboortedatum",
176
188
  "DELETE_TRANSACTION_LINE": "verwijderen",
177
189
  "DELETE_TRANSACTION_LINE_HINT": "Verwijderen transactieregel",
@@ -182,20 +194,27 @@ class Dictionary {
182
194
  "DELIVERY_ADDRESS_ADD": "Bezorgadres toevoegen",
183
195
  "DELIVERY_ADDRESS_CHANGE": "Bezorgadres wijzigen",
184
196
  "DELIVERY_COSTS": "Bezorgkosten",
197
+ "DELIVERY_DATA": "Levergegevens",
185
198
  "DELIVERY_DATE": "Leverdatum",
186
199
  "DELIVERY_DATE_FINAL": "Definitieve leverdatum",
187
200
  "DELIVERY_DIRECT": "Direct leverbaar",
188
201
  "DELIVERY_LOCATION": "Bezorgingslocatie",
189
202
  "DELIVERY_OPTIONS": "Leveropties",
190
- "DELIVERY_METHOD2": "Levermethode",
203
+ "DELIVERY_METHOD": "Levermethode",
191
204
  "DELIVERY_MOMENT": "Levermoment",
192
205
  "DELIVERY_OPTARTICLE_NRIONS": "Bezorgopties",
193
206
  "DELIVERY_TIME_PERIOD": "Levertijd",
194
207
  "DESCRIPTION": "Omschrijving",
195
208
  "DETAILS": "Details",
196
209
  "DISCOUNT": "Korting",
210
+ "DISCOUNTS": "Kortingen",
197
211
  "DISCOUNT_AMOUNT": "Kortingsbedrag",
198
212
  "DISCOUNT_PERCENTAGE": "Kortings %",
213
+ "DOWNPAYMENT": "Aanbetaling",
214
+ "DOWNPAYMENT_PERCENTAGE": "Aan te betalen percentage",
215
+ "DOWNPAYMENT_AMOUNT": "Aan te betalen bedrag",
216
+ "DOWNPAYMENT_BY_BR": "Berekend door BR",
217
+ "DOWNPAYMENT_ON_DELIVERY": "Rembours",
199
218
  "DROPSHIPMENT": "Dropshipment",
200
219
  "ECONOMICAL_STOCK": "Later beschikbaar",
201
220
  "EDIT_CART": "Wijzig winkelwagen",
@@ -203,22 +222,30 @@ class Dictionary {
203
222
  "EXISTING_CUSTOMERS": "Bestaande klanten",
204
223
  "EXPECTED_DELIVERY_DATE": "Verwachte bezorgdatum",
205
224
  "EXPECTED_DELIVERY_WEEK": "Verwachte leverweek",
225
+ "FABRICATION_COST": "Fabricageprijs",
226
+ "FABRICATION_COST_LINE_TOTAL": "Fabricageprijs regeltotaal",
206
227
  "FEMALE": "Vrouw",
207
228
  "FIRST_NAME": "Voornaam",
208
229
  "GOOD_DESCRIPTION": "Artikelomschrijving",
209
230
  "HOUSE_NO": "Huisnummer",
210
231
  "HOUSE_NO_ADDITION": "Huisnummer toevoeging",
232
+ "IN_OUT_COLLECTION": "In-uit-collectie",
211
233
  "INVITE_TO_ACCOUNT": "Uitnodigen voor account",
212
234
  "INVOICE_ADDRESS": "Factuuradres",
213
235
  "INVOICE_ADDRESS_ADD": "Factuuradres toevoegen",
214
236
  "INVOICE_ADDRESS_CHANGE": "Factuuradres wijzigen",
237
+ "LAST_EDITED_DATE": "Datum laatste wijziging",
238
+ "LAST_EDITED_USER": "Gebruiker laatste wijziging",
215
239
  "LAST_NAME": "Achternaam",
216
240
  "LINE_NEEDS_COMMISSION_CODE": "De commisiecode ontbreekt. Vul de commissiecode in.",
217
241
  "LOGIN": "Inloggen",
218
242
  "LOGIN_DETAILS": "Inloggegevens",
243
+ "LOGISTICS_AND_PLANNING": "Logistiek & planning",
219
244
  "MALE": "Man",
220
245
  "MARKETING": "Marketing",
246
+ "MODIFICATION_TIME": "Bewerkingstijd",
221
247
  "NAME": "Naam",
248
+ "NET_LINE_TOTAL": "Regeltotaal",
222
249
  "NETT": "Netto",
223
250
  "NEW_AT": "Nieuw bij ",
224
251
  "NEW_LOCATION": "Nieuwe locatie",
@@ -230,17 +257,21 @@ class Dictionary {
230
257
  "ON_DATE": "Op datum",
231
258
  "OPEN_SHOPPING_CART": "Open winkelwagen",
232
259
  "ORDER_DATE": "Orderdatum",
260
+ "ORDER_DATA": "Ordergegevens",
233
261
  "ORDER_GROSS": "Ordertotaal bruto",
234
262
  "ORDER_NET": "Ordertotaal netto",
235
263
  "ORDER_NUMBER": "Ordernummer",
264
+ "ORDER_RULESET": "Orderregelset",
236
265
  "ORDER_TYPE": "Type bestelling",
266
+ "OTHER": "Overig",
237
267
  "OVERVIEW": "Overzicht",
238
268
  "OWN_REFERENCE": "Eigen referentie",
239
269
  "PAID_DOWN2": "Aanbetaald",
240
270
  "PART_DELIVERIES": "Deelleveringen",
241
271
  "PASSWORD": "Wachtwoord",
272
+ "PAY": "Betalen",
242
273
  "PAYMENT": "Betaling",
243
- "PERSONAL_DATA": "Persoonlijke gegevens",
274
+ "PERSONAL_DATA": "Basisgegevens",
244
275
  "PHONE_NO": "Telefoonnummer",
245
276
  "PHYSICAL_STOCK": "Fysieke voorraad",
246
277
  "POSTAL_CODE": "Postcode",
@@ -248,6 +279,7 @@ class Dictionary {
248
279
  "PREFIX": "Tussenvoegsel",
249
280
  "PRICE": "Prijs",
250
281
  "PRICE_LIST": "Prijslijst",
282
+ "PRICING": "Prijzen",
251
283
  "PRIVACY_PREFERENCES": "Privacyvoorkeuren",
252
284
  "PRIVATE_PERSON": "Particulier",
253
285
  "PRODUCT": "Product",
@@ -262,10 +294,11 @@ class Dictionary {
262
294
  "QUANTITY_CANNOT_BE_LESS_THAN_RECEIVED": "Het aantal moet gelijk zijn aan het aantal ontvangen.",
263
295
  "QUANTITY_CANNOT_BE_MORE_THAN_RECEIVED": "Het aantal moet gelijk zijn aan het aantal ontvangen",
264
296
  "QUANTUM_DISCOUNT": "Kwantumkorting",
297
+ "REFERENCE": "Referentie",
265
298
  "REFERENCE_RELATION": "Ref. relatie",
266
299
  "REMARKS": "Opmerkingen",
267
300
  "SALUTATION": "Aanhef",
268
- "SAME_AS_DELIVERY": "Hetzelfde als afleveradres",
301
+ "SAME_AS_DELIVERY": "Hetzelfde als bezorgadres",
269
302
  "SAVE": "Opslaan",
270
303
  "SELECT": "Selecteren",
271
304
  "SERVICE_NUMBER": "Servicenummer",
@@ -281,18 +314,22 @@ class Dictionary {
281
314
  "STOCK_AVAILABLE_CHANGE_WAREHOUSE_OR_COMMISSIONCODE": "Er is voldoende voorraad. Verander magazijn en/of commissiecode",
282
315
  "SUBTOTAL": "Subtotaal",
283
316
  "SUGGESTIONS": "Suggesties",
317
+ "SUPPLIER": "Leverancier",
284
318
  "SURCHARGE_AMOUNT": "Toeslag",
285
319
  "STATE": "Status",
286
320
  "STREET": "Straatnaam",
287
321
  "TEXT_ARTICLE_BOUND": "Text bij artikel |~",
288
322
  "TOTAL_AMOUNT": "Totaalbedrag",
289
- "TOTAL_GROSS": "Totaal bruto",
290
323
  "TOTAL_ASSEMBLY_TIME": "Totale montagetijd",
324
+ "TOTAL_GROSS": "Totaal bruto",
325
+ "TOTAL_LINE_DISCOUNT": "Totale regelkorting",
291
326
  "TRANSACTION_DISCOUNT": "Totale transactie korting",
292
327
  "TRANSACTION_DISCOUNT_PERC": "% Trans. korting",
293
328
  "TRANSACTION_PRICE_DECLARATION": "Order prijsverklaring",
294
329
  "TRANSACTION_SUM_I": "Ordertotaal incl. BTW",
295
330
  "TRANSACTION_TOTAL": "Transactie totaal",
331
+ "TRANSPORT_COST": "Transportkosten",
332
+ "TRANSPORT_COST_LINE_TOTAL": "Transportkosten regeltotaal",
296
333
  "UNKNOWN": "Onbekend",
297
334
  "UNKNOWN_ADDRESS_CHECK_IT": "Onbekend adres",
298
335
  "VAT": "Btw",
@@ -300,7 +337,7 @@ class Dictionary {
300
337
  "VALUE": "Waarde",
301
338
  "WHERE_ARE_YOU_LOOKING_FOR": "Waar ben je naar op zoek?",
302
339
  "WAREHOUSE": "Magazijn",
303
- "YOUR_DATA": "Uw gegevens",
340
+ "YOUR_DATA": "Gegevens",
304
341
  "STANDARD_TEXTS": "Standaardteksten",
305
342
  "ARTICLE_BOUND_TEXT": "Artikelgebonden tekst",
306
343
  "FOR_DOCUMENTS": "Bestemd voor documenten",
@@ -315,21 +352,29 @@ class Dictionary {
315
352
  "ADD_ARTICLE_LINE_DOWN": "Add article line down",
316
353
  "ADD_ARTICLE_TEXT_LINE_UP": "Add text line up",
317
354
  "ADD_ARTICLE_TEXT_LINE_DOWN": "Add text line down",
355
+ "ADD_DELIVERY_OPTION": "Add delivery option",
318
356
  "ADD_DISCOUNTS": "Add discount",
357
+ "ADD_REFERENCE": "Add reference",
358
+ "ADD_REMARK": "Add remark",
319
359
  "ADDRESS": "Address",
320
360
  "ADDRESSES": "Addresses",
321
361
  "ADDRESS_ADD": "Add address",
322
362
  "ADDRESS_CHANGE": "Change address",
363
+ "ADMINISTRATIVE_MANAGER": "Administrative manager",
323
364
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Check warehouse and commissioncode",
324
365
  "ARTICLE": "Article",
325
366
  "ARTICLE_DESCRIPTION": "Article description",
326
367
  "ARTICLE_IN_OUT_COLLECTION": "Status of article is '|~'. Are you sure to proceed?",
327
368
  "ARTICLE_NR": "Article number",
369
+ "ARTICLE_NR_SUPPLIER": "Artikelnr supplier",
328
370
  "ARTICLE_UNKNOWN": "Article unknown",
329
371
  "ASSEMBLY_COSTS": "Assembly costs",
330
372
  "ASSEMBLY_DATE": "Assembly date",
373
+ "ASSEMBLY_TIME": "Assembly time",
331
374
  "AMOUNT": "Amount",
332
375
  "BACK": "Back",
376
+ "BRANCH": "Branch",
377
+ "BUSINESS_RULE_DISCOUNT": "Business rule discount",
333
378
  "CANCEL": "Cancel",
334
379
  "CANNOT_CHANGE_NEGATIVE_QUANTITY": "A negative supply cannot be changed.",
335
380
  "CART": "Cart",
@@ -340,6 +385,7 @@ class Dictionary {
340
385
  "COMPANY": "Company",
341
386
  "COMPANY_NAME": "Company name",
342
387
  "COMMISSION_CODE": "Commission code",
388
+ "CONTACT_DETAILS": "Contactdetails",
343
389
  "CONTINUE": "Next",
344
390
  "CONTINUE_ORDER_WHILE_STOCK_AVAILABLE_PLEASE_CONFIRM": "You have chosen to order articles while stock is still available. Do you wish to proceed?",
345
391
  "CONTINUE_WITHOUT_ACCOUNT": "Continue without an account",
@@ -347,6 +393,8 @@ class Dictionary {
347
393
  "COUNTRY": "Country",
348
394
  "CREATE_ACCOUNT": "Create an account",
349
395
  "CREATE_ACCOUNT_IN_2_MIN": "Create an account in 2 minutes.",
396
+ "CUSTOMER": "Customer",
397
+ "CUSTOMER_GROUP": "Customergroup",
350
398
  "DATE_OF_BIRTH": "Date of birth",
351
399
  "DELETE_TRANSACTION_LINE": "Delete transaction line verwijderen?",
352
400
  "DELETE_TRANSACTION_LINE_HINT": "Delete transaction line",
@@ -356,42 +404,57 @@ class Dictionary {
356
404
  "DELIVERY_ADDRESS_ADD": "Add delivery address",
357
405
  "DELIVERY_ADDRESS_CHANGE": "Change delivery address",
358
406
  "DELIVERY_COSTS": "Delivery costs",
407
+ "DELIVERY_DATA": "Deliverydata",
359
408
  "DELIVERY_DATE": "Delivery date",
360
409
  "DELIVERY_DATE_FINAL": "Final delivery date",
361
410
  "DELIVERY_DIRECT": "Direct delivery",
362
411
  "DELIVERY_LOCATION": "Delivery location",
363
412
  "DELIVERY_OPTIONS": "Delivery options",
364
- "DELIVERY_METHOD2": "Delivery method",
413
+ "DELIVERY_METHOD": "Delivery method",
365
414
  "DELIVERY_MOMENT": "Delivery moment",
366
415
  "DELIVERY_OPTARTICLE_NRIONS": "Delivery options",
367
416
  "DELIVERY_TIME_PERIOD": "Delivery time period",
368
417
  "DESCRIPTION": "Description",
369
418
  "DETAILS": "Details",
370
419
  "DISCOUNT": "Discount",
420
+ "DISCOUNTS": "Discounts",
371
421
  "DISCOUNT_AMOUNT": "Discount amount",
372
422
  "DISCOUNT_PERCENTAGE": "Discount %",
423
+ "DOWNPAYMENT": "Downpayment",
424
+ "DOWNPAYMENT_PERCENTAGE": "Percentage to be paid",
425
+ "DOWNPAYMENT_AMOUNT": "Amount to be paid",
426
+ "DOWNPAYMENT_BY_BR": "Calculated by BR",
427
+ "DOWNPAYMENT_ON_DELIVERY": "On delivery",
373
428
  "DROPSHIPMENT": "Dropshipment",
374
429
  "EDIT_CART": "Edit cart",
375
430
  "EMAIL_ADDRESS": "E-mailadres",
376
431
  "EXISTING_CUSTOMERS": "Existing customers",
377
432
  "EXPECTED_DELIVERY_DATE": "Expected delivery date",
378
433
  "EXPECTED_DELIVERY_WEEK": "Expected delivery week",
434
+ "FABRICATION_COST": "Fabricationcost",
435
+ "FABRICATION_COST_LINE_TOTAL": "Fabricationcost linetotal",
379
436
  "FEMALE": "Female",
380
437
  "FIRST_NAME": "First name",
381
438
  "GOOD_DESCRIPTION": "Article description",
382
439
  "HOUSE_NO": "Housenumber",
383
440
  "HOUSE_NO_ADDITION": "Housenumber addition",
441
+ "IN_OUT_COLLECTION": "In-out-collection",
384
442
  "INVITE_TO_ACCOUNT": "Invite account",
385
443
  "INVOICE_ADDRESS": "Invoice address",
386
444
  "INVOICE_ADDRESS_ADD": "Add invoice address",
387
445
  "INVOICE_ADDRESS_CHANGE": "Change invoice address",
446
+ "LAST_EDITED_DATE": "Date last mutation",
447
+ "LAST_EDITED_USER": "User last mutation",
388
448
  "LAST_NAME": "Last name",
389
449
  "LINE_NEEDS_COMMISSION_CODE": "Line needs a commission code",
390
450
  "LOGIN": "Login",
391
451
  "LOGIN_DETAILS": "Login details",
452
+ "LOGISTICS_AND_PLANNING": "Logistics & planning",
392
453
  "MALE": "Male",
393
454
  "MARKETING": "Marketing",
455
+ "MODIFICATION_TIME": "Modification time",
394
456
  "NAME": "Name",
457
+ "NET_LINE_TOTAL": "Linetotal",
395
458
  "NETT": "Net",
396
459
  "NEW_AT": "New at ",
397
460
  "NEW_LOCATION": "New location",
@@ -403,15 +466,19 @@ class Dictionary {
403
466
  "ON_DATE": "On date",
404
467
  "OPEN_SHOPPING_CART": "Open shopping cart",
405
468
  "ORDER_DATE": "Order date",
469
+ "ORDER_DATA": "Orderdata",
406
470
  "ORDER_GROSS": "Total gross amount",
407
471
  "ORDER_NET": "Total net amount",
408
472
  "ORDER_NUMBER": "Order number",
473
+ "ORDER_RULESET": "Orderruleset",
409
474
  "ORDER_TYPE": "Order type",
475
+ "OTHER": "Other",
410
476
  "OVERVIEW": "Overview",
411
477
  "OWN_REFERENCE": "Own reference",
412
478
  "PAID_DOWN2": "Prepaid",
413
479
  "PART_DELIVERIES": "Partial deliveries",
414
480
  "PASSWORD": "Password",
481
+ "PAY": "Pay",
415
482
  "PAYMENT": "Payment",
416
483
  "PERSONAL_DATA": "Personal data",
417
484
  "PHONE_NO": "Telephone number",
@@ -420,12 +487,14 @@ class Dictionary {
420
487
  "PREFIX": "Prefix",
421
488
  "PRICE": "Price",
422
489
  "PRICE_LIST": "Pricelist",
490
+ "PRICING": "Pricing",
423
491
  "PRIVACY_PREFERENCES": "Privacy preferences",
424
492
  "PRIVATE_PERSON": "Private",
425
493
  "PRODUCT": "Product",
426
494
  "PRODUCT_TYPE": "Product type",
427
495
  "QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Quantity cannot be zero or empty",
428
496
  "QUANTUM_DISCOUNT": "Quantum discount",
497
+ "REFERENCE": "Reference",
429
498
  "REFERENCE_RELATION": "Ref. relation",
430
499
  "REMARKS": "Remarks",
431
500
  "SALUTATION": "Salutation",
@@ -445,17 +514,21 @@ class Dictionary {
445
514
  "STOCK_AVAILABLE_CHANGE_WAREHOUSE_OR_COMMISSIONCODE": "Not enough supply. Change warehouse and/or commissioncode",
446
515
  "SUBTOTAL": "Subtotal",
447
516
  "SUGGESTIONS": "Suggestions",
517
+ "SUPPLIER": "Supplier",
448
518
  "SURCHARGE_AMOUNT": "Surcharge",
449
519
  "STATE": "STATUS",
450
520
  "STREET": "Streetname",
451
521
  "TOTAL_AMOUNT": "Total amount",
452
- "TOTAL_GROSS": "Gross total",
453
522
  "TOTAL_ASSEMBLY_TIME": "Total assembly time",
523
+ "TOTAL_GROSS": "Gross total",
524
+ "TOTAL_LINE_DISCOUNT": "Total linediscount",
454
525
  "TRANSACTION_DISCOUNT": "Total transaction discount",
455
526
  "TRANSACTION_DISCOUNT_PERC": "% Trans. discount",
456
527
  "TRANSACTION_PRICE_DECLARATION": "Transaction price declaration",
457
528
  "TRANSACTION_SUM_I": "Ordertotal incl VAT",
458
529
  "TRANSACTION_TOTAL": "Transaction total",
530
+ "TRANSPORT_COST": "Transportcosts",
531
+ "TRANSPORT_COST_LINE_TOTAL": "Transportcosts linetotal",
459
532
  "UNKNOWN": "unknown",
460
533
  "UNKNOWN_ADDRESS_CHECK_IT": "Unknown address",
461
534
  "VALUE": "Value",
@@ -1329,7 +1402,7 @@ class IOneConnectorAdapterService {
1329
1402
  });
1330
1403
  });
1331
1404
  }
1332
- getDocumentContent(id, thumbnail) {
1405
+ getDocumentContent(id, thumbnail = true) {
1333
1406
  return new Promise((resolve, reject) => {
1334
1407
  return this.connector.getDocumentContent(id, thumbnail).then((result) => {
1335
1408
  if (result.validationResult && result.validationResult.success) {
@@ -1485,6 +1558,17 @@ class IOneConnectorAdapterService {
1485
1558
  });
1486
1559
  });
1487
1560
  }
1561
+ getCashRegisters(branch, group) {
1562
+ return __awaiter(this, void 0, void 0, function* () {
1563
+ const response = yield this.connector.getCashRegister(branch, group);
1564
+ if (response.validationResult && response.validationResult.success) {
1565
+ return this._boFactory.makeBOArrayFromRawBackendDataArray(CashRegister, response.resultObjects);
1566
+ }
1567
+ else {
1568
+ return [];
1569
+ }
1570
+ });
1571
+ }
1488
1572
  getRelationNumber(relationId) {
1489
1573
  return __awaiter(this, void 0, void 0, function* () {
1490
1574
  return new Promise((resolve, reject) => {
@@ -1546,7 +1630,7 @@ class IOneConnectorAdapterService {
1546
1630
  return new Promise((resolve, reject) => {
1547
1631
  return this.connector.getDeliveryMethods().then((result) => {
1548
1632
  if (result.validationResult && result.validationResult.success) {
1549
- resolve(result.resultObjects);
1633
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(DeliveryMethod, result.resultObjects));
1550
1634
  }
1551
1635
  else {
1552
1636
  reject(result.validationMessagesAsString);
@@ -1560,7 +1644,7 @@ class IOneConnectorAdapterService {
1560
1644
  return new Promise((resolve, reject) => {
1561
1645
  return this.connector.getDeliveryOptions().then((result) => {
1562
1646
  if (result.validationResult && result.validationResult.success) {
1563
- resolve(result.resultObjects);
1647
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(DeliveryMethod, result.resultObjects));
1564
1648
  }
1565
1649
  else {
1566
1650
  reject(result.validationMessagesAsString);
@@ -1574,7 +1658,7 @@ class IOneConnectorAdapterService {
1574
1658
  return new Promise((resolve, reject) => {
1575
1659
  return this.connector.addRelationToTransaction(uuid, relationId).then((result) => {
1576
1660
  if (result.validationResult && result.validationResult.success) {
1577
- resolve(result.resultObject);
1661
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
1578
1662
  }
1579
1663
  else {
1580
1664
  reject(result.validationMessagesAsString);
@@ -1588,7 +1672,7 @@ class IOneConnectorAdapterService {
1588
1672
  return new Promise((resolve, reject) => {
1589
1673
  return this.connector.setTransactionDeliveryOptions(transactionDeliveryOptionsRequest).then((result) => {
1590
1674
  if (result.validationResult && result.validationResult.success) {
1591
- resolve(result.resultObject);
1675
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
1592
1676
  }
1593
1677
  else {
1594
1678
  reject(result.validationMessagesAsString);
@@ -1946,6 +2030,7 @@ class PendingReasonService {
1946
2030
  this.applicationUser = false;
1947
2031
  this.currentTransaction = new TransactionInfoResponse();
1948
2032
  this.relation = new CustomerFullObject();
2033
+ this.deliveryOptions = new SetTransactionDeliveryOptionsRequest();
1949
2034
  this.articleAmount = 0;
1950
2035
  }
1951
2036
  init(options) {
@@ -2152,6 +2237,9 @@ class TransactionService extends PendingReasonService {
2152
2237
  return yield this.connector.getArticleFullObject(goodId);
2153
2238
  });
2154
2239
  }
2240
+ getDocumentContent(id) {
2241
+ return this.connector.getDocumentContent(id);
2242
+ }
2155
2243
  getGoodIdFromArticleNr(sku) {
2156
2244
  return __awaiter(this, void 0, void 0, function* () {
2157
2245
  return yield this.connector.getGoodIdFromArticleNr(sku);
@@ -2162,6 +2250,11 @@ class TransactionService extends PendingReasonService {
2162
2250
  return yield this.connector.getCountry(countryCode);
2163
2251
  });
2164
2252
  }
2253
+ getCashRegisters() {
2254
+ return __awaiter(this, void 0, void 0, function* () {
2255
+ return this.connector.getCashRegisters(undefined, 1);
2256
+ });
2257
+ }
2165
2258
  getRelationNumber(relationId) {
2166
2259
  return __awaiter(this, void 0, void 0, function* () {
2167
2260
  return this.connector.getRelationNumber(relationId);
@@ -2611,46 +2704,57 @@ class CheckoutComponent {
2611
2704
  return __awaiter(this, void 0, void 0, function* () {
2612
2705
  if (this.checkoutRelation && this.stepRelation) {
2613
2706
  const valid = this.checkoutRelation.submit();
2614
- this.stepRelation.completed = valid;
2615
- if (valid) {
2616
- this.saveRelation();
2617
- }
2707
+ this.stepRelation.completed = yield this.saveRelation();
2708
+ // if (valid) {
2709
+ // this.saveRelation();
2710
+ // }
2618
2711
  }
2619
2712
  });
2620
2713
  }
2621
2714
  handleDeliveryValidation() {
2622
- if (this.checkoutDelivery && this.stepDelivery) {
2623
- const valid = this.checkoutDelivery.submit();
2624
- this.stepDelivery.completed = valid;
2625
- if (valid) {
2626
- this.handleSaveDelivery();
2715
+ return __awaiter(this, void 0, void 0, function* () {
2716
+ if (this.checkoutDelivery && this.stepDelivery) {
2717
+ const valid = this.checkoutDelivery.submit();
2718
+ this.stepDelivery.completed = yield this.handleSaveDelivery();
2719
+ // if (valid) {
2720
+ // this.handleSaveDelivery();
2721
+ // }
2627
2722
  }
2723
+ });
2724
+ }
2725
+ handlePaymentValidation() {
2726
+ if ( /*this.checkoutDelivery && */this.stepPayment) {
2727
+ this.stepPayment.completed = true;
2728
+ }
2729
+ }
2730
+ handleOverviewValidation() {
2731
+ if ( /*this.checkoutDelivery && */this.stepOverview) {
2732
+ this.stepOverview.completed = true;
2628
2733
  }
2629
2734
  }
2735
+ handleFinishStep() {
2736
+ return __awaiter(this, void 0, void 0, function* () {
2737
+ if ( /*this.checkoutDelivery && */this.stepPay) {
2738
+ this.stepPay.completed = true;
2739
+ const response = yield this.service.saveTransaction();
2740
+ if (response && response.isSuccess) {
2741
+ // const commitResponse: DataServiceResponseData = await this.service.commit();
2742
+ // if (commitResponse && commitResponse.validationResult && commitResponse.validationResult.success) {
2743
+ this.transactionFinished.next(this.service.currentTransaction.transactionInfo);
2744
+ // }
2745
+ }
2746
+ else {
2747
+ yield this._dialogService.showError("Opslag bezorging mislukt");
2748
+ }
2749
+ }
2750
+ });
2751
+ }
2630
2752
  saveRelation() {
2631
2753
  return this.service.saveRelation();
2632
2754
  }
2633
2755
  handleSaveDelivery() {
2634
2756
  return __awaiter(this, void 0, void 0, function* () {
2635
- return new Promise((resolve, reject) => {
2636
- this.service.setTransactionDeliveryOptions().then((response) => __awaiter(this, void 0, void 0, function* () {
2637
- if (response) {
2638
- const response = yield this.service.saveTransaction();
2639
- if (response && response.isSuccess) {
2640
- const commitResponse = yield this.service.commit();
2641
- if (commitResponse && commitResponse.validationResult && commitResponse.validationResult.success) {
2642
- this.transactionFinished.next(this.service.currentTransaction.transactionInfo);
2643
- }
2644
- }
2645
- }
2646
- else {
2647
- yield this._dialogService.showError("Opslag bezorging mislukt");
2648
- }
2649
- resolve(true);
2650
- })).catch((reason) => {
2651
- this._dialogService.showError("Opslag transactie mislukt");
2652
- });
2653
- });
2757
+ return this.service.setTransactionDeliveryOptions();
2654
2758
  });
2655
2759
  }
2656
2760
  }
@@ -2658,16 +2762,30 @@ CheckoutComponent.decorators = [
2658
2762
  { type: Component, args: [{
2659
2763
  selector: "co-checkout",
2660
2764
  template: `
2661
- <co-stepper [finishButtonLabel]="'CHECKOUT_FINISH' | localize" (finishStep)="handleDeliveryValidation()">
2765
+ <co-stepper [finishButtonLabel]="'CHECKOUT_FINISH' | localize" (finishStep)="handleFinishStep()">
2662
2766
  <co-stepper-step #stepRelation [index]="1" [label]="'YOUR_DATA' | localize" (validateStep)="handleRelationValidation()">
2663
- <co-checkout-overview-relation-edit #checkoutRelation [(relation)]="service.relation" (relationChange)="service.relation = $event"
2767
+ <co-checkout-overview-relation-edit #checkoutRelation *ngIf="stepRelation.show" [(relation)]="service.relation" [deliveryOptionsRequest]="service.deliveryOptions"
2768
+ (relationChange)="service.relation = $event"
2664
2769
  ></co-checkout-overview-relation-edit>
2665
2770
  </co-stepper-step>
2666
- <co-stepper-step #stepDelivery [index]="2" [label]="'DELIVERY' | localize">
2667
- <co-checkout-overview-delivery-edit #checkoutDelivery *ngIf="service.deliveryOptions" [(relation)]="service.relation" [deliveryOptionsRequest]="service.deliveryOptions"
2771
+ <co-stepper-step #stepDelivery [index]="2" [label]="'DELIVERY' | localize" (validateStep)="handleDeliveryValidation()">
2772
+ <co-checkout-overview-delivery-edit #checkoutDelivery *ngIf="stepDelivery.show" [deliveryOptionsRequest]="service.deliveryOptions"
2668
2773
  [transaction]="service.currentTransaction"
2669
2774
  ></co-checkout-overview-delivery-edit>
2670
2775
  </co-stepper-step>
2776
+ <co-stepper-step #stepPayment [index]="3" [label]="'PAYMENT' | localize" (validateStep)="handlePaymentValidation()">
2777
+ <co-payment #checkoutPayment *ngIf="stepPayment.show" [amount]="service.currentTransaction.transactionTotal.netAmount"></co-payment>
2778
+ </co-stepper-step>
2779
+ <co-stepper-step #stepOverview [index]="4" [label]="'OVERVIEW' | localize" (validateStep)="handleOverviewValidation()">
2780
+ </co-stepper-step>
2781
+ <co-stepper-step #stepPay [index]="5" [label]="'PAY' | localize">
2782
+ </co-stepper-step>
2783
+ <div class="co-checkout-right-panel">
2784
+ <div class="co-checkout-right-panel-relation">
2785
+ <co-seller-information [relationId]="sellerId"></co-seller-information>
2786
+ </div>
2787
+ <co-shopping-cart-preview [showCheckoutButton]="false" [withoutBorder]="true"></co-shopping-cart-preview>
2788
+ </div>
2671
2789
  </co-stepper>
2672
2790
  `,
2673
2791
  encapsulation: ViewEncapsulation.None
@@ -2681,16 +2799,47 @@ CheckoutComponent.ctorParameters = () => [
2681
2799
  CheckoutComponent.propDecorators = {
2682
2800
  stepRelation: [{ type: ViewChild, args: ["stepRelation",] }],
2683
2801
  stepDelivery: [{ type: ViewChild, args: ["stepDelivery",] }],
2802
+ stepPayment: [{ type: ViewChild, args: ["stepPayment",] }],
2803
+ stepOverview: [{ type: ViewChild, args: ["stepOverview",] }],
2804
+ stepPay: [{ type: ViewChild, args: ["stepPay",] }],
2684
2805
  checkoutRelation: [{ type: ViewChild, args: ["checkoutRelation",] }],
2685
2806
  checkoutDelivery: [{ type: ViewChild, args: ["checkoutDelivery",] }],
2807
+ checkoutPayment: [{ type: ViewChild, args: ["checkoutPayment",] }],
2808
+ sellerId: [{ type: Input }],
2686
2809
  transactionFinished: [{ type: Output }],
2687
2810
  showClass: [{ type: HostBinding, args: ["class.co-checkout",] }]
2688
2811
  };
2689
2812
 
2813
+ /** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/
2814
+ var Icon;
2815
+ (function (Icon) {
2816
+ Icon["ArrowPointDown"] = "arrow_point_down";
2817
+ Icon["ArrowPointLeft"] = "arrow_point_left";
2818
+ Icon["ArrowPointRight"] = "arrow_point_right";
2819
+ Icon["CalendarDay"] = "calendar_day";
2820
+ Icon["Cancel"] = "cancel";
2821
+ Icon["CashRegister"] = "cash_register";
2822
+ Icon["DeliveryTruck"] = "delivery_truck";
2823
+ Icon["EditPencil"] = "edit_pencil";
2824
+ Icon["IdealLogo"] = "ideal_logo";
2825
+ Icon["MasterDetail"] = "master_detail";
2826
+ Icon["PlusRound"] = "plus_round";
2827
+ Icon["SidePanel"] = "side_panel";
2828
+ Icon["Tag"] = "tag";
2829
+ Icon["ThickLines"] = "thick_lines";
2830
+ Icon["ThinLines"] = "thin_lines";
2831
+ Icon["TriangleDown"] = "triangle_down";
2832
+ Icon["TriangleUp"] = "triangle_up";
2833
+ Icon["Truck"] = "truck";
2834
+ Icon["Txt"] = "txt";
2835
+ })(Icon || (Icon = {}));
2836
+
2690
2837
  class CheckoutOverviewRelationEditComponent {
2691
- constructor(_service, _formMaster) {
2838
+ constructor(_service, _formMaster, _boFactory) {
2692
2839
  this._service = _service;
2693
2840
  this._formMaster = _formMaster;
2841
+ this._boFactory = _boFactory;
2842
+ this.icons = Icon;
2694
2843
  this.validSubmit = new EventEmitter();
2695
2844
  this.invalidSubmit = new EventEmitter();
2696
2845
  this.relationChange = new EventEmitter();
@@ -2702,6 +2851,13 @@ class CheckoutOverviewRelationEditComponent {
2702
2851
  this.relationSuggestions = [];
2703
2852
  this.showRelationSidebar = false;
2704
2853
  this.inviteToAccount = false;
2854
+ this.addresses = [];
2855
+ this.deliveryAddressIdx = 0;
2856
+ this.invoiceAddressIdx = 0;
2857
+ this.invoiceAddressSameAsDeliveryAddress = true;
2858
+ this.editAddressType = AddressType.DeliveryAddress;
2859
+ this.showSelectAddressDialog = false;
2860
+ this.showCreateAddressDialog = false;
2705
2861
  this.relType = RelationNameKind;
2706
2862
  this.genderType = GenderType;
2707
2863
  this._relation = NULL_RELATION_OBJECT;
@@ -2754,6 +2910,70 @@ class CheckoutOverviewRelationEditComponent {
2754
2910
  // return this.relationForm.submit();
2755
2911
  return this._formMaster.submitSlaves();
2756
2912
  }
2913
+ showNewAddressDialog(deliveryAddress = true) {
2914
+ this.editAddressType = deliveryAddress ? AddressType.DeliveryAddress : AddressType.BillingAddress;
2915
+ this.showCreateAddressDialog = true;
2916
+ }
2917
+ showEditAddressDialog(deliveryAddress = true) {
2918
+ this.editAddressType = deliveryAddress ? AddressType.DeliveryAddress : AddressType.BillingAddress;
2919
+ this.showSelectAddressDialog = true;
2920
+ }
2921
+ setIndexDeliveryAddress(idx) {
2922
+ this.deliveryAddressIdx = idx;
2923
+ this.editAddressType = AddressType.DeliveryAddress;
2924
+ this.selectAddress(this.relation.addresses[idx]);
2925
+ }
2926
+ setIndexInvoiceAddress(idx) {
2927
+ this.invoiceAddressIdx = idx;
2928
+ this.editAddressType = AddressType.BillingAddress;
2929
+ this.selectAddress(this.relation.addresses[idx]);
2930
+ }
2931
+ editAddress(addr) {
2932
+ this.addressToEdit = this._boFactory.makeWithRawBackendData(Address, addr);
2933
+ this.showEditAddressDialog();
2934
+ }
2935
+ checkSameAddress(checked) {
2936
+ if (checked) {
2937
+ this.editAddressType = AddressType.DeliveryAddress;
2938
+ this.selectAddress(this.deliveryAddress);
2939
+ }
2940
+ }
2941
+ saveNewAddress(address) {
2942
+ address.addressType = this.editAddressType;
2943
+ this.relation.addresses.push(address);
2944
+ this.selectAddress(address);
2945
+ this.showCreateAddressDialog = false;
2946
+ }
2947
+ saveAddress(address) {
2948
+ const idx = this.relation.addresses.findIndex(a => a.nawNr === address.nawNr);
2949
+ if (idx > -1) {
2950
+ this.relation.addresses[idx] = this._boFactory.makeWithRawBackendData(Address, address);
2951
+ }
2952
+ this.showSelectAddressDialog = false;
2953
+ }
2954
+ selectAddress(address) {
2955
+ if (!this.deliveryOptionsRequest) {
2956
+ return;
2957
+ }
2958
+ if (!address) {
2959
+ address = this._service.getFirstAddress(this.relation);
2960
+ }
2961
+ if (!address) {
2962
+ return;
2963
+ }
2964
+ this._setCountryNameToAddress(address);
2965
+ if (this.editAddressType === AddressType.DeliveryAddress) {
2966
+ this.deliveryOptionsRequest.transactionAddress = address.nawNr;
2967
+ this.deliveryAddress = address;
2968
+ this.deliveryAddressIdx = this.relation.addresses.findIndex(a => a.nawNr === this.deliveryAddress.nawNr);
2969
+ }
2970
+ if (this.invoiceAddressSameAsDeliveryAddress || this.editAddressType !== AddressType.DeliveryAddress) {
2971
+ this.deliveryOptionsRequest.invoiceAddress = address.nawNr;
2972
+ this.invoiceAddress = address;
2973
+ this.invoiceAddressIdx = this.relation.addresses.findIndex(a => a.nawNr === this.invoiceAddress.nawNr);
2974
+ }
2975
+ this.showSelectAddressDialog = false;
2976
+ }
2757
2977
  preparePrimaryEmail() {
2758
2978
  if (this._relation) {
2759
2979
  this.emailAddress = this._relation.getLowestSequenceOfContactOptionsWithType(CommunicationType.Email);
@@ -2814,6 +3034,11 @@ class CheckoutOverviewRelationEditComponent {
2814
3034
  }
2815
3035
  this._relationNameChangeHandler.call(this);
2816
3036
  }
3037
+ checkVisibilitySuggestions() {
3038
+ if (this._relation.firstName && this._relation.familyName) {
3039
+ this.hideSidebar();
3040
+ }
3041
+ }
2817
3042
  onRelationSuggestionClick(relationSuggested) {
2818
3043
  return __awaiter(this, void 0, void 0, function* () {
2819
3044
  if (relationSuggested) {
@@ -2836,8 +3061,11 @@ class CheckoutOverviewRelationEditComponent {
2836
3061
  showSidebar() {
2837
3062
  this.showRelationSidebar = true;
2838
3063
  }
3064
+ // Hide sidebar with a little timeout to prevent missing the click
2839
3065
  hideSidebar() {
2840
- this.showRelationSidebar = false;
3066
+ setTimeout(() => {
3067
+ this.showRelationSidebar = false;
3068
+ }, 200);
2841
3069
  }
2842
3070
  _initForm() {
2843
3071
  if (this.relationForm) {
@@ -2866,133 +3094,197 @@ class CheckoutOverviewRelationEditComponent {
2866
3094
  this.relationSuggestions = yield this._service.getRelationListObjects(relationRequest);
2867
3095
  });
2868
3096
  }
3097
+ _setCountryNameToAddress(address) {
3098
+ return __awaiter(this, void 0, void 0, function* () {
3099
+ if (address.countryId && !address.countryName) {
3100
+ const country = yield this._service.getCountry(address.countryId);
3101
+ address.countryName = country.description;
3102
+ }
3103
+ });
3104
+ }
2869
3105
  }
2870
3106
  CheckoutOverviewRelationEditComponent.decorators = [
2871
3107
  { type: Component, args: [{
2872
3108
  selector: "co-checkout-overview-relation-edit",
2873
3109
  template: `
2874
- <co-form>
2875
- <div class="checkout-form-wrapper">
2876
- <div class="checkout-label-column">
2877
- <span>01</span>
2878
- <span class="label" [textContent]="'PERSONAL_DATA' | localize"></span>
2879
- </div>
2880
- <div class="checkout-data-column">
2881
- <div class="checkout-data-row">
2882
- <co-input-radio-button class="default-width"
2883
- [name]="'type'"
2884
- [label]="'PRIVATE_PERSON' | localize"
2885
- [value]="relType.Private"
2886
- [checked]="relation.type === relType.Private"
2887
- (modelChange)="changeRelationType(relType.Private)"
2888
- ></co-input-radio-button>
2889
- <co-input-radio-button class="default-width"
2890
- [name]="'type'"
2891
- [label]="'COMPANY' | localize"
2892
- [value]="relType.Company"
2893
- [(model)]="relation.type"
2894
- [checked]="relation.type === relType.Company"
2895
- (modelChange)="changeRelationType(relType.Company)"
2896
- ></co-input-radio-button>
2897
- </div>
2898
- <div class="checkout-data-row">
2899
- <relation-customer-groups [(model)]="relation.customerGroup" required></relation-customer-groups>
3110
+ <div class="relation-edit-content">
3111
+ <co-form>
3112
+ <div class="checkout-form-wrapper">
3113
+ <div class="checkout-label-column">
3114
+ <span>01</span>
3115
+ <span class="label" [textContent]="'PERSONAL_DATA' | localize"></span>
2900
3116
  </div>
2901
- <div *ngIf="relation.type === relType.Private" class="collapseable" @showHidePrivateRelationFields>
2902
- <div class="checkout-data-row">
2903
- <co-input-text
2904
- class="checkout-first-name"
2905
- [(model)]="relation.firstName"
2906
- [placeholder]="'FIRST_NAME' | localize"
2907
- (modelChange)="firstNameChange($event)"
2908
- [required]="true"
2909
- ></co-input-text>
2910
- <co-input-text
2911
- class="checkout-prefix-name default-width"
2912
- [(model)]="relation.prefix"
2913
- [placeholder]="'PREFIX' | localize"
2914
- ></co-input-text>
2915
- <co-input-text
2916
- class="checkout-last-name"
2917
- [(model)]="relation.familyName"
2918
- [placeholder]="'LAST_NAME' | localize"
2919
- (modelChange)="familyNameChange($event)"
2920
- [required]="true"></co-input-text>
2921
- </div>
3117
+ <div class="checkout-data-column">
2922
3118
  <div class="checkout-data-row">
2923
3119
  <co-input-radio-button class="default-width"
2924
- [name]="'gender'"
2925
- [label]="'MALE' | localize"
2926
- [value]="genderType.Male"
2927
- [checked]="relation.gender === genderType.Male"
2928
- (modelChange)="changeGenderType(genderType.Male)"
2929
- ></co-input-radio-button>
2930
- <co-input-radio-button class="default-width"
2931
- [name]="'gender'"
2932
- [label]="'FEMALE' | localize "
2933
- [value]="genderType.Female"
2934
- [checked]="relation.gender === genderType.Female"
2935
- (modelChange)="changeGenderType(genderType.Female)"
3120
+ [name]="'type'"
3121
+ [label]="'PRIVATE_PERSON' | localize"
3122
+ [value]="relType.Private"
3123
+ [checked]="relation.type === relType.Private"
3124
+ (modelChange)="changeRelationType(relType.Private)"
2936
3125
  ></co-input-radio-button>
2937
3126
  <co-input-radio-button class="default-width"
2938
- [name]="'gender'"
2939
- [label]="'UNKNOWN' | localize"
2940
- [value]="genderType.Unspecified"
2941
- [checked]="relation.gender === genderType.Unspecified"
2942
- (modelChange)="changeGenderType(genderType.Unspecified)"
3127
+ [name]="'type'"
3128
+ [label]="'COMPANY' | localize"
3129
+ [value]="relType.Company"
3130
+ [(model)]="relation.type"
3131
+ [checked]="relation.type === relType.Company"
3132
+ (modelChange)="changeRelationType(relType.Company)"
2943
3133
  ></co-input-radio-button>
2944
3134
  </div>
2945
3135
  <div class="checkout-data-row">
2946
- <co-input-date [placeholder]="'DATE_OF_BIRTH' | localize " [(model)]="dateOfBirth" [required]="true"></co-input-date>
2947
- <co-input-text [(model)]="phoneNumber.value" [placeholder]="'PHONE_NO' | localize " [required]="true"></co-input-text>
3136
+ <relation-customer-groups [(model)]="relation.customerGroup" required></relation-customer-groups>
3137
+ </div>
3138
+ <div *ngIf="relation.type === relType.Private" class="collapseable" @showHidePrivateRelationFields>
3139
+ <div class="checkout-data-row">
3140
+ <co-input-text
3141
+ class="checkout-first-name"
3142
+ [(model)]="relation.firstName"
3143
+ [placeholder]="'FIRST_NAME' | localize"
3144
+ (modelChange)="firstNameChange($event)"
3145
+ (blur)="checkVisibilitySuggestions()"
3146
+ [required]="true"
3147
+ ></co-input-text>
3148
+ <co-input-text
3149
+ class="checkout-prefix-name default-width"
3150
+ [(model)]="relation.prefix"
3151
+ [placeholder]="'PREFIX' | localize"
3152
+ ></co-input-text>
3153
+ <co-input-text
3154
+ class="checkout-last-name"
3155
+ [(model)]="relation.familyName"
3156
+ [placeholder]="'LAST_NAME' | localize"
3157
+ (modelChange)="familyNameChange($event)"
3158
+ (blur)="checkVisibilitySuggestions()"
3159
+ [required]="true"></co-input-text>
3160
+ </div>
3161
+ <div class="checkout-data-row">
3162
+ <co-input-radio-button class="default-width"
3163
+ [name]="'gender'"
3164
+ [label]="'MALE' | localize"
3165
+ [value]="genderType.Male"
3166
+ [checked]="relation.gender === genderType.Male"
3167
+ (modelChange)="changeGenderType(genderType.Male)"
3168
+ ></co-input-radio-button>
3169
+ <co-input-radio-button class="default-width"
3170
+ [name]="'gender'"
3171
+ [label]="'FEMALE' | localize "
3172
+ [value]="genderType.Female"
3173
+ [checked]="relation.gender === genderType.Female"
3174
+ (modelChange)="changeGenderType(genderType.Female)"
3175
+ ></co-input-radio-button>
3176
+ <co-input-radio-button class="default-width"
3177
+ [name]="'gender'"
3178
+ [label]="'UNKNOWN' | localize"
3179
+ [value]="genderType.Unspecified"
3180
+ [checked]="relation.gender === genderType.Unspecified"
3181
+ (modelChange)="changeGenderType(genderType.Unspecified)"
3182
+ ></co-input-radio-button>
3183
+ </div>
3184
+ <div class="checkout-data-row">
3185
+ <co-input-date [placeholder]="'DATE_OF_BIRTH' | localize " [(model)]="dateOfBirth" [required]="true"></co-input-date>
3186
+ </div>
3187
+ </div>
3188
+ <div *ngIf="relation?.type === relType.Company" class="checkout-data-row collapseable" @showHideCompanyRelationFields>
3189
+ <co-input-text [(model)]="relation.familyName" [placeholder]="'COMPANY_NAME' | localize" [required]="true"></co-input-text>
2948
3190
  </div>
3191
+ <co-relation-address [address]="editFirstAddress" [showButtons]="false"></co-relation-address>
2949
3192
  </div>
2950
- <div *ngIf="relation?.type === relType.Company" class="checkout-data-row collapseable" @showHideCompanyRelationFields>
2951
- <co-input-text [(model)]="relation.familyName" [placeholder]="'COMPANY_NAME' | localize" [required]="true"></co-input-text>
3193
+ <div class="checkout-data-column">
3194
+ <div class="checkout-data-row">
3195
+ <co-carousel-3d *ngIf="relation.addresses && relation.addresses.length > 1"
3196
+ [tileWidth]="200"
3197
+ [tileHeight]="100"
3198
+ [selectedIndex]="deliveryAddressIdx"
3199
+ (indexSelected)="setIndexDeliveryAddress($event)">
3200
+ <co-relation-address-tile #carouselItem *ngFor="let address of relation.addresses; let index = index"
3201
+ [address]="address"
3202
+ [selected]="deliveryAddressIdx === index"
3203
+ (editAddressClicked)="editAddress($event)"
3204
+ ></co-relation-address-tile>
3205
+ </co-carousel-3d>
3206
+ </div>
3207
+ <div class="checkout-data-row">
3208
+ <div class="relation-address-new">
3209
+ <icon class="relation-address-icon" [icon]="icons.ArrowPointRight"></icon>
3210
+ <div [textContent]="'ADDRESS_ADD' | localize" (click)="showNewAddressDialog()"></div>
3211
+ </div>
3212
+ </div>
2952
3213
  </div>
2953
- </div>
2954
- <div class="checkout-label-column">
2955
- <span>02</span>
2956
- <span class="label" [textContent]="'DELIVERY_ADDRESS' | localize"></span>
2957
- </div>
2958
- <div class="checkout-data-column">
2959
- <co-relation-address [address]="editFirstAddress" [showButtons]="false"></co-relation-address>
2960
- </div>
2961
- <div class="checkout-label-column">
2962
- <span>03</span>
2963
- <span class="label" [textContent]="'LOGIN_DETAILS' | localize"></span>
2964
- <span class="label-description" [textContent]="'ACCOUNT_EXPLANATION' | localize"></span>
2965
- </div>
2966
- <div class="checkout-data-column">
2967
- <div class="checkout-data-row">
2968
- <co-input-text [(model)]="emailAddress.value" [placeholder]="'EMAIL_ADDRESS' | localize " [type]="'email'" [required]="true"></co-input-text>
3214
+
3215
+ <div class="checkout-label-column">
3216
+ <span>02</span>
3217
+ <span class="label" [textContent]="'INVOICE_ADDRESS' | localize"></span>
2969
3218
  </div>
2970
- <div *ngIf="!applicationUser" class="checkout-data-row">
2971
- <co-input-text [(model)]="accountPassword" [placeholder]="'PASSWORD' | localize " [type]="'password'" [required]="true"></co-input-text>
3219
+ <div class="checkout-data-column">
3220
+ <div class="checkout-data-row">
3221
+ <co-input-checkbox [(model)]="invoiceAddressSameAsDeliveryAddress" (modelChange)="checkSameAddress($event)" [label]="'SAME_AS_DELIVERY' | localize"></co-input-checkbox>
3222
+ </div>
3223
+ <div class="overview-delivery-invoice-address" *ngIf="!invoiceAddressSameAsDeliveryAddress" @showHideInvoiceAddress>
3224
+ <div class="checkout-data-row">
3225
+ <co-carousel-3d *ngIf="relation.addresses && relation.addresses.length > 1"
3226
+ [tileWidth]="200"
3227
+ [tileHeight]="100"
3228
+ [selectedIndex]="invoiceAddressIdx"
3229
+ (indexSelected)="setIndexInvoiceAddress($event)">
3230
+ <co-relation-address-tile #carouselItem *ngFor="let address of relation.addresses; let index = index"
3231
+ [address]="address"
3232
+ [selected]="invoiceAddressIdx === index"
3233
+ (editAddressClicked)="editAddress($event)"
3234
+ ></co-relation-address-tile>
3235
+ </co-carousel-3d>
3236
+ </div>
3237
+ <div class="checkout-data-row">
3238
+ <div class="relation-address-new">
3239
+ <icon class="relation-address-icon" [icon]="icons.ArrowPointRight"></icon>
3240
+ <div [textContent]="'ADDRESS_ADD' | localize" (click)="showNewAddressDialog()"></div>
3241
+ </div>
3242
+ </div>
3243
+ </div>
2972
3244
  </div>
2973
- <div *ngIf="applicationUser" class="checkout-data-row">
2974
- <co-input-checkbox [label]="'INVITE_TO_ACCOUNT' | localize" [(model)]="inviteToAccount"></co-input-checkbox>
3245
+ <div class="checkout-label-column">
3246
+ <span>03</span>
3247
+ <span class="label" [textContent]="'CONTACT_DETAILS' | localize"></span>
2975
3248
  </div>
2976
- </div>
2977
- <div class="checkout-label-column">
2978
- <span>04</span>
2979
- <span class="label" [textContent]="'PRIVACY_PREFERENCES' | localize"></span>
2980
- </div>
2981
- <div class="checkout-data-column">
2982
- <div class="two-column-grid">
2983
- <ng-container *ngFor="let privacySetting of privacySettings">
2984
- <co-input-checkbox class="first-column"
2985
- [label]="privacySetting.description"
2986
- [model]="isShared(privacySetting)"
2987
- (modelChange)="changePrivacySetting(privacySetting, $event)"
2988
- ></co-input-checkbox>
2989
- <span class="second-column" [textContent]="privacySetting.explanation"></span>
2990
- </ng-container>
3249
+ <div class="checkout-data-column">
3250
+ <div class="checkout-data-row">
3251
+ <co-input-text [(model)]="phoneNumber.value" [placeholder]="'PHONE_NO' | localize " [required]="true"></co-input-text>
3252
+ </div>
3253
+ <div class="checkout-data-row">
3254
+ <co-input-text [(model)]="emailAddress.value" [placeholder]="'EMAIL_ADDRESS' | localize " [type]="'email'" [required]="true"></co-input-text>
3255
+ </div>
3256
+ <!--
3257
+ </div>
3258
+ <div class="checkout-label-column">
3259
+ <span>04</span>
3260
+ <span class="label" [textContent]="'PASSWORD' | localize"></span>
3261
+ <span class="label-description" [textContent]="'ACCOUNT_EXPLANATION' | localize"></span>
3262
+ </div>
3263
+ <div class="checkout-data-column">
3264
+ -->
3265
+ <div class="checkout-data-row">
3266
+ <co-input-checkbox [label]="'INVITE_TO_ACCOUNT' | localize" [(model)]="inviteToAccount"></co-input-checkbox>
3267
+ </div>
3268
+ </div>
3269
+ <div class="checkout-label-column">
3270
+ <span>04</span>
3271
+ <span class="label" [textContent]="'PRIVACY_PREFERENCES' | localize"></span>
3272
+ </div>
3273
+ <div class="checkout-data-column">
3274
+ <div class="two-column-grid">
3275
+ <ng-container *ngFor="let privacySetting of privacySettings">
3276
+ <co-input-checkbox class="first-column"
3277
+ [label]="privacySetting.description"
3278
+ [model]="isShared(privacySetting)"
3279
+ (modelChange)="changePrivacySetting(privacySetting, $event)"
3280
+ ></co-input-checkbox>
3281
+ <span class="second-column" [textContent]="privacySetting.explanation"></span>
3282
+ </ng-container>
3283
+ </div>
2991
3284
  </div>
2992
3285
  </div>
2993
- </div>
2994
- </co-form>
2995
-
3286
+ </co-form>
3287
+ </div>
2996
3288
  <div class="suggestions-sidebar" *ngIf="showRelationSidebar" @showHideSidebar>
2997
3289
  <div class="relation-sidebar-header">
2998
3290
  <label class="checkout-label-h3" [textContent]="'SUGGESTIONS' | localize"></label>
@@ -3002,14 +3294,27 @@ CheckoutOverviewRelationEditComponent.decorators = [
3002
3294
  (suggestionSelected)="onRelationSuggestionClick($event)"
3003
3295
  ></co-checkout-relation-suggestions-list>
3004
3296
  </div>
3005
- `,
3006
- providers: [
3007
- FormMasterService
3008
- ],
3009
- animations: [
3010
- trigger("showHidePrivateRelationFields", [
3011
- state("void", style({ height: 0 })),
3012
- state("*", style({ height: "*" })),
3297
+ <co-dialog *ngIf="showCreateAddressDialog">
3298
+ <co-relation-address
3299
+ (saveClick)="saveNewAddress($event)"
3300
+ (cancelClick)="showCreateAddressDialog = false"
3301
+ ></co-relation-address>
3302
+ </co-dialog>
3303
+ <co-dialog *ngIf="showSelectAddressDialog && addressToEdit">
3304
+ <co-relation-address
3305
+ [address]="addressToEdit"
3306
+ (saveClick)="saveAddress($event)"
3307
+ (cancelClick)="showSelectAddressDialog = false"
3308
+ ></co-relation-address>
3309
+ </co-dialog>
3310
+ `,
3311
+ providers: [
3312
+ FormMasterService
3313
+ ],
3314
+ animations: [
3315
+ trigger("showHidePrivateRelationFields", [
3316
+ state("void", style({ height: 0 })),
3317
+ state("*", style({ height: "*" })),
3013
3318
  transition("void => *", animate("200ms ease-in-out")),
3014
3319
  transition("* => void", animate("200ms ease-out"))
3015
3320
  ]),
@@ -3023,6 +3328,12 @@ CheckoutOverviewRelationEditComponent.decorators = [
3023
3328
  state("void", style({ transform: "translateX(100%)" })),
3024
3329
  state("*", style({ transform: "translateX(0)" })),
3025
3330
  transition("void <=> *", animate("200ms ease-in-out"))
3331
+ ]),
3332
+ trigger("showHideInvoiceAddress", [
3333
+ state("void", style({ height: 0, opacity: 0 })),
3334
+ state("*", style({ height: "*", opacity: 1 })),
3335
+ transition("void => *", animate("200ms ease-in-out")),
3336
+ transition("* => void", animate("200ms ease-out"))
3026
3337
  ])
3027
3338
  ],
3028
3339
  encapsulation: ViewEncapsulation.None
@@ -3030,11 +3341,13 @@ CheckoutOverviewRelationEditComponent.decorators = [
3030
3341
  ];
3031
3342
  CheckoutOverviewRelationEditComponent.ctorParameters = () => [
3032
3343
  { type: TransactionService },
3033
- { type: FormMasterService }
3344
+ { type: FormMasterService },
3345
+ { type: BusinessObjectFactory }
3034
3346
  ];
3035
3347
  CheckoutOverviewRelationEditComponent.propDecorators = {
3036
3348
  relationForm: [{ type: ViewChild, args: [FormComponent, { static: true },] }],
3037
3349
  relation: [{ type: Input }],
3350
+ deliveryOptionsRequest: [{ type: Input }],
3038
3351
  validSubmit: [{ type: Output }],
3039
3352
  invalidSubmit: [{ type: Output }],
3040
3353
  relationChange: [{ type: Output }],
@@ -3042,38 +3355,95 @@ CheckoutOverviewRelationEditComponent.propDecorators = {
3042
3355
  };
3043
3356
 
3044
3357
  /** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/
3045
- var Icon;
3046
- (function (Icon) {
3047
- Icon["ArrowPointDown"] = "arrow_point_down";
3048
- Icon["ArrowPointLeft"] = "arrow_point_left";
3049
- Icon["ArrowPointRight"] = "arrow_point_right";
3050
- Icon["CalendarDay"] = "calendar_day";
3051
- Icon["Cancel"] = "cancel";
3052
- Icon["DeliveryTruck"] = "delivery_truck";
3053
- Icon["EditPencil"] = "edit_pencil";
3054
- Icon["PlusRound"] = "plus_round";
3055
- Icon["Tag"] = "tag";
3056
- Icon["ThickLines"] = "thick_lines";
3057
- Icon["ThinLines"] = "thin_lines";
3058
- Icon["Txt"] = "txt";
3059
- })(Icon || (Icon = {}));
3358
+ const IconSvg = {
3359
+ "arrow_point_down": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-280 371 51 51\" enable-background=\"new -280 371 51 51\" ><path fill=\"#29363E\" d=\"M-248.3,392.2c0.3,0,0.6,0.1,0.8,0.3c0.5,0.5,0.5,1.2,0,1.6l-6.2,6.2c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-6.2-6.2c-0.2-0.2-0.3-0.5-0.3-0.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l5.4,5.4l5.4-5.4C-248.9,392.4-248.6,392.2-248.3,392.2z\"/></svg>",
3360
+ "arrow_point_left": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\"/></svg>",
3361
+ "arrow_point_right": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\"/></svg>",
3362
+ "calendar_day": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" ><g><path fill=\"#022D42\" d=\"M35.4,13.7H14.6c-0.6,0-1,0.5-1,1V20h22.9v-5.2C36.4,14.2,36,13.7,35.4,13.7z M19,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8c1,0,1.8,0.8,1.8,1.8C20.8,18,20,18.8,19,18.8z M31,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8C32.7,18,32,18.8,31,18.8z\"/><path fill=\"#022D42\" d=\"M35.4,22.3v12.6L31.3,39H14.6c0,0,0,0,0,0V22.3H35.4 M36.4,21.3H13.6V39c0,0.6,0.5,1,1,1h17.2l4.7-4.7V21.3L36.4,21.3z\"/><rect x=\"18.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"30.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"18.6\" y=\"30.5\" fill=\"#022D42\" width=\"3.4\" height=\"3.4\"/><rect x=\"19.1\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/></g></svg>",
3363
+ "cancel": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"36 35.16 30.45 35.16 14 14.84 19.55 14.84 36 35.16\" fill=\"#484f60\"/><polygon points=\"14 35.16 19.55 35.16 36 14.84 30.45 14.84 14 35.16\" fill=\"#484f60\"/></svg>",
3364
+ "cash_register": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M35.39,18.12H14.62L10,29.66H40ZM23,19.29H27l.1,1.6H22.87Zm-.13,2h4.32l.12,1.81H22.72Zm-.15,2.3h4.62l.14,2.08h-4.9ZM17.9,19.29H22l-.16,1.6H17.54Zm-.46,2h4.32l-.18,1.81H17Zm-.53,2.3h4.62l-.2,2.08h-4.9Zm-1.16,5.06.55-2.42H27.49l.16,2.42ZM28,19.29H32.1l.36,1.6H28.2Zm.2,2h4.32L33,23.12H28.42Zm.23,2.3h4.62l.48,2.08h-4.9Zm.5,5.06-.24-2.42h5l.55,2.42Z\" fill=\"#484f60\"/><path d=\"M10,29.66v9.23H40V29.66Zm27.69,6.92H12.31V32H37.69Z\" fill=\"#484f60\"/><path d=\"M15.63,11.11v7.58H34.37V11.11Zm17.31,6.15H17.06V12.54H32.94Z\" fill=\"#484f60\"/></svg>",
3365
+ "delivery_truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"15.35\" y=\"16.56\" width=\"15.14\" height=\"10.94\" transform=\"translate(-1.83 2.08) rotate(-5)\" fill=\"#484f60\"/><path d=\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\" fill=\"#484f60\"/><path d=\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\" fill=\"#484f60\"/><path d=\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\" fill=\"#484f60\"/><path d=\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\" fill=\"#484f60\"/><rect x=\"7.96\" y=\"17.63\" width=\"5\" height=\"1\" transform=\"translate(-1.54 0.98) rotate(-5)\" fill=\"#484f60\"/><rect x=\"11.02\" y=\"29.71\" width=\"3\" height=\"1\" transform=\"translate(-2.59 1.21) rotate(-5)\" fill=\"#484f60\"/><rect x=\"9.48\" y=\"23.53\" width=\"4\" height=\"1\" transform=\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\" fill=\"#484f60\"/></svg>",
3366
+ "edit_pencil": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"12.54 38.16 12 37.62 14.85 29.64 20.52 35.31 12.54 38.16\" fill=\"#484f60\"/><rect x=\"16.33\" y=\"20.52\" width=\"17.99\" height=\"8.64\" transform=\"translate(-10.15 25.18) rotate(-45)\" fill=\"#484f60\"/><path d=\"M37.54,18.73,36,20.32l-6.11-6.1,1.59-1.59a1.55,1.55,0,0,1,2.2,0l3.91,3.9A1.55,1.55,0,0,1,37.54,18.73Z\" fill=\"#484f60\"/></svg>",
3367
+ "ideal_logo": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 306.1 269.8\" style=\"enable-background:new 0 0 306.1 269.8;\" ><style type=\"text/css\">.st0{fill:#FFFFFF;}.st1{fill:#CC0066;}</style><g><g><path class=\"st0\" d=\"M0,20v229.8c0,11,9,20,20,20h137.3c103.8,0,148.8-58.1,148.8-135.2C306.1,57.9,261.1,0,157.3,0H20C9,0,0,9,0,20z\"/><path class=\"st1\" d=\"M91.9,56.4v169.8h73.9c67.1,0,96.2-37.9,96.2-91.5c0-51.3-29.1-91.1-96.2-91.1h-61.1C97.6,43.6,91.9,49.4,91.9,56.4z\"/><g><g><path d=\"M157.3,251.5H37.9c-10.6,0-19.2-8.6-19.2-19.2V37.6c0-10.6,8.6-19.2,19.2-19.2h119.4c113.3,0,130.2,72.9,130.2,116.3C287.5,210,241.2,251.5,157.3,251.5z M37.9,24.8c-7.1,0-12.8,5.7-12.8,12.8v194.7c0,7.1,5.7,12.8,12.8,12.8h119.4c79.8,0,123.8-39.2,123.8-110.4c0-95.6-77.6-109.9-123.8-109.9H37.9z\"/></g></g></g><g><path class=\"st0\" d=\"M117.9,111.8c2.6,0,5,0.4,7.3,1.2c2.3,0.8,4.2,2.1,5.9,3.7c1.6,1.7,2.9,3.8,3.9,6.2c0.9,2.5,1.4,5.4,1.4,8.8c0,3-0.4,5.7-1.1,8.2c-0.8,2.5-1.9,4.7-3.4,6.5c-1.5,1.8-3.4,3.2-5.7,4.3c-2.3,1-5,1.6-8.1,1.6h-17.5v-40.6H117.9z M117.3,144.9c1.3,0,2.5-0.2,3.8-0.6c1.2-0.4,2.3-1.1,3.2-2.1c0.9-1,1.7-2.2,2.3-3.8c0.6-1.6,0.9-3.4,0.9-5.7c0-2-0.2-3.9-0.6-5.5c-0.4-1.6-1.1-3.1-2-4.2s-2.1-2.1-3.6-2.7c-1.5-0.6-3.3-0.9-5.5-0.9h-6.4v25.6H117.3z\"/><path class=\"st0\" d=\"M172.5,111.8v7.5h-21.4v8.7h19.7v6.9h-19.7v9.9H173v7.5h-30.8v-40.6H172.5z\"/><path class=\"st0\" d=\"M203.1,111.8l15.2,40.6H209l-3.1-9h-15.2l-3.2,9h-9l15.3-40.6H203.1z M203.6,136.7l-5.1-14.9h-0.1l-5.3,14.9H203.6z\"/><path class=\"st0\" d=\"M232.8,111.8v33.1h19.8v7.5h-28.7v-40.6H232.8z\"/></g><g><circle cx=\"58.5\" cy=\"132.1\" r=\"18.7\"/></g><path d=\"M72.6,226.2L72.6,226.2c-15.7,0-28.3-12.7-28.3-28.3v-22.1c0-7.8,6.3-14.2,14.2-14.2h0c7.8,0,14.2,6.3,14.2,14.2V226.2z\"/></g></svg>",
3368
+ "master_detail": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"22\" y=\"32.17\" width=\"18\" height=\"4\" transform=\"translate(62 68.33) rotate(180)\" fill=\"#484f60\"/><rect x=\"22\" y=\"26.17\" width=\"18\" height=\"4\" transform=\"translate(62 56.33) rotate(180)\" fill=\"#484f60\"/><rect x=\"22\" y=\"20.17\" width=\"18\" height=\"4\" transform=\"translate(62 44.33) rotate(180)\" fill=\"#484f60\"/><rect x=\"22\" y=\"14.17\" width=\"18\" height=\"4\" transform=\"translate(62 32.33) rotate(180)\" fill=\"#484f60\"/><rect x=\"10\" y=\"14.17\" width=\"10\" height=\"22\" transform=\"translate(30 50.33) rotate(180)\" fill=\"#484f60\"/></svg>",
3369
+ "plus_round": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-288 379 35 35\" enable-background=\"new -288 379 35 35\" ><path fill=\"#29363E\" d=\"M-270.5,381.5c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15s15-6.7,15-15C-255.5,388.2-262.2,381.5-270.5,381.5z M-261.1,397.3c0,0.9-0.7,1.6-1.6,1.6h-5.5v5.5c0,0.9-0.7,1.6-1.6,1.6h-1.6c-0.9,0-1.6-0.7-1.6-1.6v-5.5h-5.5c-0.9,0-1.6-0.7-1.6-1.6v-1.6c0-0.9,0.7-1.6,1.6-1.6h5.5v-5.5c0-0.9,0.7-1.6,1.6-1.6h1.6c0.9,0,1.6,0.7,1.6,1.6v5.5h5.5c0.9,0,1.6,0.7,1.6,1.6V397.3z\"/></svg>",
3370
+ "side_panel": "<svg width=\"47px\" height=\"43px\" viewBox=\"0 0 47 43\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\"><defs><image width=\"47\" height=\"43\" xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAArCAYAAADottG6AAAABHNCSVQICAgIfAhkiAAAAHtJREFUWIXt18EJwCAQAEENKSNv60gVgVQYSBWpw3f6OHvQx3Kw8xcX0QNrRERJaqMDVhhPMZ5iPMV4ivEU4ynGU/bZhb3/5Xm/pc3v6yytHdPrq58RiPEUHywl9bUxnuKDpaS+NsZTUsennjapT95RSTGeYjzFeErq+AEBrixGEVJ5mAAAAABJRU5ErkJggg==\" /></defs><use xlink:href=\"#img_1\" fill=\"#FFFFFF\" stroke=\"none\" /></svg>",
3371
+ "tag": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M40,29.15v-.68a5.28,5.28,0,0,0-1.34-3.25L24.78,11.34A5.34,5.34,0,0,0,21.53,10H11.9A1.91,1.91,0,0,0,10,11.9v9.63a5.28,5.28,0,0,0,1.34,3.25L25.22,38.66A5.28,5.28,0,0,0,28.47,40h.68a5.28,5.28,0,0,0,3.24-1.34l6.27-6.27A5.28,5.28,0,0,0,40,29.15ZM13.13,16.72a2.54,2.54,0,1,1,3.59,0A2.55,2.55,0,0,1,13.13,16.72Zm15.9,19L17.84,24.55l1.34-1.34L30.37,34.4Zm2.69-2.69L20.52,21.87l1.35-1.35,11.19,11.2Zm2.68-2.69L23.21,19.18l1.34-1.34L35.75,29Z\" fill=\"#484f60\"/></svg>",
3372
+ "thick_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"12.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"21.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"30.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/></svg>",
3373
+ "thin_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"14.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"20.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"26.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"32.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/></svg>",
3374
+ "triangle_down": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"29.06 18.75 37.5 18.75 25 31.25 12.5 18.75 20.95 18.75 29.06 18.75\" fill=\"#484f60\"/></svg>",
3375
+ "triangle_up": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"20.94 31.25 12.5 31.25 25 18.75 37.5 31.25 29.05 31.25 20.94 31.25\" fill=\"#484f60\"/></svg>",
3376
+ "truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"14.75\" width=\"17.47\" height=\"12.62\" fill=\"#484f60\"/><path d=\"M37,18.11h-8V28.84H20.22a4.42,4.42,0,0,1,1.41,2.73H30a4.41,4.41,0,0,1,8.76,0H40V24.63Zm-.26,6.73H32.25a.57.57,0,0,1-.57-.57V20a.57.57,0,0,1,.57-.58h2.63a.58.58,0,0,1,.52.35L37.31,24A.58.58,0,0,1,36.78,24.84Z\" fill=\"#484f60\"/><path d=\"M14.28,28.84a4.39,4.39,0,0,0-1.42,2.73H12l-2-1.26V28.84Z\" fill=\"#484f60\"/><path d=\"M31.25,32.1a3.16,3.16,0,1,0,3.16-3.16A3.16,3.16,0,0,0,31.25,32.1Z\" fill=\"#484f60\"/><path d=\"M14.09,32.1a3.16,3.16,0,1,0,3.16-3.16A3.15,3.15,0,0,0,14.09,32.1Z\" fill=\"#484f60\"/></svg>",
3377
+ "txt": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M31.42,40.17H13.87c-2.15,0-2.71-.56-2.71-2.72V12.88c0-2.15.56-2.71,2.71-2.71H25.48l8.66,8.88v3.43H32.8V19.6l-7.88-8.09H13.87c-1.37,0-1.37,0-1.37,1.37V37.45c0,1.37,0,1.37,1.37,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\" fill=\"#484f60\"/><path d=\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\" fill=\"#484f60\"/><path d=\"M19.14,24.27v9h19.7v-9Zm6.68,2.36h-1.9V32h-1.3V26.63h-1.9V25.54h5.1ZM30.4,32,29,29.74,27.55,32H26l2.19-3.34-2-3.07h1.52L29,27.6l1.26-2.06h1.5l-2,3.12L32,32Zm6.86-5.32h-1.9V32H34.07V26.63H32.16V25.54h5.1Z\" fill=\"#484f60\"/></svg>"
3378
+ };
3379
+
3380
+ class IconCacheService {
3381
+ constructor(_sanitizer) {
3382
+ this._sanitizer = _sanitizer;
3383
+ this._iconCache = {};
3384
+ this.setIconCache();
3385
+ }
3386
+ /**
3387
+ * All the icons as a large JSON object, from the all-icons.json file.
3388
+ * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
3389
+ */
3390
+ get iconCache() {
3391
+ return this._iconCache;
3392
+ }
3393
+ getIcon(iconName) {
3394
+ if (iconName) {
3395
+ return this._iconCache[iconName.toLowerCase()];
3396
+ }
3397
+ }
3398
+ getIconAsBase64(iconName) {
3399
+ const icon = IconSvg[iconName];
3400
+ const base64Data = window.btoa(icon);
3401
+ return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);
3402
+ }
3403
+ getRawIcon(iconName) {
3404
+ if (iconName) {
3405
+ return IconSvg[iconName.toLowerCase()];
3406
+ }
3407
+ }
3408
+ setIconCache() {
3409
+ for (const key in IconSvg) {
3410
+ if (IconSvg.hasOwnProperty(key) && typeof IconSvg[key] !== "function") {
3411
+ this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(IconSvg[key]);
3412
+ }
3413
+ }
3414
+ }
3415
+ }
3416
+ IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
3417
+ IconCacheService.decorators = [
3418
+ { type: Injectable, args: [{
3419
+ providedIn: "root"
3420
+ },] }
3421
+ ];
3422
+ IconCacheService.ctorParameters = () => [
3423
+ { type: DomSanitizer }
3424
+ ];
3060
3425
 
3061
3426
  class CheckoutOverviewDeliveryEditComponent {
3062
- constructor(_dictionaryService, _formMasterService, _boFactory, service) {
3427
+ constructor(_dictionaryService, _formMasterService, _boFactory, service, iconService) {
3063
3428
  this._dictionaryService = _dictionaryService;
3064
3429
  this._formMasterService = _formMasterService;
3065
3430
  this._boFactory = _boFactory;
3066
3431
  this.service = service;
3432
+ this.iconService = iconService;
3067
3433
  this.icons = Icon;
3068
- this.relationChange = new EventEmitter();
3069
3434
  this.validSubmit = new EventEmitter();
3070
3435
  this.invalidSubmit = new EventEmitter();
3436
+ this.deliveryTypes = [
3437
+ { code: '1', description: 'Bezorgen', icon: this.icons.DeliveryTruck, price: 89 },
3438
+ { code: '2', description: 'Bezorgen & monteren', icon: this.icons.CalendarDay, price: 119 },
3439
+ { code: '3', description: 'Meenemen', icon: this.icons.Truck },
3440
+ ];
3071
3441
  this.deliveryOptionList = [];
3072
3442
  this.deliveryOptions = [];
3073
3443
  this.deliveryOptionFields = { text: "description", value: "code" };
3074
3444
  this.deliveryMethods = [];
3075
3445
  this.deliveryMethodFields = { text: "description", value: "code" };
3076
- this.addLocationPopup = false;
3446
+ this.deliveryTypeIdx = 0;
3077
3447
  this.changeLocationPopup = false;
3078
3448
  this.preferredDateOptions = [
3079
3449
  { text: "NOT_AFTER", value: ">" },
@@ -3083,42 +3453,15 @@ class CheckoutOverviewDeliveryEditComponent {
3083
3453
  this.preferredDate = new Date();
3084
3454
  this.marketing = [];
3085
3455
  this.marketingFields = { text: "description", value: "code" };
3086
- this.showSelectAddressDialog = false;
3087
- this.showCreateAddressDialog = false;
3088
- this.editAddressType = AddressType.DeliveryAddress;
3089
- this.addresses = [];
3090
- this.deliveryAddressIdx = 0;
3091
- this.invoiceAddressIdx = 0;
3092
- this.invoiceAddressSameAsDeliveryAddress = true;
3093
- this.columns = [];
3094
3456
  // TODO: Deze velden nog opnemen in Transaction!!
3095
3457
  this.deliveryDateFinal = false;
3096
3458
  this.assemblyDate = new Date();
3097
3459
  this.totalAssemblyTime = "";
3098
3460
  this.dropshipment = false;
3099
- 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") });
3100
- }
3101
- set relation(value) {
3102
- this._relation = value;
3103
- this.selectAddress();
3104
- }
3105
- get relation() {
3106
- return this._relation;
3107
3461
  }
3108
3462
  showClass() {
3109
3463
  return true;
3110
3464
  }
3111
- get billingAddress() {
3112
- if (this.transaction.transactionInfo.invoiceAddress === undefined) {
3113
- if (this.relation &&
3114
- this.relation.firstBillingAddress &&
3115
- this.relation.firstBillingAddress.isNotEmptyAddress()) {
3116
- this.transaction.transactionInfo.invoiceAddress = this.relation.firstBillingAddress;
3117
- this._setCountryNameToAddress(this.transaction.transactionInfo.invoiceAddress).then();
3118
- }
3119
- }
3120
- return this.transaction.transactionInfo.invoiceAddress;
3121
- }
3122
3465
  get deliveryDate() {
3123
3466
  if (this.transaction.transactionInfo.deliveryDate === undefined) {
3124
3467
  this.transaction.transactionInfo.deliveryDate = new Date();
@@ -3137,16 +3480,6 @@ class CheckoutOverviewDeliveryEditComponent {
3137
3480
  set preferredDeliveryDate(value) {
3138
3481
  this.transaction.transactionInfo.preferredDeliveryDate = value;
3139
3482
  }
3140
- newRelationAddress() {
3141
- if (this.relation) {
3142
- const address = new Address();
3143
- address.addressType = AddressType.DeliveryAddress;
3144
- address.startDate = new Date();
3145
- address.sequence = this.relation.getNextAddressSequence();
3146
- this.relation.addresses.push(address);
3147
- return address;
3148
- }
3149
- }
3150
3483
  ngOnInit() {
3151
3484
  return __awaiter(this, void 0, void 0, function* () {
3152
3485
  this.deliveryCosts = this.calculateDeliveryCosts();
@@ -3162,70 +3495,9 @@ class CheckoutOverviewDeliveryEditComponent {
3162
3495
  });
3163
3496
  });
3164
3497
  }
3165
- showNewAddressDialog(deliveryAddress = true) {
3166
- this.editAddressType = deliveryAddress ? AddressType.DeliveryAddress : AddressType.BillingAddress;
3167
- this.showCreateAddressDialog = true;
3168
- }
3169
- showEditAddressDialog(deliveryAddress = true) {
3170
- this.editAddressType = deliveryAddress ? AddressType.DeliveryAddress : AddressType.BillingAddress;
3171
- this.showSelectAddressDialog = true;
3172
- }
3173
- setIndexDeliveryAddress(idx) {
3174
- this.deliveryAddressIdx = idx;
3175
- this.editAddressType = AddressType.DeliveryAddress;
3176
- this.selectAddress(this.relation.addresses[idx]);
3177
- }
3178
- setIndexInvoiceAddress(idx) {
3179
- this.invoiceAddressIdx = idx;
3180
- this.editAddressType = AddressType.BillingAddress;
3181
- this.selectAddress(this.relation.addresses[idx]);
3182
- }
3183
- editAddress(addr) {
3184
- this.addressToEdit = this._boFactory.makeWithRawBackendData(Address, addr);
3185
- this.showEditAddressDialog();
3186
- }
3187
- checkSameAddress(checked) {
3188
- if (checked) {
3189
- this.editAddressType = AddressType.DeliveryAddress;
3190
- this.selectAddress(this.deliveryAddress);
3191
- }
3192
- }
3193
3498
  submit() {
3194
3499
  return this._formMasterService.submitSlaves();
3195
3500
  }
3196
- saveNewAddress(address) {
3197
- address.addressType = this.editAddressType;
3198
- this.relation.addresses.push(address);
3199
- this.selectAddress(address);
3200
- this.showCreateAddressDialog = false;
3201
- }
3202
- saveAddress(address) {
3203
- const idx = this.relation.addresses.findIndex(a => a.nawNr === address.nawNr);
3204
- if (idx > -1) {
3205
- this.relation.addresses[idx] = this._boFactory.makeWithRawBackendData(Address, address);
3206
- }
3207
- this.showSelectAddressDialog = false;
3208
- }
3209
- selectAddress(address) {
3210
- if (!address) {
3211
- address = this.service.getFirstAddress(this.relation);
3212
- }
3213
- if (!address) {
3214
- return;
3215
- }
3216
- this._setCountryNameToAddress(address);
3217
- if (this.editAddressType === AddressType.DeliveryAddress) {
3218
- this.deliveryOptionsRequest.transactionAddress = address.nawNr;
3219
- this.deliveryAddress = address;
3220
- this.deliveryAddressIdx = this.relation.addresses.findIndex(a => a.nawNr === this.deliveryAddress.nawNr);
3221
- }
3222
- if (this.invoiceAddressSameAsDeliveryAddress || this.editAddressType !== AddressType.DeliveryAddress) {
3223
- this.deliveryOptionsRequest.invoiceAddress = address.nawNr;
3224
- this.invoiceAddress = address;
3225
- this.invoiceAddressIdx = this.relation.addresses.findIndex(a => a.nawNr === this.invoiceAddress.nawNr);
3226
- }
3227
- this.showSelectAddressDialog = false;
3228
- }
3229
3501
  handleDeliveryMethodChange(deliveryMethodId) {
3230
3502
  return __awaiter(this, void 0, void 0, function* () {
3231
3503
  const deliveryMethod = this.selectDeliveryMethodById(deliveryMethodId);
@@ -3236,41 +3508,16 @@ class CheckoutOverviewDeliveryEditComponent {
3236
3508
  }
3237
3509
  });
3238
3510
  }
3511
+ setIndexDeliveryType(idx) {
3512
+ this.deliveryTypeIdx = idx;
3513
+ // this.selectAddress(this.relation.addresses[idx]);
3514
+ }
3239
3515
  selectDeliveryOptionsByDeliveryMethod(deliveryMethod) {
3240
3516
  return this.deliveryOptionList.filter(deliveryOption => deliveryMethod.deliveryOptions.indexOf(deliveryOption.code) !== -1);
3241
3517
  }
3242
3518
  selectDeliveryMethodById(deliveryMethodId) {
3243
3519
  return this.deliveryMethods.find(delivery => delivery.code === deliveryMethodId);
3244
3520
  }
3245
- changeAddress(addressType) {
3246
- this._addressType = addressType;
3247
- this.addresses = this.relation.addresses;
3248
- this.changeLocationPopup = true;
3249
- }
3250
- saveNewLocation() {
3251
- this.locationForm.submit();
3252
- }
3253
- saveLocation() {
3254
- this.addLocation();
3255
- this.changeLocationPopup = false;
3256
- }
3257
- addLocation() {
3258
- this.updateAddress(this.newAddress).then();
3259
- this.relation.addresses.push(this.newAddress);
3260
- // this.service.saveRelation().then();
3261
- this.addLocationPopup = false;
3262
- }
3263
- updateAddress(address) {
3264
- return __awaiter(this, void 0, void 0, function* () {
3265
- if (this._addressType === AddressType.DeliveryAddress) {
3266
- this.transaction.transactionInfo.transactionAddress = address;
3267
- }
3268
- else {
3269
- this.transaction.transactionInfo.invoiceAddress = address;
3270
- }
3271
- yield this._setCountryNameToAddress(address);
3272
- });
3273
- }
3274
3521
  isDeliveryOptionChecked(deliveryOptionItem) {
3275
3522
  return (this.transaction.transactionInfo.deliveryOptions.indexOf(deliveryOptionItem.code, 0) === 0);
3276
3523
  }
@@ -3283,179 +3530,135 @@ class CheckoutOverviewDeliveryEditComponent {
3283
3530
  onChangeLocationCancelClick() {
3284
3531
  this.changeLocationPopup = false;
3285
3532
  }
3286
- onAddLocationOkClick() {
3287
- this._addAddress(this._addressType);
3288
- this.addLocationPopup = true;
3289
- }
3290
- handleAddressSelected(rows) {
3291
- this.selectedAddress = (rows.find(x => x !== undefined));
3292
- this.updateAddress(this.selectedAddress);
3293
- this.changeLocationPopup = false;
3294
- }
3295
3533
  calculateDeliveryCosts() {
3296
3534
  return 0;
3297
3535
  }
3298
3536
  calculateAssemblyCosts() {
3299
3537
  return 0;
3300
3538
  }
3301
- _addAddress(addressType) {
3302
- this.newAddress = new Address();
3303
- this.newAddress.addressType = addressType;
3304
- this.newAddress.startDate = new Date();
3305
- this.newAddress.sequence = this.relation.getNextAddressSequence();
3306
- }
3307
- _setCountryNameToAddress(address) {
3308
- return __awaiter(this, void 0, void 0, function* () {
3309
- if (address.countryId && !address.countryName) {
3310
- const country = yield this.service.getCountry(address.countryId);
3311
- address.countryName = country.description;
3312
- }
3313
- });
3314
- }
3315
3539
  }
3316
3540
  CheckoutOverviewDeliveryEditComponent.decorators = [
3317
3541
  { type: Component, args: [{
3318
3542
  selector: "co-checkout-overview-delivery-edit",
3319
3543
  template: `
3320
- <co-form>
3321
- <div class="checkout-form-wrapper">
3322
- <div class="checkout-section-wrapper">
3323
- <div class="checkout-label-column">
3324
- <span>01</span>
3325
- <span class="label" [textContent]="'DELIVERY' | localize"></span>
3326
- </div>
3327
- <div class="checkout-data-column">
3328
- <div class="checkout-data-row">
3329
- <co-carousel-3d class="default-width" *ngIf="relation.addresses"
3330
- [tileWidth]="200"
3331
- [tileHeight]="100"
3332
- [selectedIndex]="deliveryAddressIdx"
3333
- (indexSelected)="setIndexDeliveryAddress($event)">
3334
- <co-relation-address-tile #carouselItem *ngFor="let address of relation.addresses; let index = index"
3335
- [address]="address"
3336
- [selected]="deliveryAddressIdx === index"
3337
- (editAddressClicked)="editAddress($event)"
3338
- ></co-relation-address-tile>
3339
- </co-carousel-3d>
3340
- </div>
3341
- <div class="checkout-data-row">
3342
- <div class="relation-address-new">
3343
- <icon class="relation-address-icon" [icon]="icons.ArrowPointRight"></icon>
3344
- <div [textContent]="'ADDRESS_ADD' | localize" (click)="showNewAddressDialog()"></div>
3345
- </div>
3346
- </div>
3347
- </div>
3348
- </div>
3349
- <div class="checkout-section-wrapper">
3350
- <div class="checkout-label-column">
3351
- <span>02</span>
3352
- <span class="label" [textContent]="'INVOICE_ADDRESS' | localize"></span>
3353
- </div>
3354
- <div class="checkout-data-column">
3355
- <div class="checkout-data-row">
3356
- <co-input-checkbox [(model)]="invoiceAddressSameAsDeliveryAddress" (modelChange)="checkSameAddress($event)" [label]="'SAME_AS_DELIVERY'"></co-input-checkbox>
3544
+ <div class="delivery-edit-content">
3545
+ <co-form>
3546
+ <div class="checkout-form-wrapper">
3547
+ <div class="checkout-section-wrapper">
3548
+ <div class="checkout-label-column">
3549
+ <span>01</span>
3550
+ <span class="label" [textContent]="'DELIVERY_DATA' | localize"></span>
3357
3551
  </div>
3358
- <div class="overview-delivery-invoice-address" *ngIf="!invoiceAddressSameAsDeliveryAddress" @showHideInvoiceAddress>
3552
+ <div class="checkout-data-column">
3359
3553
  <div class="checkout-data-row">
3360
- <co-carousel-3d class="default-width" *ngIf="relation.addresses"
3361
- [tileWidth]="200"
3554
+ <co-carousel-3d [tileWidth]="200"
3362
3555
  [tileHeight]="100"
3363
- [selectedIndex]="invoiceAddressIdx"
3364
- (indexSelected)="setIndexInvoiceAddress($event)">
3365
- <co-relation-address-tile #carouselItem *ngFor="let address of relation.addresses; let index = index"
3366
- [address]="address"
3367
- [selected]="invoiceAddressIdx === index"
3368
- (editAddressClicked)="editAddress($event)"
3369
- ></co-relation-address-tile>
3556
+ [selectedIndex]="deliveryTypeIdx"
3557
+ (indexSelected)="setIndexDeliveryType($event)">
3558
+ <co-delivery-type-tile #carouselItem *ngFor="let type of deliveryTypes; let index = index"
3559
+ [type]="type"
3560
+ [selected]="deliveryTypeIdx === index"
3561
+ ></co-delivery-type-tile>
3370
3562
  </co-carousel-3d>
3371
3563
  </div>
3372
3564
  <div class="checkout-data-row">
3373
- <div class="relation-address-new">
3374
- <icon class="relation-address-icon" [icon]="icons.ArrowPointRight"></icon>
3375
- <div [textContent]="'ADDRESS_ADD' | localize" (click)="showNewAddressDialog()"></div>
3376
- </div>
3565
+ <co-input-date [(model)]="deliveryOptionsRequest.deliveryDate" [placeholder]="'DELIVERY_DATE' | localize" [required]="true"></co-input-date>
3566
+ </div>
3567
+ <div class="checkout-data-row">
3568
+ <co-input-date [(model)]="deliveryOptionsRequest.preferredDeliveryDate" [placeholder]="'PREFERRED_DATE' | localize"></co-input-date>
3569
+ </div>
3570
+ <div class="checkout-data-row">
3571
+ <co-input-checkbox [(model)]="deliveryOptionsRequest.allowPartialDelivery" [label]="'PART_DELIVERIES' | localize"></co-input-checkbox>
3572
+ </div>
3573
+ <div class="checkout-data-row">
3574
+ <co-collapsible [headerTitle]="'ADD_DELIVERY_OPTION' | localize" [iconData]="iconService.getIcon(icons.TriangleDown)">
3575
+ <div class="checkout-data-row">
3576
+ <co-drop-down-list
3577
+ [collection]="deliveryMethods"
3578
+ [fields]="deliveryMethodFields"
3579
+ [required]="true"
3580
+ [model]="deliveryOptionsRequest.deliveryMethod"
3581
+ (modelChange)="handleDeliveryMethodChange($event)"
3582
+ [placeholder]="'DELIVERY_METHOD' | localize"></co-drop-down-list>
3583
+ <co-input-text [placeholder]="'TOTAL_ASSEMBLY_TIME' | localize"></co-input-text>
3584
+ </div>
3585
+ <div class="checkout-data-row">
3586
+ <co-input-listbox
3587
+ [placeholder]="'DELIVERY_OPTIONS' | localize"
3588
+ [(model)]="deliveryOptionsRequest.deliveryOptions"
3589
+ [collection]="deliveryOptions"
3590
+ [fields]="deliveryOptionFields"
3591
+ [showCheckbox]="true"
3592
+ ></co-input-listbox>
3593
+ </div>
3594
+ </co-collapsible>
3595
+ </div>
3596
+ <div class="checkout-data-row">
3597
+ <co-collapsible [headerTitle]="'ADD_REMARK' | localize" [iconData]="iconService.getIcon(icons.TriangleDown)">
3598
+ <div class="checkout-data-row">
3599
+ <co-input-textarea [(model)]="deliveryOptionsRequest.remark" [placeholder]="'REMARKS' | localize"></co-input-textarea>
3600
+ </div>
3601
+ </co-collapsible>
3602
+ </div>
3603
+ <div class="checkout-data-row">
3604
+ <co-collapsible [headerTitle]="'ADD_REFERENCE' | localize" [iconData]="iconService.getIcon(icons.TriangleDown)">
3605
+ <div class="checkout-data-row">
3606
+ <co-input-text [(model)]="deliveryOptionsRequest.ownReference" [placeholder]="'REFERENCE' | localize"></co-input-text>
3607
+ </div>
3608
+ <div class="checkout-data-row">
3609
+ <co-input-text [(model)]="deliveryOptionsRequest.relationReference" [placeholder]="'REFERENCE_RELATION' | localize"></co-input-text>
3610
+ </div>
3611
+ </co-collapsible>
3612
+ </div>
3613
+ <div class="checkout-data-row">
3614
+ <co-input-date [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'ASSEMBLY_DATE' | localize"></co-input-date>
3377
3615
  </div>
3378
3616
  </div>
3379
3617
  </div>
3380
- </div>
3381
- <div class="checkout-section-wrapper">
3382
- <div class="checkout-label-column">
3383
- <span>03</span>
3384
- <span class="label" [textContent]="'DELIVERY_MOMENT' | localize"></span>
3385
- </div>
3386
- <div class="checkout-data-column">
3387
- <div class="checkout-data-row">
3388
- <co-input-date [(model)]="deliveryOptionsRequest.deliveryDate" [placeholder]="'DELIVERY_DATE' | localize" [required]="true"></co-input-date>
3389
- <co-input-checkbox [(model)]="deliveryOptionsRequest.allowPartialDelivery" [label]="'PART_DELIVERIES' | localize"></co-input-checkbox>
3390
- </div>
3391
- <div class="checkout-data-row">
3392
- <co-input-date [(model)]="deliveryOptionsRequest.preferredDeliveryDate" [placeholder]="'PREFERRED_DATE' | localize"></co-input-date>
3393
- <co-input-date [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'ASSEMBLY_DATE' | localize"></co-input-date>
3618
+ <div class="checkout-section-wrapper">
3619
+ <div class="checkout-label-column">
3620
+ <span>02</span>
3621
+ <span class="label" [textContent]="'DOWNPAYMENT' | localize"></span>
3394
3622
  </div>
3395
- <div class="checkout-data-row">
3623
+ <div class="checkout-data-column">
3624
+ <div class="checkout-data-row">
3625
+ <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'DOWNPAYMENT_PERCENTAGE' | localize"></co-input-text>
3626
+ <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'DOWNPAYMENT_AMOUNT' | localize"></co-input-text>
3627
+ </div>
3628
+ <div class="checkout-data-row">
3629
+ <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'DOWNPAYMENT_BY_BR' | localize"></co-input-text>
3630
+ </div>
3631
+ <div class="checkout-data-row">
3632
+ <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'DOWNPAYMENT_ON_DELIVERY' | localize"></co-input-text>
3633
+ </div>
3396
3634
  </div>
3397
3635
  </div>
3398
- </div>
3399
- <div class="checkout-section-wrapper">
3400
- <div class="checkout-label-column">
3401
- <span>04</span>
3402
- <span class="label" [textContent]="'DELIVERY_OPTIONS' | localize"></span>
3403
- </div>
3404
- <div class="checkout-data-column">
3405
- <div class="checkout-data-row">
3406
- <co-drop-down-list
3407
- [collection]="deliveryMethods"
3408
- [fields]="deliveryMethodFields"
3409
- [required]="true"
3410
- [model]="deliveryOptionsRequest.deliveryMethod"
3411
- (modelChange)="handleDeliveryMethodChange($event)"
3412
- [placeholder]="'DELIVERY_METHOD2' | localize"></co-drop-down-list>
3413
- <co-input-text [placeholder]="'TOTAL_ASSEMBLY_TIME' | localize"></co-input-text>
3414
- </div>
3415
- <div class="checkout-data-row">
3416
- <co-input-listbox
3417
- [placeholder]="'DELIVERY_OPTIONS' | localize"
3418
- [(model)]="deliveryOptionsRequest.deliveryOptions"
3419
- [collection]="deliveryOptions"
3420
- [fields]="deliveryOptionFields"
3421
- [showCheckbox]="true"
3422
- ></co-input-listbox>
3636
+ <div class="checkout-section-wrapper">
3637
+ <div class="checkout-label-column">
3638
+ <span>03</span>
3639
+ <span class="label" [textContent]="'ORDER_DATA' | localize"></span>
3423
3640
  </div>
3424
- <div class="checkout-data-row">
3425
- <co-input-textarea [(model)]="deliveryOptionsRequest.remark" [placeholder]="'REMARKS' | localize"></co-input-textarea>
3426
- </div>
3427
- </div>
3428
- </div>
3429
- <div class="checkout-section-wrapper">
3430
- <div class="checkout-label-column">
3431
- <span>05</span>
3432
- <span class="label" [textContent]="'MARKETING' | localize"></span>
3433
- </div>
3434
- <div class="checkout-data-column">
3435
- <div class="checkout-data-row">
3436
- <co-drop-down-list
3437
- [collection]="marketing"
3438
- [fields]="marketingFields"
3439
- [(model)]="deliveryOptionsRequest.marketingCode"
3440
- [placeholder]="'MARKETING' | localize"></co-drop-down-list>
3641
+ <div class="checkout-data-column">
3642
+ <div class="checkout-data-row">
3643
+ <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'BRANCH' | localize"></co-input-text>
3644
+ <co-input-text [model]="'NOG_NIET_GEIMPLEMENTEERD'" [placeholder]="'ADMINISTRATIVE_MANAGER' | localize"></co-input-text>
3645
+ </div>
3646
+ <div class="checkout-data-row">
3647
+ <co-drop-down-list
3648
+ [collection]="marketing"
3649
+ [fields]="marketingFields"
3650
+ [(model)]="deliveryOptionsRequest.marketingCode"
3651
+ [placeholder]="'MARKETING' | localize"></co-drop-down-list>
3652
+ </div>
3653
+ <div class="checkout-data-row">
3654
+ </div>
3655
+ <div class="checkout-data-row">
3656
+ </div>
3441
3657
  </div>
3442
3658
  </div>
3443
3659
  </div>
3444
- </div>
3445
- </co-form>
3446
- <co-dialog *ngIf="showCreateAddressDialog">
3447
- <co-relation-address
3448
- (saveClick)="saveNewAddress($event)"
3449
- (cancelClick)="showCreateAddressDialog = false"
3450
- ></co-relation-address>
3451
- </co-dialog>
3452
- <co-dialog *ngIf="showSelectAddressDialog && addressToEdit">
3453
- <co-relation-address
3454
- [address]="addressToEdit"
3455
- (saveClick)="saveAddress($event)"
3456
- (cancelClick)="showSelectAddressDialog = false"
3457
- ></co-relation-address>
3458
- </co-dialog>
3660
+ </co-form>
3661
+ </div>
3459
3662
  `,
3460
3663
  providers: [
3461
3664
  FormMasterService
@@ -3475,17 +3678,12 @@ CheckoutOverviewDeliveryEditComponent.ctorParameters = () => [
3475
3678
  { type: DictionaryService },
3476
3679
  { type: FormMasterService },
3477
3680
  { type: BusinessObjectFactory },
3478
- { type: TransactionService }
3681
+ { type: TransactionService },
3682
+ { type: IconCacheService }
3479
3683
  ];
3480
3684
  CheckoutOverviewDeliveryEditComponent.propDecorators = {
3481
- deliveryForm: [{ type: ViewChild, args: ["deliveryForm", { read: FormComponent },] }],
3482
- locationForm: [{ type: ViewChild, args: ["locationForm", { read: FormComponent },] }],
3483
- changeLocationDialog: [{ type: ViewChild, args: ["changeLocationDialog",] }],
3484
- addressGrid: [{ type: ViewChild, args: ["addressGrid",] }],
3485
- relation: [{ type: Input }],
3486
3685
  deliveryOptionsRequest: [{ type: Input }],
3487
3686
  transaction: [{ type: Input }],
3488
- relationChange: [{ type: Output }],
3489
3687
  validSubmit: [{ type: Output }],
3490
3688
  invalidSubmit: [{ type: Output }],
3491
3689
  showClass: [{ type: HostBinding, args: ["class.co-checkout-overview-delivery-edit",] }]
@@ -3552,7 +3750,7 @@ CheckOutRelationSuggestionsListComponent.decorators = [
3552
3750
  template: `
3553
3751
  <div class="flex-column items-wrapper">
3554
3752
  <co-checkout-relation-suggestions-list-item *ngFor="let suggestion of suggestions" [suggestion]="suggestion"
3555
- (selectionSelected)="suggestionSelected.emit(suggestion)"></co-checkout-relation-suggestions-list-item>
3753
+ (selectionSelected)="suggestionSelected.emit($event)"></co-checkout-relation-suggestions-list-item>
3556
3754
  <span *ngIf="suggestions?.length === 0" class="no-results" localize="NO_RESULTS_FOUND"></span>
3557
3755
  </div>
3558
3756
  `,
@@ -3728,68 +3926,6 @@ ImageDisplayComponent.propDecorators = {
3728
3926
  showClass: [{ type: HostBinding, args: ['class.co-image-display',] }]
3729
3927
  };
3730
3928
 
3731
- /** AUTO GENERATED FILE. DO NOT CHANGE.. OR YOU WILL SUFFER THE CONSEQUENCES OF YOUR ACTIONS **/
3732
- const IconSvg = {
3733
- "arrow_point_down": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-280 371 51 51\" enable-background=\"new -280 371 51 51\" ><path fill=\"#29363E\" d=\"M-248.3,392.2c0.3,0,0.6,0.1,0.8,0.3c0.5,0.5,0.5,1.2,0,1.6l-6.2,6.2c-0.2,0.2-0.5,0.3-0.8,0.3c-0.3,0-0.6-0.1-0.8-0.3l-6.2-6.2c-0.2-0.2-0.3-0.5-0.3-0.8c0-0.3,0.1-0.6,0.3-0.8c0.2-0.2,0.5-0.3,0.8-0.3c0.3,0,0.6,0.1,0.8,0.3l5.4,5.4l5.4-5.4C-248.9,392.4-248.6,392.2-248.3,392.2z\"/></svg>",
3734
- "arrow_point_left": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M31.9,36.7l-14.7-9.6C17.1,27,17,26.9,17,26.7v-2.4c0-0.2,0.1-0.3,0.2-0.4l14.7-9.6c0.2-0.2,0.5-0.1,0.7,0.1l1.4,2.1c0.2,0.2,0.1,0.5-0.1,0.7l-12,7.8c-0.3,0.2-0.3,0.6,0,0.8l12,7.8c0.2,0.2,0.3,0.5,0.1,0.7l-1.4,2.1C32.4,36.8,32.1,36.8,31.9,36.7z\"/></svg>",
3735
- "arrow_point_right": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 51 51\" enable-background=\"new 0 0 51 51\" ><path fill=\"#484F5F\" d=\"M19.1,14.3l14.7,9.6c0.1,0.1,0.2,0.2,0.2,0.4v2.4c0,0.2-0.1,0.3-0.2,0.4l-14.7,9.6c-0.2,0.2-0.5,0.1-0.7-0.1l-1.4-2.1c-0.2-0.2-0.1-0.5,0.1-0.7l12-7.8c0.3-0.2,0.3-0.6,0-0.8l-12-7.8c-0.2-0.2-0.3-0.5-0.1-0.7l1.4-2.1C18.6,14.2,18.9,14.2,19.1,14.3z\"/></svg>",
3736
- "calendar_day": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"0 0 50 50\" enable-background=\"new 0 0 50 50\" ><g><path fill=\"#022D42\" d=\"M35.4,13.7H14.6c-0.6,0-1,0.5-1,1V20h22.9v-5.2C36.4,14.2,36,13.7,35.4,13.7z M19,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8c1,0,1.8,0.8,1.8,1.8C20.8,18,20,18.8,19,18.8z M31,18.8c-1,0-1.8-0.8-1.8-1.8c0-1,0.8-1.8,1.8-1.8s1.8,0.8,1.8,1.8C32.7,18,32,18.8,31,18.8z\"/><path fill=\"#022D42\" d=\"M35.4,22.3v12.6L31.3,39H14.6c0,0,0,0,0,0V22.3H35.4 M36.4,21.3H13.6V39c0,0.6,0.5,1,1,1h17.2l4.7-4.7V21.3L36.4,21.3z\"/><rect x=\"18.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"30.2\" y=\"10\" fill=\"#022D42\" width=\"1.6\" height=\"5.2\"/><rect x=\"18.6\" y=\"30.5\" fill=\"#022D42\" width=\"3.4\" height=\"3.4\"/><rect x=\"19.1\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"19.1\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"22.2\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"25.4\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"31.6\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"24.8\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"28.5\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"24.8\" opacity=\"0.1\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"27.9\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"31\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/><rect x=\"16\" y=\"34.1\" opacity=\"0.25\" fill=\"#022D42\" width=\"2.4\" height=\"2.4\"/></g></svg>",
3737
- "cancel": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"36 35.16 30.45 35.16 14 14.84 19.55 14.84 36 35.16\" fill=\"#484f60\"/><polygon points=\"14 35.16 19.55 35.16 36 14.84 30.45 14.84 14 35.16\" fill=\"#484f60\"/></svg>",
3738
- "delivery_truck": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"15.35\" y=\"16.56\" width=\"15.14\" height=\"10.94\" transform=\"translate(-1.83 2.08) rotate(-5)\" fill=\"#484f60\"/><path d=\"M38.5,18.1l-6.9.61L32.41,28l-7.63.67a3.76,3.76,0,0,1,1.43,2.25l7.25-.63A3.83,3.83,0,0,1,41,29.6l1-.1-.52-6Zm.29,5.84-3.91.34a.51.51,0,0,1-.55-.46L34,20.1a.49.49,0,0,1,.45-.54l2.27-.2a.5.5,0,0,1,.48.25l2,3.59A.5.5,0,0,1,38.79,23.94Z\" fill=\"#484f60\"/><path d=\"M19.66,29.09a3.8,3.8,0,0,0-1,2.46l-.74.07-1.82-.94L16,29.41Z\" fill=\"#484f60\"/><path d=\"M34.56,30.62a2.74,2.74,0,1,0,2.49-3A2.73,2.73,0,0,0,34.56,30.62Z\" fill=\"#484f60\"/><path d=\"M19.74,31.91a2.74,2.74,0,1,0,2.49-3A2.74,2.74,0,0,0,19.74,31.91Z\" fill=\"#484f60\"/><rect x=\"7.96\" y=\"17.63\" width=\"5\" height=\"1\" transform=\"translate(-1.54 0.98) rotate(-5)\" fill=\"#484f60\"/><rect x=\"11.02\" y=\"29.71\" width=\"3\" height=\"1\" transform=\"translate(-2.59 1.21) rotate(-5)\" fill=\"#484f60\"/><rect x=\"9.48\" y=\"23.53\" width=\"4\" height=\"1\" transform=\"matrix(1, -0.09, 0.09, 1, -2.05, 1.09)\" fill=\"#484f60\"/></svg>",
3739
- "edit_pencil": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><polygon points=\"12.54 38.16 12 37.62 14.85 29.64 20.52 35.31 12.54 38.16\" fill=\"#484f60\"/><rect x=\"16.33\" y=\"20.52\" width=\"17.99\" height=\"8.64\" transform=\"translate(-10.15 25.18) rotate(-45)\" fill=\"#484f60\"/><path d=\"M37.54,18.73,36,20.32l-6.11-6.1,1.59-1.59a1.55,1.55,0,0,1,2.2,0l3.91,3.9A1.55,1.55,0,0,1,37.54,18.73Z\" fill=\"#484f60\"/></svg>",
3740
- "plus_round": "<svg version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" x=\"0px\" y=\"0px\" viewBox=\"-288 379 35 35\" enable-background=\"new -288 379 35 35\" ><path fill=\"#29363E\" d=\"M-270.5,381.5c-8.3,0-15,6.7-15,15c0,8.3,6.7,15,15,15s15-6.7,15-15C-255.5,388.2-262.2,381.5-270.5,381.5z M-261.1,397.3c0,0.9-0.7,1.6-1.6,1.6h-5.5v5.5c0,0.9-0.7,1.6-1.6,1.6h-1.6c-0.9,0-1.6-0.7-1.6-1.6v-5.5h-5.5c-0.9,0-1.6-0.7-1.6-1.6v-1.6c0-0.9,0.7-1.6,1.6-1.6h5.5v-5.5c0-0.9,0.7-1.6,1.6-1.6h1.6c0.9,0,1.6,0.7,1.6,1.6v5.5h5.5c0.9,0,1.6,0.7,1.6,1.6V397.3z\"/></svg>",
3741
- "tag": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M40,29.15v-.68a5.28,5.28,0,0,0-1.34-3.25L24.78,11.34A5.34,5.34,0,0,0,21.53,10H11.9A1.91,1.91,0,0,0,10,11.9v9.63a5.28,5.28,0,0,0,1.34,3.25L25.22,38.66A5.28,5.28,0,0,0,28.47,40h.68a5.28,5.28,0,0,0,3.24-1.34l6.27-6.27A5.28,5.28,0,0,0,40,29.15ZM13.13,16.72a2.54,2.54,0,1,1,3.59,0A2.55,2.55,0,0,1,13.13,16.72Zm15.9,19L17.84,24.55l1.34-1.34L30.37,34.4Zm2.69-2.69L20.52,21.87l1.35-1.35,11.19,11.2Zm2.68-2.69L23.21,19.18l1.34-1.34L35.75,29Z\" fill=\"#484f60\"/></svg>",
3742
- "thick_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"12.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"21.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/><rect x=\"10\" y=\"30.67\" width=\"30\" height=\"7\" fill=\"#484f60\"/></svg>",
3743
- "thin_lines": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><rect x=\"10\" y=\"14.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"20.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"26.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/><rect x=\"10\" y=\"32.17\" width=\"30\" height=\"4\" fill=\"#484f60\"/></svg>",
3744
- "txt": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 50 50\"><path d=\"M31.42,40.17H13.87c-2.15,0-2.71-.56-2.71-2.72V12.88c0-2.15.56-2.71,2.71-2.71H25.48l8.66,8.88v3.43H32.8V19.6l-7.88-8.09H13.87c-1.37,0-1.37,0-1.37,1.37V37.45c0,1.37,0,1.37,1.37,1.37H31.42c1.38,0,1.38,0,1.38-1.37V35h1.34v2.43C34.14,39.61,33.58,40.17,31.42,40.17Z\" fill=\"#484f60\"/><path d=\"M25.2,10.84v6.44c0,1.78.27,2,2,2h6.23Z\" fill=\"#484f60\"/><path d=\"M19.14,24.27v9h19.7v-9Zm6.68,2.36h-1.9V32h-1.3V26.63h-1.9V25.54h5.1ZM30.4,32,29,29.74,27.55,32H26l2.19-3.34-2-3.07h1.52L29,27.6l1.26-2.06h1.5l-2,3.12L32,32Zm6.86-5.32h-1.9V32H34.07V26.63H32.16V25.54h5.1Z\" fill=\"#484f60\"/></svg>"
3745
- };
3746
-
3747
- class IconCacheService {
3748
- constructor(_sanitizer) {
3749
- this._sanitizer = _sanitizer;
3750
- this._iconCache = {};
3751
- this.setIconCache();
3752
- }
3753
- /**
3754
- * All the icons as a large JSON object, from the all-icons.json file.
3755
- * The object has property keys that are the icon names, and property values with the data string of the actual svg icon.
3756
- */
3757
- get iconCache() {
3758
- return this._iconCache;
3759
- }
3760
- getIcon(iconName) {
3761
- if (iconName) {
3762
- return this._iconCache[iconName.toLowerCase()];
3763
- }
3764
- }
3765
- getIconAsBase64(iconName) {
3766
- const icon = IconSvg[iconName];
3767
- const base64Data = window.btoa(icon);
3768
- return this._sanitizer.bypassSecurityTrustUrl(`data:image/svg+xml;base64,${base64Data}`);
3769
- }
3770
- getRawIcon(iconName) {
3771
- if (iconName) {
3772
- return IconSvg[iconName.toLowerCase()];
3773
- }
3774
- }
3775
- setIconCache() {
3776
- for (const key in IconSvg) {
3777
- if (IconSvg.hasOwnProperty(key) && typeof IconSvg[key] !== "function") {
3778
- this._iconCache[key.toLowerCase()] = this._sanitizer.bypassSecurityTrustHtml(IconSvg[key]);
3779
- }
3780
- }
3781
- }
3782
- }
3783
- IconCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IconCacheService_Factory() { return new IconCacheService(i0.ɵɵinject(i1.DomSanitizer)); }, token: IconCacheService, providedIn: "root" });
3784
- IconCacheService.decorators = [
3785
- { type: Injectable, args: [{
3786
- providedIn: "root"
3787
- },] }
3788
- ];
3789
- IconCacheService.ctorParameters = () => [
3790
- { type: DomSanitizer }
3791
- ];
3792
-
3793
3929
  class IconComponent {
3794
3930
  constructor(_iconCacheService) {
3795
3931
  this._iconCacheService = _iconCacheService;
@@ -3841,10 +3977,11 @@ CustomerGroupsComponent.decorators = [
3841
3977
  (modelChange)="modelChange.emit($event)"
3842
3978
  [collection]="customerGroups"
3843
3979
  [fields]="fields"
3844
- [placeholder]="'CUSTOMER_GROUP'| localize"
3980
+ [placeholder]="'CUSTOMER_GROUP' | localize"
3845
3981
  [required]="required"
3846
3982
  ></co-input-combo-box>
3847
- `
3983
+ `,
3984
+ styles: [":host{display:flex}:host .co-input-combo-box{width:100%}\n"]
3848
3985
  },] }
3849
3986
  ];
3850
3987
  CustomerGroupsComponent.ctorParameters = () => [
@@ -4448,6 +4585,7 @@ class RelationAddressTileComponent {
4448
4585
  this.icons = Icon;
4449
4586
  this.actAsAddTile = false;
4450
4587
  this.selected = false;
4588
+ this.selectedChange = new EventEmitter();
4451
4589
  this.addAddressClicked = new EventEmitter();
4452
4590
  this.editAddressClicked = new EventEmitter();
4453
4591
  }
@@ -4466,10 +4604,7 @@ RelationAddressTileComponent.decorators = [
4466
4604
  selector: "co-relation-address-tile",
4467
4605
  template: `
4468
4606
  <ng-container *ngIf="!actAsAddTile">
4469
- <div class="relation-address">
4470
- <div class="relation-select-wrapper">
4471
- <co-input-radio-button [checked]="selected"></co-input-radio-button>
4472
- </div>
4607
+ <co-tile [selected]="selected" (selectedChange)="selectedChange.emit($event)">
4473
4608
  <div class="relation-content-wrapper">
4474
4609
  <span class="relation-address-type" [textContent]="address.displayType | localize"></span>
4475
4610
  <span class="relation-address-name" [textContent]="address.addressName"></span>
@@ -4480,26 +4615,17 @@ RelationAddressTileComponent.decorators = [
4480
4615
  <div class="relation-address-edit" (click)="handleEditAddressClick($event)">
4481
4616
  <icon class="relation-address-edit-icon" [icon]="icons.EditPencil"></icon>
4482
4617
  </div>
4483
- </div>
4618
+ </co-tile>
4484
4619
  </ng-container>
4485
4620
  <ng-container *ngIf="actAsAddTile">
4486
- <div class="relation-address-create" (click)="addAddressClicked.emit()">
4487
- <icon class="relation-address-icon" [icon]="icons.PlusRound"></icon>
4488
- <span [textContent]="'ADDRESS_ADD' | localize"></span>
4489
- </div>
4621
+ <co-tile (click)="addAddressClicked.emit()">
4622
+ <div class="relation-content-wrapper">
4623
+ <icon class="relation-address-icon" [icon]="icons.PlusRound"></icon>
4624
+ <span [textContent]="'ADDRESS_ADD' | localize"></span>
4625
+ </div>
4626
+ </co-tile>
4490
4627
  </ng-container>
4491
4628
  `,
4492
- providers: [
4493
- FormMasterService
4494
- ],
4495
- animations: [
4496
- trigger("showHideNavigationButton", [
4497
- state("void", style({ opacity: 0 })),
4498
- state("*", style({ opacity: 1 })),
4499
- transition("void => *", animate("200ms ease-in-out")),
4500
- transition("* => void", animate("200ms ease-out"))
4501
- ])
4502
- ],
4503
4629
  encapsulation: ViewEncapsulation.None
4504
4630
  },] }
4505
4631
  ];
@@ -4507,11 +4633,59 @@ RelationAddressTileComponent.propDecorators = {
4507
4633
  showClass: [{ type: HostBinding, args: ["class.co-relation-address-tile",] }],
4508
4634
  address: [{ type: Input }],
4509
4635
  actAsAddTile: [{ type: Input }],
4510
- selected: [{ type: HostBinding, args: ['class.selected',] }, { type: Input }],
4636
+ selected: [{ type: Input }],
4637
+ selectedChange: [{ type: Output }],
4511
4638
  addAddressClicked: [{ type: Output }],
4512
4639
  editAddressClicked: [{ type: Output }]
4513
4640
  };
4514
4641
 
4642
+ class TileComponent {
4643
+ constructor() {
4644
+ this.selected = false;
4645
+ this.selectedChange = new EventEmitter();
4646
+ }
4647
+ showClass() {
4648
+ return true;
4649
+ }
4650
+ }
4651
+ TileComponent.decorators = [
4652
+ { type: Component, args: [{
4653
+ selector: "co-tile",
4654
+ template: `
4655
+ <div class="co-tile-wrapper" (click)="selectedChange.emit(selected)">
4656
+ <div class="co-tile-select-wrapper">
4657
+ <co-input-radio-button [checked]="selected" (modelChange)="selectedChange.emit($event)"></co-input-radio-button>
4658
+ </div>
4659
+ <div class="co-tile-content-wrapper">
4660
+ <ng-content></ng-content>
4661
+ </div>
4662
+ </div>
4663
+ `,
4664
+ encapsulation: ViewEncapsulation.None
4665
+ },] }
4666
+ ];
4667
+ TileComponent.propDecorators = {
4668
+ selected: [{ type: HostBinding, args: ['class.selected',] }, { type: Input }],
4669
+ selectedChange: [{ type: Output }],
4670
+ showClass: [{ type: HostBinding, args: ["class.co-tile",] }]
4671
+ };
4672
+
4673
+ class TileModule {
4674
+ }
4675
+ TileModule.decorators = [
4676
+ { type: NgModule, args: [{
4677
+ imports: [
4678
+ InputRadioButtonModule
4679
+ ],
4680
+ declarations: [
4681
+ TileComponent
4682
+ ],
4683
+ exports: [
4684
+ TileComponent
4685
+ ]
4686
+ },] }
4687
+ ];
4688
+
4515
4689
  class RelationAddressTileModule {
4516
4690
  }
4517
4691
  RelationAddressTileModule.decorators = [
@@ -4524,7 +4698,8 @@ RelationAddressTileModule.decorators = [
4524
4698
  RelationAddressModule,
4525
4699
  ButtonModule,
4526
4700
  FormModule,
4527
- PipeModule
4701
+ PipeModule,
4702
+ TileModule
4528
4703
  ],
4529
4704
  declarations: [
4530
4705
  RelationAddressTileComponent
@@ -4563,8 +4738,8 @@ RelationAddressSelectModule.decorators = [
4563
4738
  class StepperStepComponent {
4564
4739
  constructor() {
4565
4740
  this.index = 0;
4566
- this.validateStep = new EventEmitter();
4567
4741
  this.show = false;
4742
+ this.validateStep = new EventEmitter();
4568
4743
  this._completed = false;
4569
4744
  this.onComplete = (complete) => { };
4570
4745
  }
@@ -4594,18 +4769,31 @@ StepperStepComponent.propDecorators = {
4594
4769
  index: [{ type: Input }],
4595
4770
  label: [{ type: Input }],
4596
4771
  completed: [{ type: Input }],
4772
+ show: [{ type: HostBinding, args: ['class.show',] }, { type: Input }],
4597
4773
  validateStep: [{ type: Output }],
4598
- show: [{ type: Input }],
4599
4774
  showClass: [{ type: HostBinding, args: ["class.co-stepper-step",] }]
4600
4775
  };
4601
4776
 
4602
4777
  class StepperComponent {
4603
4778
  constructor() {
4779
+ this.icons = Icon;
4604
4780
  this.finishStep = new EventEmitter();
4605
- this.steps = [];
4781
+ this.firstStep = 0;
4782
+ this.truckPosition = 0;
4783
+ this._activeStep = 0;
4606
4784
  }
4607
4785
  set content(children) {
4608
4786
  this.stepChildren = children.toArray();
4787
+ if (this.stepChildren) {
4788
+ setTimeout(() => {
4789
+ this._setActive(0);
4790
+ });
4791
+ }
4792
+ }
4793
+ set child(child) {
4794
+ if (child && child.nativeElement) {
4795
+ this._deliveryTruckClientRect = child.nativeElement.getBoundingClientRect();
4796
+ }
4609
4797
  }
4610
4798
  showClass() {
4611
4799
  return true;
@@ -4618,23 +4806,23 @@ class StepperComponent {
4618
4806
  return this._stepChildren;
4619
4807
  }
4620
4808
  get canPrevious() {
4621
- return this.activeStep !== this.firstStep;
4809
+ return this.activeStep > this.firstStep;
4622
4810
  }
4623
4811
  get canNext() {
4624
- return this.activeStep !== this.lastStep;
4812
+ return this.activeStep < this.lastStep;
4625
4813
  }
4626
4814
  get finished() {
4627
4815
  return this.activeStep === this.lastStep;
4628
4816
  }
4629
- ngAfterContentInit() {
4630
- if (this.stepChildren) {
4631
- this.stepChildren[0].show = true;
4632
- this.activeStep = this.stepChildren[0].index;
4633
- }
4817
+ set activeStep(value) {
4818
+ this._activeStep = value;
4819
+ this.truckPosition = (100 / this.stepChildren.length) * (this._activeStep + 1);
4820
+ }
4821
+ get activeStep() {
4822
+ return this._activeStep;
4634
4823
  }
4635
4824
  goto(idx) {
4636
- const currentIndex = this.stepChildren.findIndex(s => s.index === this.activeStep);
4637
- if (idx > currentIndex) {
4825
+ if (idx > this.activeStep) {
4638
4826
  this._validateCurrentStep(idx);
4639
4827
  }
4640
4828
  else {
@@ -4642,22 +4830,18 @@ class StepperComponent {
4642
4830
  }
4643
4831
  }
4644
4832
  gotoPrevious() {
4645
- const currentIndex = this.stepChildren.findIndex(s => s.index === this.activeStep);
4646
- this._setActive(currentIndex - 1);
4833
+ this._setActive(this.activeStep - 1);
4647
4834
  }
4648
4835
  gotoNext() {
4649
4836
  this._validateCurrentStep();
4650
4837
  }
4651
4838
  _validateCurrentStep(nextStep) {
4652
- const currentStep = this.stepChildren.find(s => s.index === this.activeStep);
4653
- const currentStepIdx = this.stepChildren.findIndex(s => s.index === this.activeStep);
4654
- currentStep.onComplete = (complete) => {
4655
- this.steps[currentStepIdx].complete = complete;
4839
+ this.stepChildren[this.activeStep].onComplete = (complete) => {
4656
4840
  if (complete) {
4657
- this._setActive(nextStep === undefined ? currentStepIdx + 1 : nextStep);
4841
+ this._setActive(nextStep === undefined ? this.activeStep + 1 : nextStep);
4658
4842
  }
4659
4843
  };
4660
- currentStep.validateStep.next();
4844
+ this.stepChildren[this.activeStep].validateStep.next();
4661
4845
  }
4662
4846
  _setActive(idx) {
4663
4847
  const prevStep = this.stepChildren[idx - 1];
@@ -4665,26 +4849,12 @@ class StepperComponent {
4665
4849
  if (this.stepChildren) {
4666
4850
  this.stepChildren.map(s => s.show = false);
4667
4851
  this.stepChildren[idx].show = true;
4668
- this.activeStep = this.stepChildren[idx].index;
4852
+ this.activeStep = idx;
4669
4853
  }
4670
4854
  }
4671
4855
  }
4672
4856
  _prepareSteps() {
4673
- this.steps.length = 0;
4674
- for (let i = 0; i < this.stepChildren.length; i++) {
4675
- const step = this.stepChildren[i];
4676
- this.steps.push({
4677
- index: step.index,
4678
- description: step.label,
4679
- complete: step.completed
4680
- });
4681
- if (i === 0) {
4682
- this.firstStep = step.index;
4683
- }
4684
- if (i === this.stepChildren.length - 1) {
4685
- this.lastStep = step.index;
4686
- }
4687
- }
4857
+ this.lastStep = this.stepChildren.length - 1;
4688
4858
  }
4689
4859
  }
4690
4860
  StepperComponent.decorators = [
@@ -4693,13 +4863,14 @@ StepperComponent.decorators = [
4693
4863
  template: `
4694
4864
  <ng-container [ngTemplateOutlet]="buttonTemplate"></ng-container>
4695
4865
  <div class="co-stepper-content">
4696
- <div class="stepper-step" *ngFor="let step of steps; let index = index"
4697
- [class.active]="step.index === activeStep"
4698
- [class.complete]="step.complete"
4866
+ <div class="stepper-step" [class.last]="index === stepChildren.length - 1" *ngFor="let step of stepChildren; let index = index"
4867
+ [class.active]="index === activeStep"
4868
+ [class.complete]="step.completed"
4699
4869
  (click)="goto(index)">
4700
- <div class="index" [textContent]="step.index"></div>
4701
- <div class="description" [textContent]="step.description"></div>
4870
+ <div class="description" [textContent]="step.label"></div>
4871
+ <div class="index"></div>
4702
4872
  </div>
4873
+ <icon #deliveryTruck *ngIf="activeStep !== lastStep" class="delivery-truck" [icon]="icons.DeliveryTruck" [style.left.%]="truckPosition"></icon>
4703
4874
  </div>
4704
4875
  <div class="co-stepper-content-wrapper">
4705
4876
  <ng-content></ng-content>
@@ -4718,6 +4889,7 @@ StepperComponent.decorators = [
4718
4889
  ];
4719
4890
  StepperComponent.propDecorators = {
4720
4891
  content: [{ type: ContentChildren, args: [StepperStepComponent,] }],
4892
+ child: [{ type: ViewChild, args: ['deliveryTruck', { read: ElementRef },] }],
4721
4893
  finishButtonLabel: [{ type: Input }],
4722
4894
  finishStep: [{ type: Output }],
4723
4895
  showClass: [{ type: HostBinding, args: ["class.co-stepper",] }]
@@ -4730,7 +4902,9 @@ StepperModule.decorators = [
4730
4902
  imports: [
4731
4903
  CommonModule,
4732
4904
  ButtonModule,
4733
- PipeModule
4905
+ PipeModule,
4906
+ IconModule,
4907
+ CoreModule
4734
4908
  ],
4735
4909
  declarations: [
4736
4910
  StepperComponent,
@@ -4743,215 +4917,67 @@ StepperModule.decorators = [
4743
4917
  },] }
4744
4918
  ];
4745
4919
 
4746
- class CheckoutModule {
4920
+ class TransactionTotalsComponent {
4921
+ constructor() {
4922
+ this.showDiscount = false;
4923
+ this.discountClick = new EventEmitter();
4924
+ }
4925
+ showClass() {
4926
+ return true;
4927
+ }
4747
4928
  }
4748
- CheckoutModule.decorators = [
4929
+ TransactionTotalsComponent.decorators = [
4930
+ { type: Component, args: [{
4931
+ selector: "co-transaction-totals",
4932
+ template: `
4933
+ <div class="transaction-totals-wrapper">
4934
+ <span class="totals-gross label" [textContent]="'ORDER_GROSS' | localize"></span>
4935
+ <span class="totals-gross value" [textContent]="totals?.grossAmount | coCurrency: true"></span>
4936
+ <ng-container *ngIf="totals?.discountAmount">
4937
+ <span class="totals-discount-amount label" [textContent]="'DISCOUNT_AMOUNT' | localize"></span>
4938
+ <span class="totals-discount-amount value" [textContent]="totals?.discountAmount | coCurrency: true"></span>
4939
+ </ng-container>
4940
+ <ng-container *ngIf="totals?.transactionDiscountAmount">
4941
+ <span class="totals-discount label" [textContent]="'TRANSACTION_DISCOUNT' | localize"></span>
4942
+ <span class="totals-discount value" [textContent]="totals?.transactionDiscountAmount | coCurrency: true"></span>
4943
+ </ng-container>
4944
+ <ng-container *ngIf="totals?.transactionDiscountPercentage">
4945
+ <span class="totals-discount-percentage label" [textContent]="'TRANSACTION_DISCOUNT_PERC' | localize"></span>
4946
+ <span class="totals-discount-percentage value" [textContent]="totals?.transactionDiscountPercentage.toString() | append:' %'"></span>
4947
+ </ng-container>
4948
+ <span class="totals-net label" [textContent]="'ORDER_NET'| localize"></span>
4949
+ <span class="totals-net value" [textContent]="totals?.netAmount | coCurrency: true"></span>
4950
+ <a *ngIf="showDiscount" class="add-discount label" (click)="discountClick.emit($event)" [textContent]="'ADD_DISCOUNTS' | localize"></a>
4951
+ </div>
4952
+ `,
4953
+ encapsulation: ViewEncapsulation.None
4954
+ },] }
4955
+ ];
4956
+ TransactionTotalsComponent.propDecorators = {
4957
+ totals: [{ type: Input }],
4958
+ showDiscount: [{ type: Input }],
4959
+ discountClick: [{ type: Output }],
4960
+ showClass: [{ type: HostBinding, args: ["class.co-transaction-totals",] }]
4961
+ };
4962
+
4963
+ class TransactionTotalsModule {
4964
+ }
4965
+ TransactionTotalsModule.decorators = [
4749
4966
  { type: NgModule, args: [{
4750
4967
  imports: [
4751
- CoreModule,
4752
4968
  CommonModule,
4753
- IconModule,
4754
- InputTextModule,
4755
- InputCheckboxModule,
4756
- InputRadioButtonModule,
4757
- FormModule,
4758
- InputComboBoxModule,
4759
- InputDatePickerModule,
4760
- InputNumberPickerModule,
4761
- CoDialogModule,
4762
- CoDialogPromptModule,
4763
- ButtonModule,
4764
- FlexModule,
4765
- MultiSelectListModule,
4766
- DropDownModule,
4767
- PopupModule.forRoot(),
4768
- CoSidebarModule,
4769
- CoGridModule,
4770
- ReactiveFormsModule,
4771
- FormsModule,
4772
- RelationAddressModule,
4773
- RelationAddressSelectModule,
4774
- RelationAddressTileModule,
4775
- CoRichTextEditorModule,
4776
- Carousel3dModule,
4777
- InputTextareaModule,
4778
- InputListboxModule,
4779
- PipeModule,
4780
- StepperModule,
4969
+ CoreModule,
4970
+ PipeModule
4781
4971
  ],
4782
4972
  declarations: [
4783
- CheckoutOverviewRelationEditComponent,
4784
- CheckoutOverviewDeliveryEditComponent,
4785
- CheckoutOverviewDeliveryAddressComponent,
4786
- CheckOutRelationSuggestionsListComponent,
4787
- CheckOutRelationSuggestionsListItemComponent,
4788
- CheckoutLoginComponent,
4789
- CheckoutComponent,
4790
- ],
4791
- providers: [
4792
- DictionaryService,
4793
- OptionsService
4794
- ],
4795
- entryComponents: [
4796
- CheckoutComponent
4973
+ TransactionTotalsComponent
4797
4974
  ],
4798
- exports: [CheckoutComponent],
4799
- bootstrap: [CheckoutComponent]
4975
+ exports: [
4976
+ TransactionTotalsComponent
4977
+ ]
4800
4978
  },] }
4801
4979
  ];
4802
4980
 
4803
- class ShoppingCartComponent {
4804
- constructor(service, _dictionary) {
4805
- this.service = service;
4806
- this._dictionary = _dictionary;
4807
- this.closeCart = new EventEmitter();
4808
- this.checkout = new EventEmitter();
4809
- this.transaction = new TransactionInfoResponse();
4810
- this._subs = [];
4811
- this._subs.push(this.service.transactionUpdated.subscribe((transaction) => {
4812
- if (transaction) {
4813
- this.transaction = transaction;
4814
- }
4815
- }));
4816
- }
4817
- showClass() {
4818
- return true;
4819
- }
4820
- ngOnDestroy() {
4821
- this._subs.forEach(s => s.unsubscribe());
4822
- }
4823
- }
4824
- ShoppingCartComponent.decorators = [
4825
- { type: Component, args: [{
4826
- selector: "co-shopping-cart",
4827
- template: `
4828
- <div class="cart-header">
4829
- <span class="cart-header-label" [textContent]="'SHOPPING_CART_OVERVIEW' | localize | append:'(' + service.articleAmount + ')'"></span>
4830
- </div>
4831
- <div class="shopping-cart-transaction-wrapper">
4832
- <co-transaction [showHeader]="false" [transaction]="transaction"></co-transaction>
4833
- </div>
4834
- <div class="cart-buttons">
4835
- <a class="button-resume" [textContent]="'SHOPPING_CART_RESUME' | localize"
4836
- (click)="closeCart.emit()"
4837
- ></a>
4838
- <co-button class="button-checkout" [label]="'SHOPPING_CART_CHECKOUT' | localize"
4839
- [disabled]="service.articleAmount === 0"
4840
- (click)="checkout.emit()"></co-button>
4841
- </div>
4842
- `,
4843
- encapsulation: ViewEncapsulation.None
4844
- },] }
4845
- ];
4846
- ShoppingCartComponent.ctorParameters = () => [
4847
- { type: TransactionService },
4848
- { type: DictionaryService }
4849
- ];
4850
- ShoppingCartComponent.propDecorators = {
4851
- closeCart: [{ type: Output }],
4852
- checkout: [{ type: Output }],
4853
- showClass: [{ type: HostBinding, args: ["class.co-shopping-cart",] }]
4854
- };
4855
-
4856
- // The different view modes for content, e.g. list, grid, ..
4857
- var ContentViewMode;
4858
- (function (ContentViewMode) {
4859
- ContentViewMode[ContentViewMode["List"] = 0] = "List";
4860
- ContentViewMode[ContentViewMode["Grid"] = 1] = "Grid";
4861
- ContentViewMode[ContentViewMode["GridExpanded"] = 2] = "GridExpanded";
4862
- ContentViewMode[ContentViewMode["MasterDetail"] = 3] = "MasterDetail";
4863
- ContentViewMode[ContentViewMode["Timeline"] = 4] = "Timeline";
4864
- })(ContentViewMode || (ContentViewMode = {}));
4865
-
4866
- class TransactionComponent {
4867
- constructor(iconCacheService, _service) {
4868
- this.iconCacheService = iconCacheService;
4869
- this._service = _service;
4870
- this.viewModes = ContentViewMode;
4871
- this.icons = Icon;
4872
- this.transaction = new TransactionInfoResponse();
4873
- this.showHeader = true;
4874
- this.activeViewMode = ContentViewMode.List;
4875
- this.showDiscountsSidebar = false;
4876
- this._subs = [];
4877
- this._subs.push(this._service.transactionUpdated.subscribe((transaction) => __awaiter(this, void 0, void 0, function* () {
4878
- this.transaction = transaction;
4879
- })));
4880
- }
4881
- set transactionId(value) {
4882
- if (value) {
4883
- this._service.getTransactionById(value);
4884
- }
4885
- }
4886
- showClass() {
4887
- return true;
4888
- }
4889
- ngOnDestroy() {
4890
- this._subs.forEach(s => s.unsubscribe());
4891
- }
4892
- addDiscount() {
4893
- this.showDiscountsSidebar = true;
4894
- // TODO
4895
- // this.transactionDiscountPercentage = this.service.currentTransaction.transactionDiscountPercentage;
4896
- // this.transactionDiscountAmount = this.service.currentTransaction.transactionDiscountAmount;
4897
- // this.transactionTotal = undefined;
4898
- }
4899
- saveTransactionLine(transactionAddTextLineRequest) {
4900
- if (transactionAddTextLineRequest.transactionUuid) { //update
4901
- }
4902
- else { // new transactionLine (transactionArticleText)
4903
- this._service.addTextLine(transactionAddTextLineRequest.showOnDocuments, transactionAddTextLineRequest.text, 0, transactionAddTextLineRequest.articleBound, 0, 0, 0);
4904
- }
4905
- }
4906
- }
4907
- TransactionComponent.decorators = [
4908
- { type: Component, args: [{
4909
- selector: "co-transaction",
4910
- template: `
4911
- <co-transaction-header *ngIf="showHeader" [transaction]="transaction"></co-transaction-header>
4912
- <div class="transaction-view-mode-buttons">
4913
- <co-button class="view-button white"
4914
- [class.selected]="this.activeViewMode === viewModes.List"
4915
- [iconData]="iconCacheService.getIcon(icons.ThickLines)"
4916
- [title]="'LIST_VIEW' | localize"
4917
- (click)="this.activeViewMode = viewModes.List"></co-button>
4918
- <co-button class="view-button white"
4919
- [class.selected]="this.activeViewMode === viewModes.Grid"
4920
- [iconData]="iconCacheService.getIcon(icons.ThinLines)"
4921
- [title]="'GRID_VIEW' | localize"
4922
- (click)="this.activeViewMode = viewModes.Grid"></co-button>
4923
- </div>
4924
- <div class="transaction-lines-wrapper" *ngIf="activeViewMode === viewModes.List">
4925
- <co-transaction-lines
4926
- [transactionLines]="transaction.transactionLines"
4927
- (saveTransactionLine)="saveTransactionLine($event)"
4928
- ></co-transaction-lines>
4929
- </div>
4930
- <div class="transaction-lines-grid-wrapper" *ngIf="activeViewMode === viewModes.Grid">
4931
- <co-transaction-lines-grid
4932
- [transactionLines]="transaction.transactionLines"
4933
- ></co-transaction-lines-grid>
4934
- </div>
4935
- <div class="transaction-footer-wrapper">
4936
- <co-transaction-totals [totals]="transaction.transactionTotal" [showDiscount]="true" (discountClick)="addDiscount()"></co-transaction-totals>
4937
- </div>
4938
- <co-discount *ngIf="showDiscountsSidebar">
4939
- </co-discount>
4940
- `,
4941
- encapsulation: ViewEncapsulation.None
4942
- },] }
4943
- ];
4944
- TransactionComponent.ctorParameters = () => [
4945
- { type: IconCacheService },
4946
- { type: TransactionService }
4947
- ];
4948
- TransactionComponent.propDecorators = {
4949
- transaction: [{ type: Input }],
4950
- transactionId: [{ type: Input }],
4951
- showHeader: [{ type: Input }],
4952
- showClass: [{ type: HostBinding, args: ["class.co-transaction",] }]
4953
- };
4954
-
4955
4981
  class TransactionArticleTextComponent {
4956
4982
  constructor(service) {
4957
4983
  this.service = service;
@@ -5098,9 +5124,11 @@ class TransactionLineComponent {
5098
5124
  this._dictionaryService = _dictionaryService;
5099
5125
  this.icons = Icon;
5100
5126
  this.preview = false;
5127
+ this.waitingForUserAction = new EventEmitter();
5101
5128
  this.stock = StockStatus.Low;
5102
5129
  this.showTransactionArticleText = false;
5103
5130
  this.showTransactionArticleTextOverview = false;
5131
+ this.showSidePanel = false;
5104
5132
  }
5105
5133
  set line(value) {
5106
5134
  this._line = value;
@@ -5211,15 +5239,27 @@ class TransactionLineComponent {
5211
5239
  // }
5212
5240
  _showArticleTextDialog() {
5213
5241
  this.showTransactionArticleText = true;
5242
+ this.waitingForUserAction.next(true);
5214
5243
  }
5215
5244
  _hideArticleTextDialog() {
5216
5245
  this.showTransactionArticleText = false;
5246
+ this.waitingForUserAction.next(false);
5217
5247
  }
5218
5248
  _showArticleTextOverviewDialog() {
5219
5249
  this.showTransactionArticleTextOverview = true;
5250
+ this.waitingForUserAction.next(true);
5220
5251
  }
5221
5252
  _hideArticleTextOverviewDialog() {
5222
5253
  this.showTransactionArticleTextOverview = false;
5254
+ this.waitingForUserAction.next(false);
5255
+ }
5256
+ handleShowSidePanel(event) {
5257
+ this.showSidePanel = true;
5258
+ this.waitingForUserAction.next(true);
5259
+ }
5260
+ handleCloseSidePanel(event) {
5261
+ this.showSidePanel = false;
5262
+ this.waitingForUserAction.next(false);
5223
5263
  }
5224
5264
  }
5225
5265
  TransactionLineComponent.decorators = [
@@ -5273,6 +5313,7 @@ TransactionLineComponent.decorators = [
5273
5313
  <div *ngIf=!preview class="transaction-line-buttons">
5274
5314
  <co-button class="transaction-line-overview-button circle" [iconData]="iconCacheService.getIcon(icons.Txt)" (click)="handleTransactionArticleTextOverview($event)"></co-button>
5275
5315
  <co-button class="transaction-line-add-text-button circle" [iconData]="iconCacheService.getIcon(icons.Txt)" (click)="handleTransactionArticleText($event)"></co-button>
5316
+ <co-button class="transaction-line-show-sidebar-button circle" [iconData]="iconCacheService.getIcon(icons.MasterDetail)" (click)="handleShowSidePanel($event)"></co-button>
5276
5317
  </div>
5277
5318
  </div>
5278
5319
  <div class="transaction-line-delete" *ngIf="!preview">
@@ -5313,7 +5354,18 @@ TransactionLineComponent.decorators = [
5313
5354
  (closeClick)="closeTransactionArticleText($event)"
5314
5355
  (cancelClick)="closeTransactionArticleText($event)"
5315
5356
  ></co-transaction-article-text>
5357
+ <co-transaction-line-side-panel *ngIf="showSidePanel" @showHideSidePanel
5358
+ [transactionLine]="line"
5359
+ (cancelClick)="handleCloseSidePanel($event)"
5360
+ ></co-transaction-line-side-panel>
5316
5361
  `,
5362
+ animations: [
5363
+ trigger("showHideSidePanel", [
5364
+ state("void", style({ transform: 'translateX(100%)' })),
5365
+ state("*", style({ transform: 'translateX(0)' })),
5366
+ transition("void <=> *", animate("200ms ease-in-out"))
5367
+ ])
5368
+ ],
5317
5369
  encapsulation: ViewEncapsulation.None
5318
5370
  },] }
5319
5371
  ];
@@ -5326,6 +5378,7 @@ TransactionLineComponent.ctorParameters = () => [
5326
5378
  TransactionLineComponent.propDecorators = {
5327
5379
  preview: [{ type: HostBinding, args: ["class.preview",] }, { type: Input }],
5328
5380
  line: [{ type: Input }],
5381
+ waitingForUserAction: [{ type: Output }],
5329
5382
  isText: [{ type: HostBinding, args: ["class.is-text",] }],
5330
5383
  isArticle: [{ type: HostBinding, args: ["class.is-article",] }],
5331
5384
  isSelected: [{ type: HostBinding, args: ["class.is-selected",] }],
@@ -5481,58 +5534,241 @@ TransactionArticleTextOverviewModule.decorators = [
5481
5534
  },] }
5482
5535
  ];
5483
5536
 
5484
- class TransactionLineModule {
5485
- }
5486
- TransactionLineModule.decorators = [
5487
- { type: NgModule, args: [{
5488
- imports: [
5489
- CommonModule,
5490
- CoreModule,
5491
- ButtonModule,
5492
- InputNumberPickerModule,
5493
- TransactionArticleTextModule,
5494
- TransactionArticleTextOverviewModule,
5495
- PipeModule
5496
- ],
5497
- declarations: [
5498
- TransactionLineComponent
5499
- ],
5500
- exports: [
5501
- TransactionLineComponent
5502
- ]
5503
- },] }
5504
- ];
5505
-
5506
- class TransactionLinesComponent {
5507
- constructor(iconCacheService, service) {
5508
- this.iconCacheService = iconCacheService;
5509
- this.service = service;
5537
+ class TransactionLineSidePanelComponent {
5538
+ constructor(iconService, _transactionService) {
5539
+ this.iconService = iconService;
5540
+ this._transactionService = _transactionService;
5510
5541
  this.icons = Icon;
5511
- this.transactionLines = [];
5512
- this.preview = false;
5513
- this.saveTransactionLine = new EventEmitter();
5514
- this.showTransactionArticleText = false;
5542
+ this.cancelClick = new EventEmitter();
5543
+ this.data = [];
5544
+ }
5545
+ set child(content) {
5546
+ this.inputPrice = content;
5547
+ this.inputPrice.commit = this.commitPrice;
5515
5548
  }
5516
5549
  showClass() {
5517
5550
  return true;
5518
5551
  }
5519
- trackByFn(index, line) {
5520
- return line.lineNr;
5552
+ handleCancelClick(event) {
5553
+ this.cancelClick.next(event);
5521
5554
  }
5522
- handleCanDragDrop(drag, drop) {
5523
- return drag.data instanceof TransactionLineInfo;
5555
+ commitPrice(price) {
5556
+ return __awaiter(this, void 0, void 0, function* () {
5557
+ return true;
5558
+ // return this._transactionService.updatePrice(this.transactionLine, price);
5559
+ });
5524
5560
  }
5525
- handleDrop(event) {
5526
- try {
5527
- const from = event.previousIndex;
5528
- const to = event.currentIndex;
5529
- if (from === to) {
5530
- return;
5531
- }
5532
- const beingDropped = this.transactionLines[from];
5533
- const target = this.transactionLines[to];
5534
- // set items in correct order
5535
- moveItemInArray(this.transactionLines, from, to);
5561
+ }
5562
+ TransactionLineSidePanelComponent.decorators = [
5563
+ { type: Component, args: [{
5564
+ selector: "co-transaction-line-side-panel",
5565
+ template: `
5566
+ <div class="transaction-side-panel-header">
5567
+ <co-button (click)="handleCancelClick($event)" [iconData]="iconService.getIcon(icons.Cancel)" class="white circle small"></co-button>
5568
+ <span class="side-panel-header-description" [textContent]="transactionLine.goodDescription"></span>
5569
+ <span class="side-panel-header-divider" [textContent]="'|'"></span>
5570
+ <span class="side-panel-header-sku" [textContent]="transactionLine.articleNumber"></span>
5571
+ </div>
5572
+ <div class="transaction-line-side-panel-content">
5573
+ <co-collapsible
5574
+ [iconData]="iconService.getIcon(icons.TriangleUp)"
5575
+ [headerTitle]="'PRICING' | localize"
5576
+ [expandButtonLast]="true"
5577
+ [expanded]="true"
5578
+ >
5579
+ <div class="collapsible-content-wrapper">
5580
+ <div class="side-panel-input-row">
5581
+ <co-input-text class="side-panel-input" [placeholder]="'NET_LINE_TOTAL' | localize" [model]="transactionLine.netLineTotal" [readonly]="true"></co-input-text>
5582
+ </div>
5583
+ <div class="side-panel-input-row">
5584
+ <co-input-number-picker class="side-panel-input" [label]="'AMOUNT' | localize" [(model)]="transactionLine.amount"></co-input-number-picker>
5585
+ <co-input-text #inputPrice class="side-panel-input"
5586
+ [placeholder]="'PRICE' | localize"
5587
+ [type]="'number'"
5588
+ [showSaveCancel]="true"
5589
+ [(model)]="transactionLine.price"
5590
+ ></co-input-text>
5591
+ </div>
5592
+ <div class="side-panel-input-row">
5593
+ <co-input-combo-box class="side-panel-input" [collection]="data" [(model)]="transactionLine.vatId" [placeholder]="'VAT' | localize"></co-input-combo-box>
5594
+ <co-input-combo-box class="side-panel-input" [collection]="data" [(model)]="transactionLine.priceListCode" [placeholder]="'PRICE_LIST' | localize"></co-input-combo-box>
5595
+ </div>
5596
+ </div>
5597
+ </co-collapsible>
5598
+ <co-collapsible
5599
+ [iconData]="iconService.getIcon(icons.TriangleUp)"
5600
+ [headerTitle]="'DISCOUNTS' | localize"
5601
+ [expandButtonLast]="true"
5602
+ [expanded]="true"
5603
+ >
5604
+ <div class="collapsible-content-wrapper">
5605
+ <div class="side-panel-input-row">
5606
+ <co-input-text class="side-panel-input" [placeholder]="'TOTAL_LINE_DISCOUNT' | localize" [model]="transactionLine.lineTotalDiscountAmount" [readonly]="true"></co-input-text>
5607
+ </div>
5608
+ <div class="side-panel-input-row">
5609
+ <co-input-text class="side-panel-input" [placeholder]="'DISCOUNT_PERCENTAGE' | localize" [type]="'number'" [model]="transactionLine.discountAmount"></co-input-text>
5610
+ <co-input-text class="side-panel-input" [placeholder]="'DISCOUNT_AMOUNT' | localize" [type]="'number'" [(model)]="transactionLine.lineDiscount"></co-input-text>
5611
+ </div>
5612
+ <div class="side-panel-input-row">
5613
+ <co-input-text class="side-panel-input" [placeholder]="'QUANTUM_DISCOUNT' | localize" [type]="'number'" [model]="transactionLine.quantumDiscount"></co-input-text>
5614
+ <co-input-text class="side-panel-input" [placeholder]="'SPECIAL_DISCOUNT' | localize" [type]="'number'" [(model)]="transactionLine.specialDiscount"></co-input-text>
5615
+ </div>
5616
+ <div class="side-panel-input-row">
5617
+ <co-input-text class="side-panel-input" [placeholder]="'SURCHARGE_AMOUNT' | localize" [model]="transactionLine.surchargeAmount" [readonly]="true"></co-input-text>
5618
+ <co-input-text class="side-panel-input" [placeholder]="'BUSINESS_RULE_DISCOUNT' | localize" [model]="'NIET_GEIMPLEMENTEERD'" [readonly]="true"></co-input-text>
5619
+ </div>
5620
+ </div>
5621
+ </co-collapsible>
5622
+ <co-collapsible
5623
+ [iconData]="iconService.getIcon(icons.TriangleUp)"
5624
+ [headerTitle]="'LOGISTICS_AND_PLANNING' | localize"
5625
+ [expandButtonLast]="true"
5626
+ [expanded]="true"
5627
+ >
5628
+ <div class="collapsible-content-wrapper">
5629
+ <div class="side-panel-input-row">
5630
+ <co-input-combo-box class="side-panel-input" [collection]="data" [(model)]="transactionLine.commissionCode" [placeholder]="'COMMISSION_CODE' | localize"></co-input-combo-box>
5631
+ <co-input-text class="side-panel-input" [placeholder]="'WAREHOUSE' | localize" [model]="transactionLine.warehouseNumber"></co-input-text>
5632
+ </div>
5633
+ <div class="side-panel-input-row">
5634
+ <co-input-combo-box class="side-panel-input" [collection]="data" [placeholder]="'DELIVERY_METHOD' | localize"></co-input-combo-box>
5635
+ <co-input-date class="side-panel-input" [placeholder]="'DELIVERY_DATE' | localize" [model]="transactionLine.deliveryDate"></co-input-date>
5636
+ </div>
5637
+ <div class="side-panel-input-row">
5638
+ <co-input-text class="side-panel-input" [placeholder]="'ASSEMBLY_TIME' | localize" [readonly]="true"></co-input-text>
5639
+ <co-input-text class="side-panel-input" [placeholder]="'ASSEMBLY_COSTS' | localize" [type]="'number'" [model]="transactionLine.assemblyCost" [readonly]="true"></co-input-text>
5640
+ </div>
5641
+ <div class="side-panel-input-row">
5642
+ <co-input-text class="side-panel-input" [placeholder]="'MODIFICATION_TIME' | localize" [readonly]="true"></co-input-text>
5643
+ </div>
5644
+ <div class="side-panel-input-row">
5645
+ <co-input-combo-box class="side-panel-input" [collection]="data" [placeholder]="'SUPPLIER' | localize"></co-input-combo-box>
5646
+ <co-input-text class="side-panel-input" [placeholder]="'ARTICLE_NR_SUPPLIER' | localize" [model]="transactionLine.articleNumber" [readonly]="true"></co-input-text>
5647
+ </div>
5648
+ <div class="side-panel-input-row">
5649
+ <co-input-text class="side-panel-input" [placeholder]="'IN_OUT_COLLECTION' | localize" [readonly]="true"></co-input-text>
5650
+ </div>
5651
+ </div>
5652
+ </co-collapsible>
5653
+
5654
+ <co-collapsible
5655
+ [iconData]="iconService.getIcon(icons.TriangleUp)"
5656
+ [headerTitle]="'OTHER' | localize"
5657
+ [expandButtonLast]="true"
5658
+ [expanded]="true"
5659
+ >
5660
+ <div class="collapsible-content-wrapper">
5661
+ <div class="side-panel-input-row">
5662
+ <co-input-text class="side-panel-input" [placeholder]="'REFERENCE' | localize" [model]="transactionLine.refLineNr"></co-input-text>
5663
+ </div>
5664
+ <div class="side-panel-input-row">
5665
+ <co-input-text class="side-panel-input" [placeholder]="'ORDER_RULESET' | localize"></co-input-text>
5666
+ </div>
5667
+ <div class="side-panel-input-row">
5668
+ <co-input-text class="side-panel-input" [placeholder]="'LAST_EDITED_DATE' | localize" [readonly]="true"></co-input-text>
5669
+ <co-input-text class="side-panel-input" [placeholder]="'LAST_EDITED_USER' | localize" [readonly]="true"></co-input-text>
5670
+ </div>
5671
+ <co-input-text [placeholder]="'FABRICATION_COST' | localize" [readonly]="true"></co-input-text>
5672
+ <co-input-text [placeholder]="'TRANSPORT_COST' | localize" [readonly]="true"></co-input-text>
5673
+ <co-input-text [placeholder]="'FABRICATION_COST_LINE_TOTAL' | localize" [readonly]="true"></co-input-text>
5674
+ <co-input-text [placeholder]="'TRANSPORT_COST_LINE_TOTAL' | localize" [readonly]="true"></co-input-text>
5675
+ <co-input-text [placeholder]="'CUSTOMER' | localize" [readonly]="true"></co-input-text>
5676
+ </div>
5677
+ </co-collapsible>
5678
+ </div>
5679
+ `,
5680
+ encapsulation: ViewEncapsulation.None
5681
+ },] }
5682
+ ];
5683
+ TransactionLineSidePanelComponent.ctorParameters = () => [
5684
+ { type: IconCacheService },
5685
+ { type: TransactionService }
5686
+ ];
5687
+ TransactionLineSidePanelComponent.propDecorators = {
5688
+ child: [{ type: ViewChild, args: ['inputPrice', { read: InputTextComponent },] }],
5689
+ transactionLine: [{ type: Input }],
5690
+ cancelClick: [{ type: Output }],
5691
+ showClass: [{ type: HostBinding, args: ["class.co-transaction-line-side-panel",] }]
5692
+ };
5693
+
5694
+ class TransactionLineSidePanelModule {
5695
+ }
5696
+ TransactionLineSidePanelModule.decorators = [
5697
+ { type: NgModule, args: [{
5698
+ imports: [
5699
+ CommonModule,
5700
+ CoreModule,
5701
+ PipeModule,
5702
+ ButtonModule,
5703
+ CollapsibleModule,
5704
+ InputTextModule,
5705
+ InputComboBoxModule,
5706
+ InputDatePickerModule,
5707
+ InputNumberPickerModule
5708
+ ],
5709
+ declarations: [
5710
+ TransactionLineSidePanelComponent
5711
+ ],
5712
+ exports: [
5713
+ TransactionLineSidePanelComponent
5714
+ ]
5715
+ },] }
5716
+ ];
5717
+
5718
+ class TransactionLineModule {
5719
+ }
5720
+ TransactionLineModule.decorators = [
5721
+ { type: NgModule, args: [{
5722
+ imports: [
5723
+ CommonModule,
5724
+ CoreModule,
5725
+ ButtonModule,
5726
+ InputNumberPickerModule,
5727
+ TransactionArticleTextModule,
5728
+ TransactionArticleTextOverviewModule,
5729
+ PipeModule,
5730
+ TransactionLineSidePanelModule
5731
+ ],
5732
+ declarations: [
5733
+ TransactionLineComponent
5734
+ ],
5735
+ exports: [
5736
+ TransactionLineComponent
5737
+ ]
5738
+ },] }
5739
+ ];
5740
+
5741
+ class TransactionLinesComponent {
5742
+ constructor(iconCacheService, service) {
5743
+ this.iconCacheService = iconCacheService;
5744
+ this.service = service;
5745
+ this.icons = Icon;
5746
+ this.transactionLines = [];
5747
+ this.preview = false;
5748
+ this.saveTransactionLine = new EventEmitter();
5749
+ this.showTransactionArticleText = false;
5750
+ this.userActionRequired = false;
5751
+ }
5752
+ showClass() {
5753
+ return true;
5754
+ }
5755
+ trackByFn(index, line) {
5756
+ return line.lineNr;
5757
+ }
5758
+ handleCanDragDrop(drag, drop) {
5759
+ return drag.data instanceof TransactionLineInfo;
5760
+ }
5761
+ handleDrop(event) {
5762
+ try {
5763
+ const from = event.previousIndex;
5764
+ const to = event.currentIndex;
5765
+ if (from === to) {
5766
+ return;
5767
+ }
5768
+ const beingDropped = this.transactionLines[from];
5769
+ const target = this.transactionLines[to];
5770
+ // set items in correct order
5771
+ moveItemInArray(this.transactionLines, from, to);
5536
5772
  this.service.changeLineSequence(beingDropped.uuid, from > to ? target.lineNr : null, from < to ? target.lineNr : null).catch(() => {
5537
5773
  // something went wrong, reset drop
5538
5774
  moveItemInArray(this.transactionLines, to, from);
@@ -5578,13 +5814,17 @@ TransactionLinesComponent.decorators = [
5578
5814
  <div cdkDropListGroup class="drop-list-group">
5579
5815
  <div #dropList cdkDropList cdkDropListOrientation="vertical"
5580
5816
  class="transaction-lines-drag-drop-list narrow-scrollbar"
5581
- [cdkDropListDisabled]="preview"
5817
+ [cdkDropListDisabled]="preview || userActionRequired"
5582
5818
  [cdkDropListData]="transactionLines"
5583
5819
  [cdkDropListEnterPredicate]="handleCanDragDrop"
5584
5820
  (cdkDropListDropped)="handleDrop($event)"
5585
5821
  >
5586
5822
  <div class="draggable-transaction-line" *ngFor="let line of transactionLines; trackBy:trackByFn;" cdkDrag>
5587
- <co-transaction-line [preview]="preview" [line]="line" (dblclick)="handleTransactionLineDblClick(line)"></co-transaction-line>
5823
+ <co-transaction-line
5824
+ [preview]="preview"
5825
+ [line]="line"
5826
+ (dblclick)="handleTransactionLineDblClick(line)"
5827
+ (waitingForUserAction)="userActionRequired = $event"></co-transaction-line>
5588
5828
  </div>
5589
5829
  </div>
5590
5830
  </div>
@@ -5601,101 +5841,603 @@ TransactionLinesComponent.decorators = [
5601
5841
  encapsulation: ViewEncapsulation.None
5602
5842
  },] }
5603
5843
  ];
5604
- TransactionLinesComponent.ctorParameters = () => [
5605
- { type: IconCacheService },
5606
- { type: TransactionService }
5844
+ TransactionLinesComponent.ctorParameters = () => [
5845
+ { type: IconCacheService },
5846
+ { type: TransactionService }
5847
+ ];
5848
+ TransactionLinesComponent.propDecorators = {
5849
+ transactionArticleText: [{ type: ViewChild, args: [TransactionArticleTextComponent,] }],
5850
+ transactionLines: [{ type: Input }],
5851
+ preview: [{ type: Input }],
5852
+ saveTransactionLine: [{ type: Output }],
5853
+ showClass: [{ type: HostBinding, args: ["class.co-transaction-lines",] }]
5854
+ };
5855
+
5856
+ class TransactionLinesModule {
5857
+ }
5858
+ TransactionLinesModule.decorators = [
5859
+ { type: NgModule, args: [{
5860
+ imports: [
5861
+ CommonModule,
5862
+ CoreModule,
5863
+ TransactionLineModule,
5864
+ DragDropModule,
5865
+ ButtonModule,
5866
+ TransactionArticleTextModule,
5867
+ PipeModule
5868
+ ],
5869
+ declarations: [
5870
+ TransactionLinesComponent
5871
+ ],
5872
+ exports: [
5873
+ TransactionLinesComponent
5874
+ ]
5875
+ },] }
5876
+ ];
5877
+
5878
+ class ShoppingCartPreviewComponent {
5879
+ constructor(service) {
5880
+ this.service = service;
5881
+ this.icons = Icon;
5882
+ this.showCheckoutButton = true;
5883
+ this.withoutBorder = false;
5884
+ this.checkout = new EventEmitter();
5885
+ this.editCartClick = new EventEmitter();
5886
+ }
5887
+ showClass() {
5888
+ return true;
5889
+ }
5890
+ }
5891
+ ShoppingCartPreviewComponent.decorators = [
5892
+ { type: Component, args: [{
5893
+ selector: "co-shopping-cart-preview",
5894
+ template: `
5895
+ <div class="cart-header">
5896
+ <span class="cart-header-label" [textContent]="'CART' | localize"></span>
5897
+ </div>
5898
+ <div class="cart-lines">
5899
+ <co-transaction-lines
5900
+ [transactionLines]="service.currentTransaction.transactionLines"
5901
+ [preview]="true"
5902
+ ></co-transaction-lines>
5903
+ </div>
5904
+ <div class="preview-totals-wrapper">
5905
+ <co-transaction-totals [totals]="service.currentTransaction.transactionTotal"></co-transaction-totals>
5906
+ </div>
5907
+ <div class="cart-buttons">
5908
+ <a class="button-edit-cart" [textContent]="'EDIT_CART' | localize"
5909
+ (click)="editCartClick.emit()"
5910
+ ></a>
5911
+ <co-button *ngIf="showCheckoutButton" class="button-checkout" [label]="'SHOPPING_CART_CHECKOUT' | localize"
5912
+ [disabled]="!service.articleAmount"
5913
+ (click)="checkout.emit()"></co-button>
5914
+ </div>
5915
+ `,
5916
+ encapsulation: ViewEncapsulation.None
5917
+ },] }
5918
+ ];
5919
+ ShoppingCartPreviewComponent.ctorParameters = () => [
5920
+ { type: TransactionService }
5921
+ ];
5922
+ ShoppingCartPreviewComponent.propDecorators = {
5923
+ showCheckoutButton: [{ type: Input }],
5924
+ withoutBorder: [{ type: HostBinding, args: ["class.borderless",] }, { type: Input }],
5925
+ checkout: [{ type: Output }],
5926
+ editCartClick: [{ type: Output }],
5927
+ showClass: [{ type: HostBinding, args: ["class.co-shopping-cart-preview",] }]
5928
+ };
5929
+
5930
+ class ShoppingCartPreviewModule {
5931
+ }
5932
+ ShoppingCartPreviewModule.decorators = [
5933
+ { type: NgModule, args: [{
5934
+ imports: [
5935
+ CommonModule,
5936
+ CoreModule,
5937
+ ButtonModule,
5938
+ TransactionLinesModule,
5939
+ TransactionTotalsModule,
5940
+ PipeModule
5941
+ ],
5942
+ declarations: [
5943
+ ShoppingCartPreviewComponent
5944
+ ],
5945
+ exports: [
5946
+ ShoppingCartPreviewComponent
5947
+ ]
5948
+ },] }
5949
+ ];
5950
+
5951
+ class SellerInformationComponent {
5952
+ constructor(_service) {
5953
+ this._service = _service;
5954
+ }
5955
+ set relationId(value) {
5956
+ this._relationId = value;
5957
+ this._getRelation();
5958
+ }
5959
+ get relationId() {
5960
+ return this._relationId;
5961
+ }
5962
+ showClass() {
5963
+ return true;
5964
+ }
5965
+ _getRelation() {
5966
+ if (!isNaN(this._relationId)) {
5967
+ const request = new RelationRequest();
5968
+ request.relationId = this._relationId;
5969
+ this._service.getRelationListObjects(request).then((data) => {
5970
+ if (data && data.length > 0) {
5971
+ this.relation = data[0];
5972
+ if (this.relation && this.relation.image && this.relation.image.documentId) {
5973
+ this._service.getDocumentContent(this.relation.image.documentId)
5974
+ .then((content) => {
5975
+ this.image = content;
5976
+ })
5977
+ .catch((e) => {
5978
+ this.image = "";
5979
+ });
5980
+ }
5981
+ }
5982
+ });
5983
+ }
5984
+ }
5985
+ }
5986
+ SellerInformationComponent.decorators = [
5987
+ { type: Component, args: [{
5988
+ selector: "co-seller-information",
5989
+ template: `
5990
+ <co-image-display [model]="image" *ngIf="image; else showInitials"></co-image-display>
5991
+ <ng-template #showInitials>
5992
+ <svg viewBox="0 0 30 30">
5993
+ <text x="50%" y="50%" dominant-baseline="middle" text-anchor="middle">{{ relation?.displayInitials }}</text>
5994
+ </svg>
5995
+ </ng-template>
5996
+ `,
5997
+ encapsulation: ViewEncapsulation.None
5998
+ },] }
5999
+ ];
6000
+ SellerInformationComponent.ctorParameters = () => [
6001
+ { type: TransactionService }
6002
+ ];
6003
+ SellerInformationComponent.propDecorators = {
6004
+ relationId: [{ type: Input }],
6005
+ relation: [{ type: Input }],
6006
+ showClass: [{ type: HostBinding, args: ["class.co-seller-information",] }]
6007
+ };
6008
+
6009
+ class SellerInformationModule {
6010
+ }
6011
+ SellerInformationModule.decorators = [
6012
+ { type: NgModule, args: [{
6013
+ imports: [
6014
+ CommonModule,
6015
+ CoreModule
6016
+ ],
6017
+ declarations: [
6018
+ SellerInformationComponent
6019
+ ],
6020
+ exports: [
6021
+ SellerInformationComponent
6022
+ ]
6023
+ },] }
6024
+ ];
6025
+
6026
+ class DeliveryType {
6027
+ }
6028
+
6029
+ class DeliveryTypeTileComponent {
6030
+ constructor() {
6031
+ this.type = new DeliveryType();
6032
+ this.selected = false;
6033
+ this.selectedChange = new EventEmitter();
6034
+ this.deliveryTypeIdx = 0;
6035
+ }
6036
+ showClass() {
6037
+ return true;
6038
+ }
6039
+ setIndexDeliveryType(index) {
6040
+ console.log(index);
6041
+ }
6042
+ }
6043
+ DeliveryTypeTileComponent.decorators = [
6044
+ { type: Component, args: [{
6045
+ selector: "co-delivery-type-tile",
6046
+ template: `
6047
+ <co-tile [selected]="selected" (selectedChange)="selectedChange.emit($event)">
6048
+ <div class="delivery-type-content-wrapper">
6049
+ <div class="delivery-type-title" [textContent]="type.description"></div>
6050
+ <div class="delivery-type-icon">
6051
+ <icon [icon]="type.icon"></icon>
6052
+ </div>
6053
+ <div *ngIf="type.price" class="delivery-type-price" [textContent]="type.price | priceDisplay"></div>
6054
+ </div>
6055
+ </co-tile>
6056
+ `,
6057
+ encapsulation: ViewEncapsulation.None
6058
+ },] }
6059
+ ];
6060
+ DeliveryTypeTileComponent.propDecorators = {
6061
+ type: [{ type: Input }],
6062
+ selected: [{ type: Input }],
6063
+ selectedChange: [{ type: Output }],
6064
+ showClass: [{ type: HostBinding, args: ["class.co-delivery-type-tile",] }]
6065
+ };
6066
+
6067
+ class DeliveryTypeTileModule {
6068
+ }
6069
+ DeliveryTypeTileModule.decorators = [
6070
+ { type: NgModule, args: [{
6071
+ imports: [
6072
+ CommonModule,
6073
+ CoreModule,
6074
+ InputRadioButtonModule,
6075
+ PriceDisplayPipeModule,
6076
+ TileModule
6077
+ ],
6078
+ declarations: [
6079
+ DeliveryTypeTileComponent
6080
+ ],
6081
+ exports: [
6082
+ DeliveryTypeTileComponent
6083
+ ]
6084
+ },] }
6085
+ ];
6086
+
6087
+ class PaymentComponent {
6088
+ constructor(_transactionService) {
6089
+ this._transactionService = _transactionService;
6090
+ this.icons = Icon;
6091
+ this.amount = 0;
6092
+ this.paymentMethodIdx = 0;
6093
+ this.paymentMethods = [
6094
+ { icon: this.icons.Truck, description: 'Contant' },
6095
+ { icon: this.icons.IdealLogo, description: 'iDeal' },
6096
+ { icon: this.icons.Truck, description: 'Creditcard' },
6097
+ { icon: this.icons.Truck, description: 'Overschrijving' }
6098
+ ];
6099
+ this.cashRegisters = [];
6100
+ }
6101
+ showClass() {
6102
+ return true;
6103
+ }
6104
+ ngOnInit() {
6105
+ this._getCashRegisters();
6106
+ }
6107
+ _getCashRegisters() {
6108
+ this._transactionService.getCashRegisters().then((cashRegisters) => {
6109
+ this.cashRegisters = cashRegisters;
6110
+ });
6111
+ }
6112
+ }
6113
+ PaymentComponent.decorators = [
6114
+ { type: Component, args: [{
6115
+ selector: "co-payment",
6116
+ template: `
6117
+ <div class="payment-wrapper">
6118
+ <div class="payment-methods-header">
6119
+ <span class="payment-header-title" [textContent]="'Selecteer een' | localize"></span>
6120
+ <span class="payment-header-title extra" [textContent]="'gratis' | localize:false"></span>
6121
+ <span class="payment-header-title" [textContent]="'betaalmethode' | localize:false"></span>
6122
+ </div>
6123
+ <div class="payment-methods">
6124
+ <co-payment-tile *ngFor="let paymentMethod of paymentMethods; let index = index"
6125
+ [icon]="paymentMethod.icon"
6126
+ [description]="paymentMethod.description"
6127
+ [selected]="paymentMethodIdx === index"
6128
+ (selectedChange)="paymentMethodIdx = index"
6129
+ ></co-payment-tile>
6130
+ </div>
6131
+ <div class="payment-cash-register-header">
6132
+ <span class="payment-header-title" [textContent]="'Selecteer kassa' | localize"></span>
6133
+ </div>
6134
+ <div class="payment-methods">
6135
+ <co-payment-tile *ngFor="let cashRegister of cashRegisters"
6136
+ [icon]="cashRegister.icon"
6137
+ [description]="cashRegister.description"
6138
+ ></co-payment-tile>
6139
+ </div>
6140
+ <div class="payment-to-pay">
6141
+ <div [textContent]="'Te betalen' | localize"></div>
6142
+ <div class="payment-amount" [textContent]="amount | priceDisplay"></div>
6143
+ </div>
6144
+ </div>
6145
+ `,
6146
+ encapsulation: ViewEncapsulation.None
6147
+ },] }
6148
+ ];
6149
+ PaymentComponent.ctorParameters = () => [
6150
+ { type: TransactionService }
6151
+ ];
6152
+ PaymentComponent.propDecorators = {
6153
+ amount: [{ type: Input }],
6154
+ showClass: [{ type: HostBinding, args: ["class.co-payment",] }]
6155
+ };
6156
+
6157
+ class PaymentTileComponent {
6158
+ constructor() {
6159
+ this.selected = false;
6160
+ this.selectedChange = new EventEmitter();
6161
+ }
6162
+ showClass() {
6163
+ return true;
6164
+ }
6165
+ }
6166
+ PaymentTileComponent.decorators = [
6167
+ { type: Component, args: [{
6168
+ selector: "co-payment-tile",
6169
+ template: `
6170
+ <co-tile [selected]="selected" (selectedChange)="selectedChange.emit($event)">
6171
+ <div class="payment-tile-wrapper">
6172
+ <icon class="payment-tile-icon" [icon]="icon"></icon>
6173
+ <span class="payment-tile-description" [textContent]="description | localize"></span>
6174
+ </div>
6175
+ </co-tile>
6176
+ `,
6177
+ encapsulation: ViewEncapsulation.None
6178
+ },] }
6179
+ ];
6180
+ PaymentTileComponent.propDecorators = {
6181
+ selected: [{ type: Input }],
6182
+ icon: [{ type: Input }],
6183
+ description: [{ type: Input }],
6184
+ selectedChange: [{ type: Output }],
6185
+ showClass: [{ type: HostBinding, args: ["class.co-payment-tile",] }]
6186
+ };
6187
+
6188
+ class PaymentTileModule {
6189
+ }
6190
+ PaymentTileModule.decorators = [
6191
+ { type: NgModule, args: [{
6192
+ imports: [
6193
+ CommonModule,
6194
+ TileModule,
6195
+ CoreModule,
6196
+ PipeModule
6197
+ ],
6198
+ declarations: [
6199
+ PaymentTileComponent
6200
+ ],
6201
+ exports: [
6202
+ PaymentTileComponent
6203
+ ]
6204
+ },] }
6205
+ ];
6206
+
6207
+ class PaymentModule {
6208
+ }
6209
+ PaymentModule.decorators = [
6210
+ { type: NgModule, args: [{
6211
+ imports: [
6212
+ CommonModule,
6213
+ CoreModule,
6214
+ PipeModule,
6215
+ PaymentTileModule,
6216
+ PriceDisplayPipeModule
6217
+ ],
6218
+ declarations: [
6219
+ PaymentComponent
6220
+ ],
6221
+ exports: [
6222
+ PaymentComponent
6223
+ ]
6224
+ },] }
6225
+ ];
6226
+
6227
+ class CheckoutModule {
6228
+ }
6229
+ CheckoutModule.decorators = [
6230
+ { type: NgModule, args: [{
6231
+ imports: [
6232
+ CoreModule,
6233
+ CommonModule,
6234
+ IconModule,
6235
+ InputTextModule,
6236
+ InputCheckboxModule,
6237
+ InputRadioButtonModule,
6238
+ FormModule,
6239
+ InputComboBoxModule,
6240
+ InputDatePickerModule,
6241
+ InputNumberPickerModule,
6242
+ CoDialogModule,
6243
+ CoDialogPromptModule,
6244
+ ButtonModule,
6245
+ FlexModule,
6246
+ MultiSelectListModule,
6247
+ DropDownModule,
6248
+ PopupModule.forRoot(),
6249
+ CoSidebarModule,
6250
+ CoGridModule,
6251
+ ReactiveFormsModule,
6252
+ FormsModule,
6253
+ RelationAddressModule,
6254
+ RelationAddressSelectModule,
6255
+ RelationAddressTileModule,
6256
+ CoRichTextEditorModule,
6257
+ Carousel3dModule,
6258
+ InputTextareaModule,
6259
+ InputListboxModule,
6260
+ PipeModule,
6261
+ StepperModule,
6262
+ ShoppingCartPreviewModule,
6263
+ SellerInformationModule,
6264
+ DeliveryTypeTileModule,
6265
+ CollapsibleModule,
6266
+ PaymentModule,
6267
+ ],
6268
+ declarations: [
6269
+ CheckoutOverviewRelationEditComponent,
6270
+ CheckoutOverviewDeliveryEditComponent,
6271
+ CheckoutOverviewDeliveryAddressComponent,
6272
+ CheckOutRelationSuggestionsListComponent,
6273
+ CheckOutRelationSuggestionsListItemComponent,
6274
+ CheckoutLoginComponent,
6275
+ CheckoutComponent,
6276
+ ],
6277
+ providers: [
6278
+ DictionaryService,
6279
+ OptionsService
6280
+ ],
6281
+ entryComponents: [
6282
+ CheckoutComponent
6283
+ ],
6284
+ exports: [CheckoutComponent],
6285
+ bootstrap: [CheckoutComponent]
6286
+ },] }
6287
+ ];
6288
+
6289
+ class ShoppingCartComponent {
6290
+ constructor(service, _dictionary) {
6291
+ this.service = service;
6292
+ this._dictionary = _dictionary;
6293
+ this.closeCart = new EventEmitter();
6294
+ this.checkout = new EventEmitter();
6295
+ this.transaction = new TransactionInfoResponse();
6296
+ this._subs = [];
6297
+ this._subs.push(this.service.transactionUpdated.subscribe((transaction) => {
6298
+ if (transaction) {
6299
+ this.transaction = transaction;
6300
+ }
6301
+ }));
6302
+ }
6303
+ showClass() {
6304
+ return true;
6305
+ }
6306
+ ngOnDestroy() {
6307
+ this._subs.forEach(s => s.unsubscribe());
6308
+ }
6309
+ }
6310
+ ShoppingCartComponent.decorators = [
6311
+ { type: Component, args: [{
6312
+ selector: "co-shopping-cart",
6313
+ template: `
6314
+ <div class="cart-header">
6315
+ <span class="cart-header-label" [textContent]="'SHOPPING_CART_OVERVIEW' | localize | append:'(' + service.articleAmount + ')'"></span>
6316
+ </div>
6317
+ <div class="shopping-cart-transaction-wrapper">
6318
+ <co-transaction [showHeader]="false" [transaction]="transaction"></co-transaction>
6319
+ </div>
6320
+ <div class="cart-buttons">
6321
+ <a class="button-resume" [textContent]="'SHOPPING_CART_RESUME' | localize"
6322
+ (click)="closeCart.emit()"
6323
+ ></a>
6324
+ <co-button class="button-checkout" [label]="'SHOPPING_CART_CHECKOUT' | localize"
6325
+ [disabled]="service.articleAmount === 0"
6326
+ (click)="checkout.emit()"></co-button>
6327
+ </div>
6328
+ `,
6329
+ encapsulation: ViewEncapsulation.None
6330
+ },] }
6331
+ ];
6332
+ ShoppingCartComponent.ctorParameters = () => [
6333
+ { type: TransactionService },
6334
+ { type: DictionaryService }
5607
6335
  ];
5608
- TransactionLinesComponent.propDecorators = {
5609
- transactionArticleText: [{ type: ViewChild, args: [TransactionArticleTextComponent,] }],
5610
- transactionLines: [{ type: Input }],
5611
- preview: [{ type: Input }],
5612
- saveTransactionLine: [{ type: Output }],
5613
- showClass: [{ type: HostBinding, args: ["class.co-transaction-lines",] }]
6336
+ ShoppingCartComponent.propDecorators = {
6337
+ closeCart: [{ type: Output }],
6338
+ checkout: [{ type: Output }],
6339
+ showClass: [{ type: HostBinding, args: ["class.co-shopping-cart",] }]
5614
6340
  };
5615
6341
 
5616
- class TransactionLinesModule {
5617
- }
5618
- TransactionLinesModule.decorators = [
5619
- { type: NgModule, args: [{
5620
- imports: [
5621
- CommonModule,
5622
- CoreModule,
5623
- TransactionLineModule,
5624
- DragDropModule,
5625
- ButtonModule,
5626
- TransactionArticleTextModule,
5627
- PipeModule
5628
- ],
5629
- declarations: [
5630
- TransactionLinesComponent
5631
- ],
5632
- exports: [
5633
- TransactionLinesComponent
5634
- ]
5635
- },] }
5636
- ];
6342
+ // The different view modes for content, e.g. list, grid, ..
6343
+ var ContentViewMode;
6344
+ (function (ContentViewMode) {
6345
+ ContentViewMode[ContentViewMode["List"] = 0] = "List";
6346
+ ContentViewMode[ContentViewMode["Grid"] = 1] = "Grid";
6347
+ ContentViewMode[ContentViewMode["GridExpanded"] = 2] = "GridExpanded";
6348
+ ContentViewMode[ContentViewMode["MasterDetail"] = 3] = "MasterDetail";
6349
+ ContentViewMode[ContentViewMode["Timeline"] = 4] = "Timeline";
6350
+ })(ContentViewMode || (ContentViewMode = {}));
5637
6351
 
5638
- class TransactionTotalsComponent {
5639
- constructor() {
5640
- this.showDiscount = false;
5641
- this.discountClick = new EventEmitter();
6352
+ class TransactionComponent {
6353
+ constructor(iconCacheService, _service) {
6354
+ this.iconCacheService = iconCacheService;
6355
+ this._service = _service;
6356
+ this.viewModes = ContentViewMode;
6357
+ this.icons = Icon;
6358
+ this.transaction = new TransactionInfoResponse();
6359
+ this.showHeader = true;
6360
+ this.activeViewMode = ContentViewMode.List;
6361
+ this.showDiscountsSidebar = false;
6362
+ this._subs = [];
6363
+ this._subs.push(this._service.transactionUpdated.subscribe((transaction) => __awaiter(this, void 0, void 0, function* () {
6364
+ this.transaction = transaction;
6365
+ })));
6366
+ }
6367
+ set transactionId(value) {
6368
+ if (value) {
6369
+ this._service.getTransactionById(value);
6370
+ }
5642
6371
  }
5643
6372
  showClass() {
5644
6373
  return true;
5645
6374
  }
6375
+ ngOnDestroy() {
6376
+ this._subs.forEach(s => s.unsubscribe());
6377
+ }
6378
+ addDiscount() {
6379
+ this.showDiscountsSidebar = true;
6380
+ // TODO
6381
+ // this.transactionDiscountPercentage = this.service.currentTransaction.transactionDiscountPercentage;
6382
+ // this.transactionDiscountAmount = this.service.currentTransaction.transactionDiscountAmount;
6383
+ // this.transactionTotal = undefined;
6384
+ }
6385
+ saveTransactionLine(transactionAddTextLineRequest) {
6386
+ if (transactionAddTextLineRequest.transactionUuid) { //update
6387
+ }
6388
+ else { // new transactionLine (transactionArticleText)
6389
+ this._service.addTextLine(transactionAddTextLineRequest.showOnDocuments, transactionAddTextLineRequest.text, 0, transactionAddTextLineRequest.articleBound, 0, 0, 0);
6390
+ }
6391
+ }
5646
6392
  }
5647
- TransactionTotalsComponent.decorators = [
6393
+ TransactionComponent.decorators = [
5648
6394
  { type: Component, args: [{
5649
- selector: "co-transaction-totals",
6395
+ selector: "co-transaction",
5650
6396
  template: `
5651
- <div class="transaction-totals-wrapper">
5652
- <span class="totals-gross label" [textContent]="'ORDER_GROSS' | localize"></span>
5653
- <span class="totals-gross value" [textContent]="totals?.grossAmount | coCurrency: true"></span>
5654
- <ng-container *ngIf="totals?.discountAmount">
5655
- <span class="totals-discount-amount label" [textContent]="'DISCOUNT_AMOUNT' | localize"></span>
5656
- <span class="totals-discount-amount value" [textContent]="totals?.discountAmount | coCurrency: true"></span>
5657
- </ng-container>
5658
- <ng-container *ngIf="totals?.transactionDiscountAmount">
5659
- <span class="totals-discount label" [textContent]="'TRANSACTION_DISCOUNT' | localize"></span>
5660
- <span class="totals-discount value" [textContent]="totals?.transactionDiscountAmount | coCurrency: true"></span>
5661
- </ng-container>
5662
- <ng-container *ngIf="totals?.transactionDiscountPercentage">
5663
- <span class="totals-discount-percentage label" [textContent]="'TRANSACTION_DISCOUNT_PERC' | localize"></span>
5664
- <span class="totals-discount-percentage value" [textContent]="totals?.transactionDiscountPercentage.toString() | append:' %'"></span>
5665
- </ng-container>
5666
- <span class="totals-net label" [textContent]="'ORDER_NET'| localize"></span>
5667
- <span class="totals-net value" [textContent]="totals?.netAmount | coCurrency: true"></span>
5668
- <a *ngIf="showDiscount" class="add-discount label" (click)="discountClick.emit($event)" [textContent]="'ADD_DISCOUNTS' | localize"></a>
6397
+ <co-transaction-header *ngIf="showHeader" [transaction]="transaction"></co-transaction-header>
6398
+ <div class="transaction-view-mode-buttons">
6399
+ <co-button class="view-button white"
6400
+ [class.selected]="this.activeViewMode === viewModes.List"
6401
+ [iconData]="iconCacheService.getIcon(icons.ThickLines)"
6402
+ [title]="'LIST_VIEW' | localize"
6403
+ (click)="this.activeViewMode = viewModes.List"></co-button>
6404
+ <co-button class="view-button white"
6405
+ [class.selected]="this.activeViewMode === viewModes.Grid"
6406
+ [iconData]="iconCacheService.getIcon(icons.ThinLines)"
6407
+ [title]="'GRID_VIEW' | localize"
6408
+ (click)="this.activeViewMode = viewModes.Grid"></co-button>
6409
+ </div>
6410
+ <div class="transaction-lines-wrapper" *ngIf="activeViewMode === viewModes.List">
6411
+ <co-transaction-lines
6412
+ [transactionLines]="transaction.transactionLines"
6413
+ (saveTransactionLine)="saveTransactionLine($event)"
6414
+ ></co-transaction-lines>
6415
+ </div>
6416
+ <div class="transaction-lines-grid-wrapper" *ngIf="activeViewMode === viewModes.Grid">
6417
+ <co-transaction-lines-grid
6418
+ [transactionLines]="transaction.transactionLines"
6419
+ ></co-transaction-lines-grid>
6420
+ </div>
6421
+ <div class="transaction-footer-wrapper">
6422
+ <co-transaction-totals [totals]="transaction.transactionTotal" [showDiscount]="true" (discountClick)="addDiscount()"></co-transaction-totals>
5669
6423
  </div>
6424
+ <co-discount *ngIf="showDiscountsSidebar">
6425
+ </co-discount>
5670
6426
  `,
5671
6427
  encapsulation: ViewEncapsulation.None
5672
6428
  },] }
5673
6429
  ];
5674
- TransactionTotalsComponent.propDecorators = {
5675
- totals: [{ type: Input }],
5676
- showDiscount: [{ type: Input }],
5677
- discountClick: [{ type: Output }],
5678
- showClass: [{ type: HostBinding, args: ["class.co-transaction-totals",] }]
6430
+ TransactionComponent.ctorParameters = () => [
6431
+ { type: IconCacheService },
6432
+ { type: TransactionService }
6433
+ ];
6434
+ TransactionComponent.propDecorators = {
6435
+ transaction: [{ type: Input }],
6436
+ transactionId: [{ type: Input }],
6437
+ showHeader: [{ type: Input }],
6438
+ showClass: [{ type: HostBinding, args: ["class.co-transaction",] }]
5679
6439
  };
5680
6440
 
5681
- class TransactionTotalsModule {
5682
- }
5683
- TransactionTotalsModule.decorators = [
5684
- { type: NgModule, args: [{
5685
- imports: [
5686
- CommonModule,
5687
- CoreModule,
5688
- PipeModule
5689
- ],
5690
- declarations: [
5691
- TransactionTotalsComponent
5692
- ],
5693
- exports: [
5694
- TransactionTotalsComponent
5695
- ]
5696
- },] }
5697
- ];
5698
-
5699
6441
  class TransactionHeaderComponent {
5700
6442
  constructor() {
5701
6443
  this.icons = Icon;
@@ -6259,75 +7001,6 @@ ShoppingCartModule.decorators = [
6259
7001
  },] }
6260
7002
  ];
6261
7003
 
6262
- class ShoppingCartPreviewComponent {
6263
- constructor(service) {
6264
- this.service = service;
6265
- this.icons = Icon;
6266
- this.checkout = new EventEmitter();
6267
- this.editCartClick = new EventEmitter();
6268
- }
6269
- showClass() {
6270
- return true;
6271
- }
6272
- }
6273
- ShoppingCartPreviewComponent.decorators = [
6274
- { type: Component, args: [{
6275
- selector: "co-shopping-cart-preview",
6276
- template: `
6277
- <div class="cart-header">
6278
- <span class="cart-header-label" [textContent]="'CART' | localize"></span>
6279
- </div>
6280
- <div class="cart-lines">
6281
- <co-transaction-lines
6282
- [transactionLines]="service.currentTransaction.transactionLines"
6283
- [preview]="true"
6284
- ></co-transaction-lines>
6285
- </div>
6286
- <div class="preview-totals-wrapper">
6287
- <co-transaction-totals [totals]="service.currentTransaction.transactionTotal"></co-transaction-totals>
6288
- </div>
6289
- <div class="cart-buttons">
6290
- <a class="button-edit-cart" [textContent]="'EDIT_CART' | localize"
6291
- (click)="editCartClick.emit()"
6292
- ></a>
6293
- <co-button class="button-checkout" [label]="'SHOPPING_CART_CHECKOUT' | localize"
6294
- [disabled]="!service.articleAmount"
6295
- (click)="checkout.emit()"></co-button>
6296
- </div>
6297
- `,
6298
- encapsulation: ViewEncapsulation.None
6299
- },] }
6300
- ];
6301
- ShoppingCartPreviewComponent.ctorParameters = () => [
6302
- { type: TransactionService }
6303
- ];
6304
- ShoppingCartPreviewComponent.propDecorators = {
6305
- checkout: [{ type: Output }],
6306
- editCartClick: [{ type: Output }],
6307
- showClass: [{ type: HostBinding, args: ["class.co-shopping-cart-preview",] }]
6308
- };
6309
-
6310
- class ShoppingCartPreviewModule {
6311
- }
6312
- ShoppingCartPreviewModule.decorators = [
6313
- { type: NgModule, args: [{
6314
- imports: [
6315
- CommonModule,
6316
- CoreModule,
6317
- ButtonModule,
6318
- TransactionLinesModule,
6319
- TransactionTotalsModule,
6320
- PipeModule
6321
- ],
6322
- declarations: [
6323
- ShoppingCartPreviewComponent
6324
- ],
6325
- exports: [
6326
- ShoppingCartPreviewComponent
6327
- ]
6328
- },] }
6329
- ];
6330
-
6331
7004
  class TransactionLineGridComponent {
6332
7005
  constructor() {
6333
7006
  this.transactionLines = [];
@@ -6371,5 +7044,5 @@ TransactionLineGridModule.decorators = [
6371
7044
  * Generated bundle index. Do not edit.
6372
7045
  */
6373
7046
 
6374
- export { CheckoutComponent, CheckoutModule, ShoppingCartComponent, ShoppingCartModule, ShoppingCartPreviewComponent, ShoppingCartPreviewModule, TransactionComponent, TransactionHeaderComponent, TransactionHeaderContactComponent, TransactionHeaderContactModule, TransactionHeaderDeliveryComponent, TransactionHeaderDeliveryModule, TransactionHeaderModule, TransactionHeaderRelationComponent, TransactionHeaderRelationModule, TransactionLineComponent, TransactionLineGridComponent, TransactionLineGridModule, TransactionLineModule, TransactionLinesComponent, TransactionLinesGridComponent, TransactionLinesGridModule, TransactionLinesModule, TransactionModule, TransactionService, TransactionTotalsComponent, TransactionTotalsModule, PendingReasonService as ɵa, DialogService as ɵb, RelationAddressTileComponent as ɵba, RelationAddressSelectComponent as ɵbb, BusinessObjectFactory as ɵbc, StepperModule as ɵbd, StepperComponent as ɵbe, StepperStepComponent as ɵbf, CheckoutOverviewRelationEditComponent as ɵbg, CheckoutOverviewDeliveryEditComponent as ɵbh, CheckoutOverviewDeliveryAddressComponent as ɵbi, CheckOutRelationSuggestionsListComponent as ɵbj, CheckOutRelationSuggestionsListItemComponent as ɵbk, CheckoutLoginComponent as ɵbl, TransactionBaseComponent as ɵbm, TransactionArticleTextModule as ɵbn, TransactionArticleTextComponent as ɵbo, TransactionArticleTextOverviewModule as ɵbp, TransactionArticleTextOverviewComponent as ɵbq, DiscountModule as ɵbr, DiscountComponent as ɵbs, OptionsService as ɵc, DictionaryService as ɵd, IOneConnectorAdapterService as ɵe, CoreModule as ɵf, ConfirmationDialogModule as ɵg, PipeModule as ɵh, AppendPipe as ɵi, DeliveryTimePipe as ɵj, DateDurationPipe as ɵk, LocalizePipe as ɵl, CoCurrencyPipe as ɵm, SafeStylePipe as ɵn, SafeHtmlPipe as ɵo, ConfirmationDialogComponent as ɵp, DialogBaseComponent as ɵq, ImageDisplayComponent as ɵr, IconComponent as ɵs, IconCacheService as ɵt, CustomerGroupsComponent as ɵu, StockStatusIndicatorComponent as ɵv, RelationAddressModule as ɵw, RelationAddressComponent as ɵx, RelationAddressSelectModule as ɵy, RelationAddressTileModule as ɵz };
7047
+ export { CheckoutComponent, CheckoutModule, ShoppingCartComponent, ShoppingCartModule, ShoppingCartPreviewComponent, ShoppingCartPreviewModule, TransactionComponent, TransactionHeaderComponent, TransactionHeaderContactComponent, TransactionHeaderContactModule, TransactionHeaderDeliveryComponent, TransactionHeaderDeliveryModule, TransactionHeaderModule, TransactionHeaderRelationComponent, TransactionHeaderRelationModule, TransactionLineComponent, TransactionLineGridComponent, TransactionLineGridModule, TransactionLineModule, TransactionLinesComponent, TransactionLinesGridComponent, TransactionLinesGridModule, TransactionLinesModule, TransactionModule, TransactionService, TransactionTotalsComponent, TransactionTotalsModule, PendingReasonService as ɵa, DialogService as ɵb, TileModule as ɵba, TileComponent as ɵbb, RelationAddressTileComponent as ɵbc, RelationAddressSelectComponent as ɵbd, BusinessObjectFactory as ɵbe, StepperModule as ɵbf, StepperComponent as ɵbg, StepperStepComponent as ɵbh, TransactionArticleTextModule as ɵbi, TransactionArticleTextComponent as ɵbj, TransactionArticleTextOverviewModule as ɵbk, TransactionArticleTextOverviewComponent as ɵbl, TransactionLineSidePanelModule as ɵbm, TransactionLineSidePanelComponent as ɵbn, SellerInformationModule as ɵbo, SellerInformationComponent as ɵbp, DeliveryTypeTileModule as ɵbq, DeliveryTypeTileComponent as ɵbr, PaymentModule as ɵbs, PaymentTileModule as ɵbt, PaymentTileComponent as ɵbu, PaymentComponent as ɵbv, CheckoutOverviewRelationEditComponent as ɵbw, CheckoutOverviewDeliveryEditComponent as ɵbx, CheckoutOverviewDeliveryAddressComponent as ɵby, CheckOutRelationSuggestionsListComponent as ɵbz, OptionsService as ɵc, CheckOutRelationSuggestionsListItemComponent as ɵca, CheckoutLoginComponent as ɵcb, TransactionBaseComponent as ɵcc, DiscountModule as ɵcd, DiscountComponent as ɵce, DictionaryService as ɵd, IOneConnectorAdapterService as ɵe, CoreModule as ɵf, ConfirmationDialogModule as ɵg, PipeModule as ɵh, AppendPipe as ɵi, DeliveryTimePipe as ɵj, DateDurationPipe as ɵk, LocalizePipe as ɵl, CoCurrencyPipe as ɵm, SafeStylePipe as ɵn, SafeHtmlPipe as ɵo, ConfirmationDialogComponent as ɵp, DialogBaseComponent as ɵq, ImageDisplayComponent as ɵr, IconComponent as ɵs, IconCacheService as ɵt, CustomerGroupsComponent as ɵu, StockStatusIndicatorComponent as ɵv, RelationAddressModule as ɵw, RelationAddressComponent as ɵx, RelationAddressSelectModule as ɵy, RelationAddressTileModule as ɵz };
6375
7048
  //# sourceMappingURL=colijnit-transaction.js.map