@colijnit/transaction 12.0.2 → 12.1.0

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 (80) hide show
  1. package/app/component/core/base/default-ok-cancel-buttons.component.d.ts +13 -0
  2. package/app/component/core/base/transaction-base.component.d.ts +38 -0
  3. package/app/component/core/directive/template-wrapper.directive.d.ts +13 -0
  4. package/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.d.ts +0 -0
  5. package/app/component/service-order/ione-service-order-module.d.ts +2 -0
  6. package/app/component/service-order/ione-service-order.component.d.ts +25 -0
  7. package/app/component/service-order/service-order.component.d.ts +48 -0
  8. package/app/component/service-order/summary/transaction-article-summary.component.d.ts +17 -0
  9. package/app/component/service-order/summary/transaction-delivery-summary.component.d.ts +20 -0
  10. package/app/component/service-order/summary/transaction-order-summary.component.d.ts +16 -0
  11. package/app/component/service-order/summary/transaction-payment-info.component.d.ts +14 -0
  12. package/app/component/service-order/summary/transaction-product-contract-summary.component.d.ts +7 -0
  13. package/app/component/service-order/summary/transaction-product-summary.component.d.ts +15 -0
  14. package/app/component/service-order/summary/transaction-service-status.component.d.ts +15 -0
  15. package/app/component/service-order/summary/transaction-service-summary.component.d.ts +15 -0
  16. package/app/component/service-order/summary/transaction-summary-block.component.d.ts +16 -0
  17. package/app/component/service-order/transaction-article-text/transaction-article-text.component.d.ts +24 -0
  18. package/app/component/service-order/transaction-header-block/transaction-header-block.component.d.ts +15 -0
  19. package/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.d.ts +16 -0
  20. package/app/component/service-order/transaction-order-lines/transaction-order-lines.component.d.ts +25 -0
  21. package/app/component/service-order/transaction-order-totals/transaction-order-totals.component.d.ts +7 -0
  22. package/app/component/service-order/transaction-relation/transaction-relation-address.component.d.ts +22 -0
  23. package/app/component/service-order/transaction-relation/transaction-relation-edit.component.d.ts +29 -0
  24. package/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.d.ts +11 -0
  25. package/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.d.ts +26 -0
  26. package/app/component/shopping-cart/ione-shopping-cart.component.d.ts +20 -0
  27. package/app/component/shopping-cart/shopping-cart/shopping-cart.component.d.ts +7 -2
  28. package/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.d.ts +7 -0
  29. package/app/service/ione-connector-adapter.service.d.ts +5 -1
  30. package/app/service/transaction-event.service.d.ts +29 -0
  31. package/app/service/transaction.service.d.ts +9 -2
  32. package/bundles/colijnit-transaction.umd.js +1930 -62
  33. package/bundles/colijnit-transaction.umd.js.map +1 -1
  34. package/colijnit-transaction.d.ts +23 -1
  35. package/colijnit-transaction.metadata.json +1 -1
  36. package/enum/position-grid-row.enum.d.ts +4 -0
  37. package/esm2015/app/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +3 -3
  38. package/esm2015/app/component/checkout/ione-checkout.module.js +1 -3
  39. package/esm2015/app/component/common/icon/icon.component.js +2 -1
  40. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +39 -0
  41. package/esm2015/app/component/core/base/transaction-base.component.js +121 -0
  42. package/esm2015/app/component/core/directive/template-wrapper.directive.js +69 -0
  43. package/esm2015/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.js +1 -1
  44. package/esm2015/app/component/service-order/ione-service-order-module.js +103 -0
  45. package/esm2015/app/component/service-order/ione-service-order.component.js +98 -0
  46. package/esm2015/app/component/service-order/service-order.component.js +167 -0
  47. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +55 -0
  48. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +59 -0
  49. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +43 -0
  50. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +35 -0
  51. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +38 -0
  52. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +41 -0
  53. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +37 -0
  54. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +38 -0
  55. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +53 -0
  56. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +183 -0
  57. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +83 -0
  58. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +76 -0
  59. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +71 -0
  60. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +37 -0
  61. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +116 -0
  62. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +225 -0
  63. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +172 -0
  64. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +120 -0
  65. package/esm2015/app/component/shopping-cart/ione-shopping-cart.component.js +52 -7
  66. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +4 -6
  67. package/esm2015/app/component/shopping-cart/shopping-cart/shopping-cart.component.js +42 -9
  68. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
  69. package/esm2015/app/component/shopping-cart/shopping-cart-manager/shopping-cart-manager.component.js +63 -3
  70. package/esm2015/app/service/ione-connector-adapter.service.js +60 -8
  71. package/esm2015/app/service/transaction-event.service.js +9 -1
  72. package/esm2015/app/service/transaction.service.js +87 -19
  73. package/esm2015/assets/dictionary/text.properties.js +43 -3
  74. package/esm2015/colijnit-transaction.js +24 -2
  75. package/esm2015/enum/position-grid-row.enum.js +6 -0
  76. package/esm2015/public_api.js +3 -1
  77. package/fesm2015/colijnit-transaction.js +2309 -50
  78. package/fesm2015/colijnit-transaction.js.map +1 -1
  79. package/package.json +17 -17
  80. package/public_api.d.ts +2 -0
@@ -1,12 +1,13 @@
1
1
  import { __awaiter } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { Injectable, EventEmitter, Component, Input, Output, ChangeDetectorRef, ViewChild, Pipe, HostBinding, NgModule } from '@angular/core';
3
+ import { Injectable, EventEmitter, Component, Input, Output, ChangeDetectorRef, ViewChild, Pipe, HostBinding, NgModule, Directive, ContentChild, ViewContainerRef } from '@angular/core';
4
4
  import { BehaviorSubject, Subject, throwError } from 'rxjs';
5
5
  import { Options } from '@colijnit/ioneconnector/build/model/options';
6
6
  import { CustomerFullObject } from '@colijnit/transactionapi/build/model/customer-full-object.bo';
7
7
  import { TransactionInfoResponse } from '@colijnit/transactionapi/build/model/transaction-info-response.bo';
8
8
  import { RelationPrivacySetting } from '@colijnit/transactionapi/build/model/relation-privacy-setting.bo';
9
9
  import { GetPostalCodeRetrievalOutputParams } from '@colijnit/transactionapi/build/model/get-postal-code-retrieval-output-params';
10
+ import { RelationListObject } from '@colijnit/transactionapi/build/model/relation-list-object.bo';
10
11
  import { ArticleFullObject } from '@colijnit/transactionapi/build/model/article-full-object';
11
12
  import { LineOperationResponse } from '@colijnit/transactionapi/build/model/line-operation-response.bo';
12
13
  import { Transaction } from '@colijnit/transactionapi/build/transaction';
@@ -24,7 +25,7 @@ import { BooleanTextDecorator as BooleanTextDecorator$1 } from '@colijnit/transa
24
25
  import { JsonFieldFieldDecorator } from '@colijnit/transactionapi/build/factory/decorators/json.decorator';
25
26
  import { ComplexArrayDecorator as ComplexArrayDecorator$1 } from '@colijnit/transactionapi/build/factory/decorators/complex-array.decorator';
26
27
  import { ImageUtils } from '@colijnit/transactionapi/build/utils/image-utils';
27
- import { NULL_RELATION_OBJECT } from '@colijnit/transactionapi/build/model/nul-relation-object';
28
+ import { NULL_RELATION_OBJECT, NULL_CUSTOMER_FULL_OBJECT, NULL_RELATION_LIST_OBJECT } from '@colijnit/transactionapi/build/model/nul-relation-object';
28
29
  import { TransactionKind } from '@colijnit/transactionapi/build/enum/transaction-kind.enum';
29
30
  import { SequenceName } from '@colijnit/transactionapi/build/enum/sequence-name.enum';
30
31
  import { ArrayUtils as ArrayUtils$1 } from '@colijnit/transactionapi/build/utils/array-utils';
@@ -51,8 +52,15 @@ import { DomSanitizer } from '@angular/platform-browser';
51
52
  import { ResolvePendingLineReasonRequest } from '@colijnit/transactionapi/build/model/resolve-pending-reason-request.bo';
52
53
  import { SortDirection } from '@colijnit/transactionapi/build/enum/sort-direction';
53
54
  import { SortType } from '@colijnit/transactionapi/build/enum/sort-type.enum';
54
- import { SortUtils } from '@colijnit/transactionapi/build/utils/sort-utils';
55
55
  import { StockStatus } from '@colijnit/transactionapi/build/enum/refcode/stock-status.enum';
56
+ import { trigger, state, style, transition, animate } from '@angular/animations';
57
+ import { RelationRequest } from '@colijnit/transactionapi/build/model/relation-request';
58
+ import { DropDownButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
59
+ import { ChipListModule, CheckBoxModule } from '@syncfusion/ej2-angular-buttons';
60
+ import { DropDownListModule } from '@syncfusion/ej2-angular-dropdowns';
61
+ import { Sidebar, Accordion } from '@syncfusion/ej2-navigations';
62
+ import { TabModule } from '@syncfusion/ej2-angular-navigations';
63
+ import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
56
64
 
57
65
  class OptionsService {
58
66
  constructor() {
@@ -805,9 +813,16 @@ class IOneConnectorAdapterService {
805
813
  }
806
814
  connect(options) {
807
815
  return __awaiter(this, void 0, void 0, function* () {
808
- this.options = options;
809
- this.connector = new Transaction(options);
810
- this.options.session = this.connector.session;
816
+ if (this.options === undefined) {
817
+ this.options = options;
818
+ this.connector = new Transaction(options);
819
+ this.options.session = this.connector.session;
820
+ }
821
+ });
822
+ }
823
+ disconnect() {
824
+ return __awaiter(this, void 0, void 0, function* () {
825
+ this.options = undefined;
811
826
  });
812
827
  }
813
828
  getArticleFullObject(goodId) {
@@ -953,6 +968,18 @@ class IOneConnectorAdapterService {
953
968
  });
954
969
  });
955
970
  }
971
+ getTransactionById(transactionId) {
972
+ return new Promise((resolve, reject) => {
973
+ return this.connector.getTransactionById(transactionId).then((result) => {
974
+ if (result.validationResult && result.validationResult.success) {
975
+ resolve(this._boFactory.makeWithRawBackendData(TransactionInfoResponse, result.resultObject));
976
+ }
977
+ else {
978
+ reject(result.validationMessagesAsString);
979
+ }
980
+ });
981
+ });
982
+ }
956
983
  saveTransaction(uuid) {
957
984
  return new Promise((resolve, reject) => {
958
985
  return this.connector.saveTransaction(uuid).then((result) => {
@@ -1113,7 +1140,35 @@ class IOneConnectorAdapterService {
1113
1140
  return new Promise((resolve, reject) => {
1114
1141
  return this.connector.getRelationListObjects(relationRequest).then((result) => {
1115
1142
  if (result.validationResult && result.validationResult.success) {
1116
- resolve(result.resultObjects);
1143
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(RelationListObject, result.resultObjects));
1144
+ }
1145
+ else {
1146
+ reject(result.validationMessagesAsString);
1147
+ }
1148
+ });
1149
+ });
1150
+ });
1151
+ }
1152
+ addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr) {
1153
+ return __awaiter(this, void 0, void 0, function* () {
1154
+ return new Promise((resolve, reject) => {
1155
+ return this.connector.addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr).then((result) => {
1156
+ if (result.validationResult && result.validationResult.success) {
1157
+ resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
1158
+ }
1159
+ else {
1160
+ reject(result.validationMessagesAsString);
1161
+ }
1162
+ });
1163
+ });
1164
+ });
1165
+ }
1166
+ addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
1167
+ return __awaiter(this, void 0, void 0, function* () {
1168
+ return new Promise((resolve, reject) => {
1169
+ return this.connector.addTextLineToTransaction(uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr).then((result) => {
1170
+ if (result.validationResult && result.validationResult.success) {
1171
+ resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
1117
1172
  }
1118
1173
  else {
1119
1174
  reject(result.validationMessagesAsString);
@@ -1122,10 +1177,10 @@ class IOneConnectorAdapterService {
1122
1177
  });
1123
1178
  });
1124
1179
  }
1125
- addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn) {
1180
+ changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr) {
1126
1181
  return __awaiter(this, void 0, void 0, function* () {
1127
1182
  return new Promise((resolve, reject) => {
1128
- return this.connector.addTransactionLine(uuid, articleLine, articleNo, amount, warehouseNo, commissionCode, isReturn).then((result) => {
1183
+ return this.connector.changeLineSequence(uuid, lineUuid, aboveLineNr, belowLineNr).then((result) => {
1129
1184
  if (result.validationResult && result.validationResult.success) {
1130
1185
  resolve(this._boFactory.makeWithRawBackendData(LineOperationResponse, result.resultObject));
1131
1186
  }
@@ -1249,8 +1304,11 @@ class IOneConnectorAdapterService {
1249
1304
  });
1250
1305
  }
1251
1306
  }
1307
+ IOneConnectorAdapterService.ɵprov = i0.ɵɵdefineInjectable({ factory: function IOneConnectorAdapterService_Factory() { return new IOneConnectorAdapterService(); }, token: IOneConnectorAdapterService, providedIn: "root" });
1252
1308
  IOneConnectorAdapterService.decorators = [
1253
- { type: Injectable }
1309
+ { type: Injectable, args: [{
1310
+ providedIn: "root"
1311
+ },] }
1254
1312
  ];
1255
1313
  IOneConnectorAdapterService.ctorParameters = () => [];
1256
1314
 
@@ -1258,6 +1316,7 @@ class TransactionService {
1258
1316
  constructor(_connector) {
1259
1317
  this._connector = _connector;
1260
1318
  this.transactionUpdated = new EventEmitter();
1319
+ this.transactionLoaded = new EventEmitter();
1261
1320
  this.applicationUser = false;
1262
1321
  this.articleAmount = 0;
1263
1322
  this._currentLines = [];
@@ -1401,8 +1460,25 @@ class TransactionService {
1401
1460
  return new Promise((resolve, reject) => {
1402
1461
  this._connector.getTransactionByNrAndKind(kind, transactionNr)
1403
1462
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1404
- this._rememberCurrentTransaction(response);
1405
1463
  if (response.isSuccess) {
1464
+ this.transactionLoaded.emit(response);
1465
+ resolve(true);
1466
+ }
1467
+ else {
1468
+ reject(false);
1469
+ }
1470
+ }))
1471
+ .catch((reason) => {
1472
+ reject(false);
1473
+ });
1474
+ });
1475
+ }
1476
+ getTransactionById(transactionId) {
1477
+ return new Promise((resolve, reject) => {
1478
+ this._connector.getTransactionById(transactionId)
1479
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
1480
+ if (response.isSuccess) {
1481
+ this.transactionLoaded.emit(response);
1406
1482
  resolve(true);
1407
1483
  }
1408
1484
  else {
@@ -1501,7 +1577,17 @@ class TransactionService {
1501
1577
  }
1502
1578
  retrieveLineImage(line) {
1503
1579
  return __awaiter(this, void 0, void 0, function* () {
1504
- const goodId = yield this._connector.getGoodIdFromArticleNr(line.articleNumber);
1580
+ return yield this.getArticleImageByArticleNumber(line.articleNumber);
1581
+ });
1582
+ }
1583
+ getArticleImageByArticleNumber(articleNumber) {
1584
+ return __awaiter(this, void 0, void 0, function* () {
1585
+ const goodId = yield this._connector.getGoodIdFromArticleNr(articleNumber);
1586
+ return this.getArticleImageByGoodId(goodId);
1587
+ });
1588
+ }
1589
+ getArticleImageByGoodId(goodId) {
1590
+ return __awaiter(this, void 0, void 0, function* () {
1505
1591
  if (!isNaN(goodId)) {
1506
1592
  return this._connector.getSingleImage(goodId, 1, true, true);
1507
1593
  }
@@ -1510,10 +1596,10 @@ class TransactionService {
1510
1596
  }
1511
1597
  });
1512
1598
  }
1513
- addArticle(articleNo, amount = 1, warehouseNo = 1, commissionCode = "2", isReturn = false) {
1599
+ addArticle(articleNo, amount = 1, warehouseNo = 1, commissionCode = "2", isReturn = false, aboveLineNr = 0, belowLineNr = 0) {
1514
1600
  return __awaiter(this, void 0, void 0, function* () {
1515
1601
  return new Promise((resolve, reject) => {
1516
- this._connector.addTransactionLine(this._currentTransaction.uuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn)
1602
+ this._connector.addTransactionLine(this._currentTransaction.uuid, TransactionLineType.ArticleLine, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
1517
1603
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1518
1604
  resolve(true);
1519
1605
  }), (error) => {
@@ -1525,10 +1611,27 @@ class TransactionService {
1525
1611
  });
1526
1612
  });
1527
1613
  }
1528
- addTransactionLine(lineType, articleNo, amount, warehouseNo, commissionCode, isReturn) {
1614
+ addTransactionLine(lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr) {
1615
+ return __awaiter(this, void 0, void 0, function* () {
1616
+ return new Promise((resolve, reject) => {
1617
+ this._connector.addTransactionLine(this.currentTransaction.uuid, lineType, articleNo, amount, warehouseNo, commissionCode, isReturn, aboveLineNr, belowLineNr)
1618
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
1619
+ this._rememberCurrentTransaction(response);
1620
+ this._rememberCurrentTransactionLineStatus(response);
1621
+ resolve(response);
1622
+ }), (error) => {
1623
+ reject(error);
1624
+ })
1625
+ .catch((reason) => {
1626
+ resolve(null);
1627
+ });
1628
+ });
1629
+ });
1630
+ }
1631
+ addTextLineToTransaction(showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr) {
1529
1632
  return __awaiter(this, void 0, void 0, function* () {
1530
1633
  return new Promise((resolve, reject) => {
1531
- this._connector.addTransactionLine(this.currentTransaction.uuid, lineType, articleNo, amount, warehouseNo, commissionCode, isReturn)
1634
+ this._connector.addTextLineToTransaction(this.currentTransaction.uuid, showOnDocuments, text, amount, articleBound, refArticleLineNr, aboveLineNr, belowLineNr)
1532
1635
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1533
1636
  this._rememberCurrentTransaction(response);
1534
1637
  this._rememberCurrentTransactionLineStatus(response);
@@ -1542,6 +1645,21 @@ class TransactionService {
1542
1645
  });
1543
1646
  });
1544
1647
  }
1648
+ changeLineSequence(lineUuid, aboveLineNr, belowLineNr) {
1649
+ return new Promise((resolve, reject) => {
1650
+ this._connector.changeLineSequence(this.currentTransaction.uuid, lineUuid, aboveLineNr, belowLineNr)
1651
+ .then((response) => __awaiter(this, void 0, void 0, function* () {
1652
+ this._rememberCurrentTransaction(response);
1653
+ this._rememberCurrentTransactionLineStatus(response);
1654
+ resolve(response);
1655
+ }), (error) => {
1656
+ reject(error);
1657
+ })
1658
+ .catch((reason) => {
1659
+ resolve(null);
1660
+ });
1661
+ });
1662
+ }
1545
1663
  cancelAddTransactionLine(lineUuid) {
1546
1664
  return __awaiter(this, void 0, void 0, function* () {
1547
1665
  return new Promise((resolve, reject) => {
@@ -1609,6 +1727,15 @@ class TransactionService {
1609
1727
  });
1610
1728
  });
1611
1729
  }
1730
+ getCustomerFulObjectByRelationId(relationId) {
1731
+ return __awaiter(this, void 0, void 0, function* () {
1732
+ const relationNr = yield this._connector.getRelationNumber(relationId);
1733
+ if (relationNr) {
1734
+ return yield this._connector.getCustomerFullObject(Number(relationNr));
1735
+ }
1736
+ return NULL_CUSTOMER_FULL_OBJECT;
1737
+ });
1738
+ }
1612
1739
  // public async setRelationByUser(username: string, password: string): Promise<boolean> {
1613
1740
  // const response: boolean = await this._connector.setRelationByUser(this.currentTransaction.uuid, username, password);
1614
1741
  // return response;
@@ -1619,13 +1746,15 @@ class TransactionService {
1619
1746
  }
1620
1747
  }
1621
1748
  _rememberCurrentTransaction(value) {
1622
- this._currentTransaction = value.transactionInfo;
1623
- this._initializeTransaction();
1624
- this.currentLines = value.transactionLines;
1625
- this.currentTotals = value.transactionTotal;
1626
- this.currentLineOperationStatuses = value.lineOperationStatuses;
1627
- this._updateRelation();
1628
- this.transactionUpdated.emit();
1749
+ return __awaiter(this, void 0, void 0, function* () {
1750
+ this._currentTransaction = value.transactionInfo;
1751
+ this._initializeTransaction();
1752
+ this.currentLines = value.transactionLines;
1753
+ this.currentTotals = value.transactionTotal;
1754
+ this.currentLineOperationStatuses = value.lineOperationStatuses;
1755
+ yield this._updateRelation();
1756
+ this.transactionUpdated.emit();
1757
+ });
1629
1758
  }
1630
1759
  _rememberCurrentTransactionLineStatus(value) {
1631
1760
  // this._currentLineOperationStatus.uuid = value.lineUuid;
@@ -1636,10 +1765,7 @@ class TransactionService {
1636
1765
  return __awaiter(this, void 0, void 0, function* () {
1637
1766
  if (this.currentTransaction && this.currentTransaction.relation && this.currentTransaction.relation.relationId) {
1638
1767
  if (!this._currentRelation || this._currentRelation.relationId !== this.currentTransaction.relation.relationId) {
1639
- const relationNr = yield this._connector.getRelationNumber(this.currentTransaction.relation.relationId);
1640
- if (relationNr) {
1641
- this._currentRelation = yield this._connector.getCustomerFullObject(Number(relationNr));
1642
- }
1768
+ this._currentRelation = yield this.getCustomerFulObjectByRelationId(this.currentTransaction.relation.relationId);
1643
1769
  }
1644
1770
  }
1645
1771
  });
@@ -1748,13 +1874,18 @@ class Dictionary {
1748
1874
  "ACCOUNT_DETAILS": "Accountgegevens",
1749
1875
  "ACCOUNT_EXPLANATION": "Het e-mailadres en wachtwoord zijn nodig om toegang te krijgen tot de gegevens. " +
1750
1876
  "Ook zullen we je via dit e-mailadres op de hoogte houden van de status van bestellingen.",
1877
+ "ADD_ARTICLE_LINE_UP": "Artikelregel boven toevoegen",
1878
+ "ADD_ARTICLE_LINE_DOWN": "Artikelregel onder toevoegen",
1879
+ "ADD_ARTICLE_TEXT_LINE_UP": "Tekstregel boven toevoegen",
1880
+ "ADD_ARTICLE_TEXT_LINE_DOWN": "Tekstregel onder toevoegen",
1881
+ "ADD_DISCOUNTS": "Korting toevoegen",
1751
1882
  "ADDRESS": "Adres",
1752
1883
  "ADDRESSES": "Adressen",
1753
1884
  "ADDRESS_ADD": "Adres toevoegen",
1754
1885
  "ADDRESS_CHANGE": "Adres wijzigen",
1755
- "ADD_DISCOUNTS": "Korting toevoegen",
1756
1886
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Controleer magazijn en commissiecode",
1757
1887
  "ARTICLE": "Artikel",
1888
+ "ARTICLE_DESCRIPTION": "Artikelomschrijving",
1758
1889
  "ARTICLE_IN_OUT_COLLECTION": "Status van artikel is '|~'. Weet u zeker dat u door wilt gaan?",
1759
1890
  "ARTICLE_NR": "Artikelnummer",
1760
1891
  "ASSEMBLY_COSTS": "Montagekosten",
@@ -1795,12 +1926,15 @@ class Dictionary {
1795
1926
  "DELIVERY_OPTARTICLE_NRIONS": "Bezorgopties",
1796
1927
  "DELIVERY_TIME_PERIOD": "Levertijd",
1797
1928
  "DESCRIPTION": "Omschrijving",
1929
+ "DETAILS": "Details",
1798
1930
  "DISCOUNT": "Korting",
1799
1931
  "DISCOUNT_AMOUNT": "Kortingsbedrag",
1800
1932
  "DISCOUNT_PERCENTAGE": "Kortings %",
1801
1933
  "DROPSHIPMENT": "Dropshipment",
1802
1934
  "EMAIL_ADDRESS": "E-mailadres",
1803
1935
  "EXISTING_CUSTOMERS": "Bestaande klanten",
1936
+ "EXPECTED_DELIVERY_DATE": "Verwachte bezorgdatum",
1937
+ "EXPECTED_DELIVERY_WEEK": "Verwachte leverweek",
1804
1938
  "FEMALE": "Vrouw",
1805
1939
  "FIRST_NAME": "Voornaam",
1806
1940
  "GOOD_DESCRIPTION": "Artikelomschrijving",
@@ -1827,11 +1961,14 @@ class Dictionary {
1827
1961
  "NUMBER": "Aantal",
1828
1962
  "ON_DATE": "Op datum",
1829
1963
  "OPEN_SHOPPING_CART": "Open winkelwagen",
1964
+ "ORDER_DATE": "Orderdatum",
1830
1965
  "ORDER_GROSS": "Ordertotaal bruto",
1831
1966
  "ORDER_NET": "Ordertotaal netto",
1967
+ "ORDER_NUMBER": "Ordernummer",
1832
1968
  "ORDER_TYPE": "Type bestelling",
1833
1969
  "OVERVIEW": "Overzicht",
1834
1970
  "OWN_REFERENCE": "Eigen referentie",
1971
+ "PAID_DOWN2": "Aanbetaald",
1835
1972
  "PART_DELIVERIES": "Deelleveringen",
1836
1973
  "PASSWORD": "Wachtwoord",
1837
1974
  "PAYMENT": "Betaling",
@@ -1844,6 +1981,8 @@ class Dictionary {
1844
1981
  "PRICE_LIST": "Prijslijst",
1845
1982
  "PRIVACY_PREFERENCES": "Privacyvoorkeuren",
1846
1983
  "PRIVATE_PERSON": "Particulier",
1984
+ "PRODUCT": "Product",
1985
+ "PRODUCT_TYPE": "Productsoort",
1847
1986
  "QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Het aantal mag geen 0 zijn.",
1848
1987
  "QUANTITY_CANNOT_BE_LESS_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
1849
1988
  "QUANTITY_CANNOT_BE_MORE_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
@@ -1859,6 +1998,9 @@ class Dictionary {
1859
1998
  "SALUTATION": "Aanhef",
1860
1999
  "SAVE": "Opslaan",
1861
2000
  "SELECT": "Selecteren",
2001
+ "SERVICE_NUMBER": "Servicenummer",
2002
+ "SERVICE_REQUEST_DATE": "Datum aanvraag",
2003
+ "SERVICE_STATE": "Service status",
1862
2004
  "SHOPPING_CART": "Winkelwagen",
1863
2005
  "SHOPPING_CART_CHECKOUT": "Bestellen",
1864
2006
  "SHOPPING_CART_OVERVIEW": "Overzicht van uw bestelling",
@@ -1870,16 +2012,20 @@ class Dictionary {
1870
2012
  "SUBTOTAL": "Subtotaal",
1871
2013
  "SUGGESTIONS": "Suggesties",
1872
2014
  "SURCHARGE_AMOUNT": "Toeslag",
2015
+ "STATE": "Status",
1873
2016
  "STREET": "Straatnaam",
2017
+ "TOTAL_AMOUNT": "Totaalbedrag",
1874
2018
  "TOTAL_GROSS": "Totaal bruto",
1875
2019
  "TOTAL_ASSEMBLY_TIME": "Totale montagetijd",
1876
2020
  "TRANSACTION_DISCOUNT": "Totale transactie korting",
1877
2021
  "TRANSACTION_DISCOUNT_PERC": "% Trans. korting",
1878
2022
  "TRANSACTION_PRICE_DECLARATION": "Order prijsverklaring",
2023
+ "TRANSACTION_SUM_I": "Ordertotaal incl. BTW",
1879
2024
  "TRANSACTION_TOTAL": "Transactie totaal",
1880
2025
  "UNKNOWN": "Onbekend",
1881
2026
  "UNKNOWN_ADDRESS_CHECK_IT": "Onbekend adres",
1882
2027
  "VAT": "Btw",
2028
+ "VAT_AMOUNT": "BTW-bedrag",
1883
2029
  "VALUE": "Waarde",
1884
2030
  "WAREHOUSE": "Magazijn",
1885
2031
  "YOUR_DATA": "Uw gegevens",
@@ -1889,13 +2035,18 @@ class Dictionary {
1889
2035
  "en": {
1890
2036
  "ACCOUNT_DETAILS": "Account details",
1891
2037
  "ACCOUNT_EXPLANATION": "E-mailaddress and password are needed to gain access to the data. We also notify you on this e-mailaddress about the order status",
2038
+ "ADD_ARTICLE_LINE_UP": "Add article line up",
2039
+ "ADD_ARTICLE_LINE_DOWN": "Add article line down",
2040
+ "ADD_ARTICLE_TEXT_LINE_UP": "Add text line up",
2041
+ "ADD_ARTICLE_TEXT_LINE_DOWN": "Add text line down",
2042
+ "ADD_DISCOUNTS": "Add discount",
1892
2043
  "ADDRESS": "Address",
1893
2044
  "ADDRESSES": "Addresses",
1894
2045
  "ADDRESS_ADD": "Add address",
1895
2046
  "ADDRESS_CHANGE": "Change address",
1896
- "ADD_DISCOUNTS": "Add discount",
1897
2047
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Check warehouse and commissioncode",
1898
2048
  "ARTICLE": "Article",
2049
+ "ARTICLE_DESCRIPTION": "Article description",
1899
2050
  "ARTICLE_IN_OUT_COLLECTION": "Status of article is '|~'. Are you sure to proceed?",
1900
2051
  "ARTICLE_NR": "Article number",
1901
2052
  "ASSEMBLY_COSTS": "Assembly costs",
@@ -1936,12 +2087,15 @@ class Dictionary {
1936
2087
  "DELIVERY_OPTARTICLE_NRIONS": "Delivery options",
1937
2088
  "DELIVERY_TIME_PERIOD": "Delivery time period",
1938
2089
  "DESCRIPTION": "Description",
2090
+ "DETAILS": "Details",
1939
2091
  "DISCOUNT": "Discount",
1940
2092
  "DISCOUNT_AMOUNT": "Discount amount",
1941
2093
  "DISCOUNT_PERCENTAGE": "Discount %",
1942
2094
  "DROPSHIPMENT": "Dropshipment",
1943
2095
  "EMAIL_ADDRESS": "E-mailadres",
1944
2096
  "EXISTING_CUSTOMERS": "Existing customers",
2097
+ "EXPECTED_DELIVERY_DATE": "Expected delivery date",
2098
+ "EXPECTED_DELIVERY_WEEK": "Expected delivery week",
1945
2099
  "FEMALE": "Female",
1946
2100
  "FIRST_NAME": "First name",
1947
2101
  "GOOD_DESCRIPTION": "Article description",
@@ -1968,11 +2122,14 @@ class Dictionary {
1968
2122
  "NUMBER": "Amount",
1969
2123
  "ON_DATE": "On date",
1970
2124
  "OPEN_SHOPPING_CART": "Open shopping cart",
2125
+ "ORDER_DATE": "Order date",
1971
2126
  "ORDER_GROSS": "Total gross amount",
1972
2127
  "ORDER_NET": "Total net amount",
2128
+ "ORDER_NUMBER": "Order number",
1973
2129
  "ORDER_TYPE": "Order type",
1974
2130
  "OVERVIEW": "Overview",
1975
2131
  "OWN_REFERENCE": "Own reference",
2132
+ "PAID_DOWN2": "Prepaid",
1976
2133
  "PART_DELIVERIES": "Partial deliveries",
1977
2134
  "PASSWORD": "Password",
1978
2135
  "PAYMENT": "Payment",
@@ -1985,6 +2142,8 @@ class Dictionary {
1985
2142
  "PRICE_LIST": "Pricelist",
1986
2143
  "PRIVACY_PREFERENCES": "Privacy preferences",
1987
2144
  "PRIVATE_PERSON": "Private",
2145
+ "PRODUCT": "Product",
2146
+ "PRODUCT_TYPE": "Product type",
1988
2147
  "QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Quantity cannot be zero or empty",
1989
2148
  "QUANTUM_DISCOUNT": "Quantum discount",
1990
2149
  "REFERENCE_RELATION": "Ref. relation",
@@ -1992,6 +2151,9 @@ class Dictionary {
1992
2151
  "SALUTATION": "Salutation",
1993
2152
  "SAVE": "Save",
1994
2153
  "SELECT": "Select",
2154
+ "SERVICE_NUMBER": "Service number",
2155
+ "SERVICE_REQUEST_DATE": "Service request data",
2156
+ "SERVICE_STATE": "Service state",
1995
2157
  "SHOPPING_CART": "Shopping cart",
1996
2158
  "SHOPPING_CART_CHECKOUT": "Checkout",
1997
2159
  "SHOPPING_CART_OVERVIEW": "Order overview",
@@ -2003,17 +2165,21 @@ class Dictionary {
2003
2165
  "SUBTOTAL": "Subtotal",
2004
2166
  "SUGGESTIONS": "Suggestions",
2005
2167
  "SURCHARGE_AMOUNT": "Surcharge",
2168
+ "STATE": "STATUS",
2006
2169
  "STREET": "Streetname",
2170
+ "TOTAL_AMOUNT": "Total amount",
2007
2171
  "TOTAL_GROSS": "Gross total",
2008
2172
  "TOTAL_ASSEMBLY_TIME": "Total assembly time",
2009
2173
  "TRANSACTION_DISCOUNT": "Total transaction discount",
2010
2174
  "TRANSACTION_DISCOUNT_PERC": "% Trans. discount",
2011
2175
  "TRANSACTION_PRICE_DECLARATION": "Transaction price declaration",
2176
+ "TRANSACTION_SUM_I": "Ordertotal incl VAT",
2012
2177
  "TRANSACTION_TOTAL": "Transaction total",
2013
2178
  "UNKNOWN": "unknown",
2014
2179
  "UNKNOWN_ADDRESS_CHECK_IT": "Unknown address",
2015
2180
  "VALUE": "Value",
2016
2181
  "VAT": "VAT",
2182
+ "VAT_AMOUNT": "VAT amount",
2017
2183
  "WAREHOUSE": "Warehouse",
2018
2184
  "YOUR_DATA": "Your data",
2019
2185
  },
@@ -2089,6 +2255,14 @@ class TransactionEventService {
2089
2255
  this.loggedIn = new Subject();
2090
2256
  this.addNewUserToShoppingCartModule = new Subject();
2091
2257
  this.addUserRelationShoppingCartModule = new Subject();
2258
+ this.addArticleLine = new Subject();
2259
+ this.addTextLine = new Subject();
2260
+ this.addArticleLineAt = new Subject();
2261
+ this.addTextLineAt = new Subject();
2262
+ this.changeLineSequence = new Subject();
2263
+ this.transactionLineClicked = new Subject();
2264
+ this.rightSidebarClose = new Subject();
2265
+ this.scrollContent = new Subject();
2092
2266
  }
2093
2267
  }
2094
2268
  TransactionEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionEventService_Factory() { return new TransactionEventService(); }, token: TransactionEventService, providedIn: "root" });
@@ -2913,8 +3087,8 @@ CheckoutOverviewDeliveryEditComponent.decorators = [
2913
3087
  <co-grid #addressGrid
2914
3088
  [data]="addresses"
2915
3089
  [columns]="columns"
2916
- [pagingEnabled]="'true'"
2917
- [maxNumberOfRows]="'20'"
3090
+ [pagingEnabled]="true"
3091
+ [maxNumberOfRows]="20"
2918
3092
  (rowsSelected)="handleAddressSelected($event)"
2919
3093
  ></co-grid>
2920
3094
  </div>
@@ -4065,6 +4239,7 @@ class IconComponent {
4065
4239
  }
4066
4240
  IconComponent.decorators = [
4067
4241
  { type: Component, args: [{
4242
+ // eslint-disable-next-line @angular-eslint/component-selector
4068
4243
  selector: "icon",
4069
4244
  template: "",
4070
4245
  styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.circle:host{border-radius:50%}.flex-center{display:flex}:host{display:inline-flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.no-shrink:host{flex-shrink:0}:host.action ::ng-deep{cursor:pointer}:host ::ng-deep svg{width:100%}:host ::ng-deep svg{height:100%}.massive:host{width:100px;height:100px}.humongous:host{width:70px;height:70px}.very-big:host{width:45px;height:45px}.big:host{width:40px;height:40px}:host{width:30px;height:30px}.small:host{width:25px;height:25px}.nano:host{width:18px;height:18px}.pico:host{width:14px;height:14px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host.dark ::ng-deep [fill]{fill:#22313c}:host.light ::ng-deep [fill]{fill:#fff}:host.red ::ng-deep [fill]{fill:#c1002a}:host.grey ::ng-deep [fill]{fill:#dad9d9}:host.action-color ::ng-deep [fill]{fill:#2b60a7}:host.inactive{opacity:.25}:host.disabled{opacity:.25!important}:host:hover.action ::ng-deep [fill]{fill:#2b60a7}\n"]
@@ -4151,7 +4326,6 @@ IoneCheckoutModule.decorators = [
4151
4326
  IoneCheckoutComponent,
4152
4327
  ],
4153
4328
  providers: [
4154
- IOneConnectorAdapterService,
4155
4329
  DictionaryService,
4156
4330
  TransactionService,
4157
4331
  OptionsService
@@ -4164,6 +4338,12 @@ IoneCheckoutModule.decorators = [
4164
4338
  },] }
4165
4339
  ];
4166
4340
 
4341
+ var PositionGridRow;
4342
+ (function (PositionGridRow) {
4343
+ PositionGridRow["Before"] = "before";
4344
+ PositionGridRow["After"] = "after";
4345
+ })(PositionGridRow || (PositionGridRow = {}));
4346
+
4167
4347
  class ShoppingCartManagerComponent {
4168
4348
  constructor(service, transactionEvents, promptService, _dictionaryService) {
4169
4349
  this.service = service;
@@ -4193,6 +4373,12 @@ class ShoppingCartManagerComponent {
4193
4373
  }), this.transactionEvents.addToCartBySku.subscribe((params) => {
4194
4374
  this.waitForLinesChangedToOpenCart = params.popCart;
4195
4375
  this.addToCart(params.sku, params.amount).then();
4376
+ }), this.transactionEvents.addArticleLineAt.subscribe((params) => {
4377
+ this.addArticleLineToCartAt(params.sku, params.amount, params.lineNr, params.beforeOrAfter).then();
4378
+ }), this.transactionEvents.addTextLineAt.subscribe((params) => {
4379
+ this.addTextLineToCartAt(params.text, params.lineNr, params.beforeOrAfter).then();
4380
+ }), this.transactionEvents.changeLineSequence.subscribe((params) => {
4381
+ this.changeLineSequence(params.fromIndex, params.toIndex).then();
4196
4382
  }), this.transactionEvents.addToCartBySelectorResult.subscribe((params) => {
4197
4383
  this.waitForLinesChangedToOpenCart = params.popCart;
4198
4384
  this.addToCartBySelectorResult(params.selectorResult).then();
@@ -4234,6 +4420,41 @@ class ShoppingCartManagerComponent {
4234
4420
  this.articleAdded.emit();
4235
4421
  });
4236
4422
  }
4423
+ addArticleLineToCartAt(sku, amount, lineNr, beforeOrAfter) {
4424
+ return __awaiter(this, void 0, void 0, function* () {
4425
+ const goodId = yield this.service.getGoodIdFromArticleNr(sku);
4426
+ yield this._loadArticle(goodId);
4427
+ yield this._createTransaction();
4428
+ yield this._handleAddArticleLineAt(amount, lineNr, beforeOrAfter);
4429
+ this.articleAdded.emit();
4430
+ });
4431
+ }
4432
+ addTextLineToCartAt(text, lineNr, beforeOrAfter) {
4433
+ return __awaiter(this, void 0, void 0, function* () {
4434
+ yield this.service.addTextLineToTransaction(0, text, 0, false, 0, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
4435
+ .then((value) => {
4436
+ this._handleLineOperationStatus();
4437
+ }, (error) => this.promptService.showError(error));
4438
+ });
4439
+ }
4440
+ changeLineSequence(fromIndex, toIndex) {
4441
+ return __awaiter(this, void 0, void 0, function* () {
4442
+ let fromLine = this._getTransactionLineInfoByIndex(fromIndex);
4443
+ let toLine = this._getTransactionLineInfoByIndex(toIndex);
4444
+ let aboveLineNr;
4445
+ let belowLineNr;
4446
+ if (fromIndex > toIndex) {
4447
+ aboveLineNr = toLine.lineNr;
4448
+ }
4449
+ else {
4450
+ belowLineNr = toLine.lineNr;
4451
+ }
4452
+ yield this.service.changeLineSequence(fromLine.uuid, aboveLineNr, belowLineNr)
4453
+ .then((value) => {
4454
+ this._handleLineOperationStatus();
4455
+ }, (error) => this.promptService.showError(error));
4456
+ });
4457
+ }
4237
4458
  addToCartBySelectorResult(result) {
4238
4459
  return __awaiter(this, void 0, void 0, function* () {
4239
4460
  yield this._loadArticle(result.goodId);
@@ -4306,7 +4527,7 @@ class ShoppingCartManagerComponent {
4306
4527
  }
4307
4528
  else {
4308
4529
  if (this.editingLine === undefined) {
4309
- yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, this.amount, this.selectedWarehouseNr, this.commissionCode, this.isReturn)
4530
+ yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, this.amount, this.selectedWarehouseNr, this.commissionCode, this.isReturn, 0, 0)
4310
4531
  .then((value) => {
4311
4532
  this._handleLineOperationStatus();
4312
4533
  });
@@ -4342,7 +4563,15 @@ class ShoppingCartManagerComponent {
4342
4563
  }
4343
4564
  _handleAddArticle(amount = 1) {
4344
4565
  return __awaiter(this, void 0, void 0, function* () {
4345
- yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode)
4566
+ yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, 0, 0)
4567
+ .then((value) => {
4568
+ this._handleLineOperationStatus();
4569
+ }, (error) => this.promptService.showError(error));
4570
+ });
4571
+ }
4572
+ _handleAddArticleLineAt(amount, lineNr, beforeOrAfter) {
4573
+ return __awaiter(this, void 0, void 0, function* () {
4574
+ yield this.service.addTransactionLine(TransactionLineType.ArticleLine, this.newArticleNr, amount, this.newArticle.standardWareHouse, this.newArticle.commissionCode, false, beforeOrAfter === PositionGridRow.Before ? lineNr : undefined, beforeOrAfter === PositionGridRow.After ? lineNr : undefined)
4346
4575
  .then((value) => {
4347
4576
  this._handleLineOperationStatus();
4348
4577
  }, (error) => this.promptService.showError(error));
@@ -4476,9 +4705,19 @@ class ShoppingCartManagerComponent {
4476
4705
  // eslint-disable-next-line no-magic-numbers
4477
4706
  }, 1000);
4478
4707
  }
4708
+ _getLineUuidByLineNr(lineNr) {
4709
+ const transactionLine = this.service.currentLines.filter(transLines => transLines.lineNr === lineNr);
4710
+ return transactionLine[0].uuid;
4711
+ }
4712
+ _getTransactionLineInfoByIndex(index) {
4713
+ if (index >= 0 && index < this.service.currentLines.length) {
4714
+ return this.service.currentLines[index];
4715
+ }
4716
+ }
4479
4717
  }
4480
4718
  ShoppingCartManagerComponent.decorators = [
4481
4719
  { type: Component, args: [{
4720
+ // eslint-disable-next-line @angular-eslint/component-selector
4482
4721
  selector: "shopping-cart-manager",
4483
4722
  template: `
4484
4723
  <co-dialog #warehouseDialog
@@ -4580,13 +4819,15 @@ class ShoppingCartComponent {
4580
4819
  this.overview = new EventEmitter();
4581
4820
  this.activeViewMode = ContentViewMode.List;
4582
4821
  this.columns = [];
4822
+ this.contextMenuItems = [];
4583
4823
  this.showDiscountsSidebar = false;
4584
4824
  this._transactionUpdated = this.service.transactionUpdated.subscribe(() => {
4585
4825
  this.setFilteredCollection(this.service.currentLines);
4586
4826
  });
4587
4827
  this.setFilteredCollection(this.service.currentLines);
4588
4828
  const mediaQuery = "(min-width: 500px)";
4589
- this.columns.push({ field: "lineNr", headerText: this._dictionary.get("NR"), allowFiltering: false }, { field: "articleNumber", headerText: this._dictionary.get("ARTICLE_NR") }, { field: "goodDescription", headerText: this._dictionary.get("GOOD_DESCRIPTION"), hideAtMedia: mediaQuery }, { field: "amount", headerText: this._dictionary.get("NUMBER"), textAlign: "Right" }, { field: "price", headerText: this._dictionary.get("PRICE"), format: "C2", textAlign: "Right" }, { field: "priceListCode", headerText: this._dictionary.get("PRICE_LIST"), hideAtMedia: mediaQuery }, { field: "lineDiscount", headerText: this._dictionary.get("DISCOUNT_PERCENTAGE"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "specialDiscount", headerText: this._dictionary.get("SPECIAL_DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "discountAmount", headerText: this._dictionary.get("DISCOUNT_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "surchargeAmount", headerText: this._dictionary.get("SURCHARGE_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "assemblyCost", headerText: this._dictionary.get("ASSEMBLY_COSTS"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "grossLineTotal", headerText: this._dictionary.get("TOTAL_GROSS"), format: "C2", visible: true, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "lineTotalDiscountAmount", headerText: this._dictionary.get("DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "netLineTotal", headerText: this._dictionary.get("SUBTOTAL"), format: "C2", visible: false, textAlign: "Right" }, { field: "vatId", headerText: this._dictionary.get("VAT"), hideAtMedia: mediaQuery, visible: false, textAlign: "Right" }, { field: "priceDeclaration", headerText: this._dictionary.get("TRANSACTION_PRICE_DECLARATION"), visible: false, hideAtMedia: mediaQuery }, { field: "netto", headerText: this._dictionary.get("NETT"), format: "C2", hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "warehouseNumber", headerText: this._dictionary.get("WAREHOUSE"), hideAtMedia: mediaQuery, textAlign: "Right" });
4829
+ this.columns.push({ field: "lineNr", headerText: this._dictionary.get("NR"), allowFiltering: false, allowSorting: false }, { field: "text", headerText: this._dictionary.get("TEXT") }, { field: "articleNumber", headerText: this._dictionary.get("ARTICLE_NR") }, { field: "goodDescription", headerText: this._dictionary.get("GOOD_DESCRIPTION"), hideAtMedia: mediaQuery }, { field: "amount", headerText: this._dictionary.get("NUMBER"), textAlign: "Right" }, { field: "price", headerText: this._dictionary.get("PRICE"), format: "C2", textAlign: "Right" }, { field: "priceListCode", headerText: this._dictionary.get("PRICE_LIST"), hideAtMedia: mediaQuery }, { field: "lineDiscount", headerText: this._dictionary.get("DISCOUNT_PERCENTAGE"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "specialDiscount", headerText: this._dictionary.get("SPECIAL_DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "discountAmount", headerText: this._dictionary.get("DISCOUNT_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "surchargeAmount", headerText: this._dictionary.get("SURCHARGE_AMOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "assemblyCost", headerText: this._dictionary.get("ASSEMBLY_COSTS"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "grossLineTotal", headerText: this._dictionary.get("TOTAL_GROSS"), format: "C2", visible: true, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "lineTotalDiscountAmount", headerText: this._dictionary.get("DISCOUNT"), format: "C2", visible: false, hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "netLineTotal", headerText: this._dictionary.get("SUBTOTAL"), format: "C2", visible: false, textAlign: "Right" }, { field: "vatId", headerText: this._dictionary.get("VAT"), hideAtMedia: mediaQuery, visible: false, textAlign: "Right" }, { field: "priceDeclaration", headerText: this._dictionary.get("TRANSACTION_PRICE_DECLARATION"), visible: false, hideAtMedia: mediaQuery }, { field: "netto", headerText: this._dictionary.get("NETT"), format: "C2", hideAtMedia: mediaQuery, textAlign: "Right" }, { field: "warehouseNumber", headerText: this._dictionary.get("WAREHOUSE"), hideAtMedia: mediaQuery, textAlign: "Right" });
4830
+ this.contextMenuItems.push({ text: this._dictionary.get("ADD_ARTICLE_LINE_UP"), target: ".e-content", id: "articleLineUp" }, { text: this._dictionary.get("ADD_ARTICLE_LINE_DOWN"), target: ".e-content", id: "articleLineDown" }, { text: this._dictionary.get("ADD_ARTICLE_TEXT_LINE_UP"), target: ".e-content", id: "articleTextLineUp" }, { text: this._dictionary.get("ADD_ARTICLE_TEXT_LINE_DOWN"), target: ".e-content", id: "articleTextLineDown" });
4590
4831
  }
4591
4832
  get filteredCollection() {
4592
4833
  return this._filteredCollection;
@@ -4599,7 +4840,7 @@ class ShoppingCartComponent {
4599
4840
  property: "lineNr",
4600
4841
  type: SortType.Number
4601
4842
  };
4602
- SortUtils.SortObjectArray(this._filteredCollection, [sortByLineNr]);
4843
+ // SortUtils.SortObjectArray(this._filteredCollection, [sortByLineNr]);
4603
4844
  }
4604
4845
  ngAfterViewInit() {
4605
4846
  this.hideSidebar();
@@ -4660,7 +4901,7 @@ class ShoppingCartComponent {
4660
4901
  return line.lineNr;
4661
4902
  }
4662
4903
  handleRowsSelected(rows) {
4663
- const selectedRow = rows.find(x => x !== undefined);
4904
+ this._selectedRow = rows.find(x => x !== undefined);
4664
4905
  }
4665
4906
  showSidebar() {
4666
4907
  this.showDiscountsSidebar = true;
@@ -4676,9 +4917,36 @@ class ShoppingCartComponent {
4676
4917
  this.discountsSidebar.hide();
4677
4918
  }
4678
4919
  }
4920
+ menuItemClick(args) {
4921
+ const lineNr = this._selectedRow.lineNr;
4922
+ switch (args.item.id) {
4923
+ case "articleLineUp":
4924
+ // this._transactionEvents.addArticleLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.Before});
4925
+ this._transactionEvents.addArticleLineAt.next({ sku: "iPod", amount: 1, lineNr: lineNr, beforeOrAfter: PositionGridRow.Before });
4926
+ break;
4927
+ case "articleLineDown":
4928
+ // this._transactionEvents.addArticleLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.After});
4929
+ this._transactionEvents.addArticleLineAt.next({ sku: "iPod", amount: 1, lineNr: lineNr, beforeOrAfter: PositionGridRow.After });
4930
+ break;
4931
+ case "articleTextLineUp":
4932
+ // this._transactionEvents.addTextLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.Before});
4933
+ this._transactionEvents.addTextLineAt.next({ text: "textregel before", lineNr: lineNr, beforeOrAfter: PositionGridRow.Before });
4934
+ break;
4935
+ case "articleTextLineDown":
4936
+ // this._transactionEvents.addTextLine.next({lineNr: lineNr, beforeOrAfter: PositionGridRow.After});
4937
+ this._transactionEvents.addTextLineAt.next({ text: "textregel after", lineNr: lineNr, beforeOrAfter: PositionGridRow.After });
4938
+ break;
4939
+ }
4940
+ }
4941
+ rowDrop(args) {
4942
+ this._transactionEvents.changeLineSequence.next({ fromIndex: args.fromIndex, toIndex: args.dropIndex });
4943
+ // Transaction lines will be reloaded by previous action on success, not by failure. So, cancel the drop in all cases.
4944
+ args.cancel = true;
4945
+ }
4679
4946
  }
4680
4947
  ShoppingCartComponent.decorators = [
4681
4948
  { type: Component, args: [{
4949
+ // eslint-disable-next-line @angular-eslint/component-selector
4682
4950
  selector: "shopping-cart",
4683
4951
  template: `
4684
4952
  <div class="cart-header">
@@ -4697,19 +4965,24 @@ ShoppingCartComponent.decorators = [
4697
4965
  </div>
4698
4966
  </div>
4699
4967
  <div class="cart-lines">
4700
- <div class="cart-list-wrapper" *ngIf="this.activeViewMode == viewModes.List" fxFlex="column">
4968
+ <div class="cart-list-wrapper" *ngIf="activeViewMode === viewModes.List" fxFlex="column">
4701
4969
  <shopping-cart-line [overlayMode]="overlayMode" [overviewMode]="overviewMode"
4702
4970
  *ngFor="let line of filteredCollection; trackBy:trackByFn;"
4703
4971
  [line]="line"
4704
4972
  ></shopping-cart-line>
4705
4973
  </div>
4706
- <div class="cart-list-wrapper" *ngIf="this.activeViewMode == viewModes.Grid" fxFlex="column">
4974
+ <div class="cart-list-wrapper" *ngIf="activeViewMode === viewModes.Grid" fxFlex="column">
4707
4975
  <co-grid
4708
4976
  [data]="filteredCollection"
4977
+ [rowDragAndDropEnabled]="true"
4978
+ [contextMenuItems]="contextMenuItems"
4979
+ [sortingEnabled]="false"
4709
4980
  [columns]="columns"
4710
4981
  [pagingEnabled]="'true'"
4711
4982
  [maxNumberOfRows]="'20'"
4712
4983
  (rowsSelected)="handleRowsSelected($event)"
4984
+ (contextMenuItemClick)="menuItemClick($event)"
4985
+ (rowDropEvent)="rowDrop($event)"
4713
4986
  ></co-grid>
4714
4987
  </div>
4715
4988
  </div>
@@ -4811,6 +5084,19 @@ ShoppingCartComponent.propDecorators = {
4811
5084
  overview: [{ type: Output }]
4812
5085
  };
4813
5086
 
5087
+ // <co-sidebar #catalogSidebar isOpen="false" *ngIf="showCatalogSidebar">
5088
+ // <div class="relation-sidebar-header">
5089
+ // <label [textContent]="'ARTICLE' | localize "
5090
+ // class="checkout-label-h3"
5091
+ // ></label>
5092
+ // </div>
5093
+ // <app-ione-catalog
5094
+ // [settings]="options"
5095
+ // [parameters]="{publicationCode: 71}"
5096
+ // (onAddToCart)="addToCart($event)"
5097
+ // (onAddArticleButtonClick)="addArticleButtonClick($event)"
5098
+ // ></app-ione-catalog>
5099
+ // </co-sidebar>
4814
5100
  class IoneShoppingCartComponent {
4815
5101
  constructor(_changeDetector, _optionsService, _connector, _dictionary, _service, transactionEvents, _promptService) {
4816
5102
  this._changeDetector = _changeDetector;
@@ -4826,6 +5112,11 @@ class IoneShoppingCartComponent {
4826
5112
  this.closeCart = new EventEmitter();
4827
5113
  this.checkout = new EventEmitter();
4828
5114
  this.overview = new EventEmitter();
5115
+ this.addArticleLine = new EventEmitter();
5116
+ this.addTextLine = new EventEmitter();
5117
+ this.showCatalogSidebar = false;
5118
+ this.currentArticleLineNr = 0;
5119
+ this.currentPositionGridRow = PositionGridRow.After;
4829
5120
  this.show = false;
4830
5121
  this.amountOfLines = 0;
4831
5122
  this.upAndLoaded = false;
@@ -4833,24 +5124,26 @@ class IoneShoppingCartComponent {
4833
5124
  this._subscriptions = [];
4834
5125
  this._remoteOptions = true;
4835
5126
  this._publicOptions = true;
4836
- this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
5127
+ this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)), this.transactionEvents.addArticleLine.subscribe(args => this._handleAddArticleLine(args)), this.transactionEvents.addTextLine.subscribe(args => this._handleAddTextLine(args)));
4837
5128
  }
4838
5129
  set options(value) {
4839
5130
  if (value) {
4840
- let options;
4841
5131
  if (typeof value === "string") {
4842
- options = JSON.parse(value);
5132
+ this._options = JSON.parse(value);
4843
5133
  }
4844
5134
  else {
4845
- options = value;
5135
+ this._options = value;
4846
5136
  }
4847
5137
  this._publicOptions = true;
4848
- this._optionsService.initialize(options).then();
5138
+ this._optionsService.initialize(this._options).then();
4849
5139
  }
4850
5140
  }
4851
5141
  get transactionNr() {
4852
5142
  return this._service.currentTransaction.transactionNr;
4853
5143
  }
5144
+ get options() {
5145
+ return this._options;
5146
+ }
4854
5147
  ngOnInit() {
4855
5148
  if (!this._publicOptions) {
4856
5149
  this._optionsService.initializeDevelopmentOptions(this._remoteOptions);
@@ -4874,6 +5167,18 @@ class IoneShoppingCartComponent {
4874
5167
  addArticle(articleNo, amount) {
4875
5168
  this.transactionEvents.addToCartBySku.next({ sku: articleNo, amount: amount, popCart: true });
4876
5169
  }
5170
+ addArticleButtonClick(article) {
5171
+ this.transactionEvents.addArticleLineAt.next({ sku: article.articleNumber, amount: 1, lineNr: this.currentArticleLineNr, beforeOrAfter: this.currentPositionGridRow });
5172
+ }
5173
+ addToCart(article) {
5174
+ this.transactionEvents.addArticleLineAt.next({ sku: article.articleNumber, amount: 1, lineNr: this.currentArticleLineNr, beforeOrAfter: this.currentPositionGridRow });
5175
+ }
5176
+ addArticleLineAt(articleNo, amount, lineNr, beforeOrAfter) {
5177
+ this.transactionEvents.addArticleLineAt.next({ sku: articleNo, amount: amount, lineNr: lineNr, beforeOrAfter: beforeOrAfter });
5178
+ }
5179
+ addTextLineAt(text, lineNr, beforeOrAfter) {
5180
+ this.transactionEvents.addTextLineAt.next({ text: text, lineNr: lineNr, beforeOrAfter: beforeOrAfter });
5181
+ }
4877
5182
  addArticleByBySelectorResult(selectorResult, popCart) {
4878
5183
  this.transactionEvents.addToCartBySelectorResult.next({ selectorResult: selectorResult, popCart: popCart });
4879
5184
  }
@@ -4897,9 +5202,19 @@ class IoneShoppingCartComponent {
4897
5202
  });
4898
5203
  });
4899
5204
  }
5205
+ _handleAddArticleLine(args) {
5206
+ //this.addArticleLine.next(args);
5207
+ this.showCatalogSidebar = true;
5208
+ this.currentArticleLineNr = args.lineNr;
5209
+ this.currentPositionGridRow = args.beforeOrAfter;
5210
+ }
5211
+ _handleAddTextLine(args) {
5212
+ this.addTextLine.next(args);
5213
+ }
4900
5214
  }
4901
5215
  IoneShoppingCartComponent.decorators = [
4902
5216
  { type: Component, args: [{
5217
+ // eslint-disable-next-line @angular-eslint/component-selector
4903
5218
  selector: "ione-shopping-cart",
4904
5219
  template: `
4905
5220
  <ng-container *ngIf="upAndLoaded">
@@ -4938,7 +5253,9 @@ IoneShoppingCartComponent.propDecorators = {
4938
5253
  hideCloseCartButton: [{ type: Input }],
4939
5254
  closeCart: [{ type: Output }],
4940
5255
  checkout: [{ type: Output }],
4941
- overview: [{ type: Output }]
5256
+ overview: [{ type: Output }],
5257
+ addArticleLine: [{ type: Output }],
5258
+ addTextLine: [{ type: Output }]
4942
5259
  };
4943
5260
 
4944
5261
  class ShoppingCartLineComponent {
@@ -5087,7 +5404,7 @@ ShoppingCartLineComponent.decorators = [
5087
5404
  [textContent]="line.text">
5088
5405
  </div>
5089
5406
  `,
5090
- styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.cart-line-r .cart-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}:host{padding-bottom:20px}:host{padding-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-bottom:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t,.cart-line-r .cart-line-right .cart-line-totals{margin-left:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:flex;flex-wrap:wrap;border-bottom:1px solid #DBE3E8;width:100%}:host.overlayed.is-text{display:none!important}:host.overlayed.is-selected{background-color:#add8e6}:host.overview.is-text{display:none!important}:host.overview.is-selected{background-color:#add8e6}.cart-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.cart-line-r{flex-direction:column}}.cart-line-r co-button{border:0;padding:0}.cart-line-r .cart-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center}.cart-line-r .cart-line-image image-display{width:6em;height:6em}.cart-line-r .cart-line-description{display:flex;flex-direction:column;width:100%}.cart-line-r .cart-line-description .cart-line-description-main{font-weight:bold}.cart-line-r .cart-line-right{justify-content:flex-end}.cart-line-r .cart-line-right .cart-line-stock{width:10em}.cart-line-r .cart-line-right .cart-line-amount{width:10em}.cart-line-r .cart-line-right .cart-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.cart-line-r .cart-line-right .cart-line-totals span{text-align:right}.cart-line-t.article-text{padding-left:10em}\n"]
5407
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.cart-line-r .cart-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}:host{padding-bottom:20px}:host{padding-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-top:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-r .cart-line-image,.cart-line-r .cart-line-right .cart-line-stock,.cart-line-r .cart-line-right .cart-line-totals{margin-bottom:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t,.cart-line-r .cart-line-right .cart-line-totals{margin-left:20px}.cart-line-r .cart-line-description,.cart-line-r .cart-line-right .cart-line-amount,.cart-line-t{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:flex;flex-wrap:wrap;border-bottom:1px solid #DBE3E8;width:100%}:host.overlayed.is-text{display:none!important}:host.overlayed.is-selected{background-color:#add8e6}:host.overview.is-text{display:none!important}:host.overview.is-selected{background-color:#add8e6}.horizontal{display:flex;flex-direction:row-reverse}.cart-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.cart-line-r{flex-direction:column}}.cart-line-r co-button{border:0;padding:0}.cart-line-r .cart-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center}.cart-line-r .cart-line-image image-display{width:6em;height:6em}.cart-line-r .cart-line-description{display:flex;flex-direction:column;width:100%}.cart-line-r .cart-line-description .cart-line-description-main{font-weight:bold}.cart-line-r .cart-line-right{justify-content:flex-end}.cart-line-r .cart-line-right .cart-line-stock{width:10em}.cart-line-r .cart-line-right .cart-line-amount{width:10em}.cart-line-r .cart-line-right .cart-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.cart-line-r .cart-line-right .cart-line-totals span{text-align:right}.cart-line-t.article-text{padding-left:10em}\n"]
5091
5408
  },] }
5092
5409
  ];
5093
5410
  ShoppingCartLineComponent.ctorParameters = () => [
@@ -5257,10 +5574,9 @@ IoneShoppingCartModule.decorators = [
5257
5574
  PopupModule.forRoot(),
5258
5575
  CoSidebarModule,
5259
5576
  CoGridModule,
5260
- CoreModule,
5577
+ CoreModule
5261
5578
  ],
5262
5579
  providers: [
5263
- IOneConnectorAdapterService,
5264
5580
  DictionaryService,
5265
5581
  TransactionService,
5266
5582
  OptionsService
@@ -5268,16 +5584,1959 @@ IoneShoppingCartModule.decorators = [
5268
5584
  entryComponents: [
5269
5585
  IoneShoppingCartComponent
5270
5586
  ],
5271
- exports: [IoneShoppingCartComponent],
5587
+ exports: [IoneShoppingCartComponent, StockStatusIndicatorComponent],
5272
5588
  bootstrap: [IoneShoppingCartComponent]
5273
5589
  },] }
5274
5590
  ];
5275
5591
 
5592
+ class IoneServiceOrderComponent {
5593
+ constructor(_changeDetector, _optionsService, _connector, _dictionary, _service) {
5594
+ this._changeDetector = _changeDetector;
5595
+ this._optionsService = _optionsService;
5596
+ this._connector = _connector;
5597
+ this._dictionary = _dictionary;
5598
+ this._service = _service;
5599
+ this.orderNr = 0;
5600
+ this.orderId = 0;
5601
+ this.upAndLoaded = false;
5602
+ this._subscriptions = [];
5603
+ this._remoteOptions = true;
5604
+ this._publicOptions = true;
5605
+ this._subscriptions.push(this._optionsService.optionsLoaded.subscribe(loaded => this._handleSettingsLoaded(loaded)));
5606
+ }
5607
+ set options(value) {
5608
+ if (value) {
5609
+ let options;
5610
+ if (typeof value === "string") {
5611
+ options = JSON.parse(value);
5612
+ }
5613
+ else {
5614
+ options = value;
5615
+ }
5616
+ this._publicOptions = true;
5617
+ this._optionsService.initialize(options).then();
5618
+ }
5619
+ }
5620
+ ngOnInit() {
5621
+ if (!this._publicOptions) {
5622
+ this._optionsService.initializeDevelopmentOptions(this._remoteOptions);
5623
+ }
5624
+ }
5625
+ ngOnDestroy() {
5626
+ this._subscriptions.forEach(subscription => subscription.unsubscribe());
5627
+ }
5628
+ _handleSettingsLoaded(loaded) {
5629
+ return __awaiter(this, void 0, void 0, function* () {
5630
+ if (loaded) {
5631
+ yield this._initConnection().then();
5632
+ this.upAndLoaded = true;
5633
+ }
5634
+ });
5635
+ }
5636
+ _initConnection() {
5637
+ return __awaiter(this, void 0, void 0, function* () {
5638
+ yield this._connector.connect(this._optionsService.options);
5639
+ if (this.orderNr) {
5640
+ yield this._service.getTransaction(this.orderNr);
5641
+ }
5642
+ else if (this.orderId) {
5643
+ yield this._service.getTransactionById(this.orderId);
5644
+ }
5645
+ else {
5646
+ yield this._service.getTransaction(IoneServiceOrderComponent.TEST_ORDER_NR);
5647
+ }
5648
+ if (this._optionsService.options.url) {
5649
+ this._dictionary.rootUrl = this._optionsService.options.url.replace("/ajaxservice", "");
5650
+ }
5651
+ yield this._dictionary.setDictionary(this._optionsService.options.languageCode);
5652
+ setTimeout(() => {
5653
+ this._changeDetector.detectChanges();
5654
+ });
5655
+ });
5656
+ }
5657
+ }
5658
+ IoneServiceOrderComponent.TEST_ORDER_NR = 18156;
5659
+ IoneServiceOrderComponent.decorators = [
5660
+ { type: Component, args: [{
5661
+ // eslint-disable-next-line @angular-eslint/component-selector
5662
+ selector: "ione-service-order",
5663
+ template: `
5664
+ <div>
5665
+ <service-order></service-order>
5666
+ </div>
5667
+ <transaction-sidebar-right></transaction-sidebar-right>
5668
+ `
5669
+ },] }
5670
+ ];
5671
+ IoneServiceOrderComponent.ctorParameters = () => [
5672
+ { type: ChangeDetectorRef },
5673
+ { type: OptionsService },
5674
+ { type: IOneConnectorAdapterService },
5675
+ { type: DictionaryService },
5676
+ { type: TransactionService }
5677
+ ];
5678
+ IoneServiceOrderComponent.propDecorators = {
5679
+ orderNr: [{ type: Input }],
5680
+ orderId: [{ type: Input }],
5681
+ options: [{ type: Input }]
5682
+ };
5683
+
5684
+ class TransactionBaseComponent {
5685
+ constructor(service) {
5686
+ this.service = service;
5687
+ this.relation = NULL_RELATION_LIST_OBJECT;
5688
+ this.customer = NULL_CUSTOMER_FULL_OBJECT;
5689
+ this._isService = false;
5690
+ this.basedOnProduct = false;
5691
+ }
5692
+ set transaction(value) {
5693
+ this._transaction = value;
5694
+ if (this._transaction && this._transaction.transactionInfo) {
5695
+ this._isService = this._transaction.transactionInfo.transactionKind === TransactionKind.ServiceOrder;
5696
+ }
5697
+ }
5698
+ get transaction() {
5699
+ return this._transaction;
5700
+ }
5701
+ get transactionInfo() {
5702
+ return this._transaction.transactionInfo;
5703
+ }
5704
+ get transactionLines() {
5705
+ if (this._transaction) {
5706
+ return this._transaction.transactionLines;
5707
+ }
5708
+ }
5709
+ get transactionTotal() {
5710
+ if (this._transaction) {
5711
+ return this._transaction.transactionTotal;
5712
+ }
5713
+ }
5714
+ get isService() {
5715
+ return this._isService;
5716
+ }
5717
+ set relationId(value) {
5718
+ if (value === undefined) {
5719
+ return;
5720
+ }
5721
+ this._relationId = value;
5722
+ this._retrieveRelation();
5723
+ }
5724
+ get relationId() {
5725
+ return this._relationId;
5726
+ }
5727
+ set customerId(value) {
5728
+ if (value === undefined) {
5729
+ return;
5730
+ }
5731
+ this._customerId = value;
5732
+ this._retrieveCustomer();
5733
+ }
5734
+ get customerId() {
5735
+ return this._customerId;
5736
+ }
5737
+ set product(value) {
5738
+ this._product = value;
5739
+ this.productSet();
5740
+ this._setBasedOnProduct();
5741
+ }
5742
+ get product() {
5743
+ return this._product;
5744
+ }
5745
+ get isNew() {
5746
+ return isNill$1(this.transaction) || isNill$1(this.transactionInfo.transactionNr);
5747
+ }
5748
+ transactionSet() {
5749
+ // overridden by descendents
5750
+ }
5751
+ productSet() {
5752
+ // overridden by descendents
5753
+ }
5754
+ _retrieveCustomer() {
5755
+ return __awaiter(this, void 0, void 0, function* () {
5756
+ this.customer = yield this.service.getCustomerFulObjectByRelationId(this._customerId);
5757
+ });
5758
+ }
5759
+ _retrieveRelation() {
5760
+ return __awaiter(this, void 0, void 0, function* () {
5761
+ const relationRequest = new RelationRequest();
5762
+ let relations = [];
5763
+ relationRequest.relationId = this.relationId;
5764
+ relations = yield this.service.getRelationListObjects(relationRequest);
5765
+ if (relations && relations.length) {
5766
+ this.relation = relations[0];
5767
+ }
5768
+ });
5769
+ }
5770
+ _setBasedOnProduct() {
5771
+ if (this.product) {
5772
+ this.basedOnProduct = true;
5773
+ }
5774
+ else { //check transaction (service) for product
5775
+ // TODO: assProduct is not a property of transaction right now.
5776
+ // this.basedOnProduct = notNill(this._transaction.assProduct);
5777
+ // if (this.basedOnProduct) {
5778
+ // this._product = this.transaction.assProduct;
5779
+ // }
5780
+ }
5781
+ }
5782
+ }
5783
+ TransactionBaseComponent.decorators = [
5784
+ { type: Directive }
5785
+ ];
5786
+ TransactionBaseComponent.ctorParameters = () => [
5787
+ { type: TransactionService }
5788
+ ];
5789
+ TransactionBaseComponent.propDecorators = {
5790
+ transaction: [{ type: Input }],
5791
+ relationId: [{ type: Input }],
5792
+ customerId: [{ type: Input }],
5793
+ product: [{ type: Input }],
5794
+ relation: [{ type: Input }],
5795
+ customer: [{ type: Input }]
5796
+ };
5797
+
5798
+ class TransactionArticleTextComponent extends TransactionBaseComponent {
5799
+ constructor(service) {
5800
+ super(service);
5801
+ this.service = service;
5802
+ this.visible = false;
5803
+ this.floatButtonSelected = false;
5804
+ this.overviewSelected = false;
5805
+ this.editArtikelText = false;
5806
+ this.collection = [
5807
+ { id: 1, name: "Standaardtekst 1" },
5808
+ { id: 2, name: "Standaardtekst 1" },
5809
+ { id: 3, name: "Standaardtekst 1" },
5810
+ { id: 4, name: "Standaardtekst 1" },
5811
+ { id: 5, name: "Standaardtekst 1" }
5812
+ ];
5813
+ this.articleTexts = [
5814
+ { title: "title 1", description: "Omschrijving 1" },
5815
+ { title: "title 2", description: "Omschrijving 2" },
5816
+ { title: "title 3", description: "Omschrijving 3" },
5817
+ { title: "title 4", description: "Omschrijving 4" },
5818
+ { title: "title 5", description: "Omschrijving 5" },
5819
+ ];
5820
+ this.fields = { text: "name", value: "id" };
5821
+ }
5822
+ onOkClick() {
5823
+ this.hide();
5824
+ }
5825
+ onPopupClose() {
5826
+ this.hide();
5827
+ this.hideOverview();
5828
+ this.hideEditArtikelText();
5829
+ }
5830
+ hide() {
5831
+ // TODO: throw hide event
5832
+ this.visible = false;
5833
+ }
5834
+ onOverview() {
5835
+ this.overviewSelected = true;
5836
+ }
5837
+ onOkOverviewClick() {
5838
+ this.hideOverview();
5839
+ }
5840
+ hideOverview() {
5841
+ this.overviewSelected = false;
5842
+ }
5843
+ onDetailLinkClick(bo) {
5844
+ this.editArtikelText = true;
5845
+ }
5846
+ hideEditArtikelText() {
5847
+ this.editArtikelText = false;
5848
+ }
5849
+ onOkEditArtikelTextClick() {
5850
+ this.editArtikelText = false;
5851
+ }
5852
+ }
5853
+ TransactionArticleTextComponent.decorators = [
5854
+ { type: Component, args: [{
5855
+ // eslint-disable-next-line @angular-eslint/component-selector
5856
+ selector: "transaction-article-text",
5857
+ template: `
5858
+ <co-dialog [visible]="visible" (close)="onPopupClose()">
5859
+ <ng-container header>{{ subHeader }}</ng-container>
5860
+ <ng-container content>
5861
+ <div class="tags-join-content" fxLayout fxLayoutGap="10px">
5862
+ <div class="column-separator">
5863
+ <co-input-text placeholder="Titel"></co-input-text>
5864
+ <!--transactiontransaction-->
5865
+ <!-- label="Artikeltekst"-->
5866
+ <!-- ></co-text-editor>-->
5867
+ </div>
5868
+ <div style="margin-left:5px;">
5869
+ <div style="margin-top:16px;">
5870
+ <ejs-dropdownlist
5871
+ [dataSource]="collection"
5872
+ [fields]="fields"
5873
+ placeholder="Standaardteksten"
5874
+ ></ejs-dropdownlist>
5875
+ </div>
5876
+ <div style="margin-top:20px;">
5877
+ <co-input-checkbox
5878
+ label="Artikelgebonden tekst"
5879
+ name="articleBoundText">
5880
+ </co-input-checkbox>
5881
+ </div>
5882
+ <div style="margin-top:20px;">
5883
+ <label>Bestemd voor documenten</label>
5884
+ <ejs-chiplist id="chip-default">
5885
+ <e-chips>
5886
+ <e-chip text="Apple" cssClass="e-primary"></e-chip>
5887
+ <e-chip text="Microsoft" cssClass="e-info"></e-chip>
5888
+ <e-chip text="Google" cssClass="e-success"></e-chip>
5889
+ <e-chip text="Tesla" cssClass="e-warning"></e-chip>
5890
+ <e-chip text="Intel" cssClass="e-danger"></e-chip>
5891
+ </e-chips>
5892
+ </ejs-chiplist>
5893
+ </div>
5894
+ </div>
5895
+ </div>
5896
+ </ng-container>
5897
+ <ng-container footer>
5898
+ <div class="footer" fxLayout fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
5899
+ <co-button label="OK" (click)="onOkClick()"></co-button>
5900
+ <co-button label="CANCEL" (click)="hide()"></co-button>
5901
+ <co-button label="OVERVIEW" (click)="onOverview()"></co-button>
5902
+ </div>
5903
+ </ng-container>
5904
+ </co-dialog>
5905
+
5906
+ <co-dialog [visible]="overviewSelected" (close)="hideOverview()">
5907
+ <ng-container header>Artikelgebonden teksten {{ subHeader }}</ng-container>
5908
+ <ng-container content>
5909
+ <div class="tags-join-content" fxLayout fxLayoutGap="10px">
5910
+ <div class="column-separator" style="width:75%">
5911
+ <!-- <grid [data]="articleTexts" detailLink (detailLinkClick)="onDetailLinkClick($event)">-->
5912
+ <!-- <grid-column key="title" header="TITLE" width="100px;"></grid-column>-->
5913
+ <!-- <grid-column key="description" header="DESCRIPTION" width="200px"></grid-column>-->
5914
+ <!-- </grid>-->
5915
+ </div>
5916
+ <div style="margin-left:5px;">
5917
+ <div style="margin-top:20px;">
5918
+
5919
+ <co-input-checkbox
5920
+ label="Artikelgebonden tekst"
5921
+ name="articleBoundText"
5922
+ value="true"
5923
+ ></co-input-checkbox>
5924
+ </div>
5925
+ <div style="margin-top:20px;">
5926
+ <label>Bestemd voor documenten</label>
5927
+ <ejs-chiplist id="chip-default">
5928
+ <e-chips>
5929
+ <e-chip text="Apple" cssClass="e-primary"></e-chip>
5930
+ <e-chip text="Microsoft" cssClass="e-info"></e-chip>
5931
+ <e-chip text="Google" cssClass="e-success"></e-chip>
5932
+ <e-chip text="Tesla" cssClass="e-warning"></e-chip>
5933
+ <e-chip text="Intel" cssClass="e-danger"></e-chip>
5934
+ </e-chips>
5935
+ </ejs-chiplist>
5936
+ </div>
5937
+ </div>
5938
+ </div>
5939
+ </ng-container>
5940
+ <ng-container footer>
5941
+ <div class="footer" fxLayout fxPosition="row" fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
5942
+ <co-button label="OK" (click)="onOkOverviewClick()"></co-button>
5943
+ <co-button label="CANCEL" (click)="hideOverview()"></co-button>
5944
+ </div>
5945
+ </ng-container>
5946
+ </co-dialog>
5947
+
5948
+ <co-dialog [visible]="editArtikelText" (close)="hideEditArtikelText()">
5949
+ <ng-container header>{{ subHeader }}</ng-container>
5950
+ <ng-container content>
5951
+ <div class="tags-join-content" fxLayout fxLayoutGap="10px">
5952
+ <div class="column-separator">
5953
+ <co-input-text placeholder="Titel"></co-input-text>
5954
+ <!-- <co-text-editor-->
5955
+ <!-- label="Artikeltekst"-->
5956
+ <!-- ></co-text-editor>-->
5957
+ </div>
5958
+ </div>
5959
+ </ng-container>
5960
+ <ng-container footer>
5961
+ <div class="footer" fxLayout fxLayoutAlign="center center" fxLayoutGap="10px" style="margin-top:30px;">
5962
+ <co-button label="OK" (click)="onOkEditArtikelTextClick()"></co-button>
5963
+ <co-button label="CANCEL" (click)="hideEditArtikelText()"></co-button>
5964
+ </div>
5965
+ </ng-container>
5966
+ </co-dialog>
5967
+ `,
5968
+ styles: [""]
5969
+ },] }
5970
+ ];
5971
+ TransactionArticleTextComponent.ctorParameters = () => [
5972
+ { type: TransactionService }
5973
+ ];
5974
+ TransactionArticleTextComponent.propDecorators = {
5975
+ subHeader: [{ type: Input }]
5976
+ };
5977
+
5978
+ class ServiceOrderComponent extends TransactionBaseComponent {
5979
+ constructor(service, transactionEvents, iconCacheService) {
5980
+ super(service);
5981
+ this.service = service;
5982
+ this.transactionEvents = transactionEvents;
5983
+ this.iconCacheService = iconCacheService;
5984
+ this.iconThickLines = CoreComponentsIcon.ThickLines;
5985
+ this.iconThinLines = CoreComponentsIcon.ThinLines;
5986
+ this.iconOrder = CoreComponentsIcon.Order;
5987
+ this.viewModes = ContentViewMode;
5988
+ this.canPlanDelivery = false;
5989
+ this.showTotals = true;
5990
+ this.contextMenuItems = [];
5991
+ this.isRouteOptimizationConfigured = false;
5992
+ this.activeViewMode = ContentViewMode.List;
5993
+ this.floatButtonSelected = false;
5994
+ this._subs = [];
5995
+ }
5996
+ get inListView() {
5997
+ return this.activeViewMode === ContentViewMode.List;
5998
+ }
5999
+ get inGridView() {
6000
+ return this.activeViewMode === ContentViewMode.Grid;
6001
+ }
6002
+ ngOnInit() {
6003
+ return __awaiter(this, void 0, void 0, function* () {
6004
+ this._subs.push(this.service.transactionLoaded.subscribe((transactionInfoResponse) => {
6005
+ if (transactionInfoResponse.isSuccess) {
6006
+ this.transaction = transactionInfoResponse;
6007
+ if (this.transaction && this.transaction.transactionInfo) {
6008
+ this.customerId = Number(this.transaction.transactionInfo.relation.relationNr);
6009
+ this.relationId = this.transaction.transactionInfo.relation.relationId;
6010
+ }
6011
+ }
6012
+ }), this.transactionEvents.rightSidebarClose.subscribe(() => {
6013
+ this.moveFloatingButtonToRight();
6014
+ }), this.transactionEvents.transactionLineClicked.subscribe((transactionLine) => {
6015
+ this._selectedTransLine = transactionLine;
6016
+ this.moveFloatingButtonToLeft();
6017
+ }), this.transactionEvents.scrollContent.subscribe((event) => {
6018
+ this.hideOrderTotals(event);
6019
+ }));
6020
+ });
6021
+ }
6022
+ ngOnDestroy() {
6023
+ this._subs.forEach(sub => sub.unsubscribe());
6024
+ }
6025
+ animationFn() {
6026
+ return trigger("showPopup", [
6027
+ state("void", style({ transform: "translate3d(0, 0, 0)" })),
6028
+ state("*", style({ transform: "translate3d(100%, 0, 0)" })),
6029
+ transition("void <=> *", [
6030
+ animate("200ms ease-in-out")
6031
+ ])
6032
+ ]);
6033
+ }
6034
+ trackByFn(index, line) {
6035
+ return line.lineNr;
6036
+ }
6037
+ handleRowsSelected(rows) {
6038
+ this._selectedTransLine = rows.find(x => x !== undefined);
6039
+ }
6040
+ handlePlanningRequest(event) {
6041
+ // TODO: handlePlanningRequest... from new Planning package
6042
+ }
6043
+ moveFloatingButtonToLeft() {
6044
+ if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR) {
6045
+ this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR;
6046
+ }
6047
+ }
6048
+ moveFloatingButtonToRight() {
6049
+ if (this.floatButtonRightPosition === ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR) {
6050
+ this.floatButtonRightPosition = ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR;
6051
+ }
6052
+ }
6053
+ onOkClick() {
6054
+ this.hide();
6055
+ }
6056
+ hide() {
6057
+ this.floatButtonSelected = false;
6058
+ }
6059
+ floatButtonClick() {
6060
+ this.floatButtonSelected = true;
6061
+ this._transactionArticleTextComponent.visible = this.floatButtonSelected;
6062
+ }
6063
+ get subHeader() {
6064
+ if (this._selectedTransLine && this._selectedTransLine !== undefined) {
6065
+ return this._selectedTransLine.goodDescription;
6066
+ }
6067
+ return "";
6068
+ }
6069
+ hideOrderTotals(event) {
6070
+ this.showTotals = false;
6071
+ }
6072
+ }
6073
+ ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITHOUT_SIDEBAR = 50;
6074
+ ServiceOrderComponent.FLOAT_BUTTON_RIGHT_POSITION_WITH_SIDEBAR = 350;
6075
+ ServiceOrderComponent.decorators = [
6076
+ { type: Component, args: [{
6077
+ // eslint-disable-next-line @angular-eslint/component-selector
6078
+ selector: "service-order",
6079
+ template: `
6080
+ <div id="transaction-general-tab" style="height:100%;">
6081
+ <transaction-header-block
6082
+ [relationId]="relationId"
6083
+ [transaction]="transaction"
6084
+ [canPlanDelivery]="canPlanDelivery"
6085
+ (planningRequestButtonClick)="handlePlanningRequest($event)"
6086
+ ></transaction-header-block>
6087
+ <div *ngIf="!isService">
6088
+ <div class="transaction-view" fxLayout="row" fxLayoutGap="1px" fxLayoutAlign="flex-end">
6089
+ <div class="view-mode-buttons">
6090
+ <co-button [iconData]="iconCacheService.getIcon(iconThickLines)"
6091
+ [title]="'LIST_VIEW' | localize"
6092
+ (click)="this.activeViewMode = viewModes.List"
6093
+ class="triangle white"
6094
+ iconClass="medium light"></co-button>
6095
+ <co-button [iconData]="iconCacheService.getIcon(iconThinLines)"
6096
+ [title]="'GRID_VIEW' | localize"
6097
+ (click)="this.activeViewMode = viewModes.Grid"
6098
+ class="triangle white"
6099
+ iconClass="medium light"></co-button>
6100
+ </div>
6101
+ </div>
6102
+ <div *ngIf="this.activeViewMode === viewModes.List">
6103
+ <transaction-order-line-view *ngFor="let line of transactionLines; trackBy:trackByFn;"
6104
+ [line]="line"
6105
+ ></transaction-order-line-view>
6106
+ </div>
6107
+ <div *ngIf="this.activeViewMode === viewModes.Grid">
6108
+ <transaction-order-lines [transaction]="transaction"></transaction-order-lines>
6109
+ </div>
6110
+ <div class="floating-icon-wrapper" [style.right.px]="floatButtonRightPosition">
6111
+ <icon [icon]="iconOrder"
6112
+ class="light"
6113
+ (click)="floatButtonClick()" id="floatingIcon"
6114
+ [style.right.px]="floatButtonRightPosition"></icon>
6115
+ </div>
6116
+ </div>
6117
+ <transaction-order-totals *ngIf="!isService"
6118
+ [transactionTotal]="transactionTotal"
6119
+ [ngClass]="showTotals ? 'transaction-totals-show' : 'transaction-totals-hide'"></transaction-order-totals>
6120
+ </div>
6121
+
6122
+ <transaction-article-text></transaction-article-text>
6123
+ `,
6124
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,:host :host{display:flex}.flex-center{flex-direction:row}:host :host{flex-direction:column}.flex-center{align-items:center!important;justify-content:center!important}.transaction-view .view-mode-buttons{margin-left:11px}:host :host{width:100%}:host :host{overflow:hidden}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host :host{padding-bottom:60px}.page-wrapper :host{padding:20px;margin-bottom:60px}:host transaction-order-totals{display:flex;flex-direction:column;align-items:flex-end}:host .transaction-totals-show{padding:20px}:host .transaction-totals-hide{position:relative;bottom:0;right:0}::ng-deep #transaction_planning_agenda{top:160px!important;width:calc(100vw - 80px)!important}::ng-deep #transaction_planning_agenda .popup-card-title{padding:10px 20px;background:#74B77F;color:#fff}::ng-deep #transaction_planning_agenda .popup-card-title .header-wrapper{align-items:center!important}::ng-deep #transaction_planning_agenda .popup-card-title .separator{border-color:#fff!important}::ng-deep #transaction_planning_agenda .popup-card-title .header{font-size:15px;font-weight:normal}::ng-deep #transaction_planning_agenda .popup-card-title .sub-header{font-size:18px;color:#fff!important;font-weight:bold!important}::ng-deep #transaction_planning_agenda .popup-card-title button-select icon [fill]{fill:#fff}::ng-deep #transaction_planning_agenda .popup-card-content{overflow:hidden}@media only screen and (max-width: 599px){::ng-deep #transaction_planning_agenda{width:100vw!important}::ng-deep #transaction_planning_agenda .popup-card-content{padding:0}}.column-separator{padding-right:25px;border-right:1px solid #0000001c}.floating-icon-wrapper{position:fixed;bottom:50px;right:50px;display:flex;flex-shrink:0;align-items:center;justify-content:center;background:#475060;height:50px;width:50px;opacity:.5;transition:opacity .4s ease-in-out;border-radius:50%;overflow:hidden;box-shadow:0 0 6px #0009;-webkit-box-shadow:0px 0px 6px 0px rgba(0,0,0,.6);-moz-box-shadow:0px 0px 6px 0px rgba(0,0,0,.6);cursor:pointer}.floating-icon-wrapper:hover{opacity:1;transition:opacity .4s ease-in-out}.floating-icon-wrapper ::ng-deep icon{height:44px!important;width:44px!important;color:#fff!important;flex-shrink:0}.transaction-wrapper{padding:0 20px}.view-mode-buttons co-button{padding:0}.transaction-view{display:flex;margin-top:10px;justify-content:stretch}.transaction-view .view-mode-buttons{display:flex;flex-direction:row}.transaction-view .view-mode-buttons button-select ::ng-deep button-colijn{border-radius:0}.transaction-view .view-mode-buttons button-select:first-child{margin-right:5px}.transaction-view .view-mode-buttons button-select:first-child ::ng-deep button-colijn{border-radius:3px}.transaction-view .view-mode-buttons button-select:nth-child(2) ::ng-deep button-colijn{border-top-left-radius:3px;border-bottom-left-radius:3px}.transaction-view .view-mode-buttons button-select:last-child ::ng-deep button-colijn{border-top-right-radius:3px;border-bottom-right-radius:3px}\n"]
6125
+ },] }
6126
+ ];
6127
+ ServiceOrderComponent.ctorParameters = () => [
6128
+ { type: TransactionService },
6129
+ { type: TransactionEventService },
6130
+ { type: IconCacheService }
6131
+ ];
6132
+ ServiceOrderComponent.propDecorators = {
6133
+ _transactionArticleTextComponent: [{ type: ViewChild, args: [TransactionArticleTextComponent, { static: false },] }]
6134
+ };
6135
+
6136
+ class TransactionOrderTotalsComponent /*extends TransactionBaseComponent*/ {
6137
+ constructor(service) {
6138
+ this.service = service;
6139
+ //super(service);
6140
+ }
6141
+ }
6142
+ TransactionOrderTotalsComponent.decorators = [
6143
+ { type: Component, args: [{
6144
+ selector: "transaction-order-totals",
6145
+ template: `
6146
+ <div class="totals-wrapper">
6147
+ <div class="totals-item">
6148
+ <div class="totals-item-description" [textContent]="'SUBTOTAL' | localize"></div>
6149
+ <div class="totals-item-value" [textContent]="transactionTotal.grossAmount | coCurrency | coCurrency"></div>
6150
+ </div>
6151
+ <div class="totals-item">
6152
+ <div class="totals-item-description" [textContent]="'VAT_AMOUNT' | localize"></div>
6153
+ <div class="totals-item-value" [textContent]="transactionTotal.surchargeAmount | coCurrency"></div>
6154
+ </div>
6155
+ <div class="totals-item total">
6156
+ <div class="totals-item-description" [textContent]="'TRANSACTION_SUM_I' | localize"></div>
6157
+ <div class="totals-item-value" [textContent]="transactionTotal.netAmount | coCurrency"></div>
6158
+ </div>
6159
+ </div>
6160
+ `,
6161
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host .totals-wrapper{width:310px;font-size:13px}:host .totals-item{display:flex;flex-direction:row;height:25px;align-items:center}:host .totals-item>div{text-align:end;width:50%}:host .totals-item.total{font-weight:bold;height:30px;border-top:1px solid #DCE4EA}\n"]
6162
+ },] }
6163
+ ];
6164
+ TransactionOrderTotalsComponent.ctorParameters = () => [
6165
+ { type: TransactionService }
6166
+ ];
6167
+ TransactionOrderTotalsComponent.propDecorators = {
6168
+ transactionTotal: [{ type: Input }]
6169
+ };
6170
+
6171
+ class TransactionOrderLineViewComponent {
6172
+ constructor(_service, _eventService) {
6173
+ this._service = _service;
6174
+ this._eventService = _eventService;
6175
+ this.stock = StockStatus.Low;
6176
+ }
6177
+ ngOnInit() {
6178
+ this._loadArticleImage();
6179
+ }
6180
+ _loadArticleImage() {
6181
+ return __awaiter(this, void 0, void 0, function* () {
6182
+ if (this.line) {
6183
+ this.image = this.line ? yield this._service.retrieveLineImage(this.line) : undefined;
6184
+ }
6185
+ });
6186
+ }
6187
+ transactionLineClick(line) {
6188
+ this._eventService.transactionLineClicked.next(this.line);
6189
+ }
6190
+ }
6191
+ TransactionOrderLineViewComponent.decorators = [
6192
+ { type: Component, args: [{
6193
+ // eslint-disable-next-line @angular-eslint/component-selector
6194
+ selector: "transaction-order-line-view",
6195
+ template: `
6196
+ <div class="transaction-order-line-r" fxFlex (click)="transactionLineClick(line)">
6197
+ <div fxLayout="row" class="full-width">
6198
+ <div fxLayout="column" class="transaction-order-line-description" fxLayoutGap="20px">
6199
+ <div fxLayout="row" fxLayoutGap="10px">
6200
+ <span [textContent]="line.goodDescription" class="cart-line-description-main"></span>
6201
+ <span *ngIf="line.goodDescription && line.articleNumber">|</span>
6202
+ <span [textContent]="line.articleNumber" class="cart-line-description-artnr"></span>
6203
+ </div>
6204
+ <div>
6205
+ <span [innerHTML]="line.configurationReadable" class="cart-line-description-detail"></span>
6206
+ </div>
6207
+ </div>
6208
+ <div fxLayout="column" class="transaction-order-line-image">
6209
+ <image-display [model]="image"></image-display>
6210
+ </div>
6211
+ </div>
6212
+ <div fxLayout="row" class="transaction-order-line-right">
6213
+ <div fxLayout="column" class="transaction-order-line-stock">
6214
+ <span [textContent]="'STOCK' | localize" class="small-font"></span>
6215
+ <stock-status-indicator [model]="stock"></stock-status-indicator>
6216
+ <span [textContent]="'DELIVERY_TIME_PERIOD' | localize" class="small-font"></span>
6217
+ <span [textContent]="line.deliveryDate | deliveryTime"></span>
6218
+ </div>
6219
+ <div class="transaction-order-line-amount">
6220
+ <co-input-number-picker
6221
+ class="horizontal"
6222
+ [(model)]="line.amount" [min]="0" [buttonShowMode]="'always'"
6223
+ [readonly]="true"></co-input-number-picker>
6224
+ </div>
6225
+ <div class="transaction-order-line-totals">
6226
+ <span [textContent]="line.netLineTotal | coCurrency: true"></span>
6227
+ </div>
6228
+ </div>
6229
+ </div>
6230
+ `,
6231
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.horizontal{display:flex;flex-direction:row}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals span{text-align:right}\n"]
6232
+ },] }
6233
+ ];
6234
+ TransactionOrderLineViewComponent.ctorParameters = () => [
6235
+ { type: TransactionService },
6236
+ { type: TransactionEventService }
6237
+ ];
6238
+ TransactionOrderLineViewComponent.propDecorators = {
6239
+ line: [{ type: Input }]
6240
+ };
6241
+
6242
+ class TransactionOrderLinesComponent extends TransactionBaseComponent {
6243
+ constructor(service, _eventService, _dictionaryService) {
6244
+ super(service);
6245
+ this.service = service;
6246
+ this._eventService = _eventService;
6247
+ this._dictionaryService = _dictionaryService;
6248
+ this.createServiceClick = new EventEmitter();
6249
+ this.nothingSelected = true;
6250
+ this.columns = [];
6251
+ this.columns.push({ field: "articleNumber", headerText: this._dictionaryService.get("ARTICLE_NR"), allowFiltering: false }, { field: "goodDescription", headerText: this._dictionaryService.get("DESCRIPTION") }, { field: "detailsAsString", headerText: this._dictionaryService.get("DETAILS") }, { field: "price", headerText: this._dictionaryService.get("PRICE") }, { field: "amount", headerText: this._dictionaryService.get("NUMBER") }, { field: "lineTotal", headerText: this._dictionaryService.get("SUBTOTAL") }, { field: "logisticState", headerText: this._dictionaryService.get("STATE") }, { field: "expectedDeliveryDate", headerText: this._dictionaryService.get("EXPECTED_DELIVERY_DATE") });
6252
+ }
6253
+ get pagingEnabled() {
6254
+ if (this.transactionLines) {
6255
+ return this.transactionLines.length >= TransactionOrderLinesComponent.MAX_TRANSACTION_LINES;
6256
+ }
6257
+ return false;
6258
+ }
6259
+ set selectedTransLine(value) {
6260
+ this._selectedTransLine = value;
6261
+ this.nothingSelected = this._selectedTransLine === null;
6262
+ }
6263
+ get selectedTransLine() {
6264
+ return this._selectedTransLine;
6265
+ }
6266
+ onRowClick(row) {
6267
+ this.selectedTransLine = row;
6268
+ this._eventService.transactionLineClicked.next(this.selectedTransLine);
6269
+ }
6270
+ onRowDeselect(event) {
6271
+ this.selectedTransLine = null;
6272
+ }
6273
+ // TODO: navragen wat de bedoeling is, zie originele source iOneJS
6274
+ newServiceRequestClick() {
6275
+ if (this.nothingSelected) {
6276
+ return;
6277
+ }
6278
+ this.createServiceClick.emit(this._selectedTransLine);
6279
+ }
6280
+ }
6281
+ TransactionOrderLinesComponent.MAX_TRANSACTION_LINES = 20;
6282
+ TransactionOrderLinesComponent.decorators = [
6283
+ { type: Component, args: [{
6284
+ // eslint-disable-next-line @angular-eslint/component-selector
6285
+ selector: "transaction-order-lines",
6286
+ template: `
6287
+ <co-grid #transactionGrid
6288
+ [data]="transactionLines"
6289
+ [columns]="columns"
6290
+ [pagingEnabled]="pagingEnabled"
6291
+ [maxNumberOfRows]="'20'"
6292
+ (rowsSelected)="onRowClick($event)"
6293
+ ></co-grid>
6294
+ `,
6295
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.transaction-order-line-r .transaction-order-line-description .cart-line-description-artnr{font-size:10px}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-top:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-image,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-bottom:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{margin-left:20px}.transaction-order-line-r .transaction-order-line-description,.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{margin-right:20px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:20px}:host ::ng-deep collapseable{width:100%!important}.service-request-button-wrapper{display:flex;justify-content:center;margin-top:20px}.transaction-order-line-r{display:flex;justify-content:stretch;flex-direction:row}@media (max-width: 800px){.transaction-order-line-r{flex-direction:column}}.transaction-order-line-r .transaction-order-line-image{display:flex;flex:1 0 auto!important;flex-direction:column;align-items:center;justify-content:center;padding-right:10px}.transaction-order-line-r .transaction-order-line-image image-display{width:6em;height:6em}.transaction-order-line-r .transaction-order-line-image ::ng-deep no-image-display{display:none}.transaction-order-line-r .transaction-order-line-description{display:flex;flex-direction:column;width:auto;max-width:355px;margin-left:10px}.transaction-order-line-r .transaction-order-line-description .cart-line-description-main{font-weight:bold}.transaction-order-line-r .transaction-order-line-right{justify-content:flex-end;align-items:center}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-stock{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-amount{width:10em}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals{display:flex;justify-content:flex-end;min-width:100px;font-weight:bold}.transaction-order-line-r .transaction-order-line-right .transaction-order-line-totals span{text-align:right}\n"]
6296
+ },] }
6297
+ ];
6298
+ TransactionOrderLinesComponent.ctorParameters = () => [
6299
+ { type: TransactionService },
6300
+ { type: TransactionEventService },
6301
+ { type: DictionaryService }
6302
+ ];
6303
+ TransactionOrderLinesComponent.propDecorators = {
6304
+ transactionGrid: [{ type: ViewChild, args: ["transactionGrid",] }],
6305
+ createServiceClick: [{ type: Output }]
6306
+ };
6307
+
6308
+ class TransactionRelationAddressComponent {
6309
+ constructor(_dictionary, _connector) {
6310
+ this._dictionary = _dictionary;
6311
+ this._connector = _connector;
6312
+ this.countries = [];
6313
+ this.fields = { text: "description", value: "code" };
6314
+ this.postalCodeCheckErrorMessage = "";
6315
+ this._prevPostalCodeForCheck = "";
6316
+ }
6317
+ set address(address) {
6318
+ this._address = address;
6319
+ }
6320
+ get address() {
6321
+ if (this._address === undefined) {
6322
+ this._address = new Address();
6323
+ }
6324
+ return this._address;
6325
+ }
6326
+ ngOnInit() {
6327
+ return __awaiter(this, void 0, void 0, function* () {
6328
+ this.countries = yield this._connector.getCountries();
6329
+ });
6330
+ }
6331
+ checkForPostalCodeCheckError() {
6332
+ return __awaiter(this, void 0, void 0, function* () {
6333
+ if (!this.address.postalCode || isNill$1(this.address.houseNo)) {
6334
+ this.postalCodeCheckErrorMessage = "";
6335
+ return;
6336
+ }
6337
+ if (this._prevPostalCodeForCheck !== this.address.postalCode || this._prevHouseNoForCheck !== this.address.houseNo) {
6338
+ this._prevPostalCodeForCheck = this.address.postalCode;
6339
+ this._prevHouseNoForCheck = this.address.houseNo;
6340
+ const postalCodeResponse = yield this._connector.getPostalCodeRetrieval((this.address.postalCode ? this.address.postalCode : ""), StringUtils.ParseString(this.address.houseNo));
6341
+ if (postalCodeResponse && postalCodeResponse.isBadAddress) {
6342
+ this.postalCodeCheckErrorMessage = this._dictionary.get("UNKNOWN_ADDRESS_CHECK_IT");
6343
+ }
6344
+ else {
6345
+ this.postalCodeCheckErrorMessage = "";
6346
+ this.address.streetName = postalCodeResponse.street;
6347
+ this.address.city = postalCodeResponse.city;
6348
+ }
6349
+ }
6350
+ });
6351
+ }
6352
+ changeHouseNo() {
6353
+ this.address.houseNo = Number(this.address.houseNo);
6354
+ }
6355
+ }
6356
+ TransactionRelationAddressComponent.decorators = [
6357
+ { type: Component, args: [{
6358
+ // eslint-disable-next-line @angular-eslint/component-selector
6359
+ selector: "transaction-relation-address",
6360
+ template: `
6361
+ <label [textContent]="label | localize"
6362
+ class="transaction-relation-label-h3"
6363
+ ></label>
6364
+ <div class="default-flex-row">
6365
+ <div class="default-flex-column">
6366
+ <co-input-text [(model)]="address.postalCode"
6367
+ [placeholder]="'POSTAL_CODE' | localize"
6368
+ (blur)="checkForPostalCodeCheckError()"
6369
+ required
6370
+ ></co-input-text>
6371
+ </div>
6372
+ <div class="default-flex-column">
6373
+ <co-input-text [(model)]="address.houseNo"
6374
+ [placeholder]="'HOUSE_NO' | localize"
6375
+ (blur)="checkForPostalCodeCheckError()"
6376
+ (modelChange) = "changeHouseNo()"
6377
+ required
6378
+ ></co-input-text>
6379
+ </div>
6380
+ <div class="default-flex-column">
6381
+ <co-input-text [(model)]="address.houseNoAddition"
6382
+ [placeholder]="'HOUSE_NO_ADDITION' | localize"
6383
+ ></co-input-text>
6384
+ </div>
6385
+ </div>
6386
+ <div>
6387
+ <div class="default-flex-row">
6388
+ <div class="default-flex-column">
6389
+ <co-input-text [(model)]="address.streetName" [placeholder]="'STREET' | localize" required></co-input-text>
6390
+ </div>
6391
+ <div class="default-flex-column">
6392
+ <co-input-text [(model)]="address.city" [placeholder]="'CITY' | localize" required></co-input-text>
6393
+ </div>
6394
+ <div class="default-flex-column">
6395
+ <co-input-combo-box [(model)]="address.countryId"
6396
+ [source]="countries"
6397
+ [fields]="fields"
6398
+ [placeholder]="'COUNTRY'| localize"
6399
+ [required]="true"
6400
+ ></co-input-combo-box>
6401
+ </div>
6402
+ </div>
6403
+ </div>
6404
+ `,
6405
+ styles: [".button-wrapper{margin-top:10px;justify-content:center}co-input-radio-button{margin-left:16px}.transaction-relation-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.transaction-relation-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}\n"]
6406
+ },] }
6407
+ ];
6408
+ TransactionRelationAddressComponent.ctorParameters = () => [
6409
+ { type: DictionaryService },
6410
+ { type: IOneConnectorAdapterService }
6411
+ ];
6412
+ TransactionRelationAddressComponent.propDecorators = {
6413
+ label: [{ type: Input }],
6414
+ address: [{ type: Input }]
6415
+ };
6416
+
6417
+ class TransactionSidebarRightComponent extends TransactionBaseComponent {
6418
+ constructor(service, iconCacheService, _eventService, changeDetector) {
6419
+ super(service);
6420
+ this.service = service;
6421
+ this.iconCacheService = iconCacheService;
6422
+ this._eventService = _eventService;
6423
+ this.changeDetector = changeDetector;
6424
+ this.iconDetailView = CoreComponentsIcon.DetailView;
6425
+ this.iconArrowPointRight = CoreComponentsIcon.ArrowPointRight;
6426
+ this.iconStock = CoreComponentsIcon.Stock;
6427
+ this.iconDocuments = CoreComponentsIcon.Documents;
6428
+ this.test = "";
6429
+ this.defaultSidebar = new Sidebar({
6430
+ width: "320px",
6431
+ type: "Auto",
6432
+ isOpen: false,
6433
+ position: "Right",
6434
+ target: "#app-module-sidebar-right"
6435
+ });
6436
+ this._subscriptions = [];
6437
+ this._subscriptions.push(this._eventService.transactionLineClicked.subscribe((transactionLine) => {
6438
+ this.transactionLine = transactionLine;
6439
+ this.defaultSidebar.show();
6440
+ }));
6441
+ }
6442
+ ngOnInit() {
6443
+ setTimeout(() => {
6444
+ this.defaultSidebar.appendTo("#default-sidebar");
6445
+ this.sidebarCloseClick();
6446
+ this.changeDetector.detectChanges();
6447
+ });
6448
+ }
6449
+ ngOnDestroy() {
6450
+ this._subscriptions.forEach(sub => sub.unsubscribe());
6451
+ }
6452
+ sidebarCloseClick() {
6453
+ this.defaultSidebar.hide();
6454
+ this._eventService.rightSidebarClose.next();
6455
+ }
6456
+ }
6457
+ TransactionSidebarRightComponent.decorators = [
6458
+ { type: Component, args: [{
6459
+ // eslint-disable-next-line @angular-eslint/component-selector
6460
+ selector: "transaction-sidebar-right",
6461
+ template: `
6462
+ <div id="default-sidebar">
6463
+ <div>
6464
+ <icon [icon]="iconArrowPointRight" (click)="sidebarCloseClick()"></icon>
6465
+ <label [textContent]="transactionLine?.goodDescription"></label>
6466
+ </div>
6467
+ <div>
6468
+ <ejs-tab id="element2">
6469
+ <e-tabitems>
6470
+ <e-tabitem>
6471
+ <ng-template #headerText>
6472
+ <icon [icon]="iconDetailView" title="Regeldetails"></icon>
6473
+ </ng-template>
6474
+ <ng-template #content>
6475
+ <transaction-line-accordion [transactionLine]="transactionLine"></transaction-line-accordion>
6476
+ </ng-template>
6477
+ </e-tabitem>
6478
+ <e-tabitem>
6479
+ <ng-template #headerText>
6480
+ <icon [icon]="iconStock" title="Voorraad"></icon>
6481
+ </ng-template>
6482
+ <ng-template #content>
6483
+ <div style="margin: 10px;">
6484
+ <div fxLayout="row" fxLayoutGap="10px">
6485
+ <co-input-text placeholder="In voorraad"></co-input-text>
6486
+ <co-input-text placeholder="In order voorraad"></co-input-text>
6487
+ </div>
6488
+
6489
+ <div fxLayout="row" fxLayoutGap="10px">
6490
+ <co-input-text placeholder="In order commissie"></co-input-text>
6491
+ <co-input-text placeholder="Beschikbaar"></co-input-text>
6492
+ </div>
6493
+
6494
+ <div fxLayout="row" fxLayoutGap="10px">
6495
+ <co-input-text placeholder="In bestelling"></co-input-text>
6496
+ <co-input-text placeholder="Later beschikbaar"></co-input-text>
6497
+ </div>
6498
+
6499
+ <div fxLayout="row" fxLayoutGap="10px">
6500
+ <co-input-text placeholder="Toegewezen" [model]="transactionLine?.amount"></co-input-text>
6501
+ <co-input-text placeholder="Vrije voorraad"></co-input-text>
6502
+ </div>
6503
+ </div>
6504
+ </ng-template>
6505
+ </e-tabitem>
6506
+ <e-tabitem>
6507
+ <ng-template #headerText>
6508
+ <icon [icon]="iconDocuments" title="Documenten en notities"></icon>
6509
+ </ng-template>
6510
+ <ng-template #content>
6511
+ <div>
6512
+ Documenten en notities
6513
+ </div>
6514
+ </ng-template>
6515
+ </e-tabitem>
6516
+ </e-tabitems>
6517
+ </ejs-tab>
6518
+ </div>
6519
+ </div>
6520
+ `,
6521
+ styles: [":host{display:block;width:100%}.e-accordion{border:none}.e-accordion .e-acrdn-item .e-acrdn-header .e-toggle-icon .e-icons{color:#add8e6}.e-tab .e-toolbar-items{display:flex;justify-content:center}\n"]
6522
+ },] }
6523
+ ];
6524
+ TransactionSidebarRightComponent.ctorParameters = () => [
6525
+ { type: TransactionService },
6526
+ { type: IconCacheService },
6527
+ { type: TransactionEventService },
6528
+ { type: ChangeDetectorRef }
6529
+ ];
6530
+
6531
+ class TransactionLineAccordionComponent {
6532
+ constructor(changeDetector) {
6533
+ this.changeDetector = changeDetector;
6534
+ this.transactionLine = new TransactionLineInfo;
6535
+ this.accordion = new Accordion({});
6536
+ this._subscriptions = [];
6537
+ }
6538
+ ngOnInit() {
6539
+ setTimeout(() => {
6540
+ this.accordion.appendTo("#accordion_html_markup");
6541
+ this.changeDetector.detectChanges();
6542
+ });
6543
+ }
6544
+ }
6545
+ TransactionLineAccordionComponent.decorators = [
6546
+ { type: Component, args: [{
6547
+ // eslint-disable-next-line @angular-eslint/component-selector
6548
+ selector: "transaction-line-accordion",
6549
+ template: `
6550
+ <div id='container'>
6551
+ <div id='accordion_html_markup'>
6552
+ <div>
6553
+ <div>Prijsdetails</div>
6554
+ <div>
6555
+ <div style="margin-left:10px;">
6556
+ <div fxLayout="row" fxLayoutGap="10px">
6557
+ <co-input-text placeholder="Aantal" [model]="transactionLine?.amount"></co-input-text>
6558
+ <co-input-text placeholder="Verkoopprijs" [model]="transactionLine?.price"></co-input-text>
6559
+ </div>
6560
+ <div fxLayout="row" fxLayoutGap="10px">
6561
+ <co-input-text placeholder="Adviesprijs"></co-input-text>
6562
+ <co-input-text placeholder="Totaal korting"></co-input-text>
6563
+ </div>
6564
+ <div fxLayout="row" fxLayoutGap="10px">
6565
+ <co-input-text placeholder="Koritngspercentage"></co-input-text>
6566
+ <co-input-text placeholder="Kortingsbedrag" [model]="transactionLine?.discountAmount"></co-input-text>
6567
+ </div>
6568
+
6569
+ <div fxLayout="row" fxLayoutGap="10px">
6570
+ <co-input-text placeholder="Speciale korting"></co-input-text>
6571
+ <co-input-text placeholder="Transactiekorting"></co-input-text>
6572
+ </div>
6573
+
6574
+ <div fxLayout="row" fxLayoutGap="10px">
6575
+ <co-input-text placeholder="Business rule korting"></co-input-text>
6576
+ <co-input-text placeholder="Kwantumkorting"></co-input-text>
6577
+ </div>
6578
+
6579
+ <div fxLayout="row" fxLayoutGap="10px">
6580
+ <co-input-text placeholder="Toeslag"></co-input-text>
6581
+ <co-input-text placeholder="BTW"></co-input-text>
6582
+ </div>
6583
+
6584
+ <div fxLayout="row" fxLayoutGap="10px">
6585
+ <co-input-text placeholder="Prijslijst"></co-input-text>
6586
+ </div>
6587
+ </div>
6588
+ </div>
6589
+ </div>
6590
+ <div>
6591
+ <div>Logistiek</div>
6592
+ <div>
6593
+ <div style="margin-left:10px;">
6594
+ <div fxLayout="row" fxLayoutGap="10px">
6595
+ <co-input-text placeholder="Commissiecode"></co-input-text>
6596
+ <co-input-text placeholder="Levermethode"></co-input-text>
6597
+ </div>
6598
+ <div fxLayout="row" fxLayoutGap="10px">
6599
+ <co-input-text placeholder="Montagetijd"></co-input-text>
6600
+ <co-input-text placeholder="Bewerkingstijd"></co-input-text>
6601
+ </div>
6602
+ <div fxLayout="row" fxLayoutGap="10px">
6603
+ <co-input-text placeholder="Leverancier"></co-input-text>
6604
+ <co-input-text placeholder="Artikelnummer leverancier"></co-input-text>
6605
+ </div>
6606
+
6607
+ <div fxLayout="row" fxLayoutGap="10px">
6608
+ <co-input-text placeholder="In/uit collectie"></co-input-text>
6609
+ <co-input-text placeholder="Dropshipment"></co-input-text>
6610
+ </div>
6611
+
6612
+ <div fxLayout="row" fxLayoutGap="10px">
6613
+ <co-input-text placeholder="Leverdatum"></co-input-text>
6614
+ <co-input-text placeholder="Referentie"></co-input-text>
6615
+ </div>
6616
+ </div>
6617
+ </div>
6618
+
6619
+ </div>
6620
+ <div>
6621
+ <div id="header">Opmaak</div>
6622
+ <div id="opmaak">
6623
+ <div style="margin-left:10px;">
6624
+ <div fxLayout="row" fxLayoutGap="10px">
6625
+ <co-input-text placeholder="Orderregelset"></co-input-text>
6626
+ <co-input-text placeholder="Hoofdstuk"></co-input-text>
6627
+ </div>
6628
+ <div>
6629
+ <co-input-text placeholder="Laatste wijziging Door"></co-input-text>
6630
+ </div>
6631
+ <div>
6632
+ <co-input-text placeholder="Zichtbaar op documenten"></co-input-text>
6633
+ </div>
6634
+ </div>
6635
+ </div>
6636
+ </div>
6637
+ <div>
6638
+ <div>Artikelkenmerken</div>
6639
+ <div>
6640
+ <div style="margin-left:10px;">
6641
+ <div fxLayout="row" fxLayoutGap="10px">
6642
+ <co-input-text placeholder="Breedte"></co-input-text>
6643
+ <co-input-text placeholder="Lengte"></co-input-text>
6644
+ </div>
6645
+ <div fxLayout="row" fxLayoutGap="10px">
6646
+ <co-input-text placeholder="Hoogte"></co-input-text>
6647
+ <co-input-text placeholder="Zitdiepte"></co-input-text>
6648
+ </div>
6649
+ <div fxLayout="row" fxLayoutGap="10px">
6650
+ <co-input-text placeholder="Zithoogte"></co-input-text>
6651
+ <co-input-text placeholder="Volume"></co-input-text>
6652
+ </div>
6653
+ <div fxLayout="row" fxLayoutGap="10px">
6654
+ <co-input-text placeholder="Stopmaat"></co-input-text>
6655
+ <co-input-text placeholder="Patroonhoogte"></co-input-text>
6656
+ </div>
6657
+ <br>
6658
+ <div fxLayout="row" fxLayoutGap="10px">
6659
+ <co-input-text placeholder="Standaard levertijd"></co-input-text>
6660
+ <co-input-text placeholder="Standaard levertijd verkoop"></co-input-text>
6661
+ </div>
6662
+ <div fxLayout="row" fxLayoutGap="10px">
6663
+ <co-input-text placeholder="Eenheid verkoop"></co-input-text>
6664
+ <co-input-text placeholder="Verkoophoeveelheid"></co-input-text>
6665
+ </div>
6666
+ <div fxLayout="row" fxLayoutGap="10px">
6667
+ <co-input-text placeholder="Aantal"></co-input-text>
6668
+ <co-input-text placeholder="Colli"></co-input-text>
6669
+ </div>
6670
+ <br>
6671
+ <div fxLayout="row" fxLayoutGap="10px">
6672
+ <co-input-text placeholder="Omzetgroep"></co-input-text>
6673
+ <co-input-text placeholder="Artikelgroep"></co-input-text>
6674
+ </div>
6675
+ <div fxLayout="row" fxLayoutGap="10px">
6676
+ <co-input-text placeholder="Hoofdartikel"></co-input-text>
6677
+ <co-input-text placeholder="Sfeer"></co-input-text>
6678
+ </div>
6679
+ <div fxLayout="row" fxLayoutGap="10px">
6680
+ <co-input-text placeholder="Concept"></co-input-text>
6681
+ <co-input-text placeholder="Afdeling"></co-input-text>
6682
+ </div>
6683
+ </div>
6684
+ </div>
6685
+ </div>
6686
+
6687
+ </div>
6688
+ </div>
6689
+ `,
6690
+ styles: [""]
6691
+ },] }
6692
+ ];
6693
+ TransactionLineAccordionComponent.ctorParameters = () => [
6694
+ { type: ChangeDetectorRef }
6695
+ ];
6696
+ TransactionLineAccordionComponent.propDecorators = {
6697
+ transactionLine: [{ type: Input }]
6698
+ };
6699
+
6700
+ class TransactionRelationEditComponent extends TransactionBaseComponent {
6701
+ constructor(service) {
6702
+ super(service);
6703
+ this.service = service;
6704
+ this.showPopup = false;
6705
+ this.relType = RelationNameKind;
6706
+ this.genderType = GenderType;
6707
+ this.validSubmit = new EventEmitter();
6708
+ this.invalidSubmit = new EventEmitter();
6709
+ this.dateOfBirth = new Date();
6710
+ this.phoneNumber = new ContactOption();
6711
+ }
6712
+ get readonly() {
6713
+ return false;
6714
+ }
6715
+ get subHeader() {
6716
+ return "";
6717
+ }
6718
+ get editFirstAddress() {
6719
+ if (this.firstAddress) {
6720
+ return this.firstAddress;
6721
+ }
6722
+ else if (this.customer) {
6723
+ const address = new Address();
6724
+ address.addressType = AddressType.DeliveryAddress;
6725
+ address.startDate = new Date();
6726
+ address.sequence = this.customer.getNextAddressSequence();
6727
+ this.customer.addresses.push(address);
6728
+ return address;
6729
+ }
6730
+ }
6731
+ get firstAddress() {
6732
+ if (!this.relation || !this.customer.addresses.length) {
6733
+ return;
6734
+ }
6735
+ return this.customer.getFirstAvailableAddress([
6736
+ AddressType.DeliveryAddress,
6737
+ AddressType.BillingAddress,
6738
+ AddressType.VisitingAddress,
6739
+ AddressType.MailingAddress,
6740
+ AddressType.NursingAddress
6741
+ ]);
6742
+ }
6743
+ onPopupClose() {
6744
+ this.showPopup = false;
6745
+ }
6746
+ changeRelationType(relationType) {
6747
+ if (this.customer) {
6748
+ this.customer.type = relationType;
6749
+ }
6750
+ }
6751
+ changeGenderType(genderType) {
6752
+ if (this.customer) {
6753
+ this.customer.gender = genderType;
6754
+ }
6755
+ }
6756
+ firstNameChange(firstName) {
6757
+ if (this.customer) {
6758
+ this.customer.firstName = firstName;
6759
+ }
6760
+ }
6761
+ familyNameChange(familyName) {
6762
+ if (this.customer) {
6763
+ this.customer.familyName = familyName;
6764
+ }
6765
+ }
6766
+ }
6767
+ TransactionRelationEditComponent.decorators = [
6768
+ { type: Component, args: [{
6769
+ // eslint-disable-next-line @angular-eslint/component-selector
6770
+ selector: "transaction-relation-edit",
6771
+ template: `
6772
+ <co-dialog [visible]="showPopup" header="ACCOUNT_DETAILS" (close)="onPopupClose()"
6773
+ noClickOutside contentSize>
6774
+ <ng-container content>
6775
+ <co-form #transactionRelationEditForm (validSubmit)="validSubmit.emit()" (invalidSubmit)="invalidSubmit.emit()">
6776
+ <div style="min-width: 500px;">
6777
+ <div>
6778
+ <label [textContent]="'PERSONAL_DATA' | localize"
6779
+ class="transaction-relation-label-h3"
6780
+ ></label>
6781
+ </div>
6782
+ <div>
6783
+ <div>
6784
+ <label [textContent]="'ORDER_TYPE' | localize "
6785
+ class="transaction-relation-label-h3"
6786
+ ></label>
6787
+ </div>
6788
+ <div *ngIf="customer?.type">
6789
+ <co-input-radio-button [name]="'type'"
6790
+ [label]="'PRIVATE_PERSON' | localize"
6791
+ [value]="relType.Private"
6792
+ [checked]="customer.type === relType.Private"
6793
+ (modelChange)="changeRelationType(relType.Private)"
6794
+ ></co-input-radio-button>
6795
+ <co-input-radio-button [name]="'type'"
6796
+ [label]="'COMPANY' | localize"
6797
+ [value]="relType.Company"
6798
+ [checked]="customer.type === relType.Company"
6799
+ (modelChange)="changeRelationType(relType.Company)"
6800
+ ></co-input-radio-button>
6801
+ </div>
6802
+ </div>
6803
+ <div *ngIf="customer?.type === relType.Private">
6804
+ <label [textContent]="'SALUTATION' | localize"
6805
+ class="transaction-relation-label-h3"
6806
+ ></label>
6807
+ <div *ngIf="customer?.gender">
6808
+ <co-input-radio-button [name]="'gender'"
6809
+ [label]="'MALE' | localize"
6810
+ [value]="genderType.Male"
6811
+ [checked]="customer.gender === genderType.Male"
6812
+ (modelChange)="changeGenderType(genderType.Male)"
6813
+ ></co-input-radio-button>
6814
+ <co-input-radio-button [name]="'gender'"
6815
+ [label]="'FEMALE' | localize "
6816
+ [value]="genderType.Female"
6817
+ [checked]="customer.gender === genderType.Female"
6818
+ (modelChange)="changeGenderType(genderType.Female)"
6819
+ ></co-input-radio-button>
6820
+ <co-input-radio-button [name]="'gender'"
6821
+ [label]="'UNKNOWN' | localize"
6822
+ [value]="genderType.Unspecified"
6823
+ [checked]="customer.gender === genderType.Unspecified"
6824
+ (modelChange)="changeGenderType(genderType.Unspecified)"
6825
+ ></co-input-radio-button>
6826
+ </div>
6827
+ </div>
6828
+ <div *ngIf="customer?.type === relType.Private">
6829
+ <div>
6830
+ <label [textContent]="'NAME' | localize "
6831
+ class="transaction-relation-label-h3"
6832
+ ></label>
6833
+ <div class="default-flex-row">
6834
+ <div class="default-flex-column">
6835
+ <co-input-text
6836
+ [(model)]="customer.firstName"
6837
+ [placeholder]="'FIRST_NAME' | localize "
6838
+ (modelChange)="firstNameChange($event)"
6839
+ required
6840
+ ></co-input-text>
6841
+ </div>
6842
+ <div class="default-flex-column">
6843
+ <co-input-text
6844
+ [(model)]="customer.prefix"
6845
+ [placeholder]="'PREFIX' | localize "
6846
+ ></co-input-text>
6847
+ </div>
6848
+ <div class="default-flex-column">
6849
+ <co-input-text
6850
+ [(model)]="customer.familyName"
6851
+ [placeholder]="'LAST_NAME' | localize"
6852
+ (modelChange)="familyNameChange($event)"
6853
+ required
6854
+ ></co-input-text>
6855
+ </div>
6856
+ <div class="default-flex-column">
6857
+ <co-input-date
6858
+ [placeholder]="'DATE_OF_BIRTH' | localize "
6859
+ [(model)]="dateOfBirth"
6860
+ required
6861
+ ></co-input-date>
6862
+ </div>
6863
+ <div class="default-flex-column">
6864
+ <co-input-text
6865
+ [(model)]="phoneNumber.value"
6866
+ [placeholder]="'PHONE_NO' | localize "
6867
+ required
6868
+ ></co-input-text>
6869
+ </div>
6870
+ </div>
6871
+ </div>
6872
+ </div>
6873
+ <div>
6874
+ <div *ngIf="customer?.type === relType.Company" class="default-flex-column">
6875
+ <label [textContent]="'COMPANY_NAME' | localize "
6876
+ class="transaction-relation-label-h3"
6877
+ ></label>
6878
+ <co-input-text
6879
+ [(model)]="customer.familyName"
6880
+ [label]="'COMPANY_NAME'"
6881
+ required
6882
+ ></co-input-text>
6883
+ </div>
6884
+ </div>
6885
+
6886
+ <div>
6887
+ <transaction-relation-address
6888
+ label="DELIVERY_ADDRESS" [address]="editFirstAddress"
6889
+ ></transaction-relation-address>
6890
+ </div>
6891
+
6892
+ <div fxLayout="row" fxLayoutGap="10px" class="button-wrapper">
6893
+ <default-ok-cancel-buttons
6894
+ [okDisabled]="readonly"
6895
+ (okClick)="transactionRelationEditForm.submit()"
6896
+ (cancelClick)="onPopupClose()"
6897
+ ></default-ok-cancel-buttons>
6898
+ </div>
6899
+ </div>
6900
+ </co-form>
6901
+ </ng-container>
6902
+ </co-dialog>
6903
+ `,
6904
+ styles: [".button-wrapper{margin-top:10px;justify-content:center}co-input-radio-button{margin-left:16px}.transaction-relation-label-h2{display:block;margin-top:1em;margin-bottom:1em;font-size:18px;font-weight:bold}.transaction-relation-label-h3{display:block;margin-top:1em;margin-bottom:1em;font-size:14px;font-weight:bold}\n"]
6905
+ },] }
6906
+ ];
6907
+ TransactionRelationEditComponent.ctorParameters = () => [
6908
+ { type: TransactionService }
6909
+ ];
6910
+ TransactionRelationEditComponent.propDecorators = {
6911
+ transactionRelationEditForm: [{ type: ViewChild, args: ["transactionRelationEditForm", { read: FormComponent },] }],
6912
+ showPopup: [{ type: Input }],
6913
+ validSubmit: [{ type: Output }]
6914
+ };
6915
+
6916
+ class TransactionHeaderBlockComponent extends TransactionBaseComponent {
6917
+ constructor(service) {
6918
+ super(service);
6919
+ this.service = service;
6920
+ this.planningRequestButtonClick = new EventEmitter();
6921
+ }
6922
+ showPopupTab(index) {
6923
+ this.selectedTab = index;
6924
+ }
6925
+ tabClick() {
6926
+ this.relationPopup.showPopup = true;
6927
+ }
6928
+ transactionEditClose() {
6929
+ this.relationPopup.showPopup = false;
6930
+ }
6931
+ }
6932
+ TransactionHeaderBlockComponent.decorators = [
6933
+ { type: Component, args: [{
6934
+ // eslint-disable-next-line @angular-eslint/component-selector
6935
+ selector: "transaction-header-block",
6936
+ template: `
6937
+ <div fxLayout="row wrap" fxLayout.xs="column">
6938
+ <div class="summary-block" (click)="tabClick()">
6939
+ <div class="block-wrapper">
6940
+ <div class="content-wrapper">
6941
+ <div class="name"
6942
+ [textContent]="relation?.displayName"></div>
6943
+ <div class="address link pointer"
6944
+ [textContent]="relation?.displayAddressFull"></div>
6945
+ <div class="phone link pointer"
6946
+ [textContent]="relation?.tel1"></div>
6947
+ <div [textContent]="relation?.email"
6948
+ class="email link pointer"
6949
+ ></div>
6950
+ </div>
6951
+ </div>
6952
+ </div>
6953
+
6954
+ <transaction-service-info class="summary-block"
6955
+ [transaction]="transaction"
6956
+ ></transaction-service-info>
6957
+ <transaction-service-status class="summary-block"
6958
+ [transaction]="transaction"
6959
+ ></transaction-service-status>
6960
+ <transaction-order-info class="summary-block"
6961
+ [transaction]="transaction"
6962
+ ></transaction-order-info>
6963
+ <transaction-payment-info class="summary-block"
6964
+ [transaction]="transaction"
6965
+ ></transaction-payment-info>
6966
+ <transaction-delivery-summary class="summary-block"
6967
+ [transaction]="transaction"
6968
+ [canPlanDelivery]="!isService && canPlanDelivery"
6969
+ (planningRequestButtonClick)="planningRequestButtonClick.emit($event)"
6970
+ (click)="showPopupTab(1)"
6971
+ ></transaction-delivery-summary>
6972
+ <transaction-article-info class="summary-block"
6973
+ [transaction]="transaction"
6974
+ ></transaction-article-info>
6975
+ <transaction-product-summary class="summary-block"
6976
+ [transaction]="transaction"
6977
+ [product]="product"
6978
+ ></transaction-product-summary>
6979
+ </div>
6980
+
6981
+ <transaction-relation-edit [customerId]="relationId" (validSubmit)="transactionEditClose()"></transaction-relation-edit>
6982
+ `,
6983
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{display:block;padding:15px 0 30px}.name{font-size:13px;font-weight:bold;color:#22313c;margin-bottom:5px}.address,.phone,.email{font-size:13px;line-height:16px;color:#5b6875}.pointer{cursor:pointer}.link{color:#2b60a7}.summary-block{width:calc(25% - 15px);border:2px dashed #DCE4EA;margin:7px;border-radius:15px;position:relative}.summary-block .block-wrapper{position:relative;display:flex;align-items:center;padding:30px 20px}.summary-block:after{content:\"\";position:absolute;left:-1px;top:-1px;right:-1px;bottom:-1px;border:1px solid #FFF;pointer-events:none;border-radius:15px}@media only screen and (min-width: 960px) and (max-width: 1279px){.summary-block{width:calc(50% - 15px)}}@media only screen and (max-width: 599px){.summary-block{width:calc(100%);margin:7px 0}}\n"]
6984
+ },] }
6985
+ ];
6986
+ TransactionHeaderBlockComponent.ctorParameters = () => [
6987
+ { type: TransactionService }
6988
+ ];
6989
+ TransactionHeaderBlockComponent.propDecorators = {
6990
+ relationPopup: [{ type: ViewChild, args: [TransactionRelationEditComponent, { static: true },] }],
6991
+ canPlanDelivery: [{ type: Input }],
6992
+ planningRequestButtonClick: [{ type: Output }]
6993
+ };
6994
+
6995
+ class TransactionServiceSummaryComponent extends TransactionBaseComponent {
6996
+ constructor(service, iconCacheService) {
6997
+ super(service);
6998
+ this.service = service;
6999
+ this.iconCacheService = iconCacheService;
7000
+ this.iconWrench = CoreComponentsIcon.Wrench;
7001
+ }
7002
+ }
7003
+ TransactionServiceSummaryComponent.decorators = [
7004
+ { type: Component, args: [{
7005
+ // eslint-disable-next-line @angular-eslint/component-selector
7006
+ selector: "transaction-service-info",
7007
+ template: `
7008
+ <transaction-summary-block
7009
+ [hideAvatar]="true"
7010
+ [class.disabled]="!isNew"
7011
+ label="SERVICE"
7012
+ [icon]="iconWrench"
7013
+ headerLabel="SERVICE_NUMBER"
7014
+ [headerValue]="transactionInfo.transactionNr"
7015
+ subHeaderLabel="SERVICE_REQUEST_DATE"
7016
+ [subHeaderValue]="transactionInfo.transactionDate | date:'shortDate'"
7017
+ ></transaction-summary-block>
7018
+ `
7019
+ },] }
7020
+ ];
7021
+ TransactionServiceSummaryComponent.ctorParameters = () => [
7022
+ { type: TransactionService },
7023
+ { type: IconCacheService }
7024
+ ];
7025
+ TransactionServiceSummaryComponent.propDecorators = {
7026
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7027
+ };
7028
+
7029
+ class TransactionSummaryBlockComponent {
7030
+ constructor() {
7031
+ this.Icon = CoreComponentsIcon;
7032
+ this.hideAvatar = false;
7033
+ this.label = "";
7034
+ this.headerLabel = "";
7035
+ this.subHeaderLabel = "";
7036
+ }
7037
+ ngOnDestroy() {
7038
+ this.subHeaderTemplate = undefined;
7039
+ }
7040
+ }
7041
+ TransactionSummaryBlockComponent.decorators = [
7042
+ { type: Component, args: [{
7043
+ // eslint-disable-next-line @angular-eslint/component-selector
7044
+ selector: "transaction-summary-block",
7045
+ template: `
7046
+ <div class="block-wrapper">
7047
+ <div *ngIf="hideAvatar" class="icon-wrapper">
7048
+ <icon *ngIf="icon" [icon]="icon" class="dark"></icon>
7049
+ <image-display *ngIf="!icon" [model]="image"></image-display>
7050
+ </div>
7051
+ <div class="content-wrapper">
7052
+ <div class="value-block">
7053
+ <div class="header-label" [textContent]="headerLabel | localize"></div>
7054
+ <div class="header" [textContent]="headerValue"></div>
7055
+ </div>
7056
+ <div class="value-block">
7057
+ <div class="subheader-label" [textContent]="subHeaderLabel | localize"></div>
7058
+ <ng-container *ngIf="subHeaderTemplate" [templateWrapper]="subHeaderTemplate"></ng-container>
7059
+ <div *ngIf="!subHeaderTemplate" class="subheader" [textContent]="subHeaderValue"></div>
7060
+ </div>
7061
+ </div>
7062
+ </div>
7063
+ `,
7064
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host{width:368px;min-height:130px;height:auto;display:flex;flex-direction:column;margin-top:1px;margin-left:1px;padding:30px 20px}:host .content-wrapper .value-block{margin-bottom:10px}:host .content-wrapper .value-block ::ng-deep .planning-wrapper{justify-content:flex-start}:host .content-wrapper .value-block ::ng-deep .planning-wrapper arrow-link{margin-right:10px}:host .disabled-indicator{position:absolute;top:0;left:0;display:none}:host.disabled .disabled-indicator{display:block}:host ::ng-deep image-display{height:60px;width:60px;flex-shrink:0}:host ::ng-deep image-display span{display:none}:host .icon-wrapper{display:flex;flex-shrink:0;align-items:center;justify-content:center;background:#F8FBFA;height:60px;width:60px;border-radius:50%;border:1px solid #DCE4EA;overflow:hidden}:host .icon-wrapper ::ng-deep icon{height:60px!important;width:60px!important;flex-shrink:0}:host .title{font-size:13px;color:#22313c}:host .block-wrapper{position:relative;display:flex;align-items:center}:host .border{border-radius:3px;padding:15px;background:white;border:1px solid #DCE4EA}:host .content-wrapper{display:flex;flex-direction:column;justify-content:center;margin-left:10px;min-height:60px;height:auto;width:100%}:host .header-label,:host .subheader-label{font-size:11px;line-height:13px;color:#5b6875}:host .header,:host .subheader{font-size:13px;font-weight:bold;color:#22313c}\n"]
7065
+ },] }
7066
+ ];
7067
+ TransactionSummaryBlockComponent.ctorParameters = () => [];
7068
+ TransactionSummaryBlockComponent.propDecorators = {
7069
+ hideAvatar: [{ type: Input }],
7070
+ label: [{ type: Input }],
7071
+ icon: [{ type: Input }],
7072
+ image: [{ type: Input }],
7073
+ headerLabel: [{ type: Input }],
7074
+ headerValue: [{ type: Input }],
7075
+ subHeaderLabel: [{ type: Input }],
7076
+ subHeaderValue: [{ type: Input }],
7077
+ subHeaderTemplate: [{ type: ContentChild, args: ["subHeaderTemplate", { static: false },] }]
7078
+ };
7079
+
7080
+ class TransactionServiceStatusComponent extends TransactionBaseComponent {
7081
+ constructor(service) {
7082
+ super(service);
7083
+ this.service = service;
7084
+ this.iconPin = CoreComponentsIcon.Pin;
7085
+ }
7086
+ get serviceStatus() {
7087
+ // TODO: transaction.serviceStatus
7088
+ return "serviceStatus";
7089
+ }
7090
+ }
7091
+ TransactionServiceStatusComponent.decorators = [
7092
+ { type: Component, args: [{
7093
+ // eslint-disable-next-line @angular-eslint/component-selector
7094
+ selector: "transaction-service-status",
7095
+ template: `
7096
+ <transaction-summary-block
7097
+ [class.disabled]="!isNew"
7098
+ label="STATUS"
7099
+ [icon]="iconPin"
7100
+ headerLabel="SERVICE_STATE"
7101
+ [headerValue]="serviceStatus"
7102
+ ></transaction-summary-block>
7103
+ `
7104
+ },] }
7105
+ ];
7106
+ TransactionServiceStatusComponent.ctorParameters = () => [
7107
+ { type: TransactionService }
7108
+ ];
7109
+ TransactionServiceStatusComponent.propDecorators = {
7110
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7111
+ };
7112
+
7113
+ class TransactionOrderSummaryComponent extends TransactionBaseComponent {
7114
+ constructor(service) {
7115
+ super(service);
7116
+ this.service = service;
7117
+ this.iconOrder = CoreComponentsIcon.Order;
7118
+ }
7119
+ get sourceTransactionNr() {
7120
+ // TODO: transaction.sourceTransactionNr
7121
+ return 0;
7122
+ }
7123
+ get sourceTransactionDate() {
7124
+ // TODO: transaction.sourceTransactionDate
7125
+ return new Date();
7126
+ }
7127
+ }
7128
+ TransactionOrderSummaryComponent.decorators = [
7129
+ { type: Component, args: [{
7130
+ // eslint-disable-next-line @angular-eslint/component-selector
7131
+ selector: "transaction-order-info",
7132
+ template: `
7133
+ <transaction-summary-block
7134
+ [class.disabled]="!isNew"
7135
+ label="ORDER_INFO"
7136
+ [icon]="iconOrder"
7137
+ headerLabel="ORDER_NUMBER"
7138
+ [headerValue]="isService ? sourceTransactionNr : transactionInfo.transactionNr"
7139
+ subHeaderLabel="ORDER_DATE"
7140
+ [subHeaderValue]="(isService ? sourceTransactionDate : this.transactionInfo.transactionDate) | date:'shortDate'"
7141
+ ></transaction-summary-block>
7142
+ `
7143
+ },] }
7144
+ ];
7145
+ TransactionOrderSummaryComponent.ctorParameters = () => [
7146
+ { type: TransactionService }
7147
+ ];
7148
+ TransactionOrderSummaryComponent.propDecorators = {
7149
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7150
+ };
7151
+
7152
+ class TransactionPaymentInfoComponent extends TransactionBaseComponent {
7153
+ constructor(service) {
7154
+ super(service);
7155
+ this.service = service;
7156
+ this.euro = CoreComponentsIcon.Information;
7157
+ }
7158
+ }
7159
+ TransactionPaymentInfoComponent.decorators = [
7160
+ { type: Component, args: [{
7161
+ // eslint-disable-next-line @angular-eslint/component-selector
7162
+ selector: "transaction-payment-info",
7163
+ template: `
7164
+ <transaction-summary-block
7165
+ [class.disabled]="!isNew"
7166
+ label="PAYMENT"
7167
+ [icon]="euro"
7168
+ headerLabel="TOTAL_AMOUNT"
7169
+ [headerValue]="transactionTotal.netAmount | coCurrency"
7170
+ subHeaderLabel="PAID_DOWN2"
7171
+ [subHeaderValue]="transactionTotal.transactionDiscountAmount | coCurrency"
7172
+ ></transaction-summary-block>
7173
+ `
7174
+ },] }
7175
+ ];
7176
+ TransactionPaymentInfoComponent.ctorParameters = () => [
7177
+ { type: TransactionService }
7178
+ ];
7179
+ TransactionPaymentInfoComponent.propDecorators = {
7180
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7181
+ };
7182
+
7183
+ class TransactionArticleSummaryComponent extends TransactionBaseComponent {
7184
+ constructor(service) {
7185
+ super(service);
7186
+ this.service = service;
7187
+ this.imageDataUri = "";
7188
+ }
7189
+ get sourceArticleDescription() {
7190
+ // TODO: transaction.sourceArticleDescription
7191
+ return "sourceArticleDescription";
7192
+ }
7193
+ get sourceArticleNr() {
7194
+ // TODO: transaction.sourceArticleNr
7195
+ return "sourceArticleNr";
7196
+ }
7197
+ _getArticleImage() {
7198
+ return __awaiter(this, void 0, void 0, function* () {
7199
+ // TODO: Add to TransactionAPI?
7200
+ // if (this.transaction.sourceGoodId) {
7201
+ // this.imageDataUri =
7202
+ // (await this._articleDalRepo.getThumbnailImageContentTableGoods(
7203
+ // this.transaction.sourceGoodId + "", DocumentPublication.None, false, true));
7204
+ // }
7205
+ });
7206
+ }
7207
+ transactionSet() {
7208
+ this._getArticleImage();
7209
+ }
7210
+ }
7211
+ TransactionArticleSummaryComponent.decorators = [
7212
+ { type: Component, args: [{
7213
+ // eslint-disable-next-line @angular-eslint/component-selector
7214
+ selector: "transaction-article-info",
7215
+ template: `
7216
+ <transaction-summary-block
7217
+ [class.disabled]="!isNew"
7218
+ headerLabel="ARTICLE_DESCRIPTION"
7219
+ [image]="imageDataUri"
7220
+ [headerValue]="sourceArticleDescription"
7221
+ subHeaderLabel="ARTICLE_NR"
7222
+ [subHeaderValue]="sourceArticleNr"
7223
+ ></transaction-summary-block>
7224
+ `
7225
+ },] }
7226
+ ];
7227
+ TransactionArticleSummaryComponent.ctorParameters = () => [
7228
+ { type: TransactionService }
7229
+ ];
7230
+ TransactionArticleSummaryComponent.propDecorators = {
7231
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7232
+ };
7233
+
7234
+ class TransactionDeliverySummaryComponent extends TransactionBaseComponent {
7235
+ constructor(service) {
7236
+ super(service);
7237
+ this.service = service;
7238
+ this.deliveryTruck = CoreComponentsIcon.DeliveryTruck;
7239
+ this.calendarRoundOpen = CoreComponentsIcon.CalendarRoundOpen;
7240
+ this.deliveryMethodDescription = "";
7241
+ this.canPlanDelivery = false;
7242
+ this.planningRequestButtonClick = new EventEmitter();
7243
+ }
7244
+ transactionSet() {
7245
+ return __awaiter(this, void 0, void 0, function* () {
7246
+ // TODO: move call to TransactionAPI?
7247
+ //this.deliveryMethodDescription = await this._lookupService.lookup(DeliveryMethod, this.transaction.deliveryMethod);
7248
+ });
7249
+ }
7250
+ }
7251
+ TransactionDeliverySummaryComponent.decorators = [
7252
+ { type: Component, args: [{
7253
+ // eslint-disable-next-line @angular-eslint/component-selector
7254
+ selector: "transaction-delivery-summary",
7255
+ template: `
7256
+ <transaction-summary-block
7257
+ label="DELIVERY"
7258
+ [icon]="deliveryTruck"
7259
+ headerLabel="DELIVERY_METHOD2"
7260
+ [headerValue]="deliveryMethodDescription"
7261
+ [subHeaderLabel]="transactionInfo.preferredDeliveryDate ? 'DELIVERY_DATE' : !canPlanDelivery ? 'EXPECTED_DELIVERY_WEEK' : 'EXPECTED_DELIVERY'"
7262
+ [subHeaderValue]="transactionInfo.preferredDeliveryDate ? (transactionInfo.deliveryDate | date:'shortDate') : 'WEEK' | localize | append:(' ') | append:(transactionInfo.deliveryDate | date:'w')">
7263
+ <ng-template #subHeaderTemplate *ngIf="canPlanDelivery">
7264
+ <div class="planning-wrapper">
7265
+ <span class="subheader" *ngIf="transactionInfo.preferredDeliveryDate"
7266
+ [textContent]="(transactionInfo.preferredDeliveryDate | date:'shortDate') + ', ' + transactionInfo.preferredDeliveryDate | date: 'time' "></span>
7267
+ <!-- <arrow-link *ngIf="!transactionInfo.preferredDeliveryDate"-->
7268
+ <!-- label="PLAN_YOUR_DELIVERY"-->
7269
+ <!-- (click)="planningRequestButtonClick.emit($event)"-->
7270
+ <!-- ></arrow-link>-->
7271
+ <icon [icon]="calendarRoundOpen" (click)="planningRequestButtonClick.emit($event)"></icon>
7272
+ </div>
7273
+ </ng-template>
7274
+ </transaction-summary-block>
7275
+ `,
7276
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host .planning-wrapper{display:flex;justify-content:space-between;align-items:center;flex-direction:row;color:#2b60a7;margin-top:-10px;font-size:13px}:host .planning-wrapper ::ng-deep icon{cursor:pointer}:host .planning-wrapper ::ng-deep icon [fill]{fill:#2b60a7}\n"]
7277
+ },] }
7278
+ ];
7279
+ TransactionDeliverySummaryComponent.ctorParameters = () => [
7280
+ { type: TransactionService }
7281
+ ];
7282
+ TransactionDeliverySummaryComponent.propDecorators = {
7283
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }],
7284
+ canPlanDelivery: [{ type: Input }],
7285
+ planningRequestButtonClick: [{ type: Output }]
7286
+ };
7287
+
7288
+ class TransactionProductContractSummaryComponent extends TransactionBaseComponent {
7289
+ constructor(service) {
7290
+ super(service);
7291
+ this.service = service;
7292
+ }
7293
+ productSet() {
7294
+ // TODO: add to TransactionAPI?
7295
+ if (!this.product.imageAsDataUri) {
7296
+ // this._generalRepo.getDocument(this.product.image.documentId).then((doc: CoDocument) => {
7297
+ // this.product.imageAsDataUri = doc.thumbnailBodyAsDataUri;
7298
+ // });
7299
+ }
7300
+ }
7301
+ }
7302
+ TransactionProductContractSummaryComponent.decorators = [
7303
+ { type: Component, args: [{
7304
+ // eslint-disable-next-line @angular-eslint/component-selector
7305
+ selector: "transaction-product-contract-summary",
7306
+ template: `
7307
+ <transaction-summary-block
7308
+ [class.disabled]="!isNew"
7309
+ label="CONTRACT"
7310
+ [image]="product?.imageAsDataUri"
7311
+ headerLabel="PRODUCT"
7312
+ [headerValue]="product?.product"
7313
+ subHeaderLabel="REFERENCE"
7314
+ [subHeaderValue]="product?.productReference"
7315
+ ></transaction-summary-block>
7316
+ `
7317
+ },] }
7318
+ ];
7319
+ TransactionProductContractSummaryComponent.ctorParameters = () => [
7320
+ { type: TransactionService }
7321
+ ];
7322
+
7323
+ class TransactionProductSummaryComponent extends TransactionBaseComponent {
7324
+ constructor(service) {
7325
+ super(service);
7326
+ this.service = service;
7327
+ }
7328
+ productSet() {
7329
+ // TODO: Add to TransactionAPI?
7330
+ if (this.product && !this.product.imageAsDataUri && this.product.image && this.product.image.documentId) {
7331
+ // this._generalRepo.getDocument(this.product.image.documentId).then((doc: CoDocument) => {
7332
+ // this.product.imageAsDataUri = doc.thumbnailBodyAsDataUri;
7333
+ // });
7334
+ }
7335
+ }
7336
+ }
7337
+ TransactionProductSummaryComponent.decorators = [
7338
+ { type: Component, args: [{
7339
+ // eslint-disable-next-line @angular-eslint/component-selector
7340
+ selector: "transaction-product-summary",
7341
+ template: `
7342
+ <transaction-summary-block
7343
+ [class.disabled]="!isNew"
7344
+ label="PRODUCT"
7345
+ [image]="product?.imageAsDataUri"
7346
+ headerLabel="PRODUCT_TYPE"
7347
+ [headerValue]="product?.productReference"
7348
+ subHeaderLabel="PRODUCT"
7349
+ [subHeaderValue]="product?.product"
7350
+ ></transaction-summary-block>
7351
+ `
7352
+ },] }
7353
+ ];
7354
+ TransactionProductSummaryComponent.ctorParameters = () => [
7355
+ { type: TransactionService }
7356
+ ];
7357
+ TransactionProductSummaryComponent.propDecorators = {
7358
+ hidden: [{ type: HostBinding, args: ["class.hidden",] }]
7359
+ };
7360
+
7361
+ class TemplateWrapperDirective {
7362
+ constructor(viewContainer) {
7363
+ this.viewContainer = viewContainer;
7364
+ this.templateWrapper = null;
7365
+ this.templateWrapperContext = null;
7366
+ }
7367
+ ngOnChanges(changes) {
7368
+ const recreateView = this._shouldRecreateView(changes);
7369
+ if (recreateView) {
7370
+ if (this._viewRef) {
7371
+ this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));
7372
+ }
7373
+ if (this.templateWrapper) {
7374
+ this._viewRef = this.viewContainer.createEmbeddedView(this.templateWrapper, this.templateWrapperContext);
7375
+ }
7376
+ }
7377
+ else {
7378
+ if (this._viewRef && this.templateWrapperContext) {
7379
+ this._updateExistingContext(this.templateWrapperContext);
7380
+ }
7381
+ }
7382
+ }
7383
+ ngOnDestroy() {
7384
+ if (this._viewRef) {
7385
+ this.viewContainer.remove(this.viewContainer.indexOf(this._viewRef));
7386
+ this._viewRef = undefined;
7387
+ }
7388
+ this.templateWrapper = undefined;
7389
+ }
7390
+ _shouldRecreateView(changes) {
7391
+ const ctxChange = changes["templateWrapperContext"];
7392
+ return !!changes["templateWrapper"] || (ctxChange && this._hasContextShapeChanged(ctxChange));
7393
+ }
7394
+ _hasContextShapeChanged(ctxChange) {
7395
+ const prevCtxKeys = Object.keys(ctxChange.previousValue || {});
7396
+ const currCtxKeys = Object.keys(ctxChange.currentValue || {});
7397
+ if (prevCtxKeys.length === currCtxKeys.length) {
7398
+ for (const propName of currCtxKeys) {
7399
+ if (prevCtxKeys.indexOf(propName) === -1) {
7400
+ return true;
7401
+ }
7402
+ }
7403
+ return false;
7404
+ }
7405
+ else {
7406
+ return true;
7407
+ }
7408
+ }
7409
+ _updateExistingContext(ctx) {
7410
+ for (const propName of Object.keys(ctx)) {
7411
+ this._viewRef.context[propName] = this.templateWrapperContext[propName];
7412
+ }
7413
+ }
7414
+ }
7415
+ TemplateWrapperDirective.decorators = [
7416
+ { type: Directive, args: [{
7417
+ // eslint-disable-next-line @angular-eslint/directive-selector
7418
+ selector: "[templateWrapper]"
7419
+ },] }
7420
+ ];
7421
+ TemplateWrapperDirective.ctorParameters = () => [
7422
+ { type: ViewContainerRef }
7423
+ ];
7424
+ TemplateWrapperDirective.propDecorators = {
7425
+ templateWrapper: [{ type: Input }],
7426
+ templateWrapperContext: [{ type: Input }]
7427
+ };
7428
+
7429
+ class DefaultOkCancelButtonsComponent {
7430
+ constructor() {
7431
+ this.hideCancel = false;
7432
+ this.hideOk = false;
7433
+ this.okLabel = "OK";
7434
+ // only emits when ok button was not disabled when it was clicked
7435
+ this.okClick = new EventEmitter();
7436
+ this.cancelClick = new EventEmitter();
7437
+ }
7438
+ onOkClick(event) {
7439
+ if (this.okButtonComp && !this.okButtonComp.disabled) {
7440
+ this.okClick.emit(event);
7441
+ }
7442
+ }
7443
+ }
7444
+ DefaultOkCancelButtonsComponent.decorators = [
7445
+ { type: Component, args: [{
7446
+ // eslint-disable-next-line @angular-eslint/component-selector
7447
+ selector: "default-ok-cancel-buttons",
7448
+ template: `
7449
+ <co-button *ngIf="!hideOk" [label]="okLabel" [disabled]="okDisabled" class="ok" #okButton (click)="onOkClick($event)"></co-button>
7450
+ <co-button *ngIf="!hideCancel" label="CANCEL" (click)="cancelClick.emit($event)"></co-button>
7451
+ <ng-content></ng-content>
7452
+ `,
7453
+ styles: ["html,body{height:100%}body{margin:0;font-family:Roboto,\"Helvetica Neue\",sans-serif}.flex-center,:host{display:flex}.flex-center{flex-direction:row}.flex-center{align-items:center!important;justify-content:center!important}.margin-popup:host{margin-top:20px}.margin-popup:host{margin-bottom:20px}.margin-popup:host{margin-left:20px}.margin-popup:host{margin-right:20px}.margin-top:host{margin-top:11px}:host button-colijn:not(:last-child){margin-right:11px}.triangle{border-radius:3px}.full-width{width:100%}.flex-center{margin:10px 0}:host.justify-center{justify-content:center}\n"]
7454
+ },] }
7455
+ ];
7456
+ DefaultOkCancelButtonsComponent.ctorParameters = () => [];
7457
+ DefaultOkCancelButtonsComponent.propDecorators = {
7458
+ okDisabled: [{ type: Input }],
7459
+ hideCancel: [{ type: Input }],
7460
+ hideOk: [{ type: Input }],
7461
+ okLabel: [{ type: Input }],
7462
+ okClick: [{ type: Output }],
7463
+ cancelClick: [{ type: Output }],
7464
+ okButtonComp: [{ type: ViewChild, args: ["okButton",] }]
7465
+ };
7466
+
7467
+ class IoneServiceOrderModule {
7468
+ }
7469
+ IoneServiceOrderModule.decorators = [
7470
+ { type: NgModule, args: [{
7471
+ imports: [
7472
+ BrowserAnimationsModule,
7473
+ IconModule,
7474
+ InputTextModule,
7475
+ InputCheckboxModule,
7476
+ InputRadioButtonModule,
7477
+ FormModule,
7478
+ InputComboBoxModule,
7479
+ InputDatePickerModule,
7480
+ InputNumberPickerModule,
7481
+ CoDialogModule,
7482
+ CoDialogPromptModule,
7483
+ ButtonModule,
7484
+ FlexModule,
7485
+ MultiSelectListModule,
7486
+ DropDownModule,
7487
+ PopupModule.forRoot(),
7488
+ CoSidebarModule,
7489
+ CoGridModule,
7490
+ CoreModule,
7491
+ ChipListModule,
7492
+ DropDownButtonModule,
7493
+ CheckBoxModule,
7494
+ DropDownListModule,
7495
+ IoneShoppingCartModule,
7496
+ TabModule,
7497
+ ],
7498
+ declarations: [
7499
+ TemplateWrapperDirective,
7500
+ DefaultOkCancelButtonsComponent,
7501
+ IoneServiceOrderComponent,
7502
+ ServiceOrderComponent,
7503
+ TransactionOrderTotalsComponent,
7504
+ TransactionOrderLineViewComponent,
7505
+ TransactionOrderLinesComponent,
7506
+ TransactionRelationAddressComponent,
7507
+ TransactionArticleTextComponent,
7508
+ TransactionSidebarRightComponent,
7509
+ TransactionLineAccordionComponent,
7510
+ TransactionHeaderBlockComponent,
7511
+ TransactionServiceSummaryComponent,
7512
+ TransactionSummaryBlockComponent,
7513
+ TransactionServiceStatusComponent,
7514
+ TransactionOrderSummaryComponent,
7515
+ TransactionPaymentInfoComponent,
7516
+ TransactionRelationEditComponent,
7517
+ TransactionArticleSummaryComponent,
7518
+ TransactionDeliverySummaryComponent,
7519
+ TransactionProductContractSummaryComponent,
7520
+ TransactionProductSummaryComponent,
7521
+ ],
7522
+ providers: [
7523
+ DictionaryService,
7524
+ TransactionService,
7525
+ OptionsService
7526
+ ],
7527
+ entryComponents: [
7528
+ IoneServiceOrderComponent
7529
+ ],
7530
+ exports: [IoneServiceOrderComponent],
7531
+ bootstrap: [IoneServiceOrderComponent]
7532
+ },] }
7533
+ ];
7534
+
5276
7535
  //export * from "./app/component/ione-transaction.module";
5277
7536
 
5278
7537
  /**
5279
7538
  * Generated bundle index. Do not edit.
5280
7539
  */
5281
7540
 
5282
- export { IoneCheckoutComponent, IoneCheckoutModule, IoneShoppingCartComponent, IoneShoppingCartModule, RetailTransactionCheckoutComponent as ɵa, CheckoutComponent as ɵb, ShoppingCartManagerComponent as ɵba, ShoppingCartComponent as ɵbb, ShoppingCartLineComponent as ɵbc, StockStatusIndicatorComponent as ɵbd, CharacteristicAnswerComponent as ɵbe, CheckoutOverviewComponent as ɵc, CheckoutOverviewBlockComponent as ɵd, CheckoutOverviewRelationEditComponent as ɵe, TransactionService as ɵf, IOneConnectorAdapterService as ɵg, CheckoutOverviewDeliveryEditComponent as ɵh, DictionaryService as ɵi, CheckoutLoginComponent as ɵj, OptionsService as ɵk, TransactionEventService as ɵl, CoreModule as ɵm, AppendPipe as ɵn, DeliveryTimePipe as ɵo, DateDurationPipe as ɵp, LocalizePipe as ɵq, CoCurrencyPipe as ɵr, SafeStylePipe as ɵs, ImageDisplayComponent as ɵt, NoImageDisplayComponent as ɵu, IconComponent as ɵv, CheckoutOverviewRelationAddressComponent as ɵw, CheckoutOverviewDeliveryAddressComponent as ɵx, CheckOutRelationSuggestionsListComponent as ɵy, CheckOutRelationSuggestionsListItemComponent as ɵz };
7541
+ export { IoneCheckoutComponent, IoneCheckoutModule, IoneServiceOrderComponent, IoneServiceOrderModule, IoneShoppingCartComponent, IoneShoppingCartModule, RetailTransactionCheckoutComponent as ɵa, CheckoutComponent as ɵb, ShoppingCartManagerComponent as ɵba, ShoppingCartComponent as ɵbb, ShoppingCartLineComponent as ɵbc, StockStatusIndicatorComponent as ɵbd, CharacteristicAnswerComponent as ɵbe, TemplateWrapperDirective as ɵbf, DefaultOkCancelButtonsComponent as ɵbg, ServiceOrderComponent as ɵbh, TransactionBaseComponent as ɵbi, TransactionArticleTextComponent as ɵbj, TransactionOrderTotalsComponent as ɵbk, TransactionOrderLineViewComponent as ɵbl, TransactionOrderLinesComponent as ɵbm, TransactionRelationAddressComponent as ɵbn, TransactionSidebarRightComponent as ɵbo, TransactionLineAccordionComponent as ɵbp, TransactionHeaderBlockComponent as ɵbq, TransactionRelationEditComponent as ɵbr, TransactionServiceSummaryComponent as ɵbs, TransactionSummaryBlockComponent as ɵbt, TransactionServiceStatusComponent as ɵbu, TransactionOrderSummaryComponent as ɵbv, TransactionPaymentInfoComponent as ɵbw, TransactionArticleSummaryComponent as ɵbx, TransactionDeliverySummaryComponent as ɵby, TransactionProductContractSummaryComponent as ɵbz, CheckoutOverviewComponent as ɵc, TransactionProductSummaryComponent as ɵca, CheckoutOverviewBlockComponent as ɵd, CheckoutOverviewRelationEditComponent as ɵe, TransactionService as ɵf, IOneConnectorAdapterService as ɵg, CheckoutOverviewDeliveryEditComponent as ɵh, DictionaryService as ɵi, CheckoutLoginComponent as ɵj, OptionsService as ɵk, TransactionEventService as ɵl, CoreModule as ɵm, AppendPipe as ɵn, DeliveryTimePipe as ɵo, DateDurationPipe as ɵp, LocalizePipe as ɵq, CoCurrencyPipe as ɵr, SafeStylePipe as ɵs, ImageDisplayComponent as ɵt, NoImageDisplayComponent as ɵu, IconComponent as ɵv, CheckoutOverviewRelationAddressComponent as ɵw, CheckoutOverviewDeliveryAddressComponent as ɵx, CheckOutRelationSuggestionsListComponent as ɵy, CheckOutRelationSuggestionsListItemComponent as ɵz };
5283
7542
  //# sourceMappingURL=colijnit-transaction.js.map