@colijnit/transaction 12.0.5 → 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 (70) 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/service/ione-connector-adapter.service.d.ts +1 -0
  27. package/app/service/transaction-event.service.d.ts +5 -0
  28. package/app/service/transaction.service.d.ts +5 -0
  29. package/bundles/colijnit-transaction.umd.js +1624 -34
  30. package/bundles/colijnit-transaction.umd.js.map +1 -1
  31. package/colijnit-transaction.d.ts +23 -1
  32. package/colijnit-transaction.metadata.json +1 -1
  33. package/esm2015/app/component/common/icon/icon.component.js +2 -1
  34. package/esm2015/app/component/core/base/default-ok-cancel-buttons.component.js +39 -0
  35. package/esm2015/app/component/core/base/transaction-base.component.js +121 -0
  36. package/esm2015/app/component/core/directive/template-wrapper.directive.js +69 -0
  37. package/esm2015/app/component/{shopping-cart → core}/stock-status-indicator/stock-status-indicator.component.js +1 -1
  38. package/esm2015/app/component/service-order/ione-service-order-module.js +103 -0
  39. package/esm2015/app/component/service-order/ione-service-order.component.js +98 -0
  40. package/esm2015/app/component/service-order/service-order.component.js +167 -0
  41. package/esm2015/app/component/service-order/summary/transaction-article-summary.component.js +55 -0
  42. package/esm2015/app/component/service-order/summary/transaction-delivery-summary.component.js +59 -0
  43. package/esm2015/app/component/service-order/summary/transaction-order-summary.component.js +43 -0
  44. package/esm2015/app/component/service-order/summary/transaction-payment-info.component.js +35 -0
  45. package/esm2015/app/component/service-order/summary/transaction-product-contract-summary.component.js +38 -0
  46. package/esm2015/app/component/service-order/summary/transaction-product-summary.component.js +41 -0
  47. package/esm2015/app/component/service-order/summary/transaction-service-status.component.js +37 -0
  48. package/esm2015/app/component/service-order/summary/transaction-service-summary.component.js +38 -0
  49. package/esm2015/app/component/service-order/summary/transaction-summary-block.component.js +53 -0
  50. package/esm2015/app/component/service-order/transaction-article-text/transaction-article-text.component.js +183 -0
  51. package/esm2015/app/component/service-order/transaction-header-block/transaction-header-block.component.js +83 -0
  52. package/esm2015/app/component/service-order/transaction-order-line-view/transaction-order-line-view.component.js +76 -0
  53. package/esm2015/app/component/service-order/transaction-order-lines/transaction-order-lines.component.js +71 -0
  54. package/esm2015/app/component/service-order/transaction-order-totals/transaction-order-totals.component.js +37 -0
  55. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-address.component.js +116 -0
  56. package/esm2015/app/component/service-order/transaction-relation/transaction-relation-edit.component.js +225 -0
  57. package/esm2015/app/component/service-order/transaction-sidebar/transaction-line-accordion.component.js +172 -0
  58. package/esm2015/app/component/service-order/transaction-sidebar/transaction-sidebar-right.component.js +120 -0
  59. package/esm2015/app/component/shopping-cart/ione-shopping-cart.module.js +3 -3
  60. package/esm2015/app/component/shopping-cart/shopping-cart-line/shopping-cart-line.component.js +1 -1
  61. package/esm2015/app/service/ione-connector-adapter.service.js +15 -2
  62. package/esm2015/app/service/transaction-event.service.js +4 -1
  63. package/esm2015/app/service/transaction.service.js +51 -15
  64. package/esm2015/assets/dictionary/text.properties.js +33 -1
  65. package/esm2015/colijnit-transaction.js +24 -2
  66. package/esm2015/public_api.js +3 -1
  67. package/fesm2015/colijnit-transaction.js +2055 -19
  68. package/fesm2015/colijnit-transaction.js.map +1 -1
  69. package/package.json +3 -3
  70. 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';
@@ -52,6 +53,14 @@ import { ResolvePendingLineReasonRequest } from '@colijnit/transactionapi/build/
52
53
  import { SortDirection } from '@colijnit/transactionapi/build/enum/sort-direction';
53
54
  import { SortType } from '@colijnit/transactionapi/build/enum/sort-type.enum';
54
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';
55
64
 
56
65
  class OptionsService {
57
66
  constructor() {
@@ -959,6 +968,18 @@ class IOneConnectorAdapterService {
959
968
  });
960
969
  });
961
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
+ }
962
983
  saveTransaction(uuid) {
963
984
  return new Promise((resolve, reject) => {
964
985
  return this.connector.saveTransaction(uuid).then((result) => {
@@ -1119,7 +1140,7 @@ class IOneConnectorAdapterService {
1119
1140
  return new Promise((resolve, reject) => {
1120
1141
  return this.connector.getRelationListObjects(relationRequest).then((result) => {
1121
1142
  if (result.validationResult && result.validationResult.success) {
1122
- resolve(result.resultObjects);
1143
+ resolve(this._boFactory.makeBOArrayFromRawBackendDataArray(RelationListObject, result.resultObjects));
1123
1144
  }
1124
1145
  else {
1125
1146
  reject(result.validationMessagesAsString);
@@ -1295,6 +1316,7 @@ class TransactionService {
1295
1316
  constructor(_connector) {
1296
1317
  this._connector = _connector;
1297
1318
  this.transactionUpdated = new EventEmitter();
1319
+ this.transactionLoaded = new EventEmitter();
1298
1320
  this.applicationUser = false;
1299
1321
  this.articleAmount = 0;
1300
1322
  this._currentLines = [];
@@ -1438,8 +1460,25 @@ class TransactionService {
1438
1460
  return new Promise((resolve, reject) => {
1439
1461
  this._connector.getTransactionByNrAndKind(kind, transactionNr)
1440
1462
  .then((response) => __awaiter(this, void 0, void 0, function* () {
1441
- this._rememberCurrentTransaction(response);
1442
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);
1443
1482
  resolve(true);
1444
1483
  }
1445
1484
  else {
@@ -1538,7 +1577,17 @@ class TransactionService {
1538
1577
  }
1539
1578
  retrieveLineImage(line) {
1540
1579
  return __awaiter(this, void 0, void 0, function* () {
1541
- 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* () {
1542
1591
  if (!isNaN(goodId)) {
1543
1592
  return this._connector.getSingleImage(goodId, 1, true, true);
1544
1593
  }
@@ -1678,6 +1727,15 @@ class TransactionService {
1678
1727
  });
1679
1728
  });
1680
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
+ }
1681
1739
  // public async setRelationByUser(username: string, password: string): Promise<boolean> {
1682
1740
  // const response: boolean = await this._connector.setRelationByUser(this.currentTransaction.uuid, username, password);
1683
1741
  // return response;
@@ -1688,13 +1746,15 @@ class TransactionService {
1688
1746
  }
1689
1747
  }
1690
1748
  _rememberCurrentTransaction(value) {
1691
- this._currentTransaction = value.transactionInfo;
1692
- this._initializeTransaction();
1693
- this.currentLines = value.transactionLines;
1694
- this.currentTotals = value.transactionTotal;
1695
- this.currentLineOperationStatuses = value.lineOperationStatuses;
1696
- this._updateRelation();
1697
- 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
+ });
1698
1758
  }
1699
1759
  _rememberCurrentTransactionLineStatus(value) {
1700
1760
  // this._currentLineOperationStatus.uuid = value.lineUuid;
@@ -1705,10 +1765,7 @@ class TransactionService {
1705
1765
  return __awaiter(this, void 0, void 0, function* () {
1706
1766
  if (this.currentTransaction && this.currentTransaction.relation && this.currentTransaction.relation.relationId) {
1707
1767
  if (!this._currentRelation || this._currentRelation.relationId !== this.currentTransaction.relation.relationId) {
1708
- const relationNr = yield this._connector.getRelationNumber(this.currentTransaction.relation.relationId);
1709
- if (relationNr) {
1710
- this._currentRelation = yield this._connector.getCustomerFullObject(Number(relationNr));
1711
- }
1768
+ this._currentRelation = yield this.getCustomerFulObjectByRelationId(this.currentTransaction.relation.relationId);
1712
1769
  }
1713
1770
  }
1714
1771
  });
@@ -1828,6 +1885,7 @@ class Dictionary {
1828
1885
  "ADDRESS_CHANGE": "Adres wijzigen",
1829
1886
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Controleer magazijn en commissiecode",
1830
1887
  "ARTICLE": "Artikel",
1888
+ "ARTICLE_DESCRIPTION": "Artikelomschrijving",
1831
1889
  "ARTICLE_IN_OUT_COLLECTION": "Status van artikel is '|~'. Weet u zeker dat u door wilt gaan?",
1832
1890
  "ARTICLE_NR": "Artikelnummer",
1833
1891
  "ASSEMBLY_COSTS": "Montagekosten",
@@ -1868,12 +1926,15 @@ class Dictionary {
1868
1926
  "DELIVERY_OPTARTICLE_NRIONS": "Bezorgopties",
1869
1927
  "DELIVERY_TIME_PERIOD": "Levertijd",
1870
1928
  "DESCRIPTION": "Omschrijving",
1929
+ "DETAILS": "Details",
1871
1930
  "DISCOUNT": "Korting",
1872
1931
  "DISCOUNT_AMOUNT": "Kortingsbedrag",
1873
1932
  "DISCOUNT_PERCENTAGE": "Kortings %",
1874
1933
  "DROPSHIPMENT": "Dropshipment",
1875
1934
  "EMAIL_ADDRESS": "E-mailadres",
1876
1935
  "EXISTING_CUSTOMERS": "Bestaande klanten",
1936
+ "EXPECTED_DELIVERY_DATE": "Verwachte bezorgdatum",
1937
+ "EXPECTED_DELIVERY_WEEK": "Verwachte leverweek",
1877
1938
  "FEMALE": "Vrouw",
1878
1939
  "FIRST_NAME": "Voornaam",
1879
1940
  "GOOD_DESCRIPTION": "Artikelomschrijving",
@@ -1900,11 +1961,14 @@ class Dictionary {
1900
1961
  "NUMBER": "Aantal",
1901
1962
  "ON_DATE": "Op datum",
1902
1963
  "OPEN_SHOPPING_CART": "Open winkelwagen",
1964
+ "ORDER_DATE": "Orderdatum",
1903
1965
  "ORDER_GROSS": "Ordertotaal bruto",
1904
1966
  "ORDER_NET": "Ordertotaal netto",
1967
+ "ORDER_NUMBER": "Ordernummer",
1905
1968
  "ORDER_TYPE": "Type bestelling",
1906
1969
  "OVERVIEW": "Overzicht",
1907
1970
  "OWN_REFERENCE": "Eigen referentie",
1971
+ "PAID_DOWN2": "Aanbetaald",
1908
1972
  "PART_DELIVERIES": "Deelleveringen",
1909
1973
  "PASSWORD": "Wachtwoord",
1910
1974
  "PAYMENT": "Betaling",
@@ -1917,6 +1981,8 @@ class Dictionary {
1917
1981
  "PRICE_LIST": "Prijslijst",
1918
1982
  "PRIVACY_PREFERENCES": "Privacyvoorkeuren",
1919
1983
  "PRIVATE_PERSON": "Particulier",
1984
+ "PRODUCT": "Product",
1985
+ "PRODUCT_TYPE": "Productsoort",
1920
1986
  "QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Het aantal mag geen 0 zijn.",
1921
1987
  "QUANTITY_CANNOT_BE_LESS_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
1922
1988
  "QUANTITY_CANNOT_BE_MORE_THAN_DELIVERED": "Het aantal moet gelijk zijn aan het geleverde aantal",
@@ -1932,6 +1998,9 @@ class Dictionary {
1932
1998
  "SALUTATION": "Aanhef",
1933
1999
  "SAVE": "Opslaan",
1934
2000
  "SELECT": "Selecteren",
2001
+ "SERVICE_NUMBER": "Servicenummer",
2002
+ "SERVICE_REQUEST_DATE": "Datum aanvraag",
2003
+ "SERVICE_STATE": "Service status",
1935
2004
  "SHOPPING_CART": "Winkelwagen",
1936
2005
  "SHOPPING_CART_CHECKOUT": "Bestellen",
1937
2006
  "SHOPPING_CART_OVERVIEW": "Overzicht van uw bestelling",
@@ -1943,16 +2012,20 @@ class Dictionary {
1943
2012
  "SUBTOTAL": "Subtotaal",
1944
2013
  "SUGGESTIONS": "Suggesties",
1945
2014
  "SURCHARGE_AMOUNT": "Toeslag",
2015
+ "STATE": "Status",
1946
2016
  "STREET": "Straatnaam",
2017
+ "TOTAL_AMOUNT": "Totaalbedrag",
1947
2018
  "TOTAL_GROSS": "Totaal bruto",
1948
2019
  "TOTAL_ASSEMBLY_TIME": "Totale montagetijd",
1949
2020
  "TRANSACTION_DISCOUNT": "Totale transactie korting",
1950
2021
  "TRANSACTION_DISCOUNT_PERC": "% Trans. korting",
1951
2022
  "TRANSACTION_PRICE_DECLARATION": "Order prijsverklaring",
2023
+ "TRANSACTION_SUM_I": "Ordertotaal incl. BTW",
1952
2024
  "TRANSACTION_TOTAL": "Transactie totaal",
1953
2025
  "UNKNOWN": "Onbekend",
1954
2026
  "UNKNOWN_ADDRESS_CHECK_IT": "Onbekend adres",
1955
2027
  "VAT": "Btw",
2028
+ "VAT_AMOUNT": "BTW-bedrag",
1956
2029
  "VALUE": "Waarde",
1957
2030
  "WAREHOUSE": "Magazijn",
1958
2031
  "YOUR_DATA": "Uw gegevens",
@@ -1973,6 +2046,7 @@ class Dictionary {
1973
2046
  "ADDRESS_CHANGE": "Change address",
1974
2047
  "ALWAYS_SHOW_LOGISTICS_POPUP": "Check warehouse and commissioncode",
1975
2048
  "ARTICLE": "Article",
2049
+ "ARTICLE_DESCRIPTION": "Article description",
1976
2050
  "ARTICLE_IN_OUT_COLLECTION": "Status of article is '|~'. Are you sure to proceed?",
1977
2051
  "ARTICLE_NR": "Article number",
1978
2052
  "ASSEMBLY_COSTS": "Assembly costs",
@@ -2013,12 +2087,15 @@ class Dictionary {
2013
2087
  "DELIVERY_OPTARTICLE_NRIONS": "Delivery options",
2014
2088
  "DELIVERY_TIME_PERIOD": "Delivery time period",
2015
2089
  "DESCRIPTION": "Description",
2090
+ "DETAILS": "Details",
2016
2091
  "DISCOUNT": "Discount",
2017
2092
  "DISCOUNT_AMOUNT": "Discount amount",
2018
2093
  "DISCOUNT_PERCENTAGE": "Discount %",
2019
2094
  "DROPSHIPMENT": "Dropshipment",
2020
2095
  "EMAIL_ADDRESS": "E-mailadres",
2021
2096
  "EXISTING_CUSTOMERS": "Existing customers",
2097
+ "EXPECTED_DELIVERY_DATE": "Expected delivery date",
2098
+ "EXPECTED_DELIVERY_WEEK": "Expected delivery week",
2022
2099
  "FEMALE": "Female",
2023
2100
  "FIRST_NAME": "First name",
2024
2101
  "GOOD_DESCRIPTION": "Article description",
@@ -2045,11 +2122,14 @@ class Dictionary {
2045
2122
  "NUMBER": "Amount",
2046
2123
  "ON_DATE": "On date",
2047
2124
  "OPEN_SHOPPING_CART": "Open shopping cart",
2125
+ "ORDER_DATE": "Order date",
2048
2126
  "ORDER_GROSS": "Total gross amount",
2049
2127
  "ORDER_NET": "Total net amount",
2128
+ "ORDER_NUMBER": "Order number",
2050
2129
  "ORDER_TYPE": "Order type",
2051
2130
  "OVERVIEW": "Overview",
2052
2131
  "OWN_REFERENCE": "Own reference",
2132
+ "PAID_DOWN2": "Prepaid",
2053
2133
  "PART_DELIVERIES": "Partial deliveries",
2054
2134
  "PASSWORD": "Password",
2055
2135
  "PAYMENT": "Payment",
@@ -2062,6 +2142,8 @@ class Dictionary {
2062
2142
  "PRICE_LIST": "Pricelist",
2063
2143
  "PRIVACY_PREFERENCES": "Privacy preferences",
2064
2144
  "PRIVATE_PERSON": "Private",
2145
+ "PRODUCT": "Product",
2146
+ "PRODUCT_TYPE": "Product type",
2065
2147
  "QUANTITY_CANNOT_BE_ZERO_OR_EMPTY": "Quantity cannot be zero or empty",
2066
2148
  "QUANTUM_DISCOUNT": "Quantum discount",
2067
2149
  "REFERENCE_RELATION": "Ref. relation",
@@ -2069,6 +2151,9 @@ class Dictionary {
2069
2151
  "SALUTATION": "Salutation",
2070
2152
  "SAVE": "Save",
2071
2153
  "SELECT": "Select",
2154
+ "SERVICE_NUMBER": "Service number",
2155
+ "SERVICE_REQUEST_DATE": "Service request data",
2156
+ "SERVICE_STATE": "Service state",
2072
2157
  "SHOPPING_CART": "Shopping cart",
2073
2158
  "SHOPPING_CART_CHECKOUT": "Checkout",
2074
2159
  "SHOPPING_CART_OVERVIEW": "Order overview",
@@ -2080,17 +2165,21 @@ class Dictionary {
2080
2165
  "SUBTOTAL": "Subtotal",
2081
2166
  "SUGGESTIONS": "Suggestions",
2082
2167
  "SURCHARGE_AMOUNT": "Surcharge",
2168
+ "STATE": "STATUS",
2083
2169
  "STREET": "Streetname",
2170
+ "TOTAL_AMOUNT": "Total amount",
2084
2171
  "TOTAL_GROSS": "Gross total",
2085
2172
  "TOTAL_ASSEMBLY_TIME": "Total assembly time",
2086
2173
  "TRANSACTION_DISCOUNT": "Total transaction discount",
2087
2174
  "TRANSACTION_DISCOUNT_PERC": "% Trans. discount",
2088
2175
  "TRANSACTION_PRICE_DECLARATION": "Transaction price declaration",
2176
+ "TRANSACTION_SUM_I": "Ordertotal incl VAT",
2089
2177
  "TRANSACTION_TOTAL": "Transaction total",
2090
2178
  "UNKNOWN": "unknown",
2091
2179
  "UNKNOWN_ADDRESS_CHECK_IT": "Unknown address",
2092
2180
  "VALUE": "Value",
2093
2181
  "VAT": "VAT",
2182
+ "VAT_AMOUNT": "VAT amount",
2094
2183
  "WAREHOUSE": "Warehouse",
2095
2184
  "YOUR_DATA": "Your data",
2096
2185
  },
@@ -2171,6 +2260,9 @@ class TransactionEventService {
2171
2260
  this.addArticleLineAt = new Subject();
2172
2261
  this.addTextLineAt = new Subject();
2173
2262
  this.changeLineSequence = new Subject();
2263
+ this.transactionLineClicked = new Subject();
2264
+ this.rightSidebarClose = new Subject();
2265
+ this.scrollContent = new Subject();
2174
2266
  }
2175
2267
  }
2176
2268
  TransactionEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionEventService_Factory() { return new TransactionEventService(); }, token: TransactionEventService, providedIn: "root" });
@@ -4147,6 +4239,7 @@ class IconComponent {
4147
4239
  }
4148
4240
  IconComponent.decorators = [
4149
4241
  { type: Component, args: [{
4242
+ // eslint-disable-next-line @angular-eslint/component-selector
4150
4243
  selector: "icon",
4151
4244
  template: "",
4152
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"]
@@ -5311,7 +5404,7 @@ ShoppingCartLineComponent.decorators = [
5311
5404
  [textContent]="line.text">
5312
5405
  </div>
5313
5406
  `,
5314
- 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"]
5315
5408
  },] }
5316
5409
  ];
5317
5410
  ShoppingCartLineComponent.ctorParameters = () => [
@@ -5491,16 +5584,1959 @@ IoneShoppingCartModule.decorators = [
5491
5584
  entryComponents: [
5492
5585
  IoneShoppingCartComponent
5493
5586
  ],
5494
- exports: [IoneShoppingCartComponent],
5587
+ exports: [IoneShoppingCartComponent, StockStatusIndicatorComponent],
5495
5588
  bootstrap: [IoneShoppingCartComponent]
5496
5589
  },] }
5497
5590
  ];
5498
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
+
5499
7535
  //export * from "./app/component/ione-transaction.module";
5500
7536
 
5501
7537
  /**
5502
7538
  * Generated bundle index. Do not edit.
5503
7539
  */
5504
7540
 
5505
- 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 };
5506
7542
  //# sourceMappingURL=colijnit-transaction.js.map