@colijnit/transaction 12.1.174 → 12.1.176

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/bundles/colijnit-transaction.umd.js +2499 -1873
  2. package/bundles/colijnit-transaction.umd.js.map +1 -1
  3. package/colijnit-transaction.d.ts +529 -522
  4. package/colijnit-transaction.metadata.json +1 -1
  5. package/esm2015/colijnit-transaction.js +530 -523
  6. package/esm2015/lib/cache/service/transaction-business-object-cache-manager.service.js +157 -0
  7. package/esm2015/lib/cache/service/transaction-select-multiple-cache.service.js +38 -0
  8. package/esm2015/lib/cache/service/transaction-select-multiple-parameterized-cache.service.js +47 -0
  9. package/esm2015/lib/cache/service/transaction-select-single-cache.service.js +33 -0
  10. package/esm2015/lib/cache/service/transaction-select-single-parameterized-cache.service.js +47 -0
  11. package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +119 -214
  12. package/esm2015/lib/component/checkout/checkout.module.js +4 -2
  13. package/esm2015/lib/component/core/base/transaction-payment-base.component.js +257 -0
  14. package/esm2015/lib/component/dialog/catalog/dialog-catalog/dialog-catalog.component.js +7 -2
  15. package/esm2015/lib/component/payment/payment.component.js +5 -238
  16. package/esm2015/lib/component/relation/relation-address/relation-address.component.js +1 -7
  17. package/esm2015/lib/component/relation/relation-addresses/relation-addresses.component.js +2 -1
  18. package/esm2015/lib/component/relation/suggestions-sidebar/suggestions-sidebar.component.js +151 -0
  19. package/esm2015/lib/component/relation/suggestions-sidebar/suggestions-sidebar.module.js +25 -0
  20. package/esm2015/lib/component/transaction/transaction.component.js +2 -2
  21. package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-link-relation/transaction-cash-register-link-relation.component.js +2 -5
  22. package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-order.component.js +26 -25
  23. package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-order.module.js +8 -2
  24. package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/transaction-cash-register-payment-dialog.component.js +103 -65
  25. package/esm2015/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/transaction-cash-register-payment-dialog.module.js +4 -2
  26. package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +8 -6
  27. package/esm2015/lib/component/transaction-header/transaction-header-delivery/transaction-header-delivery.component.js +2 -2
  28. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-base.component.js +13 -5
  29. package/esm2015/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-relation.component.js +72 -7
  30. package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +40 -25
  31. package/esm2015/lib/component/transaction-internal/transaction-internal.component.js +12 -4
  32. package/esm2015/lib/component/transaction-internal/transaction-internal.module.js +4 -2
  33. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat-button.component.js +2 -2
  34. package/esm2015/lib/component/transaction-line-fields/transaction-line-vat.component.js +2 -2
  35. package/esm2015/lib/component/transaction-line-purchase-receive-goods/transaction-line-purchase-receive-goods.component.js +2 -2
  36. package/esm2015/lib/component/transaction-lines/transaction-lines.module.js +1 -1
  37. package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.component.js +70 -0
  38. package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.module.js +21 -0
  39. package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.component.js +109 -0
  40. package/esm2015/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.module.js +29 -0
  41. package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +5 -3
  42. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.component.js +84 -0
  43. package/esm2015/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.module.js +24 -0
  44. package/esm2015/lib/component/transaction-search/transaction-search-result/transaction-search-result.module.js +5 -1
  45. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.component.js +102 -0
  46. package/esm2015/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.module.js +30 -0
  47. package/esm2015/lib/res/dictionary/dictionaries.js +2 -2
  48. package/esm2015/lib/service/article.service.js +5 -5
  49. package/esm2015/lib/service/payment.service.js +8 -8
  50. package/esm2015/lib/service/relation-suggestions.service.js +69 -0
  51. package/esm2015/lib/service/relation.service.js +29 -30
  52. package/esm2015/lib/service/transaction-base.service.js +15 -4
  53. package/esm2015/lib/service/transaction-connector-adapter.service.js +9 -9
  54. package/esm2015/lib/service/transaction-connector.service.js +14 -14
  55. package/esm2015/lib/service/transaction-mapping.service.js +16 -3
  56. package/esm2015/lib/service/transaction.service.js +3 -3
  57. package/esm2015/lib/transaction-version.js +3 -3
  58. package/esm2015/public_api.js +6 -1
  59. package/fesm2015/colijnit-transaction.js +2250 -1518
  60. package/fesm2015/colijnit-transaction.js.map +1 -1
  61. package/lib/cache/service/{business-object-cache-manager.service.d.ts → transaction-business-object-cache-manager.service.d.ts} +1 -2
  62. package/lib/cache/service/{select-multiple-cache.service.d.ts → transaction-select-multiple-cache.service.d.ts} +3 -3
  63. package/lib/cache/service/{select-multiple-parameterized-cache.service.d.ts → transaction-select-multiple-parameterized-cache.service.d.ts} +3 -3
  64. package/lib/cache/service/{select-single-cache.service.d.ts → transaction-select-single-cache.service.d.ts} +3 -3
  65. package/lib/cache/service/{select-single-parameterized-cache.service.d.ts → transaction-select-single-parameterized-cache.service.d.ts} +3 -3
  66. package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +3 -10
  67. package/lib/component/checkout/checkout-overview-relation-edit/style/_layout.scss +0 -31
  68. package/lib/component/checkout/checkout-overview-relation-edit/style/_material-definition.scss +0 -15
  69. package/lib/component/core/base/transaction-payment-base.component.d.ts +68 -0
  70. package/lib/component/payment/payment.component.d.ts +2 -63
  71. package/lib/component/relation/suggestions-sidebar/style/_layout.scss +37 -0
  72. package/lib/component/relation/suggestions-sidebar/style/_material-definition.scss +15 -0
  73. package/lib/component/relation/suggestions-sidebar/style/_theme.scss +4 -0
  74. package/lib/component/relation/suggestions-sidebar/style/material.scss +4 -0
  75. package/lib/component/relation/suggestions-sidebar/suggestions-sidebar.component.d.ts +29 -0
  76. package/lib/component/relation/suggestions-sidebar/suggestions-sidebar.module.d.ts +2 -0
  77. package/lib/component/transaction-cash-register-order/style/_layout.scss +1 -1
  78. package/lib/component/transaction-cash-register-order/transaction-cash-register-link-relation/transaction-cash-register-link-relation.component.d.ts +0 -1
  79. package/lib/component/transaction-cash-register-order/transaction-cash-register-order.component.d.ts +2 -4
  80. package/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/style/_layout.scss +28 -6
  81. package/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/style/_material-definition.scss +3 -0
  82. package/lib/component/transaction-cash-register-order/transaction-cash-register-payment-dialog/transaction-cash-register-payment-dialog.component.d.ts +15 -12
  83. package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +2 -0
  84. package/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-base.component.d.ts +2 -2
  85. package/lib/component/transaction-header/transaction-header-popup/transaction-header-popup-relation.component.d.ts +28 -1
  86. package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +1 -0
  87. package/lib/component/transaction-internal/style/_layout.scss +4 -1
  88. package/lib/component/transaction-internal/transaction-internal.component.d.ts +3 -1
  89. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/_layout.scss +6 -0
  90. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/_material-definition.scss +2 -0
  91. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/_theme.scss +4 -0
  92. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/style/material.scss +5 -0
  93. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.component.d.ts +20 -0
  94. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel/transaction-lines-side-panel.module.d.ts +2 -0
  95. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/style/_layout.scss +31 -0
  96. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/style/_theme.scss +4 -0
  97. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/style/material.scss +4 -0
  98. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.component.d.ts +33 -0
  99. package/lib/component/transaction-lines-side-panel/transaction-lines-side-panel-cash-desk/transaction-lines-side-panel-cash-desk.module.d.ts +2 -0
  100. package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/style/_layout.scss +4 -0
  101. package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/style/_material-definition.scss +0 -0
  102. package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/style/_theme.scss +4 -0
  103. package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.component.d.ts +7 -0
  104. package/lib/component/transaction-search/transaction-search-grid/transaction-search-pos-grid/transaction-search-pos-grid.module.d.ts +2 -0
  105. package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/_layout.scss +4 -0
  106. package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/_material-definition.scss +0 -0
  107. package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/_theme.scss +4 -0
  108. package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/style/material.scss +4 -0
  109. package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.component.d.ts +9 -0
  110. package/lib/component/transaction-search/transaction-search-tile/transaction-search-pos-order-tile/transaction-search-pos-order-tile.module.d.ts +2 -0
  111. package/lib/res/dictionary/dictionaries.d.ts +2 -0
  112. package/lib/service/article.service.d.ts +2 -2
  113. package/lib/service/payment.service.d.ts +3 -3
  114. package/lib/service/relation-suggestions.service.d.ts +22 -0
  115. package/lib/service/relation.service.d.ts +4 -4
  116. package/lib/service/transaction-connector-adapter.service.d.ts +3 -3
  117. package/lib/service/transaction-connector.service.d.ts +5 -5
  118. package/lib/service/transaction-mapping.service.d.ts +2 -0
  119. package/package.json +2 -2
  120. package/public_api.d.ts +5 -0
  121. package/esm2015/lib/cache/service/business-object-cache-manager.service.js +0 -156
  122. package/esm2015/lib/cache/service/select-multiple-cache.service.js +0 -38
  123. package/esm2015/lib/cache/service/select-multiple-parameterized-cache.service.js +0 -47
  124. package/esm2015/lib/cache/service/select-single-cache.service.js +0 -33
  125. package/esm2015/lib/cache/service/select-single-parameterized-cache.service.js +0 -47
  126. package/lib/component/cash-register-order-wrapper.ts/style/_layout.scss +0 -4
  127. package/lib/component/cash-register-order-wrapper.ts/style/_theme.scss +0 -4
  128. /package/lib/component/{cash-register-order-wrapper.ts → transaction-lines-side-panel/transaction-lines-side-panel-cash-desk}/style/_material-definition.scss +0 -0
  129. /package/lib/component/{cash-register-order-wrapper.ts → transaction-search/transaction-search-grid/transaction-search-pos-grid}/style/material.scss +0 -0
@@ -0,0 +1,157 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { CacheField } from '../cache-field';
4
+ import { ParameterCacheField } from '../parameter-cache-field';
5
+ import { ObjectUtils } from '@colijnit/ioneconnector/build/utils/object-utils';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * App-wide, top-level, 'dumb' BO cache manager service. It stores and returns simple and parameterized business object cache items.
9
+ *
10
+ * Several other services register cache items onto this manager, such as repositories or the more generic SelectMultipleSimpleCacheService.
11
+ *
12
+ * This is a dumb cache manager. It just functions as a point to add and retrieve generic cache items, but does not know how to actually
13
+ * LOAD these cache items from the database, or what exact types the items are.
14
+ *
15
+ * All caches are reset when the user logs out.
16
+ */
17
+ export class TransactionBusinessObjectCacheManagerService {
18
+ constructor() {
19
+ // emits after this BO cache manager has been reset (e.g. after user logs out)
20
+ this.reset = new Subject();
21
+ // key: global cache id's, e.g. a model classe or any other arbitrary key for cache items
22
+ this._selectMultipleCache = new Map();
23
+ // key: global cache id's, e.g. a model classe or any other arbitrary key for cache items
24
+ this._selectMultipleParameterizedCache = new Map();
25
+ this._selectSingleCache = new Map();
26
+ this._selectSingleParameterizedCache = new Map();
27
+ }
28
+ // private _logoutSub: Subscription;
29
+ // constructor(private _transactionService: TransactionService) {
30
+ // this._logoutSub = this._transactionService.logout.subscribe(() => {
31
+ // this._reset();
32
+ // });
33
+ // }
34
+ ngOnDestroy() {
35
+ // this._logoutSub.unsubscribe();
36
+ }
37
+ /**
38
+ * Creates and adds a new simple cache item for the given key with the given load function.
39
+ * @param key
40
+ * @param loadFunction e.g. () => { return this._dataService.selectMultiple(Color); }
41
+ * @param overrideOld Whether to allow an old cache item with the same key to become override by this newly created cache item.
42
+ * @returns The newly created cache item.
43
+ */
44
+ addNewSelectMultipleCacheItem(key, loadFunction, overrideOld = false) {
45
+ if (!overrideOld && this._selectMultipleCache.has(key)) {
46
+ return;
47
+ }
48
+ const newCacheItem = new CacheField();
49
+ newCacheItem.loadFunction = loadFunction;
50
+ this._selectMultipleCache.set(key, newCacheItem);
51
+ return newCacheItem;
52
+ }
53
+ addNewSelectSingleCacheItem(key, id = TransactionBusinessObjectCacheManagerService._NullBoId, loadFunction, overrideOld = false) {
54
+ const cacheId = id.toString();
55
+ if (!overrideOld && this.hasSingleCacheItem(key, id)) {
56
+ return;
57
+ }
58
+ if (!this._selectSingleCache.has(key)) {
59
+ this._selectSingleCache.set(key, {});
60
+ }
61
+ const newCacheItem = new CacheField();
62
+ newCacheItem.loadFunction = loadFunction;
63
+ this._selectSingleCache.get(key)[cacheId] = newCacheItem;
64
+ return newCacheItem;
65
+ }
66
+ addNewSelectSingleParameterizedCacheItem(key, loadFunction, overrideOld = false) {
67
+ if (!overrideOld && this._selectSingleParameterizedCache.has(key)) {
68
+ return;
69
+ }
70
+ const newCacheItem = new ParameterCacheField();
71
+ newCacheItem.loadFunction = loadFunction;
72
+ this._selectSingleParameterizedCache.set(key, newCacheItem);
73
+ return newCacheItem;
74
+ }
75
+ /**
76
+ * Creates and adds a new parameterized cache item for the given key with the given load function.
77
+ * @param key
78
+ * @param loadFunction e.g. (category: ArticleCategory) => { return this._dataService.selectMultiple(TurnoverGroupImage, category); }
79
+ * @param overrideOld Whether to allow an old cache item with the same key to become override by this newly created cache item.
80
+ */
81
+ addNewSelectMultipleParameterizedCacheItem(key, loadFunction, overrideOld = false) {
82
+ if (!overrideOld && this._selectMultipleParameterizedCache.has(key)) {
83
+ return;
84
+ }
85
+ const newCacheItem = new ParameterCacheField();
86
+ newCacheItem.loadFunction = loadFunction;
87
+ this._selectMultipleParameterizedCache.set(key, newCacheItem);
88
+ return newCacheItem;
89
+ }
90
+ hasSelectMultipleCacheItem(key) {
91
+ return this._selectMultipleCache.has(key);
92
+ }
93
+ hasSingleCacheItem(key, id = TransactionBusinessObjectCacheManagerService._NullBoId) {
94
+ const cacheId = id.toString();
95
+ return this._selectSingleCache.has(key) && !!this._selectSingleCache.get(key)[cacheId];
96
+ }
97
+ hasSelectMultipleParameterizedCacheItem(key) {
98
+ return this._selectMultipleParameterizedCache.has(key);
99
+ }
100
+ hasSelectSingleParameterizedCacheItem(key) {
101
+ return this._selectSingleParameterizedCache.has(key);
102
+ }
103
+ // Returns the simple cache item with the given key. T is the type of the cache value items requested, e.g. Color.
104
+ getSelectMultipleCacheItem(key) {
105
+ return this._selectMultipleCache.get(key);
106
+ }
107
+ getSingleCacheItem(key, id = TransactionBusinessObjectCacheManagerService._NullBoId) {
108
+ const cacheId = id.toString();
109
+ return this._selectSingleCache.has(key) && this._selectSingleCache.get(key)[cacheId];
110
+ }
111
+ deleteSingleCacheItem(key, id = TransactionBusinessObjectCacheManagerService._NullBoId) {
112
+ const cacheId = id.toString();
113
+ if (this._selectSingleCache.has(key)) {
114
+ this._selectSingleCache.delete(key);
115
+ }
116
+ }
117
+ // Returns the parameterized cache item with the given key. T is the type of the cache value items requested, e.g. Color.
118
+ getSelectMultipleParameterCacheItem(key) {
119
+ return this._selectMultipleParameterizedCache.get(key);
120
+ }
121
+ getSelectSingleParameterCacheItem(key) {
122
+ return this._selectSingleParameterizedCache.get(key);
123
+ }
124
+ _reset() {
125
+ this._selectMultipleCache.forEach((cacheItem) => {
126
+ if (cacheItem) {
127
+ cacheItem.reset();
128
+ }
129
+ });
130
+ this._selectSingleCache.forEach((cache) => {
131
+ if (cache) {
132
+ ObjectUtils.ForOwnProperty(cache, (cacheField) => {
133
+ cacheField.reset();
134
+ });
135
+ }
136
+ });
137
+ this._selectSingleParameterizedCache.forEach((selSinParamCacheItem) => {
138
+ if (selSinParamCacheItem) {
139
+ selSinParamCacheItem.reset();
140
+ }
141
+ });
142
+ this._selectMultipleParameterizedCache.forEach((selMulParamCacheItem) => {
143
+ if (selMulParamCacheItem) {
144
+ selMulParamCacheItem.reset();
145
+ }
146
+ });
147
+ this.reset.next();
148
+ }
149
+ }
150
+ TransactionBusinessObjectCacheManagerService._NullBoId = -1;
151
+ TransactionBusinessObjectCacheManagerService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionBusinessObjectCacheManagerService_Factory() { return new TransactionBusinessObjectCacheManagerService(); }, token: TransactionBusinessObjectCacheManagerService, providedIn: "root" });
152
+ TransactionBusinessObjectCacheManagerService.decorators = [
153
+ { type: Injectable, args: [{
154
+ providedIn: "root"
155
+ },] }
156
+ ];
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tYnVzaW5lc3Mtb2JqZWN0LWNhY2hlLW1hbmFnZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY2FjaGUvc2VydmljZS90cmFuc2FjdGlvbi1idXNpbmVzcy1vYmplY3QtY2FjaGUtbWFuYWdlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFN0QsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGtEQUFrRCxDQUFDOztBQUc3RTs7Ozs7Ozs7O0dBU0c7QUFLSCxNQUFNLE9BQU8sNENBQTRDO0lBSnpEO1FBS0UsOEVBQThFO1FBQzlELFVBQUssR0FBa0IsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUkzRCx5RkFBeUY7UUFDakYseUJBQW9CLEdBQTJDLElBQUksR0FBRyxFQUFFLENBQUM7UUFFakYseUZBQXlGO1FBQ2pGLHNDQUFpQyxHQUNyQyxJQUFJLEdBQUcsRUFBOEMsQ0FBQztRQUVsRCx1QkFBa0IsR0FBaUYsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUM3RyxvQ0FBK0IsR0FDbkMsSUFBSSxHQUFHLEVBQW9DLENBQUM7S0FtS2pEO0lBaktDLG9DQUFvQztJQUVwQyxpRUFBaUU7SUFDakUsd0VBQXdFO0lBQ3hFLHFCQUFxQjtJQUNyQixRQUFRO0lBQ1IsSUFBSTtJQUVKLFdBQVc7UUFDVCxpQ0FBaUM7SUFDbkMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLDZCQUE2QixDQUNsQyxHQUFRLEVBQ1IsWUFBZ0MsRUFD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RyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLE1BQU07UUFDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBdUMsRUFBRSxFQUFFO1lBQzVFLElBQUksU0FBUyxFQUFFO2dCQUNiLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUNuQjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWtELEVBQUUsRUFBRTtZQUNyRixJQUFJLEtBQUssRUFBRTtnQkFDVCxXQUFXLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLFVBQXNDLEVBQUUsRUFBRTtvQkFDM0UsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNyQixDQUFDLENBQUMsQ0FBQzthQUNKO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsK0JBQStCLENBQUMsT0FBTyxDQUFDLENBQUMsb0JBQXlELEVBQUUsRUFBRTtZQUN6RyxJQUFJLG9CQUFvQixFQUFFO2dCQUN4QixvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUEyRCxFQUFFLEVBQUU7WUFDN0csSUFBSSxvQkFBb0IsRUFBRTtnQkFDeEIsb0JBQW9CLENBQUMsS0FBSyxFQUFFLENBQUM7YUFDOUI7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQzs7QUE3S2Msc0RBQVMsR0FBVyxDQUFDLENBQUMsQ0FBQzs7O1lBUnZDLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge0NhY2hlRmllbGR9IGZyb20gJy4uL2NhY2hlLWZpZWxkJztcclxuaW1wb3J0IHtQYXJhbWV0ZXJDYWNoZUZpZWxkfSBmcm9tICcuLi9wYXJhbWV0ZXItY2FjaGUtZmllbGQnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3QnO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC91dGlscy9vYmplY3QtdXRpbHMnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0SURUeXBlfSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC90eXBlL2J1c2luZXNzLW9iamVjdC1pZC10eXBlJztcclxuXHJcbi8qKlxyXG4gKiBBcHAtd2lkZSwgdG9wLWxldmVsLCAnZHVtYicgQk8gY2FjaGUgbWFuYWdlciBzZXJ2aWNlLiBJdCBzdG9yZXMgYW5kIHJldHVybnMgc2ltcGxlIGFuZCBwYXJhbWV0ZXJpemVkIGJ1c2luZXNzIG9iamVjdCBjYWNoZSBpdGVtcy5cclxuICpcclxuICogU2V2ZXJhbCBvdGhlciBzZXJ2aWNlcyByZWdpc3RlciBjYWNoZSBpdGVtcyBvbnRvIHRoaXMgbWFuYWdlciwgc3VjaCBhcyByZXBvc2l0b3JpZXMgb3IgdGhlIG1vcmUgZ2VuZXJpYyBTZWxlY3RNdWx0aXBsZVNpbXBsZUNhY2hlU2VydmljZS5cclxuICpcclxuICogVGhpcyBpcyBhIGR1bWIgY2FjaGUgbWFuYWdlci4gSXQganVzdCBmdW5jdGlvbnMgYXMgYSBwb2ludCB0byBhZGQgYW5kIHJldHJpZXZlIGdlbmVyaWMgY2FjaGUgaXRlbXMsIGJ1dCBkb2VzIG5vdCBrbm93IGhvdyB0byBhY3R1YWxseVxyXG4gKiBMT0FEIHRoZXNlIGNhY2hlIGl0ZW1zIGZyb20gdGhlIGRhdGFiYXNlLCBvciB3aGF0IGV4YWN0IHR5cGVzIHRoZSBpdGVtcyBhcmUuXHJcbiAqXHJcbiAqIEFsbCBjYWNoZXMgYXJlIHJlc2V0IHdoZW4gdGhlIHVzZXIgbG9ncyBvdXQuXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG4gIH1cclxuKVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25CdXNpbmVzc09iamVjdENhY2hlTWFuYWdlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIC8vIGVtaXRzIGFmdGVyIHRoaXMgQk8gY2FjaGUgbWFuYWdlciBoYXMgYmVlbiByZXNldCAoZS5nLiBhZnRlciB1c2VyIGxvZ3Mgb3V0KVxyXG4gIHB1YmxpYyByZWFkb25seSByZXNldDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIF9OdWxsQm9JZDogbnVtYmVyID0gLTE7XHJcblxyXG4gIC8vIGtleTogZ2xvYmFsIGNhY2hlIGlkJ3MsIGUuZy4gYSBtb2RlbCBjbGFzc2Ugb3IgYW55IG90aGVyIGFyYml0cmFyeSBrZXkgZm9yIGNhY2hlIGl0ZW1zXHJcbiAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVDYWNoZTogTWFwPGFueSwgQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdFtdPj4gPSBuZXcgTWFwKCk7XHJcblxyXG4gIC8vIGtleTogZ2xvYmFsIGNhY2hlIGlkJ3MsIGUuZy4gYSBtb2RlbCBjbGFzc2Ugb3IgYW55IG90aGVyIGFyYml0cmFyeSBrZXkgZm9yIGNhY2hlIGl0ZW1zXHJcbiAgcHJpdmF0ZSBfc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGU6IE1hcDxhbnksIFBhcmFtZXRlckNhY2hlRmllbGQ8QnVzaW5lc3NPYmplY3RbXT4+XHJcbiAgICA9IG5ldyBNYXA8YW55LCBQYXJhbWV0ZXJDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0W10+PigpO1xyXG5cclxuICBwcml2YXRlIF9zZWxlY3RTaW5nbGVDYWNoZTogTWFwPHsgbmV3KCk6IEJ1c2luZXNzT2JqZWN0IH0sIHsgW2lkOiBzdHJpbmddOiBDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0PiB9PiA9IG5ldyBNYXAoKTtcclxuICBwcml2YXRlIF9zZWxlY3RTaW5nbGVQYXJhbWV0ZXJpemVkQ2FjaGU6IE1hcDxhbnksIFBhcmFtZXRlckNhY2hlRmllbGQ8T2JqZWN0Pj5cclxuICAgID0gbmV3IE1hcDxhbnksIFBhcmFtZXRlckNhY2hlRmllbGQ8T2JqZWN0Pj4oKTtcclxuXHJcbiAgLy8gcHJpdmF0ZSBfbG9nb3V0U3ViOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIC8vIGNvbnN0cnVjdG9yKHByaXZhdGUgX3RyYW5zYWN0aW9uU2VydmljZTogVHJhbnNhY3Rpb25TZXJ2aWNlKSB7XHJcbiAgLy8gICB0aGlzLl9sb2dvdXRTdWIgPSB0aGlzLl90cmFuc2FjdGlvblNlcnZpY2UubG9nb3V0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgLy8gICAgIHRoaXMuX3Jlc2V0KCk7XHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgLy8gdGhpcy5fbG9nb3V0U3ViLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuZCBhZGRzIGEgbmV3IHNpbXBsZSBjYWNoZSBpdGVtIGZvciB0aGUgZ2l2ZW4ga2V5IHdpdGggdGhlIGdpdmVuIGxvYWQgZnVuY3Rpb24uXHJcbiAgICogQHBhcmFtIGtleVxyXG4gICAqIEBwYXJhbSBsb2FkRnVuY3Rpb24gZS5nLiAoKSA9PiB7IHJldHVybiB0aGlzLl9kYXRhU2VydmljZS5zZWxlY3RNdWx0aXBsZShDb2xvcik7IH1cclxuICAgKiBAcGFyYW0gb3ZlcnJpZGVPbGQgV2hldGhlciB0byBhbGxvdyBhbiBvbGQgY2FjaGUgaXRlbSB3aXRoIHRoZSBzYW1lIGtleSB0byBiZWNvbWUgb3ZlcnJpZGUgYnkgdGhpcyBuZXdseSBjcmVhdGVkIGNhY2hlIGl0ZW0uXHJcbiAgICogQHJldHVybnMgVGhlIG5ld2x5IGNyZWF0ZWQgY2FjaGUgaXRlbS5cclxuICAgKi9cclxuICBwdWJsaWMgYWRkTmV3U2VsZWN0TXVsdGlwbGVDYWNoZUl0ZW08VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihcclxuICAgIGtleTogYW55LFxyXG4gICAgbG9hZEZ1bmN0aW9uOiAoKSA9PiBQcm9taXNlPFRbXT4sXHJcbiAgICBvdmVycmlkZU9sZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogQ2FjaGVGaWVsZDxUW10+IHtcclxuICAgIGlmICghb3ZlcnJpZGVPbGQgJiYgdGhpcy5fc2VsZWN0TXVsdGlwbGVDYWNoZS5oYXMoa2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3Q2FjaGVJdGVtOiBDYWNoZUZpZWxkPFRbXT4gPSBuZXcgQ2FjaGVGaWVsZDxUW10+KCk7XHJcbiAgICBuZXdDYWNoZUl0ZW0ubG9hZEZ1bmN0aW9uID0gbG9hZEZ1bmN0aW9uO1xyXG4gICAgdGhpcy5fc2VsZWN0TXVsdGlwbGVDYWNoZS5zZXQoa2V5LCBuZXdDYWNoZUl0ZW0pO1xyXG4gICAgcmV0dXJuIG5ld0NhY2hlSXRlbTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGROZXdTZWxlY3RTaW5nbGVDYWNoZUl0ZW08VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihcclxuICAgIGtleTogeyBuZXcoKTogVCB9LFxyXG4gICAgaWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlID0gVHJhbnNhY3Rpb25CdXNpbmVzc09iamVjdENhY2hlTWFuYWdlclNlcnZpY2UuX051bGxCb0lkLFxyXG4gICAgbG9hZEZ1bmN0aW9uOiAoKSA9PiBQcm9taXNlPFQ+LFxyXG4gICAgb3ZlcnJpZGVPbGQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gICk6IENhY2hlRmllbGQ8VD4ge1xyXG4gICAgY29uc3QgY2FjaGVJZDogc3RyaW5nID0gaWQudG9TdHJpbmcoKTtcclxuICAgIGlmICghb3ZlcnJpZGVPbGQgJiYgdGhpcy5oYXNTaW5nbGVDYWNoZUl0ZW0oa2V5LCBpZCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZS5oYXMoa2V5KSkge1xyXG4gICAgICB0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZS5zZXQoa2V5LCB7fSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCBuZXdDYWNoZUl0ZW06IENhY2hlRmllbGQ8VD4gPSBuZXcgQ2FjaGVGaWVsZDxUPigpO1xyXG4gICAgbmV3Q2FjaGVJdGVtLmxvYWRGdW5jdGlvbiA9IGxvYWRGdW5jdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLmdldChrZXkpW2NhY2hlSWRdID0gbmV3Q2FjaGVJdGVtO1xyXG4gICAgcmV0dXJuIG5ld0NhY2hlSXRlbTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBhZGROZXdTZWxlY3RTaW5nbGVQYXJhbWV0ZXJpemVkQ2FjaGVJdGVtPFQgZXh0ZW5kcyBPYmplY3Q+KFxyXG4gICAga2V5OiBhbnksXHJcbiAgICBsb2FkRnVuY3Rpb246IChwYXJhbXM/OiBhbnkpID0+IFByb21pc2U8VD4sXHJcbiAgICBvdmVycmlkZU9sZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogUGFyYW1ldGVyQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBpZiAoIW92ZXJyaWRlT2xkICYmIHRoaXMuX3NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZS5oYXMoa2V5KSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbmV3Q2FjaGVJdGVtOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFQ+ID0gbmV3IFBhcmFtZXRlckNhY2hlRmllbGQ8VD4oKTtcclxuICAgIG5ld0NhY2hlSXRlbS5sb2FkRnVuY3Rpb24gPSBsb2FkRnVuY3Rpb247XHJcbiAgICB0aGlzLl9zZWxlY3RTaW5nbGVQYXJhbWV0ZXJpemVkQ2FjaGUuc2V0KGtleSwgbmV3Q2FjaGVJdGVtKTtcclxuICAgIHJldHVybiBuZXdDYWNoZUl0ZW07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDcmVhdGVzIGFuZCBhZGRzIGEgbmV3IHBhcmFtZXRlcml6ZWQgY2FjaGUgaXRlbSBmb3IgdGhlIGdpdmVuIGtleSB3aXRoIHRoZSBnaXZlbiBsb2FkIGZ1bmN0aW9uLlxyXG4gICAqIEBwYXJhbSBrZXlcclxuICAgKiBAcGFyYW0gbG9hZEZ1bmN0aW9uIGUuZy4gKGNhdGVnb3J5OiBBcnRpY2xlQ2F0ZWdvcnkpID0+IHsgcmV0dXJuIHRoaXMuX2RhdGFTZXJ2aWNlLnNlbGVjdE11bHRpcGxlKFR1cm5vdmVyR3JvdXBJbWFnZSwgY2F0ZWdvcnkpOyB9XHJcbiAgICogQHBhcmFtIG92ZXJyaWRlT2xkIFdoZXRoZXIgdG8gYWxsb3cgYW4gb2xkIGNhY2hlIGl0ZW0gd2l0aCB0aGUgc2FtZSBrZXkgdG8gYmVjb21lIG92ZXJyaWRlIGJ5IHRoaXMgbmV3bHkgY3JlYXRlZCBjYWNoZSBpdGVtLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhZGROZXdTZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZUl0ZW08VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihcclxuICAgIGtleTogYW55LFxyXG4gICAgbG9hZEZ1bmN0aW9uOiAocGFyYW1zPzogYW55KSA9PiBQcm9taXNlPFRbXT4sXHJcbiAgICBvdmVycmlkZU9sZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgKTogUGFyYW1ldGVyQ2FjaGVGaWVsZDxUW10+IHtcclxuICAgIGlmICghb3ZlcnJpZGVPbGQgJiYgdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGUuaGFzKGtleSkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG5ld0NhY2hlSXRlbTogUGFyYW1ldGVyQ2FjaGVGaWVsZDxUW10+ID0gbmV3IFBhcmFtZXRlckNhY2hlRmllbGQ8VFtdPigpO1xyXG4gICAgbmV3Q2FjaGVJdGVtLmxvYWRGdW5jdGlvbiA9IGxvYWRGdW5jdGlvbjtcclxuICAgIHRoaXMuX3NlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlLnNldChrZXksIG5ld0NhY2hlSXRlbSk7XHJcbiAgICByZXR1cm4gbmV3Q2FjaGVJdGVtO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGhhc1NlbGVjdE11bHRpcGxlQ2FjaGVJdGVtKGtleTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVDYWNoZS5oYXMoa2V5KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBoYXNTaW5nbGVDYWNoZUl0ZW08VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihrZXk6IHsgbmV3KCk6IFQgfSwgaWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlID0gVHJhbnNhY3Rpb25CdXNpbmVzc09iamVjdENhY2hlTWFuYWdlclNlcnZpY2UuX051bGxCb0lkKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBjYWNoZUlkOiBzdHJpbmcgPSBpZC50b1N0cmluZygpO1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLmhhcyhrZXkpICYmICEhdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZ2V0KGtleSlbY2FjaGVJZF07XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVJdGVtKGtleTogYW55KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGUuaGFzKGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFzU2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlSXRlbShrZXk6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZS5oYXMoa2V5KTtcclxuICB9XHJcblxyXG4gIC8vIFJldHVybnMgdGhlIHNpbXBsZSBjYWNoZSBpdGVtIHdpdGggdGhlIGdpdmVuIGtleS4gVCBpcyB0aGUgdHlwZSBvZiB0aGUgY2FjaGUgdmFsdWUgaXRlbXMgcmVxdWVzdGVkLCBlLmcuIENvbG9yLlxyXG4gIHB1YmxpYyBnZXRTZWxlY3RNdWx0aXBsZUNhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KGtleTogYW55KTogQ2FjaGVGaWVsZDxUW10+IHtcclxuICAgIHJldHVybiA8Q2FjaGVGaWVsZDxUW10+PnRoaXMuX3NlbGVjdE11bHRpcGxlQ2FjaGUuZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2luZ2xlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oa2V5OiB7IG5ldygpOiBUIH0sIGlkOiBCdXNpbmVzc09iamVjdElEVHlwZSA9IFRyYW5zYWN0aW9uQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlLl9OdWxsQm9JZCk6IENhY2hlRmllbGQ8VD4ge1xyXG4gICAgY29uc3QgY2FjaGVJZDogc3RyaW5nID0gaWQudG9TdHJpbmcoKTtcclxuICAgIHJldHVybiB0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZS5oYXMoa2V5KSAmJiB0aGlzLl9zZWxlY3RTaW5nbGVDYWNoZS5nZXQoa2V5KVtjYWNoZUlkXSBhcyBDYWNoZUZpZWxkPFQ+O1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGRlbGV0ZVNpbmdsZUNhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KGtleTogeyBuZXcoKTogVCB9LCBpZDogQnVzaW5lc3NPYmplY3RJRFR5cGUgPSBUcmFuc2FjdGlvbkJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZS5fTnVsbEJvSWQpOiB2b2lkIHtcclxuICAgIGNvbnN0IGNhY2hlSWQ6IHN0cmluZyA9IGlkLnRvU3RyaW5nKCk7XHJcbiAgICBpZiAodGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuaGFzKGtleSkpIHtcclxuICAgICAgdGhpcy5fc2VsZWN0U2luZ2xlQ2FjaGUuZGVsZXRlKGtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBSZXR1cm5zIHRoZSBwYXJhbWV0ZXJpemVkIGNhY2hlIGl0ZW0gd2l0aCB0aGUgZ2l2ZW4ga2V5LiBUIGlzIHRoZSB0eXBlIG9mIHRoZSBjYWNoZSB2YWx1ZSBpdGVtcyByZXF1ZXN0ZWQsIGUuZy4gQ29sb3IuXHJcbiAgcHVibGljIGdldFNlbGVjdE11bHRpcGxlUGFyYW1ldGVyQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oa2V5OiBhbnkpOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFRbXT4ge1xyXG4gICAgcmV0dXJuIDxQYXJhbWV0ZXJDYWNoZUZpZWxkPFRbXT4+dGhpcy5fc2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGUuZ2V0KGtleSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0U2VsZWN0U2luZ2xlUGFyYW1ldGVyQ2FjaGVJdGVtPFQ+KGtleTogYW55KTogUGFyYW1ldGVyQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICByZXR1cm4gPFBhcmFtZXRlckNhY2hlRmllbGQ8VD4+dGhpcy5fc2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlLmdldChrZXkpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfcmVzZXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zZWxlY3RNdWx0aXBsZUNhY2hlLmZvckVhY2goKGNhY2hlSXRlbTogQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdFtdPikgPT4ge1xyXG4gICAgICBpZiAoY2FjaGVJdGVtKSB7XHJcbiAgICAgICAgY2FjaGVJdGVtLnJlc2V0KCk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMuX3NlbGVjdFNpbmdsZUNhY2hlLmZvckVhY2goKGNhY2hlOiB7IFtwOiBzdHJpbmddOiBDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0PiB9KSA9PiB7XHJcbiAgICAgIGlmIChjYWNoZSkge1xyXG4gICAgICAgIE9iamVjdFV0aWxzLkZvck93blByb3BlcnR5KGNhY2hlLCAoY2FjaGVGaWVsZDogQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdD4pID0+IHtcclxuICAgICAgICAgIGNhY2hlRmllbGQucmVzZXQoKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy5fc2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlLmZvckVhY2goKHNlbFNpblBhcmFtQ2FjaGVJdGVtOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPEJ1c2luZXNzT2JqZWN0PikgPT4ge1xyXG4gICAgICBpZiAoc2VsU2luUGFyYW1DYWNoZUl0ZW0pIHtcclxuICAgICAgICBzZWxTaW5QYXJhbUNhY2hlSXRlbS5yZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLl9zZWxlY3RNdWx0aXBsZVBhcmFtZXRlcml6ZWRDYWNoZS5mb3JFYWNoKChzZWxNdWxQYXJhbUNhY2hlSXRlbTogUGFyYW1ldGVyQ2FjaGVGaWVsZDxCdXNpbmVzc09iamVjdFtdPikgPT4ge1xyXG4gICAgICBpZiAoc2VsTXVsUGFyYW1DYWNoZUl0ZW0pIHtcclxuICAgICAgICBzZWxNdWxQYXJhbUNhY2hlSXRlbS5yZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlc2V0Lm5leHQoKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,38 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { TransactionBusinessObjectCacheManagerService } from "./transaction-business-object-cache-manager.service";
3
+ import { CacheField } from "../cache-field";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./transaction-business-object-cache-manager.service";
6
+ export class TransactionSelectMultipleCacheService {
7
+ constructor(_boCacheManager) {
8
+ this._boCacheManager = _boCacheManager;
9
+ }
10
+ /**
11
+ * Returns the global cache item for the select multiple of the given business object class. Creates a new cache item if not yet exists.
12
+ * @param clazz The BO class, e.g. CustomerFullObject
13
+ * @returns {CacheField<T[]>}
14
+ */
15
+ requestCache(clazz, loadFunction) {
16
+ if (!this._boCacheManager.hasSelectMultipleCacheItem(clazz)) {
17
+ this._createCacheItem(clazz, loadFunction);
18
+ }
19
+ // noinspection TypeScriptValidateTypes
20
+ return this._boCacheManager.getSelectMultipleCacheItem(clazz);
21
+ }
22
+ // Creates and returns a new select multiple cache item into the global business object cache manager for given business object class.
23
+ _createCacheItem(clazz, loadFunction) {
24
+ // noinspection TypeScriptValidateTypes
25
+ return this._boCacheManager.addNewSelectMultipleCacheItem(clazz, loadFunction);
26
+ }
27
+ }
28
+ TransactionSelectMultipleCacheService._NullCache = new CacheField();
29
+ TransactionSelectMultipleCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionSelectMultipleCacheService_Factory() { return new TransactionSelectMultipleCacheService(i0.ɵɵinject(i1.TransactionBusinessObjectCacheManagerService)); }, token: TransactionSelectMultipleCacheService, providedIn: "root" });
30
+ TransactionSelectMultipleCacheService.decorators = [
31
+ { type: Injectable, args: [{
32
+ providedIn: "root"
33
+ },] }
34
+ ];
35
+ TransactionSelectMultipleCacheService.ctorParameters = () => [
36
+ { type: TransactionBusinessObjectCacheManagerService }
37
+ ];
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VsZWN0LW11bHRpcGxlLWNhY2hlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NhY2hlL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VsZWN0LW11bHRpcGxlLWNhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsNENBQTRDLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUNqSCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQU0xQyxNQUFNLE9BQU8scUNBQXFDO0lBR2hELFlBQ1UsZUFBNkQ7UUFBN0Qsb0JBQWUsR0FBZixlQUFlLENBQThDO0lBRXZFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUEyQixLQUE0QixFQUFFLFlBQWdDO1FBQzFHLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLDBCQUEwQixDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBSSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDL0M7UUFFRCx1Q0FBdUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLDBCQUEwQixDQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxzSUFBc0k7SUFDOUgsZ0JBQWdCLENBQTJCLEtBQTRCLEVBQUUsWUFBZ0M7UUFDL0csdUNBQXVDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyw2QkFBNkIsQ0FBSSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDcEYsQ0FBQzs7QUF6QmMsZ0RBQVUsR0FBb0IsSUFBSSxVQUFVLEVBQU8sQ0FBQzs7O1lBSnBFLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBTk8sNENBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlfSBmcm9tIFwiLi90cmFuc2FjdGlvbi1idXNpbmVzcy1vYmplY3QtY2FjaGUtbWFuYWdlci5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Q2FjaGVGaWVsZH0gZnJvbSBcIi4uL2NhY2hlLWZpZWxkXCI7XHJcbmltcG9ydCB7QnVzaW5lc3NPYmplY3R9IGZyb20gXCJAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3RcIjtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiBcInJvb3RcIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgVHJhbnNhY3Rpb25TZWxlY3RNdWx0aXBsZUNhY2hlU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX051bGxDYWNoZTogQ2FjaGVGaWVsZDxhbnk+ID0gbmV3IENhY2hlRmllbGQ8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2JvQ2FjaGVNYW5hZ2VyOiBUcmFuc2FjdGlvbkJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZVxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgZ2xvYmFsIGNhY2hlIGl0ZW0gZm9yIHRoZSBzZWxlY3QgbXVsdGlwbGUgb2YgdGhlIGdpdmVuIGJ1c2luZXNzIG9iamVjdCBjbGFzcy4gQ3JlYXRlcyBhIG5ldyBjYWNoZSBpdGVtIGlmIG5vdCB5ZXQgZXhpc3RzLlxyXG4gICAqIEBwYXJhbSBjbGF6eiBUaGUgQk8gY2xhc3MsIGUuZy4gQ3VzdG9tZXJGdWxsT2JqZWN0XHJcbiAgICogQHJldHVybnMge0NhY2hlRmllbGQ8VFtdPn1cclxuICAgKi9cclxuICBwdWJsaWMgcmVxdWVzdENhY2hlPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oY2xheno6IHR5cGVvZiBCdXNpbmVzc09iamVjdCwgbG9hZEZ1bmN0aW9uOiAoKSA9PiBQcm9taXNlPFRbXT4pOiBDYWNoZUZpZWxkPFRbXT4ge1xyXG4gICAgaWYgKCF0aGlzLl9ib0NhY2hlTWFuYWdlci5oYXNTZWxlY3RNdWx0aXBsZUNhY2hlSXRlbShjbGF6eikpIHtcclxuICAgICAgdGhpcy5fY3JlYXRlQ2FjaGVJdGVtPFQ+KGNsYXp6LCBsb2FkRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmdldFNlbGVjdE11bHRpcGxlQ2FjaGVJdGVtPFQ+KGNsYXp6KTtcclxuICB9XHJcblxyXG4gIC8vIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcgc2VsZWN0IG11bHRpcGxlIGNhY2hlIGl0ZW0gaW50byB0aGUgZ2xvYmFsIGJ1c2luZXNzIG9iamVjdCBjYWNoZSBtYW5hZ2VyIGZvciBnaXZlbiBidXNpbmVzcyBvYmplY3QgY2xhc3MuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oY2xheno6IHR5cGVvZiBCdXNpbmVzc09iamVjdCwgbG9hZEZ1bmN0aW9uOiAoKSA9PiBQcm9taXNlPFRbXT4pOiBDYWNoZUZpZWxkPFRbXT4ge1xyXG4gICAgLy8gbm9pbnNwZWN0aW9uIFR5cGVTY3JpcHRWYWxpZGF0ZVR5cGVzXHJcbiAgICByZXR1cm4gdGhpcy5fYm9DYWNoZU1hbmFnZXIuYWRkTmV3U2VsZWN0TXVsdGlwbGVDYWNoZUl0ZW08VD4oY2xhenosIGxvYWRGdW5jdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Injectable } from "@angular/core";
2
+ import { Subject } from "rxjs";
3
+ import { TransactionBusinessObjectCacheManagerService } from "./transaction-business-object-cache-manager.service";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./transaction-business-object-cache-manager.service";
6
+ // service resonsible for filling the global BO cache manager service with parameterized select multiple cache items
7
+ export class TransactionSelectMultipleParameterizedCacheService {
8
+ constructor(_boCacheManager) {
9
+ this._boCacheManager = _boCacheManager;
10
+ // emits after this select multiple parameterized cache service has been reset (e.g. after user logs out)
11
+ this.reset = new Subject();
12
+ this._subs = [];
13
+ this._subs.push(this._boCacheManager.reset.subscribe(() => {
14
+ this.reset.next();
15
+ }));
16
+ }
17
+ ngOnDestroy() {
18
+ this._subs.forEach(sub => sub.unsubscribe());
19
+ }
20
+ /**
21
+ * Returns the global cache item for the parameterized select multiple of the given business object class. Creates a new cache item if not yet exists.
22
+ * @param clazz The BO class, used for undeflying dataService.selectMultiple(clazz) call.
23
+ * @returns {CacheField<T[]>}
24
+ */
25
+ requestCache(clazz, loadFunction) {
26
+ if (!this._boCacheManager.hasSelectMultipleParameterizedCacheItem(clazz)) {
27
+ this._createParameterizedCacheItem(clazz, loadFunction);
28
+ }
29
+ // noinspection TypeScriptValidateTypes
30
+ return this._boCacheManager.getSelectMultipleParameterCacheItem(clazz);
31
+ }
32
+ // Creates and returns a new parameterized select multiple cache item into the global business object cache manager for given business object class.
33
+ _createParameterizedCacheItem(clazz, loadFunction) {
34
+ // noinspection TypeScriptValidateTypes
35
+ return this._boCacheManager.addNewSelectMultipleParameterizedCacheItem(clazz, loadFunction);
36
+ }
37
+ }
38
+ TransactionSelectMultipleParameterizedCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionSelectMultipleParameterizedCacheService_Factory() { return new TransactionSelectMultipleParameterizedCacheService(i0.ɵɵinject(i1.TransactionBusinessObjectCacheManagerService)); }, token: TransactionSelectMultipleParameterizedCacheService, providedIn: "root" });
39
+ TransactionSelectMultipleParameterizedCacheService.decorators = [
40
+ { type: Injectable, args: [{
41
+ providedIn: "root"
42
+ },] }
43
+ ];
44
+ TransactionSelectMultipleParameterizedCacheService.ctorParameters = () => [
45
+ { type: TransactionBusinessObjectCacheManagerService }
46
+ ];
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VsZWN0LW11bHRpcGxlLXBhcmFtZXRlcml6ZWQtY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RyYW5zYWN0aW9uL3NyYy9saWIvY2FjaGUvc2VydmljZS90cmFuc2FjdGlvbi1zZWxlY3QtbXVsdGlwbGUtcGFyYW1ldGVyaXplZC1jYWNoZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFDLE9BQU8sRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUMsNENBQTRDLEVBQUMsTUFBTSxxREFBcUQsQ0FBQzs7O0FBSWpILG9IQUFvSDtBQUlwSCxNQUFNLE9BQU8sa0RBQWtEO0lBTTdELFlBQW9CLGVBQTZEO1FBQTdELG9CQUFlLEdBQWYsZUFBZSxDQUE4QztRQUxqRix5R0FBeUc7UUFDekYsVUFBSyxHQUFrQixJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRW5ELFVBQUssR0FBbUIsRUFBRSxDQUFDO1FBR2pDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDeEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNwQixDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksWUFBWSxDQUEyQixLQUE0QixFQUFFLFlBQThDO1FBQ3hILElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHVDQUF1QyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hFLElBQUksQ0FBQyw2QkFBNkIsQ0FBSSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDNUQ7UUFFRCx1Q0FBdUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLG1DQUFtQyxDQUFJLEtBQUssQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxxSkFBcUo7SUFDN0ksNkJBQTZCLENBQTJCLEtBQTRCLEVBQUUsWUFBOEM7UUFDMUksdUNBQXVDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQywwQ0FBMEMsQ0FBSSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDakcsQ0FBQzs7OztZQXJDRixVQUFVLFNBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkI7OztZQVBPLDRDQUE0QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZSwgT25EZXN0cm95fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZX0gZnJvbSBcIi4vdHJhbnNhY3Rpb24tYnVzaW5lc3Mtb2JqZWN0LWNhY2hlLW1hbmFnZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tIFwiQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvbW9kZWwvYnVzaW5lc3Mtb2JqZWN0XCI7XHJcbmltcG9ydCB7UGFyYW1ldGVyQ2FjaGVGaWVsZH0gZnJvbSBcIi4uL3BhcmFtZXRlci1jYWNoZS1maWVsZFwiO1xyXG5cclxuLy8gc2VydmljZSByZXNvbnNpYmxlIGZvciBmaWxsaW5nIHRoZSBnbG9iYWwgQk8gY2FjaGUgbWFuYWdlciBzZXJ2aWNlIHdpdGggcGFyYW1ldGVyaXplZCBzZWxlY3QgbXVsdGlwbGUgY2FjaGUgaXRlbXNcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46IFwicm9vdFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUcmFuc2FjdGlvblNlbGVjdE11bHRpcGxlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgLy8gZW1pdHMgYWZ0ZXIgdGhpcyBzZWxlY3QgbXVsdGlwbGUgcGFyYW1ldGVyaXplZCBjYWNoZSBzZXJ2aWNlIGhhcyBiZWVuIHJlc2V0IChlLmcuIGFmdGVyIHVzZXIgbG9ncyBvdXQpXHJcbiAgcHVibGljIHJlYWRvbmx5IHJlc2V0OiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYm9DYWNoZU1hbmFnZXI6IFRyYW5zYWN0aW9uQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLl9zdWJzLnB1c2godGhpcy5fYm9DYWNoZU1hbmFnZXIucmVzZXQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5yZXNldC5uZXh0KCk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3N1YnMuZm9yRWFjaChzdWIgPT4gc3ViLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJucyB0aGUgZ2xvYmFsIGNhY2hlIGl0ZW0gZm9yIHRoZSBwYXJhbWV0ZXJpemVkIHNlbGVjdCBtdWx0aXBsZSBvZiB0aGUgZ2l2ZW4gYnVzaW5lc3Mgb2JqZWN0IGNsYXNzLiBDcmVhdGVzIGEgbmV3IGNhY2hlIGl0ZW0gaWYgbm90IHlldCBleGlzdHMuXHJcbiAgICogQHBhcmFtIGNsYXp6IFRoZSBCTyBjbGFzcywgdXNlZCBmb3IgdW5kZWZseWluZyBkYXRhU2VydmljZS5zZWxlY3RNdWx0aXBsZShjbGF6eikgY2FsbC5cclxuICAgKiBAcmV0dXJucyB7Q2FjaGVGaWVsZDxUW10+fVxyXG4gICAqL1xyXG4gIHB1YmxpYyByZXF1ZXN0Q2FjaGU8VCBleHRlbmRzIEJ1c2luZXNzT2JqZWN0PihjbGF6ejogdHlwZW9mIEJ1c2luZXNzT2JqZWN0LCBsb2FkRnVuY3Rpb246ICguLi5wYXJhbXM6IGFueSkgPT4gUHJvbWlzZTxUW10+KTogUGFyYW1ldGVyQ2FjaGVGaWVsZDxUW10+IHtcclxuICAgIGlmICghdGhpcy5fYm9DYWNoZU1hbmFnZXIuaGFzU2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVJdGVtKGNsYXp6KSkge1xyXG4gICAgICB0aGlzLl9jcmVhdGVQYXJhbWV0ZXJpemVkQ2FjaGVJdGVtPFQ+KGNsYXp6LCBsb2FkRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmdldFNlbGVjdE11bHRpcGxlUGFyYW1ldGVyQ2FjaGVJdGVtPFQ+KGNsYXp6KTtcclxuICB9XHJcblxyXG4gIC8vIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcgIHBhcmFtZXRlcml6ZWQgc2VsZWN0IG11bHRpcGxlIGNhY2hlIGl0ZW0gaW50byB0aGUgZ2xvYmFsIGJ1c2luZXNzIG9iamVjdCBjYWNoZSBtYW5hZ2VyIGZvciBnaXZlbiBidXNpbmVzcyBvYmplY3QgY2xhc3MuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlUGFyYW1ldGVyaXplZENhY2hlSXRlbTxUIGV4dGVuZHMgQnVzaW5lc3NPYmplY3Q+KGNsYXp6OiB0eXBlb2YgQnVzaW5lc3NPYmplY3QsIGxvYWRGdW5jdGlvbjogKC4uLnBhcmFtczogYW55KSA9PiBQcm9taXNlPFRbXT4pOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFRbXT4ge1xyXG4gICAgLy8gbm9pbnNwZWN0aW9uIFR5cGVTY3JpcHRWYWxpZGF0ZVR5cGVzXHJcbiAgICByZXR1cm4gdGhpcy5fYm9DYWNoZU1hbmFnZXIuYWRkTmV3U2VsZWN0TXVsdGlwbGVQYXJhbWV0ZXJpemVkQ2FjaGVJdGVtPFQ+KGNsYXp6LCBsb2FkRnVuY3Rpb24pO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { TransactionBusinessObjectCacheManagerService } from './transaction-business-object-cache-manager.service';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "./transaction-business-object-cache-manager.service";
5
+ export class TransactionSelectSingleCacheService {
6
+ constructor(_boCacheManager) {
7
+ this._boCacheManager = _boCacheManager;
8
+ }
9
+ requestCache(clazz, sourceId, loadFunction, reload = false) {
10
+ if (reload) {
11
+ this._boCacheManager.deleteSingleCacheItem(clazz, sourceId);
12
+ }
13
+ if (!this._boCacheManager.hasSingleCacheItem(clazz, sourceId)) {
14
+ this._createCacheItem(clazz, sourceId, loadFunction);
15
+ }
16
+ // noinspection TypeScriptValidateTypes
17
+ return this._boCacheManager.getSingleCacheItem(clazz, sourceId);
18
+ }
19
+ _createCacheItem(clazz, sourceId, loadFunction) {
20
+ // noinspection TypeScriptValidateTypes
21
+ return this._boCacheManager.addNewSelectSingleCacheItem(clazz, sourceId, loadFunction);
22
+ }
23
+ }
24
+ TransactionSelectSingleCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionSelectSingleCacheService_Factory() { return new TransactionSelectSingleCacheService(i0.ɵɵinject(i1.TransactionBusinessObjectCacheManagerService)); }, token: TransactionSelectSingleCacheService, providedIn: "root" });
25
+ TransactionSelectSingleCacheService.decorators = [
26
+ { type: Injectable, args: [{
27
+ providedIn: "root"
28
+ },] }
29
+ ];
30
+ TransactionSelectSingleCacheService.ctorParameters = () => [
31
+ { type: TransactionBusinessObjectCacheManagerService }
32
+ ];
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VsZWN0LXNpbmdsZS1jYWNoZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9jYWNoZS9zZXJ2aWNlL3RyYW5zYWN0aW9uLXNlbGVjdC1zaW5nbGUtY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyw0Q0FBNEMsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7QUFRakgsTUFBTSxPQUFPLG1DQUFtQztJQUU5QyxZQUFvQixlQUE2RDtRQUE3RCxvQkFBZSxHQUFmLGVBQWUsQ0FBOEM7SUFDakYsQ0FBQztJQUVNLFlBQVksQ0FBMkIsS0FBbUIsRUFBRSxRQUE4QixFQUFFLFlBQThCLEVBQUUsU0FBa0IsS0FBSztRQUN4SixJQUFJLE1BQU0sRUFBRTtZQUNWLElBQUksQ0FBQyxlQUFlLENBQUMscUJBQXFCLENBQUksS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1NBQ2hFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUksS0FBSyxFQUFFLFFBQVEsQ0FBQyxFQUFFO1lBQ2hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBSSxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO1NBQ3pEO1FBRUQsdUNBQXVDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBSSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGdCQUFnQixDQUEyQixLQUFtQixFQUFFLFFBQThCLEVBQUUsWUFBOEI7UUFDcEksdUNBQXVDO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQywyQkFBMkIsQ0FBSSxLQUFLLEVBQUUsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQzVGLENBQUM7Ozs7WUF2QkYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFQTyw0Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1RyYW5zYWN0aW9uQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlfSBmcm9tICcuL3RyYW5zYWN0aW9uLWJ1c2luZXNzLW9iamVjdC1jYWNoZS1tYW5hZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0J1c2luZXNzT2JqZWN0fSBmcm9tICdAY29saWpuaXQvaW9uZWNvbm5lY3Rvci9idWlsZC9tb2RlbC9idXNpbmVzcy1vYmplY3QnO1xyXG5pbXBvcnQge0NhY2hlRmllbGR9IGZyb20gJy4uL2NhY2hlLWZpZWxkJztcclxuaW1wb3J0IHtCdXNpbmVzc09iamVjdElEVHlwZX0gZnJvbSAnQGNvbGlqbml0L2lvbmVjb25uZWN0b3IvYnVpbGQvdHlwZS9idXNpbmVzcy1vYmplY3QtaWQtdHlwZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VsZWN0U2luZ2xlQ2FjaGVTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfYm9DYWNoZU1hbmFnZXI6IFRyYW5zYWN0aW9uQnVzaW5lc3NPYmplY3RDYWNoZU1hbmFnZXJTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVxdWVzdENhY2hlPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oY2xheno6IHsgbmV3KCk6IFQgfSwgc291cmNlSWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlLCBsb2FkRnVuY3Rpb246ICgpID0+IFByb21pc2U8VD4sIHJlbG9hZDogYm9vbGVhbiA9IGZhbHNlKTogQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBpZiAocmVsb2FkKSB7XHJcbiAgICAgIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmRlbGV0ZVNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLl9ib0NhY2hlTWFuYWdlci5oYXNTaW5nbGVDYWNoZUl0ZW08VD4oY2xhenosIHNvdXJjZUlkKSkge1xyXG4gICAgICB0aGlzLl9jcmVhdGVDYWNoZUl0ZW08VD4oY2xhenosIHNvdXJjZUlkLCBsb2FkRnVuY3Rpb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmdldFNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY3JlYXRlQ2FjaGVJdGVtPFQgZXh0ZW5kcyBCdXNpbmVzc09iamVjdD4oY2xheno6IHsgbmV3KCk6IFQgfSwgc291cmNlSWQ6IEJ1c2luZXNzT2JqZWN0SURUeXBlLCBsb2FkRnVuY3Rpb246ICgpID0+IFByb21pc2U8VD4pOiBDYWNoZUZpZWxkPFQ+IHtcclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmFkZE5ld1NlbGVjdFNpbmdsZUNhY2hlSXRlbTxUPihjbGF6eiwgc291cmNlSWQsIGxvYWRGdW5jdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,47 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import { TransactionBusinessObjectCacheManagerService } from './transaction-business-object-cache-manager.service';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./transaction-business-object-cache-manager.service";
6
+ // service resonsible for filling the global BO cache manager service with parameterized select single cache items
7
+ export class TransactionSelectSingleParameterizedCacheService {
8
+ constructor(_boCacheManager) {
9
+ this._boCacheManager = _boCacheManager;
10
+ // emits after this select single parameterized cache service has been reset (e.g. after user logs out)
11
+ this.reset = new Subject();
12
+ this._subs = [];
13
+ this._subs.push(this._boCacheManager.reset.subscribe(() => {
14
+ this.reset.next();
15
+ }));
16
+ }
17
+ ngOnDestroy() {
18
+ this._subs.forEach(sub => sub.unsubscribe());
19
+ }
20
+ /**
21
+ * Returns the global cache item for the parameterized select single of the given business object class. Creates a new cache item if not yet exists.
22
+ * @param clazz The BO class, used for undeflying dataService.selectSingle(clazz) call.
23
+ * @returns {CacheField<T>}
24
+ */
25
+ requestCache(clazz, loadFunction) {
26
+ if (!this._boCacheManager.hasSelectSingleParameterizedCacheItem(clazz)) {
27
+ this._createParameterizedCacheItem(clazz, loadFunction);
28
+ }
29
+ // noinspection TypeScriptValidateTypes
30
+ return this._boCacheManager.getSelectSingleParameterCacheItem(clazz);
31
+ }
32
+ // Creates and returns a new parameterized select single cache item into the global business object cache manager for given business object class.
33
+ _createParameterizedCacheItem(clazz, loadFunction) {
34
+ // noinspection TypeScriptValidateTypes
35
+ return this._boCacheManager.addNewSelectSingleParameterizedCacheItem(clazz, loadFunction);
36
+ }
37
+ }
38
+ TransactionSelectSingleParameterizedCacheService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TransactionSelectSingleParameterizedCacheService_Factory() { return new TransactionSelectSingleParameterizedCacheService(i0.ɵɵinject(i1.TransactionBusinessObjectCacheManagerService)); }, token: TransactionSelectSingleParameterizedCacheService, providedIn: "root" });
39
+ TransactionSelectSingleParameterizedCacheService.decorators = [
40
+ { type: Injectable, args: [{
41
+ providedIn: "root"
42
+ },] }
43
+ ];
44
+ TransactionSelectSingleParameterizedCacheService.ctorParameters = () => [
45
+ { type: TransactionBusinessObjectCacheManagerService }
46
+ ];
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb24tc2VsZWN0LXNpbmdsZS1wYXJhbWV0ZXJpemVkLWNhY2hlLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2NhY2hlL3NlcnZpY2UvdHJhbnNhY3Rpb24tc2VsZWN0LXNpbmdsZS1wYXJhbWV0ZXJpemVkLWNhY2hlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUMsT0FBTyxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBQyw0Q0FBNEMsRUFBQyxNQUFNLHFEQUFxRCxDQUFDOzs7QUFLakgsa0hBQWtIO0FBSWxILE1BQU0sT0FBTyxnREFBZ0Q7SUFNM0QsWUFBb0IsZUFBNkQ7UUFBN0Qsb0JBQWUsR0FBZixlQUFlLENBQThDO1FBTGpGLHVHQUF1RztRQUN2RixVQUFLLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFbkQsVUFBSyxHQUFtQixFQUFFLENBQUM7UUFHakMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxZQUFZLENBQUksS0FBVSxFQUFFLFlBQWtEO1FBQ25GLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLHFDQUFxQyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RFLElBQUksQ0FBQyw2QkFBNkIsQ0FBSSxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUM7U0FDNUQ7UUFFRCx1Q0FBdUM7UUFDdkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGlDQUFpQyxDQUFJLEtBQUssQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxtSkFBbUo7SUFDM0ksNkJBQTZCLENBQUksS0FBVSxFQUFFLFlBQTRDO1FBQy9GLHVDQUF1QztRQUN2QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsd0NBQXdDLENBQUksS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQy9GLENBQUM7Ozs7WUFyQ0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUFSTyw0Q0FBNEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7U3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtUcmFuc2FjdGlvbkJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZX0gZnJvbSAnLi90cmFuc2FjdGlvbi1idXNpbmVzcy1vYmplY3QtY2FjaGUtbWFuYWdlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtQYXJhbWV0ZXJDYWNoZUZpZWxkfSBmcm9tICcuLi9wYXJhbWV0ZXItY2FjaGUtZmllbGQnO1xyXG5pbXBvcnQge1R9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XHJcbmltcG9ydCB7SW50ZXJuYWxQYXJhbX0gZnJvbSAnQGNvbGlqbml0L21haW5hcGkvYnVpbGQvZW51bS9pbnRlcm5hbC1wYXJhbS5lbnVtJztcclxuXHJcbi8vIHNlcnZpY2UgcmVzb25zaWJsZSBmb3IgZmlsbGluZyB0aGUgZ2xvYmFsIEJPIGNhY2hlIG1hbmFnZXIgc2VydmljZSB3aXRoIHBhcmFtZXRlcml6ZWQgc2VsZWN0IHNpbmdsZSBjYWNoZSBpdGVtc1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFRyYW5zYWN0aW9uU2VsZWN0U2luZ2xlUGFyYW1ldGVyaXplZENhY2hlU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgLy8gZW1pdHMgYWZ0ZXIgdGhpcyBzZWxlY3Qgc2luZ2xlIHBhcmFtZXRlcml6ZWQgY2FjaGUgc2VydmljZSBoYXMgYmVlbiByZXNldCAoZS5nLiBhZnRlciB1c2VyIGxvZ3Mgb3V0KVxyXG4gIHB1YmxpYyByZWFkb25seSByZXNldDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIHByaXZhdGUgX3N1YnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2JvQ2FjaGVNYW5hZ2VyOiBUcmFuc2FjdGlvbkJ1c2luZXNzT2JqZWN0Q2FjaGVNYW5hZ2VyU2VydmljZSkge1xyXG4gICAgdGhpcy5fc3Vicy5wdXNoKHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLnJlc2V0LnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMucmVzZXQubmV4dCgpO1xyXG4gICAgfSkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl9zdWJzLmZvckVhY2goc3ViID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHVybnMgdGhlIGdsb2JhbCBjYWNoZSBpdGVtIGZvciB0aGUgcGFyYW1ldGVyaXplZCBzZWxlY3Qgc2luZ2xlIG9mIHRoZSBnaXZlbiBidXNpbmVzcyBvYmplY3QgY2xhc3MuIENyZWF0ZXMgYSBuZXcgY2FjaGUgaXRlbSBpZiBub3QgeWV0IGV4aXN0cy5cclxuICAgKiBAcGFyYW0gY2xhenogVGhlIEJPIGNsYXNzLCB1c2VkIGZvciB1bmRlZmx5aW5nIGRhdGFTZXJ2aWNlLnNlbGVjdFNpbmdsZShjbGF6eikgY2FsbC5cclxuICAgKiBAcmV0dXJucyB7Q2FjaGVGaWVsZDxUPn1cclxuICAgKi9cclxuICBwdWJsaWMgcmVxdWVzdENhY2hlPFQ+KGNsYXp6OiBhbnksIGxvYWRGdW5jdGlvbjogKHBhcmFtOiBJbnRlcm5hbFBhcmFtKSA9PiBQcm9taXNlPFQ+KTogUGFyYW1ldGVyQ2FjaGVGaWVsZDxUPiB7XHJcbiAgICBpZiAoIXRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmhhc1NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZUl0ZW0oY2xhenopKSB7XHJcbiAgICAgIHRoaXMuX2NyZWF0ZVBhcmFtZXRlcml6ZWRDYWNoZUl0ZW08VD4oY2xhenosIGxvYWRGdW5jdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gbm9pbnNwZWN0aW9uIFR5cGVTY3JpcHRWYWxpZGF0ZVR5cGVzXHJcbiAgICByZXR1cm4gdGhpcy5fYm9DYWNoZU1hbmFnZXIuZ2V0U2VsZWN0U2luZ2xlUGFyYW1ldGVyQ2FjaGVJdGVtPFQ+KGNsYXp6KTtcclxuICB9XHJcblxyXG4gIC8vIENyZWF0ZXMgYW5kIHJldHVybnMgYSBuZXcgIHBhcmFtZXRlcml6ZWQgc2VsZWN0IHNpbmdsZSBjYWNoZSBpdGVtIGludG8gdGhlIGdsb2JhbCBidXNpbmVzcyBvYmplY3QgY2FjaGUgbWFuYWdlciBmb3IgZ2l2ZW4gYnVzaW5lc3Mgb2JqZWN0IGNsYXNzLlxyXG4gIHByaXZhdGUgX2NyZWF0ZVBhcmFtZXRlcml6ZWRDYWNoZUl0ZW08VD4oY2xheno6IGFueSwgbG9hZEZ1bmN0aW9uOiAoLi4ucGFyYW1zOiBhbnkpID0+IFByb21pc2U8VD4pOiBQYXJhbWV0ZXJDYWNoZUZpZWxkPFQ+IHtcclxuICAgIC8vIG5vaW5zcGVjdGlvbiBUeXBlU2NyaXB0VmFsaWRhdGVUeXBlc1xyXG4gICAgcmV0dXJuIHRoaXMuX2JvQ2FjaGVNYW5hZ2VyLmFkZE5ld1NlbGVjdFNpbmdsZVBhcmFtZXRlcml6ZWRDYWNoZUl0ZW08VD4oY2xhenosIGxvYWRGdW5jdGlvbik7XHJcbiAgfVxyXG59XHJcbiJdfQ==