@colijnit/relation 12.1.7 → 253.1.1

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 (187) hide show
  1. package/bundles/colijnit-relation.umd.js +4646 -4649
  2. package/bundles/colijnit-relation.umd.js.map +1 -1
  3. package/colijnit-relation.d.ts +21 -21
  4. package/colijnit-relation.metadata.json +1 -1
  5. package/esm2015/colijnit-relation.js +21 -21
  6. package/esm2015/lib/component/base/relation-base.component.js +52 -53
  7. package/esm2015/lib/component/base/relation-loader.component.js +50 -50
  8. package/esm2015/lib/component/base/relation-screen-config-base.component.js +16 -16
  9. package/esm2015/lib/component/relation/relation.component.js +100 -100
  10. package/esm2015/lib/component/relation/relation.module.js +58 -58
  11. package/esm2015/lib/component/relation-address/relation-address.component.js +166 -166
  12. package/esm2015/lib/component/relation-address/relation-address.module.js +24 -24
  13. package/esm2015/lib/component/relation-address-tile/relation-address-tile.component.js +72 -72
  14. package/esm2015/lib/component/relation-address-tile/relation-address-tile.module.js +25 -25
  15. package/esm2015/lib/component/relation-addresses/relation-addresses.component.js +158 -158
  16. package/esm2015/lib/component/relation-addresses/relation-addresses.module.js +31 -31
  17. package/esm2015/lib/component/relation-avatar/relation-avatar.component.js +222 -222
  18. package/esm2015/lib/component/relation-avatar/relation-avatar.module.js +22 -22
  19. package/esm2015/lib/component/relation-contact-options/relation-contact-option-list.component.js +101 -101
  20. package/esm2015/lib/component/relation-contact-options/relation-contact-option.component.js +100 -100
  21. package/esm2015/lib/component/relation-contact-options/relation-contact-options-other-types-popup.component.js +44 -44
  22. package/esm2015/lib/component/relation-contact-options/relation-contact-options.component.js +154 -170
  23. package/esm2015/lib/component/relation-contact-options/relation-contact-options.module.js +34 -35
  24. package/esm2015/lib/component/relation-first-name/relation-first-name.component.js +25 -25
  25. package/esm2015/lib/component/relation-first-name/relation-first-name.module.js +24 -24
  26. package/esm2015/lib/component/relation-gender/relation-gender.component.js +45 -45
  27. package/esm2015/lib/component/relation-gender/relation-gender.module.js +23 -23
  28. package/esm2015/lib/component/relation-initials/relation-initials.component.js +24 -24
  29. package/esm2015/lib/component/relation-initials/relation-initials.module.js +24 -24
  30. package/esm2015/lib/component/relation-language/relation-language.component.js +56 -56
  31. package/esm2015/lib/component/relation-language/relation-language.module.js +24 -24
  32. package/esm2015/lib/component/relation-last-name/relation-last-name.component.js +23 -23
  33. package/esm2015/lib/component/relation-last-name/relation-last-name.module.js +24 -24
  34. package/esm2015/lib/component/relation-preferences/relation-preferences.component.js +69 -69
  35. package/esm2015/lib/component/relation-preferences/relation-preferences.module.js +23 -23
  36. package/esm2015/lib/component/relation-prefix-name/relation-prefix-name.component.js +24 -24
  37. package/esm2015/lib/component/relation-prefix-name/relation-prefix-name.module.js +24 -24
  38. package/esm2015/lib/component/relation-title/relation-title.component.js +56 -56
  39. package/esm2015/lib/component/relation-title/relation-title.module.js +24 -24
  40. package/esm2015/lib/enum/icon.enum.js +15 -15
  41. package/esm2015/lib/enum/language-code.enum.js +8 -8
  42. package/esm2015/lib/enum/relman-cfg-name.enum.js +862 -862
  43. package/esm2015/lib/enum/relman-contact-options-cfg-names.js +2 -2
  44. package/esm2015/lib/enum/relman-sub-category.enum.js +13 -13
  45. package/esm2015/lib/interface/relation-address-cfg-names.interface.js +2 -2
  46. package/esm2015/lib/model/icon-svg.js +14 -14
  47. package/esm2015/lib/model/relation-settings-options.js +7 -7
  48. package/esm2015/lib/model/relation-settings.js +9 -9
  49. package/esm2015/lib/relation-version.js +10 -10
  50. package/esm2015/lib/res/dictionary/dictionaries.js +8 -8
  51. package/esm2015/lib/service/dictionary.service.js +68 -68
  52. package/esm2015/lib/service/error.service.js +75 -75
  53. package/esm2015/lib/service/icon-cache.service.js +51 -51
  54. package/esm2015/lib/service/relation-base.service.js +268 -268
  55. package/esm2015/lib/service/relation-connector-adapter.service.js +401 -401
  56. package/esm2015/lib/service/relation-connector.service.js +155 -155
  57. package/esm2015/lib/service/relation-event.service.js +16 -16
  58. package/esm2015/lib/service/relation-screen-configuration.service.js +51 -51
  59. package/esm2015/lib/service/relation-settings.service.js +65 -65
  60. package/esm2015/lib/service/relation.service.js +42 -42
  61. package/esm2015/lib/translation/relation-dictionary.service.js +77 -77
  62. package/esm2015/lib/translation/relation-localize.pipe.js +26 -26
  63. package/esm2015/lib/translation/relation-translation.module.js +29 -29
  64. package/esm2015/lib/translation/relation-translation.service.js +17 -17
  65. package/esm2015/public_api.js +33 -33
  66. package/fesm2015/colijnit-relation.js +3821 -3839
  67. package/fesm2015/colijnit-relation.js.map +1 -1
  68. package/lib/component/base/relation-base.component.d.ts +24 -24
  69. package/lib/component/base/relation-loader.component.d.ts +12 -12
  70. package/lib/component/base/relation-screen-config-base.component.d.ts +14 -14
  71. package/lib/component/relation/relation.component.d.ts +21 -21
  72. package/lib/component/relation/relation.module.d.ts +2 -2
  73. package/lib/component/relation/style/_layout.scss +46 -46
  74. package/lib/component/relation/style/_material-definition.scss +15 -15
  75. package/lib/component/relation/style/_theme.scss +12 -12
  76. package/lib/component/relation/style/material.scss +4 -4
  77. package/lib/component/relation-address/relation-address.component.d.ts +35 -35
  78. package/lib/component/relation-address/relation-address.module.d.ts +2 -2
  79. package/lib/component/relation-address/style/_layout.scss +16 -16
  80. package/lib/component/relation-address/style/_material-definition.scss +5 -5
  81. package/lib/component/relation-address/style/_theme.scss +5 -5
  82. package/lib/component/relation-address/style/material.scss +4 -4
  83. package/lib/component/relation-address-tile/relation-address-tile.component.d.ts +19 -19
  84. package/lib/component/relation-address-tile/relation-address-tile.module.d.ts +2 -2
  85. package/lib/component/relation-address-tile/style/_layout.scss +46 -46
  86. package/lib/component/relation-address-tile/style/_material-definition.scss +18 -18
  87. package/lib/component/relation-address-tile/style/_theme.scss +19 -19
  88. package/lib/component/relation-address-tile/style/material.scss +4 -4
  89. package/lib/component/relation-addresses/relation-addresses.component.d.ts +31 -31
  90. package/lib/component/relation-addresses/relation-addresses.module.d.ts +2 -2
  91. package/lib/component/relation-addresses/style/_layout.scss +26 -26
  92. package/lib/component/relation-addresses/style/_material-definition.scss +12 -12
  93. package/lib/component/relation-addresses/style/_theme.scss +20 -20
  94. package/lib/component/relation-addresses/style/material.scss +4 -4
  95. package/lib/component/relation-avatar/relation-avatar.component.d.ts +47 -47
  96. package/lib/component/relation-avatar/relation-avatar.module.d.ts +2 -2
  97. package/lib/component/relation-avatar/style/_layout.scss +44 -44
  98. package/lib/component/relation-avatar/style/_material-definition.scss +4 -4
  99. package/lib/component/relation-avatar/style/_theme.scss +9 -9
  100. package/lib/component/relation-avatar/style/material.scss +4 -4
  101. package/lib/component/relation-contact-options/relation-contact-option-list.component.d.ts +22 -22
  102. package/lib/component/relation-contact-options/relation-contact-option.component.d.ts +30 -30
  103. package/lib/component/relation-contact-options/relation-contact-options-other-types-popup.component.d.ts +22 -22
  104. package/lib/component/relation-contact-options/relation-contact-options.component.d.ts +40 -43
  105. package/lib/component/relation-contact-options/relation-contact-options.module.d.ts +2 -2
  106. package/lib/component/relation-contact-options/style/_layout.scss +113 -153
  107. package/lib/component/relation-contact-options/style/_material-definition.scss +35 -47
  108. package/lib/component/relation-contact-options/style/_theme.scss +48 -64
  109. package/lib/component/relation-contact-options/style/material.scss +4 -4
  110. package/lib/component/relation-first-name/relation-first-name.component.d.ts +4 -4
  111. package/lib/component/relation-first-name/relation-first-name.module.d.ts +2 -2
  112. package/lib/component/relation-first-name/style/_layout.scss +9 -9
  113. package/lib/component/relation-first-name/style/_material-definition.scss +3 -3
  114. package/lib/component/relation-first-name/style/_theme.scss +5 -5
  115. package/lib/component/relation-first-name/style/material.scss +4 -4
  116. package/lib/component/relation-gender/relation-gender.component.d.ts +7 -7
  117. package/lib/component/relation-gender/relation-gender.module.d.ts +2 -2
  118. package/lib/component/relation-gender/style/_layout.scss +8 -8
  119. package/lib/component/relation-gender/style/_material-definition.scss +4 -4
  120. package/lib/component/relation-gender/style/_theme.scss +5 -5
  121. package/lib/component/relation-gender/style/material.scss +4 -4
  122. package/lib/component/relation-initials/relation-initials.component.d.ts +4 -4
  123. package/lib/component/relation-initials/relation-initials.module.d.ts +2 -2
  124. package/lib/component/relation-initials/style/_layout.scss +9 -9
  125. package/lib/component/relation-initials/style/_material-definition.scss +3 -3
  126. package/lib/component/relation-initials/style/_theme.scss +5 -5
  127. package/lib/component/relation-initials/style/material.scss +4 -4
  128. package/lib/component/relation-language/relation-language.component.d.ts +12 -12
  129. package/lib/component/relation-language/relation-language.module.d.ts +2 -2
  130. package/lib/component/relation-language/style/_layout.scss +9 -9
  131. package/lib/component/relation-language/style/_material-definition.scss +3 -3
  132. package/lib/component/relation-language/style/_theme.scss +5 -5
  133. package/lib/component/relation-language/style/material.scss +4 -4
  134. package/lib/component/relation-last-name/relation-last-name.component.d.ts +4 -4
  135. package/lib/component/relation-last-name/relation-last-name.module.d.ts +2 -2
  136. package/lib/component/relation-last-name/style/_layout.scss +9 -9
  137. package/lib/component/relation-last-name/style/_material-definition.scss +3 -3
  138. package/lib/component/relation-last-name/style/_theme.scss +5 -5
  139. package/lib/component/relation-last-name/style/material.scss +4 -4
  140. package/lib/component/relation-preferences/relation-preferences.component.d.ts +13 -13
  141. package/lib/component/relation-preferences/relation-preferences.module.d.ts +2 -2
  142. package/lib/component/relation-preferences/style/_layout.scss +16 -16
  143. package/lib/component/relation-preferences/style/_material-definition.scss +8 -8
  144. package/lib/component/relation-preferences/style/_theme.scss +5 -5
  145. package/lib/component/relation-preferences/style/material.scss +4 -4
  146. package/lib/component/relation-prefix-name/relation-prefix-name.component.d.ts +4 -4
  147. package/lib/component/relation-prefix-name/relation-prefix-name.module.d.ts +2 -2
  148. package/lib/component/relation-prefix-name/style/_layout.scss +9 -9
  149. package/lib/component/relation-prefix-name/style/_material-definition.scss +3 -3
  150. package/lib/component/relation-prefix-name/style/_theme.scss +5 -5
  151. package/lib/component/relation-prefix-name/style/material.scss +4 -4
  152. package/lib/component/relation-title/relation-title.component.d.ts +13 -13
  153. package/lib/component/relation-title/relation-title.module.d.ts +2 -2
  154. package/lib/component/relation-title/style/_layout.scss +9 -9
  155. package/lib/component/relation-title/style/_material-definition.scss +3 -3
  156. package/lib/component/relation-title/style/_theme.scss +5 -5
  157. package/lib/component/relation-title/style/material.scss +4 -4
  158. package/lib/enum/icon.enum.d.ts +14 -14
  159. package/lib/enum/language-code.enum.d.ts +6 -6
  160. package/lib/enum/relman-cfg-name.enum.d.ts +857 -857
  161. package/lib/enum/relman-contact-options-cfg-names.d.ts +6 -6
  162. package/lib/enum/relman-sub-category.enum.d.ts +10 -10
  163. package/lib/interface/relation-address-cfg-names.interface.d.ts +8 -8
  164. package/lib/model/icon-svg.d.ts +4 -4
  165. package/lib/model/relation-settings-options.d.ts +4 -4
  166. package/lib/model/relation-settings.d.ts +5 -5
  167. package/lib/relation-version.d.ts +6 -6
  168. package/lib/res/dictionary/dictionaries.d.ts +17184 -17184
  169. package/lib/service/dictionary.service.d.ts +18 -18
  170. package/lib/service/error.service.d.ts +11 -11
  171. package/lib/service/icon-cache.service.d.ts +18 -18
  172. package/lib/service/relation-base.service.d.ts +64 -64
  173. package/lib/service/relation-connector-adapter.service.d.ts +66 -66
  174. package/lib/service/relation-connector.service.d.ts +51 -51
  175. package/lib/service/relation-event.service.d.ts +6 -6
  176. package/lib/service/relation-screen-configuration.service.d.ts +13 -13
  177. package/lib/service/relation-settings.service.d.ts +16 -16
  178. package/lib/service/relation.service.d.ts +10 -10
  179. package/lib/style/_mixin.scss +15 -15
  180. package/lib/style/_variables.scss +15 -15
  181. package/lib/style/relation-globals.scss +7 -7
  182. package/lib/translation/relation-dictionary.service.d.ts +19 -19
  183. package/lib/translation/relation-localize.pipe.d.ts +7 -7
  184. package/lib/translation/relation-translation.module.d.ts +4 -4
  185. package/lib/translation/relation-translation.service.d.ts +6 -6
  186. package/package.json +7 -6
  187. package/public_api.d.ts +32 -32
@@ -1,72 +1,72 @@
1
- import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
2
- import { Icon } from '../../enum/icon.enum';
3
- import { IconCacheService } from '../../service/icon-cache.service';
4
- export class RelationAddressTileComponent {
5
- constructor(iconCacheService) {
6
- this.iconCacheService = iconCacheService;
7
- this.icons = Icon;
8
- this.showClass = true;
9
- this.readonly = false;
10
- this.selected = false;
11
- this.actAsAddTile = false;
12
- this.selectedChange = new EventEmitter();
13
- this.addAddressClicked = new EventEmitter();
14
- this.editAddressClicked = new EventEmitter();
15
- }
16
- handleEditAddressClick(event) {
17
- event.preventDefault();
18
- event.stopPropagation();
19
- event.stopImmediatePropagation();
20
- this.editAddressClicked.next(this.address);
21
- }
22
- handleSelectedChange(address) {
23
- if (!this.readonly) {
24
- this.selected = true;
25
- this.selectedChange.emit(address);
26
- }
27
- }
28
- }
29
- RelationAddressTileComponent.decorators = [
30
- { type: Component, args: [{
31
- selector: "co-relation-address-tile",
32
- template: `
33
- <ng-container *ngIf="!actAsAddTile">
34
- <co-tile-select [selected]="selected" [readonly]="readonly" (selectedChange)="handleSelectedChange(address)">
35
- <div class="relation-content-wrapper">
36
- <span class="relation-address-type" [textContent]="address.displayType | reLocalize"></span>
37
- <span class="relation-address-name" [textContent]="address.addressName"></span>
38
- <span class="relation-address-address" [textContent]="address.displayAddress"></span>
39
- <span class="relation-address-postal" [textContent]="address.displayPostal"></span>
40
- <span class="relation-address-country" [textContent]="address.displayCountry"></span>
41
- </div>
42
- <div class="relation-address-edit" (click)="handleEditAddressClick($event)">
43
- <co-icon class="relation-address-edit-icon" [iconData]="iconCacheService.getIcon(icons.PencilRoundOpen)"></co-icon>
44
- </div>
45
- </co-tile-select>
46
- </ng-container>
47
- <ng-container *ngIf="actAsAddTile && !readonly">
48
- <co-tile (click)="addAddressClicked.emit()">
49
- <div class="relation-content-wrapper">
50
- <co-icon class="relation-address-icon" [iconData]="iconCacheService.getIcon(icons.PlusSimple)"></co-icon>
51
- <span [textContent]="'ADDRESS_ADD' | reLocalize"></span>
52
- </div>
53
- </co-tile>
54
- </ng-container>
55
- `,
56
- encapsulation: ViewEncapsulation.None
57
- },] }
58
- ];
59
- RelationAddressTileComponent.ctorParameters = () => [
60
- { type: IconCacheService }
61
- ];
62
- RelationAddressTileComponent.propDecorators = {
63
- showClass: [{ type: HostBinding, args: ["class.co-relation-address-tile",] }],
64
- address: [{ type: Input }],
65
- readonly: [{ type: Input }],
66
- selected: [{ type: Input }],
67
- actAsAddTile: [{ type: Input }],
68
- selectedChange: [{ type: Output }],
69
- addAddressClicked: [{ type: Output }],
70
- editAddressClicked: [{ type: Output }]
71
- };
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzcy10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlbGF0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uLWFkZHJlc3MtdGlsZS9yZWxhdGlvbi1hZGRyZXNzLXRpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQThCbEUsTUFBTSxPQUFPLDRCQUE0QjtJQTJCdkMsWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUExQnJDLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBR25DLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFNMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLG1CQUFjLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHcEUsc0JBQWlCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHakUsdUJBQWtCLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7SUFHL0UsQ0FBQztJQUVNLHNCQUFzQixDQUFDLEtBQWlCO1FBQzdDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWdCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7O1lBdEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUE3Qk8sZ0JBQWdCOzs7d0JBaUNyQixXQUFXLFNBQUMsZ0NBQWdDO3NCQUc1QyxLQUFLO3VCQUdMLEtBQUs7dUJBR0wsS0FBSzsyQkFHTCxLQUFLOzZCQUdMLE1BQU07Z0NBR04sTUFBTTtpQ0FHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xuaW1wb3J0IHtJY29ufSBmcm9tICcuLi8uLi9lbnVtL2ljb24uZW51bSc7XG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcImNvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZVwiLFxuICB0ZW1wbGF0ZTogYFxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFhY3RBc0FkZFRpbGVcIj5cbiAgICAgICAgICA8Y28tdGlsZS1zZWxlY3QgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKHNlbGVjdGVkQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkQ2hhbmdlKGFkZHJlc3MpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy10eXBlXCIgW3RleHRDb250ZW50XT1cImFkZHJlc3MuZGlzcGxheVR5cGUgfCByZUxvY2FsaXplXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLW5hbWVcIiBbdGV4dENvbnRlbnRdPVwiYWRkcmVzcy5hZGRyZXNzTmFtZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1hZGRyZXNzXCIgW3RleHRDb250ZW50XT1cImFkZHJlc3MuZGlzcGxheUFkZHJlc3NcIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbGF0aW9uLWFkZHJlc3MtcG9zdGFsXCIgW3RleHRDb250ZW50XT1cImFkZHJlc3MuZGlzcGxheVBvc3RhbFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1jb3VudHJ5XCIgW3RleHRDb250ZW50XT1cImFkZHJlc3MuZGlzcGxheUNvdW50cnlcIj48L3NwYW4+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1lZGl0XCIgKGNsaWNrKT1cImhhbmRsZUVkaXRBZGRyZXNzQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLWVkaXQtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUGVuY2lsUm91bmRPcGVuKVwiPjwvY28taWNvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9jby10aWxlLXNlbGVjdD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdEFzQWRkVGlsZSAmJiAhcmVhZG9ubHlcIj5cbiAgICAgICAgICA8Y28tdGlsZSAoY2xpY2spPVwiYWRkQWRkcmVzc0NsaWNrZWQuZW1pdCgpXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1jb250ZW50LXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5QbHVzU2ltcGxlKVwiPjwvY28taWNvbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIFt0ZXh0Q29udGVudF09XCInQUREUkVTU19BREQnIHwgcmVMb2NhbGl6ZVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9jby10aWxlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gIGAsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUmVsYXRpb25BZGRyZXNzVGlsZUNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBpY29uczogdHlwZW9mIEljb24gPSBJY29uO1xuXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZVwiKVxuICBwdWJsaWMgc2hvd0NsYXNzOiBib29sZWFuID0gdHJ1ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWRkcmVzczogQWRkcmVzcztcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYWN0QXNBZGRUaWxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZENoYW5nZTogRXZlbnRFbWl0dGVyPEFkZHJlc3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxBZGRyZXNzPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYWRkQWRkcmVzc0NsaWNrZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGVkaXRBZGRyZXNzQ2xpY2tlZDogRXZlbnRFbWl0dGVyPEFkZHJlc3M+ID0gbmV3IEV2ZW50RW1pdHRlcjxBZGRyZXNzPigpO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlRWRpdEFkZHJlc3NDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5lZGl0QWRkcmVzc0NsaWNrZWQubmV4dCh0aGlzLmFkZHJlc3MpO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZVNlbGVjdGVkQ2hhbmdlKGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xuICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KGFkZHJlc3MpO1xuICAgIH1cbiAgfVxufVxuIl19
1
+ import { Component, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';
2
+ import { Icon } from '../../enum/icon.enum';
3
+ import { IconCacheService } from '../../service/icon-cache.service';
4
+ export class RelationAddressTileComponent {
5
+ constructor(iconCacheService) {
6
+ this.iconCacheService = iconCacheService;
7
+ this.icons = Icon;
8
+ this.showClass = true;
9
+ this.readonly = false;
10
+ this.selected = false;
11
+ this.actAsAddTile = false;
12
+ this.selectedChange = new EventEmitter();
13
+ this.addAddressClicked = new EventEmitter();
14
+ this.editAddressClicked = new EventEmitter();
15
+ }
16
+ handleEditAddressClick(event) {
17
+ event.preventDefault();
18
+ event.stopPropagation();
19
+ event.stopImmediatePropagation();
20
+ this.editAddressClicked.next(this.address);
21
+ }
22
+ handleSelectedChange(address) {
23
+ if (!this.readonly) {
24
+ this.selected = true;
25
+ this.selectedChange.emit(address);
26
+ }
27
+ }
28
+ }
29
+ RelationAddressTileComponent.decorators = [
30
+ { type: Component, args: [{
31
+ selector: "co-relation-address-tile",
32
+ template: `
33
+ <ng-container *ngIf="!actAsAddTile">
34
+ <co-tile-select [selected]="selected" [readonly]="readonly" (selectedChange)="handleSelectedChange(address)">
35
+ <div class="relation-content-wrapper">
36
+ <span class="relation-address-type" [textContent]="address.displayType | reLocalize"></span>
37
+ <span class="relation-address-name" [textContent]="address.addressName"></span>
38
+ <span class="relation-address-address" [textContent]="address.displayAddress"></span>
39
+ <span class="relation-address-postal" [textContent]="address.displayPostal"></span>
40
+ <span class="relation-address-country" [textContent]="address.displayCountry"></span>
41
+ </div>
42
+ <div class="relation-address-edit" (click)="handleEditAddressClick($event)">
43
+ <co-icon class="relation-address-edit-icon" [iconData]="iconCacheService.getIcon(icons.PencilRoundOpen)"></co-icon>
44
+ </div>
45
+ </co-tile-select>
46
+ </ng-container>
47
+ <ng-container *ngIf="actAsAddTile && !readonly">
48
+ <co-tile (click)="addAddressClicked.emit()">
49
+ <div class="relation-content-wrapper">
50
+ <co-icon class="relation-address-icon" [iconData]="iconCacheService.getIcon(icons.PlusSimple)"></co-icon>
51
+ <span [textContent]="'ADDRESS_ADD' | reLocalize"></span>
52
+ </div>
53
+ </co-tile>
54
+ </ng-container>
55
+ `,
56
+ encapsulation: ViewEncapsulation.None
57
+ },] }
58
+ ];
59
+ RelationAddressTileComponent.ctorParameters = () => [
60
+ { type: IconCacheService }
61
+ ];
62
+ RelationAddressTileComponent.propDecorators = {
63
+ showClass: [{ type: HostBinding, args: ["class.co-relation-address-tile",] }],
64
+ address: [{ type: Input }],
65
+ readonly: [{ type: Input }],
66
+ selected: [{ type: Input }],
67
+ actAsAddTile: [{ type: Input }],
68
+ selectedChange: [{ type: Output }],
69
+ addAddressClicked: [{ type: Output }],
70
+ editAddressClicked: [{ type: Output }]
71
+ };
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzcy10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlbGF0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uLWFkZHJlc3MtdGlsZS9yZWxhdGlvbi1hZGRyZXNzLXRpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQThCbEUsTUFBTSxPQUFPLDRCQUE0QjtJQTJCdkMsWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUExQnJDLFVBQUssR0FBZ0IsSUFBSSxDQUFDO1FBR25DLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFNMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUcxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBRzFCLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRzlCLG1CQUFjLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7UUFHcEUsc0JBQWlCLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFHakUsdUJBQWtCLEdBQTBCLElBQUksWUFBWSxFQUFXLENBQUM7SUFHL0UsQ0FBQztJQUVNLHNCQUFzQixDQUFDLEtBQWlCO1FBQzdDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN2QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE9BQWdCO1FBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7O1lBdEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsMEJBQTBCO2dCQUNwQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJUO2dCQUNELGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO2FBQ3RDOzs7WUE3Qk8sZ0JBQWdCOzs7d0JBaUNyQixXQUFXLFNBQUMsZ0NBQWdDO3NCQUc1QyxLQUFLO3VCQUdMLEtBQUs7dUJBR0wsS0FBSzsyQkFHTCxLQUFLOzZCQUdMLE1BQU07Z0NBR04sTUFBTTtpQ0FHTixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtBZGRyZXNzfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvbW9kZWwvYWRkcmVzcy5ibyc7XHJcbmltcG9ydCB7SWNvbn0gZnJvbSAnLi4vLi4vZW51bS9pY29uLmVudW0nO1xyXG5pbXBvcnQge0ljb25DYWNoZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvaWNvbi1jYWNoZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImNvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZVwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYWN0QXNBZGRUaWxlXCI+XHJcbiAgICAgICAgICA8Y28tdGlsZS1zZWxlY3QgW3NlbGVjdGVkXT1cInNlbGVjdGVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIgKHNlbGVjdGVkQ2hhbmdlKT1cImhhbmRsZVNlbGVjdGVkQ2hhbmdlKGFkZHJlc3MpXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aW9uLWNvbnRlbnQtd3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlbGF0aW9uLWFkZHJlc3MtdHlwZVwiIFt0ZXh0Q29udGVudF09XCJhZGRyZXNzLmRpc3BsYXlUeXBlIHwgcmVMb2NhbGl6ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLW5hbWVcIiBbdGV4dENvbnRlbnRdPVwiYWRkcmVzcy5hZGRyZXNzTmFtZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLWFkZHJlc3NcIiBbdGV4dENvbnRlbnRdPVwiYWRkcmVzcy5kaXNwbGF5QWRkcmVzc1wiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLXBvc3RhbFwiIFt0ZXh0Q29udGVudF09XCJhZGRyZXNzLmRpc3BsYXlQb3N0YWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1jb3VudHJ5XCIgW3RleHRDb250ZW50XT1cImFkZHJlc3MuZGlzcGxheUNvdW50cnlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aW9uLWFkZHJlc3MtZWRpdFwiIChjbGljayk9XCJoYW5kbGVFZGl0QWRkcmVzc0NsaWNrKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLWVkaXQtaWNvblwiIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuUGVuY2lsUm91bmRPcGVuKVwiPjwvY28taWNvbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvY28tdGlsZS1zZWxlY3Q+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0QXNBZGRUaWxlICYmICFyZWFkb25seVwiPlxyXG4gICAgICAgICAgPGNvLXRpbGUgKGNsaWNrKT1cImFkZEFkZHJlc3NDbGlja2VkLmVtaXQoKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1jb250ZW50LXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLlBsdXNTaW1wbGUpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBbdGV4dENvbnRlbnRdPVwiJ0FERFJFU1NfQUREJyB8IHJlTG9jYWxpemVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2NvLXRpbGU+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gIGAsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25BZGRyZXNzVGlsZUNvbXBvbmVudCB7XHJcbiAgcHVibGljIHJlYWRvbmx5IGljb25zOiB0eXBlb2YgSWNvbiA9IEljb247XHJcblxyXG4gIEBIb3N0QmluZGluZyhcImNsYXNzLmNvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZVwiKVxyXG4gIHB1YmxpYyBzaG93Q2xhc3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhZGRyZXNzOiBBZGRyZXNzO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzZWxlY3RlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhY3RBc0FkZFRpbGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIHNlbGVjdGVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QWRkcmVzcz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFkZHJlc3M+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBhZGRBZGRyZXNzQ2xpY2tlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgZWRpdEFkZHJlc3NDbGlja2VkOiBFdmVudEVtaXR0ZXI8QWRkcmVzcz4gPSBuZXcgRXZlbnRFbWl0dGVyPEFkZHJlc3M+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRWRpdEFkZHJlc3NDbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLmVkaXRBZGRyZXNzQ2xpY2tlZC5uZXh0KHRoaXMuYWRkcmVzcyk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlU2VsZWN0ZWRDaGFuZ2UoYWRkcmVzczogQWRkcmVzcyk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkQ2hhbmdlLmVtaXQoYWRkcmVzcyk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,25 +1,25 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { RelationAddressTileComponent } from './relation-address-tile.component';
4
- import { IconModule, TileModule, TileSelectModule } from '@colijnit/corecomponents_v12';
5
- import { RelationTranslationModule } from '../../translation/relation-translation.module';
6
- export class RelationAddressTileModule {
7
- }
8
- RelationAddressTileModule.decorators = [
9
- { type: NgModule, args: [{
10
- imports: [
11
- CommonModule,
12
- TileModule,
13
- RelationTranslationModule,
14
- IconModule,
15
- TileSelectModule
16
- ],
17
- declarations: [
18
- RelationAddressTileComponent
19
- ],
20
- exports: [
21
- RelationAddressTileComponent
22
- ]
23
- },] }
24
- ];
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzcy10aWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlbGF0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uLWFkZHJlc3MtdGlsZS9yZWxhdGlvbi1hZGRyZXNzLXRpbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFpQnhGLE1BQU0sT0FBTyx5QkFBeUI7OztZQWZyQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtvQkFDVix5QkFBeUI7b0JBQ3pCLFVBQVU7b0JBQ1YsZ0JBQWdCO2lCQUNqQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osNEJBQTRCO2lCQUM3QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsNEJBQTRCO2lCQUM3QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UmVsYXRpb25BZGRyZXNzVGlsZUNvbXBvbmVudH0gZnJvbSAnLi9yZWxhdGlvbi1hZGRyZXNzLXRpbGUuY29tcG9uZW50JztcbmltcG9ydCB7SWNvbk1vZHVsZSwgVGlsZU1vZHVsZSwgVGlsZVNlbGVjdE1vZHVsZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XG5pbXBvcnQge1JlbGF0aW9uVHJhbnNsYXRpb25Nb2R1bGV9IGZyb20gJy4uLy4uL3RyYW5zbGF0aW9uL3JlbGF0aW9uLXRyYW5zbGF0aW9uLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVGlsZU1vZHVsZSxcbiAgICBSZWxhdGlvblRyYW5zbGF0aW9uTW9kdWxlLFxuICAgIEljb25Nb2R1bGUsXG4gICAgVGlsZVNlbGVjdE1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBSZWxhdGlvbkFkZHJlc3NUaWxlQ29tcG9uZW50XG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBSZWxhdGlvbkFkZHJlc3NUaWxlQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmVsYXRpb25BZGRyZXNzVGlsZU1vZHVsZSB7XG59XG4iXX0=
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { RelationAddressTileComponent } from './relation-address-tile.component';
4
+ import { IconModule, TileModule, TileSelectModule } from '@colijnit/corecomponents_v12';
5
+ import { RelationTranslationModule } from '../../translation/relation-translation.module';
6
+ export class RelationAddressTileModule {
7
+ }
8
+ RelationAddressTileModule.decorators = [
9
+ { type: NgModule, args: [{
10
+ imports: [
11
+ CommonModule,
12
+ TileModule,
13
+ RelationTranslationModule,
14
+ IconModule,
15
+ TileSelectModule
16
+ ],
17
+ declarations: [
18
+ RelationAddressTileComponent
19
+ ],
20
+ exports: [
21
+ RelationAddressTileComponent
22
+ ]
23
+ },] }
24
+ ];
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzcy10aWxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlbGF0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uLWFkZHJlc3MtdGlsZS9yZWxhdGlvbi1hZGRyZXNzLXRpbGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxVQUFVLEVBQUUsVUFBVSxFQUFFLGdCQUFnQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDdEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFpQnhGLE1BQU0sT0FBTyx5QkFBeUI7OztZQWZyQyxRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osVUFBVTtvQkFDVix5QkFBeUI7b0JBQ3pCLFVBQVU7b0JBQ1YsZ0JBQWdCO2lCQUNqQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osNEJBQTRCO2lCQUM3QjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsNEJBQTRCO2lCQUM3QjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1JlbGF0aW9uQWRkcmVzc1RpbGVDb21wb25lbnR9IGZyb20gJy4vcmVsYXRpb24tYWRkcmVzcy10aWxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7SWNvbk1vZHVsZSwgVGlsZU1vZHVsZSwgVGlsZVNlbGVjdE1vZHVsZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XHJcbmltcG9ydCB7UmVsYXRpb25UcmFuc2xhdGlvbk1vZHVsZX0gZnJvbSAnLi4vLi4vdHJhbnNsYXRpb24vcmVsYXRpb24tdHJhbnNsYXRpb24ubW9kdWxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgVGlsZU1vZHVsZSxcclxuICAgIFJlbGF0aW9uVHJhbnNsYXRpb25Nb2R1bGUsXHJcbiAgICBJY29uTW9kdWxlLFxyXG4gICAgVGlsZVNlbGVjdE1vZHVsZVxyXG4gIF0sXHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBSZWxhdGlvbkFkZHJlc3NUaWxlQ29tcG9uZW50XHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBSZWxhdGlvbkFkZHJlc3NUaWxlQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmVsYXRpb25BZGRyZXNzVGlsZU1vZHVsZSB7XHJcbn1cclxuIl19
@@ -1,158 +1,158 @@
1
- import { __awaiter } from "tslib";
2
- import { Component, HostBinding, ViewEncapsulation } from '@angular/core';
3
- import { Address } from '@colijnit/relationapi/build/model/address.bo';
4
- import { AddressType } from '@colijnit/relationapi/build/enum/address-type.enum';
5
- import { RelationScreenConfigBaseComponent } from '../base/relation-screen-config-base.component';
6
- import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/service/business-object-factory';
7
- import { FormMasterService } from '@colijnit/corecomponents_v12';
8
- import { RelationService } from '../../service/relation.service';
9
- import { IconCacheService } from '../../service/icon-cache.service';
10
- import { RelationConnectorService } from '../../service/relation-connector.service';
11
- import { RelationEventService } from '../../service/relation-event.service';
12
- export class RelationAddressesComponent extends RelationScreenConfigBaseComponent {
13
- constructor(relationService, iconCacheService, relationConnectorService, relationEventService, _formMasterService) {
14
- super(relationService, iconCacheService, relationConnectorService, relationEventService);
15
- this.relationService = relationService;
16
- this.iconCacheService = iconCacheService;
17
- this.relationConnectorService = relationConnectorService;
18
- this.relationEventService = relationEventService;
19
- this._formMasterService = _formMasterService;
20
- this.addressType = AddressType;
21
- this.deliveryAddresses = [];
22
- this.invoiceAddresses = [];
23
- this.showEditAddressDialog = false;
24
- this._boFactory = new BusinessObjectFactory();
25
- }
26
- showClass() {
27
- return true;
28
- }
29
- submitForm() {
30
- if (this._formMasterService.submitSlaves()) {
31
- this.saveAddress(this.addressToEdit);
32
- }
33
- }
34
- saveAddress(address) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- address.relationId = this.relation.relationId;
37
- if (!address.nawNr) { // new address
38
- address.startDate = new Date();
39
- address.sequence = this.relation.getNextAddressSequence();
40
- const savedAddress = yield this.relationService.insertAddress(address);
41
- this.relation.addresses.push(savedAddress);
42
- this.changeAddress(savedAddress);
43
- }
44
- else {
45
- const savedAddress = yield this.relationService.updateAddress(address);
46
- const idx = this.relation.addresses.findIndex(a => a.nawNr === address.nawNr);
47
- if (idx > -1) {
48
- this.relation.addresses[idx] = savedAddress;
49
- }
50
- }
51
- this.relationChange.next(this.relation);
52
- this._setAddresses();
53
- this.showEditAddressDialog = false;
54
- });
55
- }
56
- changeAddress(address) {
57
- if (address && !this.readonly) {
58
- // this.selectedNawNr = address.nawNr;
59
- // this.selectedNawNrChange.emit(this.selectedNawNr);
60
- }
61
- }
62
- showNewAddressDialog(type) {
63
- this.addressToEdit = new Address();
64
- this.addressToEdit.addressType = type;
65
- this.showEditAddressDialog = true;
66
- }
67
- editAddress(addr) {
68
- if (!this.readonly) {
69
- this.addressToEdit = this._boFactory.makeWithRawBackendData(Address, addr);
70
- this.showEditAddressDialog = true;
71
- }
72
- }
73
- relationSet() {
74
- this._setAddresses();
75
- }
76
- _setAddresses() {
77
- this.deliveryAddresses = this.relation.addresses.filter(a => a.isActive && a.addressType === AddressType.DeliveryAddress);
78
- this.invoiceAddresses = this.relation.addresses.filter(a => a.isActive && a.addressType === AddressType.BillingAddress);
79
- }
80
- }
81
- RelationAddressesComponent.decorators = [
82
- { type: Component, args: [{
83
- selector: 'co-relation-addresses',
84
- template: `
85
- <div class="relation-addresses-label" [textContent]="'DELIVERY_ADDRESS' | reLocalize"></div>
86
- <co-carousel *ngIf="deliveryAddresses && deliveryAddresses.length > 0">
87
- <co-relation-address-tile #carouselItem *ngFor="let address of deliveryAddresses; let index = index"
88
- [address]="address"
89
- [readonly]="readonly"
90
- [selected]="address.sequence === 0"
91
- (editAddressClicked)="editAddress($event)"
92
- (selectedChange)="changeAddress($event)"
93
- ></co-relation-address-tile>
94
- </co-carousel>
95
- <div class="default-data-row" *ngIf="!readonly">
96
- <div class="relation-address-new" (click)="showNewAddressDialog(addressType.DeliveryAddress)">
97
- <co-icon class="relation-address-icon" [iconData]="iconCacheService.getIcon(icons.ArrowPointRight)"></co-icon>
98
- <div [textContent]="'ADDRESS_ADD' | reLocalize"></div>
99
- </div>
100
- </div>
101
- <div class="relation-addresses-label" [textContent]="'INVOICE_ADDRESS' | reLocalize"></div>
102
- <co-carousel *ngIf="invoiceAddresses && invoiceAddresses.length > 0">
103
- <co-relation-address-tile #carouselItem *ngFor="let address of invoiceAddresses; let index = index"
104
- [address]="address"
105
- [readonly]="readonly"
106
- [selected]="selectedNawNr === address.nawNr"
107
- (editAddressClicked)="editAddress($event)"
108
- (selectedChange)="changeAddress($event)"
109
- ></co-relation-address-tile>
110
- </co-carousel>
111
- <div class="default-data-row" *ngIf="!readonly">
112
- <div class="relation-address-new" (click)="showNewAddressDialog(addressType.BillingAddress)">
113
- <co-icon class="relation-address-icon" [iconData]="iconCacheService.getIcon(icons.ArrowPointRight)"></co-icon>
114
- <div [textContent]="'ADDRESS_ADD' | reLocalize"></div>
115
- </div>
116
- </div>
117
- <co-dialog class="dialog-relation-addresses-create-address" *ngIf="showEditAddressDialog"
118
- [footerTemplate]="templateFooter"
119
- [headerTemplate]="templateHeader"
120
- (closeClick)="showEditAddressDialog = false"
121
- >
122
- <co-form>
123
- <co-relation-address
124
- [(address)]="addressToEdit"
125
- ></co-relation-address>
126
- </co-form>
127
- <ng-template #templateHeader>
128
- <div class="co-dialog-header-title" [textContent]="'NEW_ADDRESS' | reLocalize"></div>
129
- </ng-template>
130
- <ng-template #templateFooter>
131
- <div class="co-dialog-footer-button-wrapper">
132
- <co-button class="save-button"
133
- [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
134
- (click)="submitForm()"></co-button>
135
- <co-button class="close-button"
136
- [iconData]="iconCacheService.getIcon(icons.Crossskinny)"
137
- (click)="showEditAddressDialog = false"></co-button>
138
- </div>
139
- </ng-template>
140
- </co-dialog>
141
- `,
142
- providers: [
143
- FormMasterService
144
- ],
145
- encapsulation: ViewEncapsulation.None
146
- },] }
147
- ];
148
- RelationAddressesComponent.ctorParameters = () => [
149
- { type: RelationService },
150
- { type: IconCacheService },
151
- { type: RelationConnectorService },
152
- { type: RelationEventService },
153
- { type: FormMasterService }
154
- ];
155
- RelationAddressesComponent.propDecorators = {
156
- showClass: [{ type: HostBinding, args: ['class.co-relation-addresses',] }]
157
- };
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlbGF0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uLWFkZHJlc3Nlcy9yZWxhdGlvbi1hZGRyZXNzZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQy9FLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQW1FMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlDQUFpQztJQWdCL0UsWUFDUyxlQUFnQyxFQUNoQyxnQkFBa0MsRUFDL0Isd0JBQWtELEVBQ2xELG9CQUEwQyxFQUM1QyxrQkFBcUM7UUFFN0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBTmxGLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdC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LGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFILENBQUM7OztZQWhKRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RFQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXJFTyxlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFKcEIsaUJBQWlCOzs7d0JBMEV0QixXQUFXLFNBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FkZHJlc3N9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9tb2RlbC9hZGRyZXNzLmJvJztcbmltcG9ydCB7QWRkcmVzc1R5cGV9IGZyb20gJ0Bjb2xpam5pdC9yZWxhdGlvbmFwaS9idWlsZC9lbnVtL2FkZHJlc3MtdHlwZS5lbnVtJztcbmltcG9ydCB7UmVsYXRpb25TY3JlZW5Db25maWdCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9iYXNlL3JlbGF0aW9uLXNjcmVlbi1jb25maWctYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHtCdXNpbmVzc09iamVjdEZhY3Rvcnl9IGZyb20gJ0Bjb2xpam5pdC9pb25lY29ubmVjdG9yL2J1aWxkL3NlcnZpY2UvYnVzaW5lc3Mtb2JqZWN0LWZhY3RvcnknO1xuaW1wb3J0IHtGb3JtTWFzdGVyU2VydmljZX0gZnJvbSAnQGNvbGlqbml0L2NvcmVjb21wb25lbnRzX3YxMic7XG5pbXBvcnQge1JlbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7SWNvbkNhY2hlU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9pY29uLWNhY2hlLnNlcnZpY2UnO1xuaW1wb3J0IHtSZWxhdGlvbkNvbm5lY3RvclNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2UvcmVsYXRpb24tY29ubmVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHtSZWxhdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9yZWxhdGlvbi1ldmVudC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY28tcmVsYXRpb24tYWRkcmVzc2VzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzZXMtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0RFTElWRVJZX0FERFJFU1MnIHwgcmVMb2NhbGl6ZVwiPjwvZGl2PlxuICAgICAgPGNvLWNhcm91c2VsICpuZ0lmPVwiZGVsaXZlcnlBZGRyZXNzZXMgJiYgZGVsaXZlcnlBZGRyZXNzZXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzLXRpbGUgI2Nhcm91c2VsSXRlbSAqbmdGb3I9XCJsZXQgYWRkcmVzcyBvZiBkZWxpdmVyeUFkZHJlc3NlczsgbGV0IGluZGV4ID0gaW5kZXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FkZHJlc3NdPVwiYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImFkZHJlc3Muc2VxdWVuY2UgPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGVkaXRBZGRyZXNzQ2xpY2tlZCk9XCJlZGl0QWRkcmVzcygkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJjaGFuZ2VBZGRyZXNzKCRldmVudClcIlxuICAgICAgICAgID48L2NvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZT5cbiAgICAgIDwvY28tY2Fyb3VzZWw+XG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1kYXRhLXJvd1wiICpuZ0lmPVwiIXJlYWRvbmx5XCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aW9uLWFkZHJlc3MtbmV3XCIgKGNsaWNrKT1cInNob3dOZXdBZGRyZXNzRGlhbG9nKGFkZHJlc3NUeXBlLkRlbGl2ZXJ5QWRkcmVzcylcIj5cbiAgICAgICAgICAgICAgPGNvLWljb24gY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzLWljb25cIiBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkFycm93UG9pbnRSaWdodClcIj48L2NvLWljb24+XG4gICAgICAgICAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cIidBRERSRVNTX0FERCcgfCByZUxvY2FsaXplXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzZXMtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0lOVk9JQ0VfQUREUkVTUycgfCByZUxvY2FsaXplXCI+PC9kaXY+XG4gICAgICA8Y28tY2Fyb3VzZWwgKm5nSWY9XCJpbnZvaWNlQWRkcmVzc2VzICYmIGludm9pY2VBZGRyZXNzZXMubGVuZ3RoID4gMFwiPlxuICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzLXRpbGUgI2Nhcm91c2VsSXRlbSAqbmdGb3I9XCJsZXQgYWRkcmVzcyBvZiBpbnZvaWNlQWRkcmVzc2VzOyBsZXQgaW5kZXggPSBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWRkcmVzc109XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwic2VsZWN0ZWROYXdOciA9PT0gYWRkcmVzcy5uYXdOclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWRpdEFkZHJlc3NDbGlja2VkKT1cImVkaXRBZGRyZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cImNoYW5nZUFkZHJlc3MoJGV2ZW50KVwiXG4gICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzcy10aWxlPlxuICAgICAgPC9jby1jYXJvdXNlbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZWZhdWx0LWRhdGEtcm93XCIgKm5nSWY9XCIhcmVhZG9ubHlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1uZXdcIiAoY2xpY2spPVwic2hvd05ld0FkZHJlc3NEaWFsb2coYWRkcmVzc1R5cGUuQmlsbGluZ0FkZHJlc3MpXCI+XG4gICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCI+PC9jby1pY29uPlxuICAgICAgICAgICAgICA8ZGl2IFt0ZXh0Q29udGVudF09XCInQUREUkVTU19BREQnIHwgcmVMb2NhbGl6ZVwiPjwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8Y28tZGlhbG9nIGNsYXNzPVwiZGlhbG9nLXJlbGF0aW9uLWFkZHJlc3Nlcy1jcmVhdGUtYWRkcmVzc1wiICpuZ0lmPVwic2hvd0VkaXRBZGRyZXNzRGlhbG9nXCJcbiAgICAgICAgICAgICAgICAgW2Zvb3RlclRlbXBsYXRlXT1cInRlbXBsYXRlRm9vdGVyXCJcbiAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cInRlbXBsYXRlSGVhZGVyXCJcbiAgICAgICAgICAgICAgICAgKGNsb3NlQ2xpY2spPVwic2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gZmFsc2VcIlxuICAgICAgPlxuICAgICAgICAgIDxjby1mb3JtPlxuICAgICAgICAgICAgICA8Y28tcmVsYXRpb24tYWRkcmVzc1xuICAgICAgICAgICAgICAgICAgICAgIFsoYWRkcmVzcyldPVwiYWRkcmVzc1RvRWRpdFwiXG4gICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLWFkZHJlc3M+XG4gICAgICAgICAgPC9jby1mb3JtPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjdGVtcGxhdGVIZWFkZXI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidORVdfQUREUkVTUycgfCByZUxvY2FsaXplXCI+PC9kaXY+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlRm9vdGVyPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWZvb3Rlci1idXR0b24td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cInNhdmUtYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5DaGVja0R1b3RvbmUpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiPjwvY28tYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGNvLWJ1dHRvbiBjbGFzcz1cImNsb3NlLWJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ3Jvc3Nza2lubnkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dFZGl0QWRkcmVzc0RpYWxvZyA9IGZhbHNlXCI+PC9jby1idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2NvLWRpYWxvZz5cbiAgYCxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRm9ybU1hc3RlclNlcnZpY2VcbiAgXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBSZWxhdGlvbkFkZHJlc3Nlc0NvbXBvbmVudCBleHRlbmRzIFJlbGF0aW9uU2NyZWVuQ29uZmlnQmFzZUNvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSBhZGRyZXNzVHlwZTogdHlwZW9mIEFkZHJlc3NUeXBlID0gQWRkcmVzc1R5cGU7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5jby1yZWxhdGlvbi1hZGRyZXNzZXMnKVxuICBwdWJsaWMgc2hvd0NsYXNzKCkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc2VzOiBBZGRyZXNzW10gPSBbXTtcbiAgcHVibGljIGludm9pY2VBZGRyZXNzZXM6IEFkZHJlc3NbXSA9IFtdO1xuICBwdWJsaWMgYWRkcmVzc1RvRWRpdDogQWRkcmVzcztcbiAgcHVibGljIHNlbGVjdGVkTmF3TnI6IG51bWJlcjtcbiAgcHVibGljIHNob3dFZGl0QWRkcmVzc0RpYWxvZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWxhdGlvblNlcnZpY2U6IFJlbGF0aW9uU2VydmljZSxcbiAgICBwdWJsaWMgaWNvbkNhY2hlU2VydmljZTogSWNvbkNhY2hlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlOiBSZWxhdGlvbkNvbm5lY3RvclNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJlbGF0aW9uRXZlbnRTZXJ2aWNlOiBSZWxhdGlvbkV2ZW50U2VydmljZSxcbiAgICBwcml2YXRlIF9mb3JtTWFzdGVyU2VydmljZTogRm9ybU1hc3RlclNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocmVsYXRpb25TZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCByZWxhdGlvbkNvbm5lY3RvclNlcnZpY2UsIHJlbGF0aW9uRXZlbnRTZXJ2aWNlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRGb3JtKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9mb3JtTWFzdGVyU2VydmljZS5zdWJtaXRTbGF2ZXMoKSkge1xuICAgICAgdGhpcy5zYXZlQWRkcmVzcyh0aGlzLmFkZHJlc3NUb0VkaXQpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBzYXZlQWRkcmVzcyhhZGRyZXNzOiBBZGRyZXNzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYWRkcmVzcy5yZWxhdGlvbklkID0gdGhpcy5yZWxhdGlvbi5yZWxhdGlvbklkO1xuICAgIGlmICghYWRkcmVzcy5uYXdOcikgeyAvLyBuZXcgYWRkcmVzc1xuICAgICAgYWRkcmVzcy5zdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xuICAgICAgYWRkcmVzcy5zZXF1ZW5jZSA9IHRoaXMucmVsYXRpb24uZ2V0TmV4dEFkZHJlc3NTZXF1ZW5jZSgpO1xuICAgICAgY29uc3Qgc2F2ZWRBZGRyZXNzOiBBZGRyZXNzID0gYXdhaXQgdGhpcy5yZWxhdGlvblNlcnZpY2UuaW5zZXJ0QWRkcmVzcyhhZGRyZXNzKTtcbiAgICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLnB1c2goc2F2ZWRBZGRyZXNzKTtcbiAgICAgIHRoaXMuY2hhbmdlQWRkcmVzcyhzYXZlZEFkZHJlc3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBzYXZlZEFkZHJlc3M6IEFkZHJlc3MgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS51cGRhdGVBZGRyZXNzKGFkZHJlc3MpO1xuICAgICAgY29uc3QgaWR4OiBudW1iZXIgPSB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5maW5kSW5kZXgoYSA9PiBhLm5hd05yID09PSBhZGRyZXNzLm5hd05yKTtcbiAgICAgIGlmIChpZHggPiAtMSkge1xuICAgICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlc1tpZHhdID0gc2F2ZWRBZGRyZXNzO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnJlbGF0aW9uQ2hhbmdlLm5leHQodGhpcy5yZWxhdGlvbik7XG4gICAgdGhpcy5fc2V0QWRkcmVzc2VzKCk7XG4gICAgdGhpcy5zaG93RWRpdEFkZHJlc3NEaWFsb2cgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBjaGFuZ2VBZGRyZXNzKGFkZHJlc3M6IEFkZHJlc3MpOiB2b2lkIHtcbiAgICBpZiAoYWRkcmVzcyAmJiAhdGhpcy5yZWFkb25seSkge1xuICAgICAgLy8gdGhpcy5zZWxlY3RlZE5hd05yID0gYWRkcmVzcy5uYXdOcjtcbiAgICAgIC8vIHRoaXMuc2VsZWN0ZWROYXdOckNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWROYXdOcik7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNob3dOZXdBZGRyZXNzRGlhbG9nKHR5cGU6IEFkZHJlc3NUeXBlKTogdm9pZCB7XG4gICAgdGhpcy5hZGRyZXNzVG9FZGl0ID0gbmV3IEFkZHJlc3MoKTtcbiAgICB0aGlzLmFkZHJlc3NUb0VkaXQuYWRkcmVzc1R5cGUgPSB0eXBlO1xuICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gdHJ1ZTtcbiAgfVxuXG4gIHB1YmxpYyBlZGl0QWRkcmVzcyhhZGRyOiBBZGRyZXNzKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnJlYWRvbmx5KSB7XG4gICAgICB0aGlzLmFkZHJlc3NUb0VkaXQgPSA8QWRkcmVzcz48dW5rbm93bj50aGlzLl9ib0ZhY3RvcnkubWFrZVdpdGhSYXdCYWNrZW5kRGF0YShBZGRyZXNzLCBhZGRyKTtcbiAgICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVsYXRpb25TZXQoKSB7XG4gICAgdGhpcy5fc2V0QWRkcmVzc2VzKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRBZGRyZXNzZXMoKTogdm9pZCB7XG4gICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NlcyA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZpbHRlcihhID0+IGEuaXNBY3RpdmUgJiYgYS5hZGRyZXNzVHlwZSA9PT0gQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzKTtcbiAgICB0aGlzLmludm9pY2VBZGRyZXNzZXMgPSB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlcy5maWx0ZXIoYSA9PiBhLmlzQWN0aXZlICYmIGEuYWRkcmVzc1R5cGUgPT09IEFkZHJlc3NUeXBlLkJpbGxpbmdBZGRyZXNzKTtcbiAgfVxufSBcbiJdfQ==
1
+ import { __awaiter } from "tslib";
2
+ import { Component, HostBinding, ViewEncapsulation } from '@angular/core';
3
+ import { Address } from '@colijnit/relationapi/build/model/address.bo';
4
+ import { AddressType } from '@colijnit/relationapi/build/enum/address-type.enum';
5
+ import { RelationScreenConfigBaseComponent } from '../base/relation-screen-config-base.component';
6
+ import { BusinessObjectFactory } from '@colijnit/ioneconnector/build/service/business-object-factory';
7
+ import { FormMasterService } from '@colijnit/corecomponents_v12';
8
+ import { RelationService } from '../../service/relation.service';
9
+ import { IconCacheService } from '../../service/icon-cache.service';
10
+ import { RelationConnectorService } from '../../service/relation-connector.service';
11
+ import { RelationEventService } from '../../service/relation-event.service';
12
+ export class RelationAddressesComponent extends RelationScreenConfigBaseComponent {
13
+ constructor(relationService, iconCacheService, relationConnectorService, relationEventService, _formMasterService) {
14
+ super(relationService, iconCacheService, relationConnectorService, relationEventService);
15
+ this.relationService = relationService;
16
+ this.iconCacheService = iconCacheService;
17
+ this.relationConnectorService = relationConnectorService;
18
+ this.relationEventService = relationEventService;
19
+ this._formMasterService = _formMasterService;
20
+ this.addressType = AddressType;
21
+ this.deliveryAddresses = [];
22
+ this.invoiceAddresses = [];
23
+ this.showEditAddressDialog = false;
24
+ this._boFactory = new BusinessObjectFactory();
25
+ }
26
+ showClass() {
27
+ return true;
28
+ }
29
+ submitForm() {
30
+ if (this._formMasterService.submitSlaves()) {
31
+ this.saveAddress(this.addressToEdit);
32
+ }
33
+ }
34
+ saveAddress(address) {
35
+ return __awaiter(this, void 0, void 0, function* () {
36
+ address.relationId = this.relation.relationId;
37
+ if (!address.nawNr) { // new address
38
+ address.startDate = new Date();
39
+ address.sequence = this.relation.getNextAddressSequence();
40
+ const savedAddress = yield this.relationService.insertAddress(address);
41
+ this.relation.addresses.push(savedAddress);
42
+ this.changeAddress(savedAddress);
43
+ }
44
+ else {
45
+ const savedAddress = yield this.relationService.updateAddress(address);
46
+ const idx = this.relation.addresses.findIndex(a => a.nawNr === address.nawNr);
47
+ if (idx > -1) {
48
+ this.relation.addresses[idx] = savedAddress;
49
+ }
50
+ }
51
+ this.relationChange.next(this.relation);
52
+ this._setAddresses();
53
+ this.showEditAddressDialog = false;
54
+ });
55
+ }
56
+ changeAddress(address) {
57
+ if (address && !this.readonly) {
58
+ // this.selectedNawNr = address.nawNr;
59
+ // this.selectedNawNrChange.emit(this.selectedNawNr);
60
+ }
61
+ }
62
+ showNewAddressDialog(type) {
63
+ this.addressToEdit = new Address();
64
+ this.addressToEdit.addressType = type;
65
+ this.showEditAddressDialog = true;
66
+ }
67
+ editAddress(addr) {
68
+ if (!this.readonly) {
69
+ this.addressToEdit = this._boFactory.makeWithRawBackendData(Address, addr);
70
+ this.showEditAddressDialog = true;
71
+ }
72
+ }
73
+ relationSet() {
74
+ this._setAddresses();
75
+ }
76
+ _setAddresses() {
77
+ this.deliveryAddresses = this.relation.addresses.filter(a => a.isActive && a.addressType === AddressType.DeliveryAddress);
78
+ this.invoiceAddresses = this.relation.addresses.filter(a => a.isActive && a.addressType === AddressType.BillingAddress);
79
+ }
80
+ }
81
+ RelationAddressesComponent.decorators = [
82
+ { type: Component, args: [{
83
+ selector: 'co-relation-addresses',
84
+ template: `
85
+ <div class="relation-addresses-label" [textContent]="'DELIVERY_ADDRESS' | reLocalize"></div>
86
+ <co-carousel *ngIf="deliveryAddresses && deliveryAddresses.length > 0">
87
+ <co-relation-address-tile #carouselItem *ngFor="let address of deliveryAddresses; let index = index"
88
+ [address]="address"
89
+ [readonly]="readonly"
90
+ [selected]="address.sequence === 0"
91
+ (editAddressClicked)="editAddress($event)"
92
+ (selectedChange)="changeAddress($event)"
93
+ ></co-relation-address-tile>
94
+ </co-carousel>
95
+ <div class="default-data-row" *ngIf="!readonly">
96
+ <div class="relation-address-new" (click)="showNewAddressDialog(addressType.DeliveryAddress)">
97
+ <co-icon class="relation-address-icon" [iconData]="iconCacheService.getIcon(icons.ArrowPointRight)"></co-icon>
98
+ <div [textContent]="'ADDRESS_ADD' | reLocalize"></div>
99
+ </div>
100
+ </div>
101
+ <div class="relation-addresses-label" [textContent]="'INVOICE_ADDRESS' | reLocalize"></div>
102
+ <co-carousel *ngIf="invoiceAddresses && invoiceAddresses.length > 0">
103
+ <co-relation-address-tile #carouselItem *ngFor="let address of invoiceAddresses; let index = index"
104
+ [address]="address"
105
+ [readonly]="readonly"
106
+ [selected]="selectedNawNr === address.nawNr"
107
+ (editAddressClicked)="editAddress($event)"
108
+ (selectedChange)="changeAddress($event)"
109
+ ></co-relation-address-tile>
110
+ </co-carousel>
111
+ <div class="default-data-row" *ngIf="!readonly">
112
+ <div class="relation-address-new" (click)="showNewAddressDialog(addressType.BillingAddress)">
113
+ <co-icon class="relation-address-icon" [iconData]="iconCacheService.getIcon(icons.ArrowPointRight)"></co-icon>
114
+ <div [textContent]="'ADDRESS_ADD' | reLocalize"></div>
115
+ </div>
116
+ </div>
117
+ <co-dialog class="dialog-relation-addresses-create-address" *ngIf="showEditAddressDialog"
118
+ [footerTemplate]="templateFooter"
119
+ [headerTemplate]="templateHeader"
120
+ (closeClick)="showEditAddressDialog = false"
121
+ >
122
+ <co-form>
123
+ <co-relation-address
124
+ [(address)]="addressToEdit"
125
+ ></co-relation-address>
126
+ </co-form>
127
+ <ng-template #templateHeader>
128
+ <div class="co-dialog-header-title" [textContent]="'NEW_ADDRESS' | reLocalize"></div>
129
+ </ng-template>
130
+ <ng-template #templateFooter>
131
+ <div class="co-dialog-footer-button-wrapper">
132
+ <co-button class="save-button"
133
+ [iconData]="iconCacheService.getIcon(icons.CheckDuotone)"
134
+ (click)="submitForm()"></co-button>
135
+ <co-button class="close-button"
136
+ [iconData]="iconCacheService.getIcon(icons.Crossskinny)"
137
+ (click)="showEditAddressDialog = false"></co-button>
138
+ </div>
139
+ </ng-template>
140
+ </co-dialog>
141
+ `,
142
+ providers: [
143
+ FormMasterService
144
+ ],
145
+ encapsulation: ViewEncapsulation.None
146
+ },] }
147
+ ];
148
+ RelationAddressesComponent.ctorParameters = () => [
149
+ { type: RelationService },
150
+ { type: IconCacheService },
151
+ { type: RelationConnectorService },
152
+ { type: RelationEventService },
153
+ { type: FormMasterService }
154
+ ];
155
+ RelationAddressesComponent.propDecorators = {
156
+ showClass: [{ type: HostBinding, args: ['class.co-relation-addresses',] }]
157
+ };
158
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsYXRpb24tYWRkcmVzc2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JlbGF0aW9uL3NyYy9saWIvY29tcG9uZW50L3JlbGF0aW9uLWFkZHJlc3Nlcy9yZWxhdGlvbi1hZGRyZXNzZXMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sOENBQThDLENBQUM7QUFDckUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG9EQUFvRCxDQUFDO0FBQy9FLE9BQU8sRUFBQyxpQ0FBaUMsRUFBQyxNQUFNLCtDQUErQyxDQUFDO0FBQ2hHLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMvRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNsRSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSwwQ0FBMEMsQ0FBQztBQUNsRixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQW1FMUUsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGlDQUFpQztJQWdCL0UsWUFDUyxlQUFnQyxFQUNoQyxnQkFBa0MsRUFDL0Isd0JBQWtELEVBQ2xELG9CQUEwQyxFQUM1QyxrQkFBcUM7UUFFN0MsS0FBSyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBTmxGLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdC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LGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxXQUFXLEtBQUssV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFILENBQUM7OztZQWhKRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5RFQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGlCQUFpQjtpQkFDbEI7Z0JBQ0QsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7YUFDdEM7OztZQXJFTyxlQUFlO1lBQ2YsZ0JBQWdCO1lBQ2hCLHdCQUF3QjtZQUN4QixvQkFBb0I7WUFKcEIsaUJBQWlCOzs7d0JBMEV0QixXQUFXLFNBQUMsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBWaWV3RW5jYXBzdWxhdGlvbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7QWRkcmVzc30gZnJvbSAnQGNvbGlqbml0L3JlbGF0aW9uYXBpL2J1aWxkL21vZGVsL2FkZHJlc3MuYm8nO1xyXG5pbXBvcnQge0FkZHJlc3NUeXBlfSBmcm9tICdAY29saWpuaXQvcmVsYXRpb25hcGkvYnVpbGQvZW51bS9hZGRyZXNzLXR5cGUuZW51bSc7XHJcbmltcG9ydCB7UmVsYXRpb25TY3JlZW5Db25maWdCYXNlQ29tcG9uZW50fSBmcm9tICcuLi9iYXNlL3JlbGF0aW9uLXNjcmVlbi1jb25maWctYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0RmFjdG9yeX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvc2VydmljZS9idXNpbmVzcy1vYmplY3QtZmFjdG9yeSc7XHJcbmltcG9ydCB7Rm9ybU1hc3RlclNlcnZpY2V9IGZyb20gJ0Bjb2xpam5pdC9jb3JlY29tcG9uZW50c192MTInO1xyXG5pbXBvcnQge1JlbGF0aW9uU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9yZWxhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHtJY29uQ2FjaGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2ljb24tY2FjaGUuc2VydmljZSc7XHJcbmltcG9ydCB7UmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlL3JlbGF0aW9uLWNvbm5lY3Rvci5zZXJ2aWNlJztcclxuaW1wb3J0IHtSZWxhdGlvbkV2ZW50U2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZS9yZWxhdGlvbi1ldmVudC5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnY28tcmVsYXRpb24tYWRkcmVzc2VzJyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpb24tYWRkcmVzc2VzLWxhYmVsXCIgW3RleHRDb250ZW50XT1cIidERUxJVkVSWV9BRERSRVNTJyB8IHJlTG9jYWxpemVcIj48L2Rpdj5cclxuICAgICAgPGNvLWNhcm91c2VsICpuZ0lmPVwiZGVsaXZlcnlBZGRyZXNzZXMgJiYgZGVsaXZlcnlBZGRyZXNzZXMubGVuZ3RoID4gMFwiPlxyXG4gICAgICAgICAgPGNvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZSAjY2Fyb3VzZWxJdGVtICpuZ0Zvcj1cImxldCBhZGRyZXNzIG9mIGRlbGl2ZXJ5QWRkcmVzc2VzOyBsZXQgaW5kZXggPSBpbmRleFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthZGRyZXNzXT1cImFkZHJlc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2VsZWN0ZWRdPVwiYWRkcmVzcy5zZXF1ZW5jZSA9PT0gMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChlZGl0QWRkcmVzc0NsaWNrZWQpPVwiZWRpdEFkZHJlc3MoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENoYW5nZSk9XCJjaGFuZ2VBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvY28tcmVsYXRpb24tYWRkcmVzcy10aWxlPlxyXG4gICAgICA8L2NvLWNhcm91c2VsPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZGVmYXVsdC1kYXRhLXJvd1wiICpuZ0lmPVwiIXJlYWRvbmx5XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1uZXdcIiAoY2xpY2spPVwic2hvd05ld0FkZHJlc3NEaWFsb2coYWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzKVwiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cIidBRERSRVNTX0FERCcgfCByZUxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGlvbi1hZGRyZXNzZXMtbGFiZWxcIiBbdGV4dENvbnRlbnRdPVwiJ0lOVk9JQ0VfQUREUkVTUycgfCByZUxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgIDxjby1jYXJvdXNlbCAqbmdJZj1cImludm9pY2VBZGRyZXNzZXMgJiYgaW52b2ljZUFkZHJlc3Nlcy5sZW5ndGggPiAwXCI+XHJcbiAgICAgICAgICA8Y28tcmVsYXRpb24tYWRkcmVzcy10aWxlICNjYXJvdXNlbEl0ZW0gKm5nRm9yPVwibGV0IGFkZHJlc3Mgb2YgaW52b2ljZUFkZHJlc3NlczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYWRkcmVzc109XCJhZGRyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cInNlbGVjdGVkTmF3TnIgPT09IGFkZHJlc3MubmF3TnJcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZWRpdEFkZHJlc3NDbGlja2VkKT1cImVkaXRBZGRyZXNzKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwiY2hhbmdlQWRkcmVzcygkZXZlbnQpXCJcclxuICAgICAgICAgID48L2NvLXJlbGF0aW9uLWFkZHJlc3MtdGlsZT5cclxuICAgICAgPC9jby1jYXJvdXNlbD5cclxuICAgICAgPGRpdiBjbGFzcz1cImRlZmF1bHQtZGF0YS1yb3dcIiAqbmdJZj1cIiFyZWFkb25seVwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aW9uLWFkZHJlc3MtbmV3XCIgKGNsaWNrKT1cInNob3dOZXdBZGRyZXNzRGlhbG9nKGFkZHJlc3NUeXBlLkJpbGxpbmdBZGRyZXNzKVwiPlxyXG4gICAgICAgICAgICAgIDxjby1pY29uIGNsYXNzPVwicmVsYXRpb24tYWRkcmVzcy1pY29uXCIgW2ljb25EYXRhXT1cImljb25DYWNoZVNlcnZpY2UuZ2V0SWNvbihpY29ucy5BcnJvd1BvaW50UmlnaHQpXCI+PC9jby1pY29uPlxyXG4gICAgICAgICAgICAgIDxkaXYgW3RleHRDb250ZW50XT1cIidBRERSRVNTX0FERCcgfCByZUxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxjby1kaWFsb2cgY2xhc3M9XCJkaWFsb2ctcmVsYXRpb24tYWRkcmVzc2VzLWNyZWF0ZS1hZGRyZXNzXCIgKm5nSWY9XCJzaG93RWRpdEFkZHJlc3NEaWFsb2dcIlxyXG4gICAgICAgICAgICAgICAgIFtmb290ZXJUZW1wbGF0ZV09XCJ0ZW1wbGF0ZUZvb3RlclwiXHJcbiAgICAgICAgICAgICAgICAgW2hlYWRlclRlbXBsYXRlXT1cInRlbXBsYXRlSGVhZGVyXCJcclxuICAgICAgICAgICAgICAgICAoY2xvc2VDbGljayk9XCJzaG93RWRpdEFkZHJlc3NEaWFsb2cgPSBmYWxzZVwiXHJcbiAgICAgID5cclxuICAgICAgICAgIDxjby1mb3JtPlxyXG4gICAgICAgICAgICAgIDxjby1yZWxhdGlvbi1hZGRyZXNzXHJcbiAgICAgICAgICAgICAgICAgICAgICBbKGFkZHJlc3MpXT1cImFkZHJlc3NUb0VkaXRcIlxyXG4gICAgICAgICAgICAgID48L2NvLXJlbGF0aW9uLWFkZHJlc3M+XHJcbiAgICAgICAgICA8L2NvLWZvcm0+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlSGVhZGVyPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjby1kaWFsb2ctaGVhZGVyLXRpdGxlXCIgW3RleHRDb250ZW50XT1cIidORVdfQUREUkVTUycgfCByZUxvY2FsaXplXCI+PC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgPG5nLXRlbXBsYXRlICN0ZW1wbGF0ZUZvb3Rlcj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY28tZGlhbG9nLWZvb3Rlci1idXR0b24td3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uRGF0YV09XCJpY29uQ2FjaGVTZXJ2aWNlLmdldEljb24oaWNvbnMuQ2hlY2tEdW90b25lKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInN1Ym1pdEZvcm0oKVwiPjwvY28tYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8Y28tYnV0dG9uIGNsYXNzPVwiY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWNvbkRhdGFdPVwiaWNvbkNhY2hlU2VydmljZS5nZXRJY29uKGljb25zLkNyb3Nzc2tpbm55KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInNob3dFZGl0QWRkcmVzc0RpYWxvZyA9IGZhbHNlXCI+PC9jby1idXR0b24+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2NvLWRpYWxvZz5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAgRm9ybU1hc3RlclNlcnZpY2VcclxuICBdLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlbGF0aW9uQWRkcmVzc2VzQ29tcG9uZW50IGV4dGVuZHMgUmVsYXRpb25TY3JlZW5Db25maWdCYXNlQ29tcG9uZW50IHtcclxuICBwdWJsaWMgcmVhZG9ubHkgYWRkcmVzc1R5cGU6IHR5cGVvZiBBZGRyZXNzVHlwZSA9IEFkZHJlc3NUeXBlO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvLXJlbGF0aW9uLWFkZHJlc3NlcycpXHJcbiAgcHVibGljIHNob3dDbGFzcygpIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGl2ZXJ5QWRkcmVzc2VzOiBBZGRyZXNzW10gPSBbXTtcclxuICBwdWJsaWMgaW52b2ljZUFkZHJlc3NlczogQWRkcmVzc1tdID0gW107XHJcbiAgcHVibGljIGFkZHJlc3NUb0VkaXQ6IEFkZHJlc3M7XHJcbiAgcHVibGljIHNlbGVjdGVkTmF3TnI6IG51bWJlcjtcclxuICBwdWJsaWMgc2hvd0VkaXRBZGRyZXNzRGlhbG9nOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHByaXZhdGUgX2JvRmFjdG9yeTogQnVzaW5lc3NPYmplY3RGYWN0b3J5ID0gbmV3IEJ1c2luZXNzT2JqZWN0RmFjdG9yeSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZWxhdGlvblNlcnZpY2U6IFJlbGF0aW9uU2VydmljZSxcclxuICAgIHB1YmxpYyBpY29uQ2FjaGVTZXJ2aWNlOiBJY29uQ2FjaGVTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHJlbGF0aW9uQ29ubmVjdG9yU2VydmljZTogUmVsYXRpb25Db25uZWN0b3JTZXJ2aWNlLFxyXG4gICAgcHJvdGVjdGVkIHJlbGF0aW9uRXZlbnRTZXJ2aWNlOiBSZWxhdGlvbkV2ZW50U2VydmljZSxcclxuICAgIHByaXZhdGUgX2Zvcm1NYXN0ZXJTZXJ2aWNlOiBGb3JtTWFzdGVyU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIocmVsYXRpb25TZXJ2aWNlLCBpY29uQ2FjaGVTZXJ2aWNlLCByZWxhdGlvbkNvbm5lY3RvclNlcnZpY2UsIHJlbGF0aW9uRXZlbnRTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdWJtaXRGb3JtKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuX2Zvcm1NYXN0ZXJTZXJ2aWNlLnN1Ym1pdFNsYXZlcygpKSB7XHJcbiAgICAgIHRoaXMuc2F2ZUFkZHJlc3ModGhpcy5hZGRyZXNzVG9FZGl0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBzYXZlQWRkcmVzcyhhZGRyZXNzOiBBZGRyZXNzKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBhZGRyZXNzLnJlbGF0aW9uSWQgPSB0aGlzLnJlbGF0aW9uLnJlbGF0aW9uSWQ7XHJcbiAgICBpZiAoIWFkZHJlc3MubmF3TnIpIHsgLy8gbmV3IGFkZHJlc3NcclxuICAgICAgYWRkcmVzcy5zdGFydERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBhZGRyZXNzLnNlcXVlbmNlID0gdGhpcy5yZWxhdGlvbi5nZXROZXh0QWRkcmVzc1NlcXVlbmNlKCk7XHJcbiAgICAgIGNvbnN0IHNhdmVkQWRkcmVzczogQWRkcmVzcyA9IGF3YWl0IHRoaXMucmVsYXRpb25TZXJ2aWNlLmluc2VydEFkZHJlc3MoYWRkcmVzcyk7XHJcbiAgICAgIHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLnB1c2goc2F2ZWRBZGRyZXNzKTtcclxuICAgICAgdGhpcy5jaGFuZ2VBZGRyZXNzKHNhdmVkQWRkcmVzcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBzYXZlZEFkZHJlc3M6IEFkZHJlc3MgPSBhd2FpdCB0aGlzLnJlbGF0aW9uU2VydmljZS51cGRhdGVBZGRyZXNzKGFkZHJlc3MpO1xyXG4gICAgICBjb25zdCBpZHg6IG51bWJlciA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZpbmRJbmRleChhID0+IGEubmF3TnIgPT09IGFkZHJlc3MubmF3TnIpO1xyXG4gICAgICBpZiAoaWR4ID4gLTEpIHtcclxuICAgICAgICB0aGlzLnJlbGF0aW9uLmFkZHJlc3Nlc1tpZHhdID0gc2F2ZWRBZGRyZXNzO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlbGF0aW9uQ2hhbmdlLm5leHQodGhpcy5yZWxhdGlvbik7XHJcbiAgICB0aGlzLl9zZXRBZGRyZXNzZXMoKTtcclxuICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlQWRkcmVzcyhhZGRyZXNzOiBBZGRyZXNzKTogdm9pZCB7XHJcbiAgICBpZiAoYWRkcmVzcyAmJiAhdGhpcy5yZWFkb25seSkge1xyXG4gICAgICAvLyB0aGlzLnNlbGVjdGVkTmF3TnIgPSBhZGRyZXNzLm5hd05yO1xyXG4gICAgICAvLyB0aGlzLnNlbGVjdGVkTmF3TnJDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkTmF3TnIpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNob3dOZXdBZGRyZXNzRGlhbG9nKHR5cGU6IEFkZHJlc3NUeXBlKTogdm9pZCB7XHJcbiAgICB0aGlzLmFkZHJlc3NUb0VkaXQgPSBuZXcgQWRkcmVzcygpO1xyXG4gICAgdGhpcy5hZGRyZXNzVG9FZGl0LmFkZHJlc3NUeXBlID0gdHlwZTtcclxuICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBlZGl0QWRkcmVzcyhhZGRyOiBBZGRyZXNzKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMucmVhZG9ubHkpIHtcclxuICAgICAgdGhpcy5hZGRyZXNzVG9FZGl0ID0gPEFkZHJlc3M+PHVua25vd24+dGhpcy5fYm9GYWN0b3J5Lm1ha2VXaXRoUmF3QmFja2VuZERhdGEoQWRkcmVzcywgYWRkcik7XHJcbiAgICAgIHRoaXMuc2hvd0VkaXRBZGRyZXNzRGlhbG9nID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCByZWxhdGlvblNldCgpIHtcclxuICAgIHRoaXMuX3NldEFkZHJlc3NlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0QWRkcmVzc2VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NlcyA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZpbHRlcihhID0+IGEuaXNBY3RpdmUgJiYgYS5hZGRyZXNzVHlwZSA9PT0gQWRkcmVzc1R5cGUuRGVsaXZlcnlBZGRyZXNzKTtcclxuICAgIHRoaXMuaW52b2ljZUFkZHJlc3NlcyA9IHRoaXMucmVsYXRpb24uYWRkcmVzc2VzLmZpbHRlcihhID0+IGEuaXNBY3RpdmUgJiYgYS5hZGRyZXNzVHlwZSA9PT0gQWRkcmVzc1R5cGUuQmlsbGluZ0FkZHJlc3MpO1xyXG4gIH1cclxufSBcclxuIl19