@colijnit/transaction 12.1.111 → 12.1.113

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/bundles/colijnit-transaction.umd.js +276 -281
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +78 -78
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +79 -79
  6. package/esm2015/lib/component/checkout/checkout.component.js +13 -10
  7. package/esm2015/lib/component/core/base/transaction-base.component.js +33 -33
  8. package/esm2015/lib/component/core/core.module.js +15 -15
  9. package/esm2015/lib/component/core/relation/customer-groups.component.js +23 -5
  10. package/esm2015/lib/component/relation/relation-address/relation-address.component.js +23 -3
  11. package/esm2015/lib/component/shared/transaction-article-text/transaction-article-text.component.js +7 -7
  12. package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +7 -7
  13. package/esm2015/lib/component/transaction-card/transaction-card-invoice/transaction-card-invoice.component.js +3 -3
  14. package/esm2015/lib/component/transaction-card/transaction-card-order-delivery/transaction-card-order-delivery.component.js +3 -3
  15. package/esm2015/lib/component/transaction-card/transaction-card-receive-goods/transaction-card-receive-goods.component.js +3 -3
  16. package/esm2015/lib/component/transaction-date-select/transaction-date-select.component.js +35 -0
  17. package/esm2015/lib/component/transaction-date-select/transaction-date-select.module.js +21 -0
  18. package/esm2015/lib/component/transaction-header-fields/transaction-header-price-kind.component.js +1 -1
  19. package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +1 -1
  20. package/esm2015/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line-base.component.js +4 -4
  21. package/esm2015/lib/component/transaction-line/transaction-overview-line/transaction-overview-line.component.js +6 -6
  22. package/esm2015/lib/component/transaction-line/transaction-purchase-line/transaction-purchase-line.component.js +2 -1
  23. package/esm2015/lib/component/transaction-line/transaction-purchase-overview-line/transaction-purchase-overview-line.component.js +3 -2
  24. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.js +3 -3
  25. package/esm2015/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.module.js +2 -3
  26. package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +2 -2
  27. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.js +33 -12
  28. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.module.js +4 -2
  29. package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date.module.js +4 -2
  30. package/esm2015/lib/component/transaction-line-fields/transaction-line-price/transaction-line-price.component.js +2 -2
  31. package/esm2015/lib/component/transaction-line-side-panel-default/transaction-line-side-panel-default.component.js +2 -2
  32. package/esm2015/lib/enum/icon.enum.js +2 -1
  33. package/esm2015/lib/model/icon-svg.js +3 -2
  34. package/esm2015/lib/res/dictionary/dictionaries.js +2 -2
  35. package/esm2015/lib/transaction-version.js +3 -3
  36. package/fesm2015/colijnit-transaction.js +186 -193
  37. package/fesm2015/colijnit-transaction.js.map +1 -1
  38. package/lib/component/checkout/style/_layout.scss +2 -0
  39. package/lib/component/checkout/style/_material-definition.scss +1 -0
  40. package/lib/component/core/relation/customer-groups.component.d.ts +9 -4
  41. package/lib/component/relation/relation-address/relation-address.component.d.ts +6 -1
  42. package/lib/component/shared/transaction-article-text/transaction-article-text.component.d.ts +8 -8
  43. package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +5 -5
  44. package/lib/component/transaction-card/transaction-card/style/_layout.scss +14 -9
  45. package/lib/component/transaction-card/transaction-card-invoice/transaction-card-invoice.component.d.ts +2 -2
  46. package/lib/component/transaction-card/transaction-card-order-delivery/transaction-card-order-delivery.component.d.ts +2 -2
  47. package/lib/component/transaction-card/transaction-card-receive-goods/transaction-card-receive-goods.component.d.ts +2 -2
  48. package/lib/component/transaction-date-select/style/_layout.scss +22 -0
  49. package/lib/component/transaction-date-select/style/_material-definition.scss +4 -0
  50. package/lib/component/transaction-date-select/style/_theme.scss +12 -0
  51. package/lib/component/transaction-date-select/style/material.scss +4 -0
  52. package/lib/component/transaction-date-select/transaction-date-select.component.d.ts +11 -0
  53. package/lib/component/transaction-date-select/transaction-date-select.module.d.ts +2 -0
  54. package/lib/component/transaction-header/transaction-header-payment/style/_layout.scss +2 -1
  55. package/lib/component/transaction-line/transaction-invoice-line/transaction-invoice-line-base.component.d.ts +3 -3
  56. package/lib/component/transaction-line/transaction-line/style/_layout.scss +25 -12
  57. package/lib/component/transaction-line/transaction-purchase-order-line/style/_layout.scss +6 -6
  58. package/lib/component/transaction-line-action-buttons/style/_layout.scss +1 -0
  59. package/lib/component/transaction-line-action-buttons/style/_material-definition.scss +4 -2
  60. package/lib/component/transaction-line-action-buttons/style/_theme.scss +3 -0
  61. package/lib/component/transaction-line-action-buttons/transaction-line-action-buttons.component.d.ts +1 -0
  62. package/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.d.ts +18 -6
  63. package/lib/component/transaction-line-purchase-receive-goods/style/_layout.scss +4 -4
  64. package/lib/enum/icon.enum.d.ts +1 -0
  65. package/lib/res/dictionary/dictionaries.d.ts +2 -0
  66. package/package.json +1 -1
  67. package/esm2015/lib/component/core/directive/overlay.directive.js +0 -106
  68. package/esm2015/lib/component/core/directive/overlay.module.js +0 -17
  69. package/lib/component/core/directive/overlay.directive.d.ts +0 -18
  70. package/lib/component/core/directive/overlay.module.d.ts +0 -2
@@ -13,6 +13,7 @@
13
13
  flex-basis: $tp-checkout-default-width;
14
14
  flex-grow: 1;
15
15
  flex-shrink: 1;
16
+ max-width: $tp-checkout-max-width;
16
17
  }
17
18
  .co-checkout-right-panel {
18
19
  display: flex;
@@ -21,6 +22,7 @@
21
22
  flex-basis: $tp-checkout-right-panel-width;
22
23
  flex-grow: 1;
23
24
  flex-shrink: 1;
25
+ max-width: $tp-checkout-max-width;
24
26
  }
25
27
  .co-checkout-right-panel-relation {
26
28
  display: flex;
@@ -3,6 +3,7 @@ $tp-checkout-padding: 30px !default;
3
3
  $tp-checkout-column-gap: 10px !default;
4
4
  $tp-checkout-row-gap: 10px !default;
5
5
  $tp-checkout-default-width: 55% !default;
6
+ $tp-checkout-max-width: 80% !default;
6
7
  $tp-checkout-right-panel-row-gap: 10px !default;
7
8
  $tp-checkout-right-panel-width: 400px !default;
8
9
  $tp-checkout-right-panel-width: 50% !default;
@@ -1,14 +1,19 @@
1
- import { EventEmitter, OnInit } from "@angular/core";
2
- import { TransactionConnectorService } from "../../../service/transaction-connector.service";
3
- import { CustomerGroup } from "@colijnit/transactionapi/build/model/customer-group.bo";
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { TransactionConnectorService } from '../../../service/transaction-connector.service';
3
+ import { CustomerGroup } from '@colijnit/transactionapi/build/model/customer-group.bo';
4
4
  export declare class CustomerGroupsComponent implements OnInit {
5
5
  private _connector;
6
6
  readonly: boolean;
7
7
  required: boolean;
8
- model: string;
8
+ set model(value: string);
9
+ get model(): string;
9
10
  modelChange: EventEmitter<string>;
10
11
  customerGroups: CustomerGroup[];
12
+ selectedCustomerGroup: CustomerGroup;
11
13
  fields: Object;
14
+ private _model;
12
15
  constructor(_connector: TransactionConnectorService);
13
16
  ngOnInit(): Promise<void>;
17
+ handleCustomerGroupChange(customerGroup: CustomerGroup): void;
18
+ private _setSelectedCustomerGroup;
14
19
  }
@@ -9,17 +9,22 @@ export declare class RelationAddressComponent extends RelationBaseComponent impl
9
9
  private _dictionary;
10
10
  private _connector;
11
11
  private _formMasterService;
12
- address: Address;
12
+ set address(value: Address);
13
+ get address(): Address;
13
14
  label: string;
14
15
  addressChange: EventEmitter<Address>;
15
16
  showClass(): boolean;
16
17
  countries: Country[];
17
18
  fields: Object;
19
+ countryModel: Country;
18
20
  postalCodeCheckErrorMessage: string;
19
21
  private _prevPostalCodeForCheck;
20
22
  private _prevHouseNoForCheck;
23
+ private _address;
21
24
  constructor(_dictionary: DictionaryService, _connector: TransactionConnectorService, _formMasterService: FormMasterService);
22
25
  ngOnInit(): Promise<void>;
23
26
  checkForPostalCodeCheckError(): Promise<void>;
24
27
  changeHouseNo(): void;
28
+ handleCountryChange(country: Country): void;
29
+ private _setSelectedAddress;
25
30
  }
@@ -1,11 +1,11 @@
1
- import { EventEmitter, OnInit } from "@angular/core";
2
- import { Icon } from "../../../enum/icon.enum";
3
- import { DictionaryService } from "../../../service/dictionary.service";
4
- import { IconCacheService } from "../../../service/icon-cache.service";
5
- import { TransactionService } from "../../../service/transaction.service";
6
- import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
7
- import { StandardText } from "../../../model/standard-text";
8
- import { TransactionAddTextLineRequest } from "@colijnit/transactionapi/build/model/transaction-add-text-line-request.bo";
1
+ import { EventEmitter, OnInit } from '@angular/core';
2
+ import { Icon } from '../../../enum/icon.enum';
3
+ import { DictionaryService } from '../../../service/dictionary.service';
4
+ import { IconCacheService } from '../../../service/icon-cache.service';
5
+ import { TransactionService } from '../../../service/transaction.service';
6
+ import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
7
+ import { StandardText } from '../../../model/standard-text';
8
+ import { TransactionAddTextLineRequest } from '@colijnit/transactionapi/build/model/transaction-add-text-line-request.bo';
9
9
  export declare class TransactionArticleTextComponent implements OnInit {
10
10
  transactionService: TransactionService;
11
11
  iconCacheService: IconCacheService;
@@ -1,8 +1,8 @@
1
- import { EventEmitter } from "@angular/core";
2
- import { TransactionEventService } from "../../../service/transaction-event.service";
3
- import { TransactionService } from "../../../service/transaction.service";
4
- import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
5
- import { CdkDrag, CdkDragDrop, CdkDropList } from "@angular/cdk/drag-drop";
1
+ import { EventEmitter } from '@angular/core';
2
+ import { TransactionEventService } from '../../../service/transaction-event.service';
3
+ import { TransactionService } from '../../../service/transaction.service';
4
+ import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
5
+ import { CdkDrag, CdkDragDrop, CdkDropList } from '@angular/cdk/drag-drop';
6
6
  export declare class TransactionArticleTextOverviewComponent {
7
7
  service: TransactionService;
8
8
  private _transactionEventService;
@@ -72,7 +72,12 @@
72
72
  }
73
73
  }
74
74
 
75
- .transaction-line-totals-price, .transaction-line-totals-discount, .transaction-line-totals-amount, .transaction-line-totals-total {
75
+ .transaction-line-totals-amount {
76
+ .amount-number-picker {
77
+ height: 100%;
78
+ }
79
+ }
80
+ .transaction-line-totals-price, .transaction-line-totals-discount, .transaction-line-totals-total {
76
81
  display: flex;
77
82
  align-items: center;
78
83
  justify-content: center;
@@ -93,14 +98,14 @@
93
98
  .price {
94
99
  font-weight: $tp-transaction-line-price-font-weight;
95
100
  }
96
- .amount-number-picker {
97
- border: none;
98
-
99
- .co-button {
100
- height: 18px;
101
- width: 20px;
102
- }
103
- }
101
+ //.amount-number-picker {
102
+ // border: none;
103
+ //
104
+ // .co-button {
105
+ // height: 18px;
106
+ // width: 20px;
107
+ // }
108
+ //}
104
109
  .fully-delivered {
105
110
  border-color: $tp-transaction-delivery-line-delivered-secondary-color;
106
111
  background-color: $tp-transaction-delivery-line-delivered-primary-color;
@@ -1,5 +1,5 @@
1
- import { TransactionInvoiceLineBaseComponent } from "../../transaction-line/transaction-invoice-line/transaction-invoice-line-base.component";
2
- import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
1
+ import { TransactionInvoiceLineBaseComponent } from '../../transaction-line/transaction-invoice-line/transaction-invoice-line-base.component';
2
+ import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
3
3
  export declare class TransactionCardInvoiceComponent extends TransactionInvoiceLineBaseComponent {
4
4
  showClass(): boolean;
5
5
  handleShowSidePanel(line: TransactionLineInfo): void;
@@ -1,5 +1,5 @@
1
- import { TransactionOrderDeliveryLineBaseComponent } from "../../transaction-line/transaction-order-delivery-line/transaction-order-delivery-line-base.component";
2
- import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
1
+ import { TransactionOrderDeliveryLineBaseComponent } from '../../transaction-line/transaction-order-delivery-line/transaction-order-delivery-line-base.component';
2
+ import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
3
3
  export declare class TransactionCardOrderDeliveryComponent extends TransactionOrderDeliveryLineBaseComponent {
4
4
  showClass(): boolean;
5
5
  handleShowSidePanel(line: TransactionLineInfo): void;
@@ -1,5 +1,5 @@
1
- import { TransactionReceiveGoodsLineBaseComponent } from "../../transaction-line/transaction-receive-goods-line/transaction-receive-goods-line-base.component";
2
- import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
1
+ import { TransactionReceiveGoodsLineBaseComponent } from '../../transaction-line/transaction-receive-goods-line/transaction-receive-goods-line-base.component';
2
+ import { TransactionLineInfo } from '@colijnit/transactionapi/build/model/transaction-line-info.bo';
3
3
  export declare class TransactionCardReceiveGoodsComponent extends TransactionReceiveGoodsLineBaseComponent {
4
4
  showClass(): boolean;
5
5
  handleShowSidePanel(line: TransactionLineInfo): void;
@@ -0,0 +1,22 @@
1
+ @include export-module('co-transaction-date-select-layout') {
2
+ .co-transaction-date-select {
3
+ font-family: $tp-transaction-date-select-font-family;
4
+ font-size: $tp-transaction-date-select-font-size;
5
+ width: 100%;
6
+ .transaction-date-select-wrapper {
7
+ width: 100%;
8
+ display: flex;
9
+ align-items: center;
10
+ justify-content: space-between;
11
+ .co-icon {
12
+ height: $tp-transaction-date-select-icon-size;
13
+ width: $tp-transaction-date-select-icon-size;
14
+ }
15
+ .date-description {
16
+ text-overflow: ellipsis;
17
+ overflow: hidden;
18
+ white-space: nowrap;
19
+ }
20
+ }
21
+ }
22
+ }
@@ -0,0 +1,4 @@
1
+ $tp-transaction-date-select-font-family: $tp-font-family !default;
2
+ $tp-transaction-date-select-font-size: $tp-font-size !default;
3
+ $tp-transaction-date-select-icon-size: 13px !default;
4
+ $tp-transaction-date-select-icon-color: 13px !default;
@@ -0,0 +1,12 @@
1
+ @include export-module('co-transaction-date-select-theme') {
2
+ .co-transaction-date-select {
3
+ .co-icon {
4
+ svg { // for fontawesome icons
5
+ fill: $tp-transaction-date-select-icon-color;
6
+ }
7
+ & [fill] { // for own icons
8
+ fill: $tp-transaction-date-select-icon-color;
9
+ }
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,4 @@
1
+ @import "../../../style/mixin";
2
+ @import "./_material-definition";
3
+ @import "./_layout";
4
+ @import "./_theme";
@@ -0,0 +1,11 @@
1
+ import { EventEmitter } from '@angular/core';
2
+ import { IconCacheService } from '../../service/icon-cache.service';
3
+ import { Icon } from '../../enum/icon.enum';
4
+ export declare class TransactionDateSelectComponent {
5
+ iconService: IconCacheService;
6
+ readonly icons: typeof Icon;
7
+ date: Date;
8
+ dateChange: EventEmitter<Date>;
9
+ showClass(): boolean;
10
+ constructor(iconService: IconCacheService);
11
+ }
@@ -0,0 +1,2 @@
1
+ export declare class TransactionDateSelectModule {
2
+ }
@@ -43,11 +43,12 @@
43
43
  }
44
44
  }
45
45
  }
46
- .transaction-header-deposit {
46
+ .transaction-header-deposit {
47
47
  .co-input-text {
48
48
  height: auto;
49
49
  padding: 0;
50
50
  input {
51
+ padding: 0;
51
52
  margin: 0;
52
53
  }
53
54
  }
@@ -1,6 +1,6 @@
1
- import { OnDestroy, OnInit } from "@angular/core";
2
- import { TransactionBaseComponent } from "../../core/base/transaction-base.component";
3
- import { TransactionTypeCategory } from "../../../enum/transaction-type-category.enum";
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { TransactionBaseComponent } from '../../core/base/transaction-base.component';
3
+ import { TransactionTypeCategory } from '../../../enum/transaction-type-category.enum';
4
4
  export declare abstract class TransactionInvoiceLineBaseComponent extends TransactionBaseComponent implements OnInit, OnDestroy {
5
5
  readonly category: typeof TransactionTypeCategory;
6
6
  private _subscriptions;
@@ -2,7 +2,7 @@
2
2
  .co-transaction-line {
3
3
  font-family: $tp-transaction-line-font-family;
4
4
  font-size: $tp-transaction-line-font-size;
5
- width: calc(100% - 30px);
5
+ width: 100%;
6
6
  display: flex;
7
7
  flex-direction: column;
8
8
  border: $tp-transaction-line-border;
@@ -47,6 +47,7 @@
47
47
  display: flex;
48
48
  flex-wrap: wrap;
49
49
  align-content: flex-start;
50
+ row-gap: $tp-transaction-line-row-gap;
50
51
  co-transaction-line-commission-button {
51
52
  margin-right: $tp-transaction-line-column-gap;
52
53
  }
@@ -54,6 +55,7 @@
54
55
  .column2 {
55
56
  display: flex;
56
57
  flex-direction: column;
58
+ row-gap: $tp-transaction-line-row-gap;
57
59
  margin-right: $tp-transaction-line-column-gap;
58
60
  max-width: $tp-transaction-line-button-big-width;
59
61
  }
@@ -78,15 +80,20 @@
78
80
  co-transaction-line-delivery-date-button {
79
81
  //max-width: calc((#{$tp-transaction-line-button-width} * 2) + #{$tp-transaction-line-column-gap});
80
82
  .transaction-line-button {
81
- align-items: flex-end;
83
+ align-items: center;
82
84
  }
83
85
  }
84
86
  .co-statusbar-wrapper {
85
87
  height: $tp-transaction-line-button-height;
86
- align-items: flex-end;
88
+ align-items: center;
89
+ }
90
+ }
91
+ .transaction-line-totals-amount {
92
+ .amount-number-picker {
93
+ height: 100%;
87
94
  }
88
95
  }
89
- .transaction-line-totals-price, .transaction-line-totals-discount, .transaction-line-totals-amount, .transaction-line-totals-total {
96
+ .transaction-line-totals-price, .transaction-line-totals-discount, .transaction-line-totals-total {
90
97
  display: flex;
91
98
  align-items: center;
92
99
  justify-content: $tp-transaction-line-totals-justify-content;
@@ -104,14 +111,14 @@
104
111
  .price {
105
112
  font-weight: $tp-transaction-line-price-font-weight;
106
113
  }
107
- .amount-number-picker {
108
- border: none;
109
-
110
- .co-button {
111
- height: 18px;
112
- width: 20px;
113
- }
114
- }
114
+ //.amount-number-picker {
115
+ // border: none;
116
+ //
117
+ // .co-button {
118
+ // height: 18px;
119
+ // width: 20px;
120
+ // }
121
+ //}
115
122
  .fully-delivered {
116
123
  border-color: $tp-transaction-delivery-line-delivered-secondary-color;
117
124
  background-color: $tp-transaction-delivery-line-delivered-primary-color;
@@ -225,5 +232,11 @@
225
232
  column-gap: $tp-transaction-line-column-gap;
226
233
  }
227
234
  }
235
+ &.preview {
236
+ .transaction-line-totals {
237
+ grid-template-rows: $tp-transaction-line-button-height;
238
+ grid-gap: $tp-transaction-line-row-gap;
239
+ }
240
+ }
228
241
  }
229
242
  }
@@ -49,11 +49,11 @@
49
49
  height: 20px;
50
50
  margin: 2px;
51
51
  }
52
- .amount-number-picker {
53
- height: 25px;
54
- border: 1px solid black;
55
- border-radius: 10px;
56
- width: 100px;
57
- }
52
+ //.amount-number-picker {
53
+ // height: 25px;
54
+ // border: 1px solid black;
55
+ // border-radius: 10px;
56
+ // width: 100px;
57
+ //}
58
58
  }
59
59
  }
@@ -36,6 +36,7 @@
36
36
 
37
37
  .action-button-wrapper {
38
38
  cursor: pointer;
39
+ padding: $tp-transaction-line-action-buttons-action-button-padding;
39
40
  border-radius: $tp-transaction-line-action-buttons-action-button-border-radius;
40
41
  display: flex;
41
42
  align-items: center;
@@ -4,7 +4,7 @@ $tp-transaction-line-action-buttons-font-color: $tp-color-font !default;
4
4
  $tp-transaction-line-action-buttons-background-color: $tp-default-background-accent !default;
5
5
  $tp-transaction-line-action-buttons-popup-background-color: $tp-default-background-accent !default;
6
6
  $tp-transaction-line-action-buttons-padding: 10px !default;
7
- $tp-transaction-line-action-buttons-row-gap: 10px !default;
7
+ $tp-transaction-line-action-buttons-row-gap: 0 !default;
8
8
  $tp-transaction-line-action-buttons-border-radius: 10px !default;
9
9
  $tp-transaction-line-action-buttons-box-shadow: 0px 0px 3px 0px rgba(1, 1, 1, 0.5) !default;
10
10
  $tp-transaction-line-action-buttons-add-text-background-color: $tp-color-action !default;
@@ -13,10 +13,12 @@ $tp-transaction-line-action-buttons-action-menu-button-size: 26px !default;
13
13
  $tp-transaction-line-action-buttons-action-menu-button-border-radius: $tp-default-border-radius !default;
14
14
  $tp-transaction-line-action-buttons-action-menu-button-icon-size: 18px !default;
15
15
  $tp-transaction-line-action-buttons-action-button-size: 30px !default;
16
- $tp-transaction-line-action-buttons-action-button-border-radius: 50% !default;
16
+ $tp-transaction-line-action-buttons-action-button-border-radius: 10px !default;
17
+ $tp-transaction-line-action-buttons-action-button-padding: 10px !default;
17
18
  $tp-transaction-line-action-buttons-action-button-icon-size: 15px !default;
18
19
  $tp-transaction-line-action-buttons-action-button-margin: 2px !default;
19
20
  $tp-transaction-line-action-buttons-action-button-column-gap: 10px !default;
20
21
  $tp-transaction-line-action-buttons-action-button-icon-color: $tp-color-dark !default;
21
22
  $tp-transaction-line-action-buttons-action-button-background-color: #030D3C !default;
22
23
  $tp-transaction-line-action-buttons-action-button-color: $tp-color-dark !default;
24
+ $tp-transaction-line-action-buttons-action-button-hover-background-color: $tp-color-hover !default;
@@ -15,5 +15,8 @@
15
15
  .co-icon {
16
16
  fill: $tp-transaction-line-action-buttons-action-button-color;
17
17
  }
18
+ .action-button-wrapper:hover {
19
+ background-color: $tp-transaction-line-action-buttons-action-button-hover-background-color;
20
+ }
18
21
  }
19
22
  }
@@ -27,6 +27,7 @@ export declare class TransactionLineActionButtonsComponent implements OnInit {
27
27
  readonly: boolean;
28
28
  showActionButtons: boolean;
29
29
  private _transactionLine;
30
+ private _actionButtonsPopupComponentRef;
30
31
  constructor(elementRef: ElementRef, iconCacheService: IconCacheService, _transactionService: TransactionService, _dictionaryService: DictionaryService, _transactionEventService: TransactionEventService, _overlayService: OverlayService);
31
32
  ngOnInit(): void;
32
33
  handleShowHideClick(): void;
@@ -1,10 +1,22 @@
1
- import { Icon } from "../../enum/icon.enum";
2
- import { TransactionLineInfo } from "@colijnit/transactionapi/build/model/transaction-line-info.bo";
1
+ import { ChangeDetectorRef, ElementRef } from '@angular/core';
3
2
  import { IconCacheService } from "../../service/icon-cache.service";
4
- export declare class TransactionLineDeliveryDateButtonComponent {
3
+ import { TransactionBaseComponent } from '../core/base/transaction-base.component';
4
+ import { OverlayService } from '@colijnit/corecomponents_v12';
5
+ import { TransactionEventService } from '../../service/transaction-event.service';
6
+ import { TransactionService } from '../../service/transaction.service';
7
+ import { DictionaryService } from '../../service/dictionary.service';
8
+ import { TransactionImageService } from '../../service/transaction-image.service';
9
+ export declare class TransactionLineDeliveryDateButtonComponent extends TransactionBaseComponent {
10
+ transactionEventService: TransactionEventService;
11
+ service: TransactionService;
5
12
  iconCacheService: IconCacheService;
6
- readonly icons: typeof Icon;
7
- transactionLine: TransactionLineInfo;
13
+ protected dictionaryService: DictionaryService;
14
+ protected imageService: TransactionImageService;
15
+ protected changeDetector: ChangeDetectorRef;
16
+ private _overlayService;
17
+ private _elementRef;
8
18
  showClass(): boolean;
9
- constructor(iconCacheService: IconCacheService);
19
+ private _calendarPopupComponentRef;
20
+ constructor(transactionEventService: TransactionEventService, service: TransactionService, iconCacheService: IconCacheService, dictionaryService: DictionaryService, imageService: TransactionImageService, changeDetector: ChangeDetectorRef, _overlayService: OverlayService, _elementRef: ElementRef);
21
+ handleShowDialog(event: MouseEvent): void;
10
22
  }
@@ -9,10 +9,10 @@
9
9
  display: flex;
10
10
  flex-direction: column;
11
11
 
12
- .amount-number-picker {
13
- height: 40px;
14
- margin: 5px;
15
- }
12
+ //.amount-number-picker {
13
+ // height: 40px;
14
+ // margin: 5px;
15
+ //}
16
16
  }
17
17
 
18
18
  .header-wrapper {
@@ -65,6 +65,7 @@ export declare enum Icon {
65
65
  Purchase = "purchase",
66
66
  Resize = "resize",
67
67
  ShareSolid = "share_solid",
68
+ SharpLightTruckMovingClock = "sharp_light_truck_moving_clock",
68
69
  ShelvesLight = "shelves_light",
69
70
  ShelvesRegular = "shelves_regular",
70
71
  ShelvesSolid = "shelves_solid",
@@ -10261,6 +10261,7 @@ export declare class Dictionaries {
10261
10261
  ARRIVAL_DATE2: string;
10262
10262
  ARRIVAL_DATE: string;
10263
10263
  ARRIVAL_DATE_OBLIGATION: string;
10264
+ ART_ORDER_LINE: string;
10264
10265
  ARTICLE: string;
10265
10266
  ARTICLEGROUP: string;
10266
10267
  ARTICLENR: string;
@@ -14145,6 +14146,7 @@ export declare class Dictionaries {
14145
14146
  ORDER_INFORMATION: string;
14146
14147
  ORDER_INFORMATION1: string;
14147
14148
  ORDER_KIND: string;
14149
+ ORDER_LINE: string;
14148
14150
  ORDER_LINES: string;
14149
14151
  ORDER_LINES_ALLOCATED_NOT_FOUND: string;
14150
14152
  ORDER_LINES_EXIST: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@colijnit/transaction",
3
- "version": "12.1.111",
3
+ "version": "12.1.113",
4
4
  "description": "Colijn IT transaction module for Angular 12",
5
5
  "repository": "npm/npm",
6
6
  "author": "Colijn IT",
@@ -1,106 +0,0 @@
1
- import { Directive, ElementRef, Input } from '@angular/core';
2
- export class OverlayDirective {
3
- constructor(elementRef) {
4
- this.keepInView = false;
5
- this.inheritWidth = false;
6
- this.rightAlign = false;
7
- this.handleScroll = (event) => {
8
- this._checkAndPlaceElement();
9
- };
10
- this._elementRef = elementRef;
11
- }
12
- set parent(value) {
13
- if (value) {
14
- this._parent = value instanceof ElementRef ? value : value.elementRef;
15
- }
16
- else {
17
- if (this._parent) {
18
- this._resizeObserver.disconnect();
19
- }
20
- }
21
- }
22
- ngOnDestroy() {
23
- document.removeEventListener("scroll", this.handleScroll, true);
24
- this._intersectionObserver.disconnect();
25
- this._resizeObserver.disconnect();
26
- this._elementRef = undefined;
27
- this._parent = undefined;
28
- }
29
- ngOnInit() {
30
- if (!this._elementRef || !this._elementRef.nativeElement) {
31
- return;
32
- }
33
- document.addEventListener("scroll", this.handleScroll, true);
34
- this._checkAndPlaceElement();
35
- this._resizeObserver = new ResizeObserver((entries) => {
36
- this._checkAndPlaceElement();
37
- });
38
- this._intersectionObserver = new IntersectionObserver((entries) => {
39
- if (entries && entries.length > 0) {
40
- if (entries[0].isIntersecting === false) {
41
- this._elementRef.nativeElement.style.opacity = 0; // hide cause parent is not visible
42
- }
43
- else {
44
- this._elementRef.nativeElement.style.opacity = 1;
45
- }
46
- }
47
- }, {
48
- root: null
49
- });
50
- this._intersectionObserver.observe(this._parent.nativeElement); // observe parent for visibility
51
- this._resizeObserver.observe(document.body);
52
- }
53
- _checkAndPlaceElement() {
54
- if (this._elementRef && this._elementRef.nativeElement && this._parent && this._parent.nativeElement) {
55
- const elementRect = this._elementRef.nativeElement.getBoundingClientRect();
56
- const parentRect = this._parent.nativeElement.getBoundingClientRect();
57
- this._placeElement(window.innerHeight, window.innerWidth, parentRect, elementRect);
58
- }
59
- }
60
- _placeElement(bottom, right, parentRect, elementRect) {
61
- if (bottom < parentRect.bottom + elementRect.height) { // make sure it fits at the bottom
62
- this._elementRef.nativeElement.style.top = (parentRect.top - elementRect.height) + "px";
63
- this._elementRef.nativeElement.classList.add('top');
64
- }
65
- else {
66
- this._elementRef.nativeElement.classList.remove('top');
67
- this._elementRef.nativeElement.style.top = parentRect.bottom + "px";
68
- }
69
- if (this.inheritWidth) {
70
- this._elementRef.nativeElement.style.width = parentRect.width + "px";
71
- }
72
- if (this.rightAlign) {
73
- this._elementRef.nativeElement.style.left = (parentRect.right - elementRect.width) + "px";
74
- }
75
- else {
76
- this._elementRef.nativeElement.style.left = parentRect.left + "px";
77
- }
78
- if (this.keepInView) {
79
- if (elementRect.right > window.innerWidth) {
80
- //see if we can move it to the left
81
- if ((window.innerWidth - elementRect.width) > 0) {
82
- this._elementRef.nativeElement.style.left = (window.innerWidth - elementRect.width) + "px";
83
- }
84
- else { //resize so it fits into view
85
- this._elementRef.nativeElement.style.width = window.innerWidth + "px";
86
- this._elementRef.nativeElement.style.left = 0;
87
- }
88
- }
89
- }
90
- }
91
- }
92
- OverlayDirective.decorators = [
93
- { type: Directive, args: [{
94
- selector: "[overlay]"
95
- },] }
96
- ];
97
- OverlayDirective.ctorParameters = () => [
98
- { type: ElementRef }
99
- ];
100
- OverlayDirective.propDecorators = {
101
- parent: [{ type: Input, args: ["overlay",] }],
102
- keepInView: [{ type: Input }],
103
- inheritWidth: [{ type: Input }],
104
- rightAlign: [{ type: Input }]
105
- };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NvbXBvbmVudC9jb3JlL2RpcmVjdGl2ZS9vdmVybGF5LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBZ0IsS0FBSyxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQU01RixNQUFNLE9BQU8sZ0JBQWdCO0lBMkIzQixZQUNJLFVBQXNCO1FBZG5CLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFHNUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFHOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQWlENUIsaUJBQVksR0FBRyxDQUFDLEtBQVksRUFBRSxFQUFFO1lBQ3JDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUMsQ0FBQTtRQXpDQyxJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztJQUNoQyxDQUFDO0lBN0JELElBQ1csTUFBTSxDQUFDLEtBQTBDO1FBQzFELElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLFlBQVksVUFBVSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7U0FDdkU7YUFBTTtZQUNMLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtnQkFDaEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQzthQUNuQztTQUNGO0lBQ0gsQ0FBQztJQXNCTSxXQUFXO1FBQ2hCLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVB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O2dCQUNULFFBQVEsRUFBRSxXQUFXO2FBQ3RCOzs7WUFMa0IsVUFBVTs7O3FCQVExQixLQUFLLFNBQUMsU0FBUzt5QkFXZixLQUFLOzJCQUdMLEtBQUs7eUJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7T3ZlcmxheVBhcmVudERpcmVjdGl2ZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMi9saWIvZGlyZWN0aXZlcy9vdmVybGF5L292ZXJsYXktcGFyZW50LmRpcmVjdGl2ZSc7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogXCJbb3ZlcmxheV1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgT3ZlcmxheURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcclxuXHJcbiAgQElucHV0KFwib3ZlcmxheVwiKVxyXG4gIHB1YmxpYyBzZXQgcGFyZW50KHZhbHVlOiBPdmVybGF5UGFyZW50RGlyZWN0aXZlIHwgRWxlbWVudFJlZikge1xyXG4gICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgIHRoaXMuX3BhcmVudCA9IHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudFJlZiA/IHZhbHVlIDogdmFsdWUuZWxlbWVudFJlZjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmICh0aGlzLl9wYXJlbnQpIHtcclxuICAgICAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGtlZXBJblZpZXc6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaW5oZXJpdFdpZHRoOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJpZ2h0QWxpZ246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZjtcclxuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XHJcbiAgcHJpdmF0ZSBfaW50ZXJzZWN0aW9uT2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyO1xyXG4gIHByaXZhdGUgX3BhcmVudDogRWxlbWVudFJlZjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcclxuICApIHtcclxuICAgIHRoaXMuX2VsZW1lbnRSZWYgPSBlbGVtZW50UmVmO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCB0aGlzLmhhbmRsZVNjcm9sbCwgdHJ1ZSk7XHJcbiAgICB0aGlzLl9pbnRlcnNlY3Rpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCk7XHJcbiAgICB0aGlzLl9lbGVtZW50UmVmID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5fcGFyZW50ID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMuX2VsZW1lbnRSZWYgfHwgIXRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHRoaXMuaGFuZGxlU2Nyb2xsLCB0cnVlKTtcclxuICAgIHRoaXMuX2NoZWNrQW5kUGxhY2VFbGVtZW50KCk7XHJcbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcihcclxuICAgICAgICAoZW50cmllcykgPT4ge1xyXG4gICAgICAgICAgdGhpcy5fY2hlY2tBbmRQbGFjZUVsZW1lbnQoKTtcclxuICAgICAgICB9XHJcbiAgICApO1xyXG4gICAgdGhpcy5faW50ZXJzZWN0aW9uT2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoXHJcbiAgICAgICAgKGVudHJpZXM6IEludGVyc2VjdGlvbk9ic2VydmVyRW50cnlbXSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGVudHJpZXMgJiYgZW50cmllcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGlmIChlbnRyaWVzWzBdLmlzSW50ZXJzZWN0aW5nID09PSBmYWxzZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5vcGFjaXR5ID0gMDsgLy8gaGlkZSBjYXVzZSBwYXJlbnQgaXMgbm90IHZpc2libGVcclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUub3BhY2l0eSA9IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9LCB7XHJcbiAgICAgICAgICByb290OiBudWxsXHJcbiAgICAgICAgfVxyXG4gICAgKTtcclxuICAgIHRoaXMuX2ludGVyc2VjdGlvbk9ic2VydmVyLm9ic2VydmUodGhpcy5fcGFyZW50Lm5hdGl2ZUVsZW1lbnQpOyAvLyBvYnNlcnZlIHBhcmVudCBmb3IgdmlzaWJpbGl0eVxyXG4gICAgdGhpcy5fcmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYW5kbGVTY3JvbGwgPSAoZXZlbnQ6IEV2ZW50KSA9PiB7XHJcbiAgICB0aGlzLl9jaGVja0FuZFBsYWNlRWxlbWVudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tBbmRQbGFjZUVsZW1lbnQoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5fZWxlbWVudFJlZiAmJiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5fcGFyZW50ICYmIHRoaXMuX3BhcmVudC5uYXRpdmVFbGVtZW50KSB7XHJcbiAgICAgIGNvbnN0IGVsZW1lbnRSZWN0OiBDbGllbnRSZWN0ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgICBjb25zdCBwYXJlbnRSZWN0OiBDbGllbnRSZWN0ID0gdGhpcy5fcGFyZW50Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICAgIHRoaXMuX3BsYWNlRWxlbWVudCh3aW5kb3cuaW5uZXJIZWlnaHQsIHdpbmRvdy5pbm5lcldpZHRoLCBwYXJlbnRSZWN0LCBlbGVtZW50UmVjdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9wbGFjZUVsZW1lbnQoYm90dG9tOiBudW1iZXIsIHJpZ2h0OiBudW1iZXIsIHBhcmVudFJlY3Q6IENsaWVudFJlY3QsIGVsZW1lbnRSZWN0OiBDbGllbnRSZWN0KTogdm9pZCB7XHJcbiAgICBpZiAoYm90dG9tIDwgcGFyZW50UmVjdC5ib3R0b20gKyBlbGVtZW50UmVjdC5oZWlnaHQpIHsgLy8gbWFrZSBzdXJlIGl0IGZpdHMgYXQgdGhlIGJvdHRvbVxyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gKHBhcmVudFJlY3QudG9wIC0gZWxlbWVudFJlY3QuaGVpZ2h0KSArIFwicHhcIjtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ3RvcCcpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoJ3RvcCcpO1xyXG4gICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUudG9wID0gcGFyZW50UmVjdC5ib3R0b20gKyBcInB4XCI7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5pbmhlcml0V2lkdGgpIHtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gcGFyZW50UmVjdC53aWR0aCArIFwicHhcIjtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLnJpZ2h0QWxpZ24pIHtcclxuICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLmxlZnQgPSAocGFyZW50UmVjdC5yaWdodCAtIGVsZW1lbnRSZWN0LndpZHRoKSArIFwicHhcIjtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gcGFyZW50UmVjdC5sZWZ0ICsgXCJweFwiO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMua2VlcEluVmlldykge1xyXG4gICAgICBpZiAoZWxlbWVudFJlY3QucmlnaHQgPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xyXG4gICAgICAgIC8vc2VlIGlmIHdlIGNhbiBtb3ZlIGl0IHRvIHRoZSBsZWZ0XHJcbiAgICAgICAgaWYgKCh3aW5kb3cuaW5uZXJXaWR0aCAtIGVsZW1lbnRSZWN0LndpZHRoKSA+IDApIHtcclxuICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gKHdpbmRvdy5pbm5lcldpZHRoIC0gZWxlbWVudFJlY3Qud2lkdGgpICsgXCJweFwiO1xyXG4gICAgICAgIH0gZWxzZSB7IC8vcmVzaXplIHNvIGl0IGZpdHMgaW50byB2aWV3XHJcbiAgICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCArIFwicHhcIjtcclxuICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19