@colijnit/transaction 12.1.59 → 12.1.61
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.
- package/bundles/colijnit-transaction.umd.js +1390 -1875
- package/bundles/colijnit-transaction.umd.js.map +1 -1
- package/colijnit-transaction.d.ts +282 -278
- package/colijnit-transaction.metadata.json +1 -1
- package/esm2015/colijnit-transaction.js +283 -279
- package/esm2015/lib/cache/parameter-cache-field.js +2 -2
- package/esm2015/lib/cache/service/business-object-cache-manager.service.js +2 -2
- package/esm2015/lib/cache/service/select-multiple-cache.service.js +1 -1
- package/esm2015/lib/cache/service/select-multiple-parameterized-cache.service.js +1 -1
- package/esm2015/lib/cache/service/select-single-cache.service.js +1 -1
- package/esm2015/lib/component/avatar/avatar.component.js +8 -5
- package/esm2015/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.js +1 -1
- package/esm2015/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.js +2 -5
- package/esm2015/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.js +2 -2
- package/esm2015/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.js +19 -133
- package/esm2015/lib/component/checkout/checkout.component.js +8 -3
- package/esm2015/lib/component/core/base/transaction-filter-popup-base.component.js +1 -1
- package/esm2015/lib/component/core/base/transaction-header-base.component.js +1 -1
- package/esm2015/lib/component/core/base/transaction-header-filter-popup-base.component.js +1 -1
- package/esm2015/lib/component/core/base/transaction-line-base.component.js +1 -1
- package/esm2015/lib/component/core/relation/customer-groups.component.js +1 -1
- package/esm2015/lib/component/dialog/dialog-header-search/dialog-header-search.component.js +2 -2
- package/esm2015/lib/component/editable-label/editable-label.component.js +4 -1
- package/esm2015/lib/component/quick-send-button/quick-send-button.component.js +116 -0
- package/esm2015/lib/component/quick-send-button/quick-send-button.module.js +27 -0
- package/esm2015/lib/component/relation/relation-address/relation-address.component.js +4 -4
- package/esm2015/lib/component/relation/relation-address-select/relation-address-select.component.js +7 -8
- package/esm2015/lib/component/relation/relation-address-tile/relation-address-tile.component.js +1 -1
- package/esm2015/lib/component/relation/relation-addresses/relation-addresses.component.js +9 -17
- package/esm2015/lib/component/relation/relation-base.component.js +2 -2
- package/esm2015/lib/component/relation/relation-contact-details/relation-contact-details.component.js +4 -4
- package/esm2015/lib/component/relation/relation-general/relation-general.component.js +13 -10
- package/esm2015/lib/component/relation/relation-preferences/relation-preferences.component.js +2 -2
- package/esm2015/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.js +1 -1
- package/esm2015/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.js +1 -1
- package/esm2015/lib/component/relation/relation-type/relation-type.component.js +3 -3
- package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.js +5 -6
- package/esm2015/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.module.js +1 -5
- package/esm2015/lib/component/shopping-cart/shopping-cart.component.js +2 -2
- package/esm2015/lib/component/transaction/transaction.component.js +6 -2
- package/esm2015/lib/component/transaction/transaction.module.js +4 -2
- package/esm2015/lib/component/transaction-header/transaction-header/transaction-header.component.js +2 -2
- package/esm2015/lib/component/transaction-header/transaction-header-payment/transaction-header-payment.component.js +2 -2
- package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.js +103 -59
- package/esm2015/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.module.js +5 -3
- package/esm2015/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.js +9 -6
- package/esm2015/lib/component/transaction-header-fields/transaction-header-branch.component.js +8 -5
- package/esm2015/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.js +9 -3
- package/esm2015/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.js +6 -4
- package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.js +15 -0
- package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.js +56 -30
- package/esm2015/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.module.js +4 -3
- package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-button.component.js +1 -1
- package/esm2015/lib/component/transaction-line-fields/transaction-line-commission-code.component.js +1 -1
- package/esm2015/lib/component/transaction-line-fields/transaction-line-delivery-date-button.component.js +2 -2
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier-button.component.js +7 -4
- package/esm2015/lib/component/transaction-line-fields/transaction-line-supplier.component.js +9 -6
- package/esm2015/lib/component/transaction-line-side-panel-purchase/transaction-line-side-panel-purchase.component.js +1 -2
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.js +21 -5
- package/esm2015/lib/component/transaction-quick-access/transaction-quick-access-overview/transaction-quick-access-overview.component.js +2 -2
- package/esm2015/lib/component/transaction-search/service/transaction-search.service.js +2 -2
- package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.js +9 -6
- package/esm2015/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.js +7 -4
- package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.js +9 -6
- package/esm2015/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.js +9 -6
- package/esm2015/lib/component/transaction-search/transaction-search-header/transaction-search-header.component.js +2 -6
- package/esm2015/lib/component/transaction-search/transaction-search.component.js +2 -2
- package/esm2015/lib/model/relation-any-type.js +1 -1
- package/esm2015/lib/pipe/co-currency.pipe.js +2 -2
- package/esm2015/lib/pipe/date-duration.pipe.js +2 -2
- package/esm2015/lib/pipe/delivery-time.pipe.js +2 -2
- package/esm2015/lib/service/article-connector.service.js +10 -6
- package/esm2015/lib/service/dictionary.service.js +2 -2
- package/esm2015/lib/service/error.service.js +1 -1
- package/esm2015/lib/service/payment.service.js +1 -1
- package/esm2015/lib/service/pending-reason.service.js +25 -33
- package/esm2015/lib/service/relation-connector.service.js +192 -0
- package/esm2015/lib/service/relation.service.js +120 -0
- package/esm2015/lib/service/shared-connector.service.js +2 -2
- package/esm2015/lib/service/shared.service.js +10 -6
- package/esm2015/lib/service/transaction-connector-adapter.service.js +69 -140
- package/esm2015/lib/service/transaction-connector.service.js +21 -59
- package/esm2015/lib/service/transaction-event.service.js +4 -2
- package/esm2015/lib/service/transaction-mapping.service.js +2 -1
- package/esm2015/lib/service/transaction.service.js +29 -83
- package/fesm2015/colijnit-transaction.js +1057 -1528
- package/fesm2015/colijnit-transaction.js.map +1 -1
- package/lib/cache/service/business-object-cache-manager.service.d.ts +2 -1
- package/lib/cache/service/select-multiple-cache.service.d.ts +1 -1
- package/lib/cache/service/select-multiple-parameterized-cache.service.d.ts +1 -1
- package/lib/cache/service/select-single-cache.service.d.ts +2 -1
- package/lib/component/avatar/avatar.component.d.ts +5 -3
- package/lib/component/checkout/checkout-overview-delivery-address/checkout-overview-delivery-address.component.d.ts +1 -1
- package/lib/component/checkout/checkout-overview-delivery-edit/checkout-overview-delivery-edit.component.d.ts +3 -5
- package/lib/component/checkout/checkout-overview-payment/checkout-overview-payment.component.d.ts +2 -2
- package/lib/component/checkout/checkout-overview-relation-edit/checkout-overview-relation-edit.component.d.ts +9 -14
- package/lib/component/core/base/transaction-filter-popup-base.component.d.ts +1 -1
- package/lib/component/core/base/transaction-header-base.component.d.ts +1 -1
- package/lib/component/core/base/transaction-header-filter-popup-base.component.d.ts +1 -1
- package/lib/component/core/base/transaction-line-base.component.d.ts +1 -1
- package/lib/component/core/relation/customer-groups.component.d.ts +1 -1
- package/lib/component/editable-label/editable-label.component.d.ts +1 -0
- package/lib/component/editable-label/style/_layout.scss +9 -0
- package/lib/component/editable-label/style/_material-definition.scss +1 -0
- package/lib/component/editable-label/style/material.scss +1 -1
- package/lib/component/payment/style/_layout.scss +3 -0
- package/lib/component/payment/style/_material-definition.scss +1 -0
- package/lib/component/quick-send-button/quick-send-button.component.d.ts +31 -0
- package/lib/component/quick-send-button/quick-send-button.module.d.ts +2 -0
- package/lib/component/quick-send-button/style/_layout.scss +52 -1
- package/lib/component/quick-send-button/style/_material-definition.scss +4 -0
- package/lib/component/relation/relation-address/relation-address.component.d.ts +2 -2
- package/lib/component/relation/relation-address-select/relation-address-select.component.d.ts +3 -4
- package/lib/component/relation/relation-address-tile/relation-address-tile.component.d.ts +1 -1
- package/lib/component/relation/relation-addresses/relation-addresses.component.d.ts +5 -5
- package/lib/component/relation/relation-base.component.d.ts +2 -2
- package/lib/component/relation/relation-contact-details/relation-contact-details.component.d.ts +1 -1
- package/lib/component/relation/relation-general/relation-general.component.d.ts +6 -4
- package/lib/component/relation/relation-preferences/relation-preferences.component.d.ts +1 -1
- package/lib/component/relation/relation-suggestions-list/relation-suggestions-list.component.d.ts +1 -1
- package/lib/component/relation/relation-suggestions-list-item/relation-suggestions-list-item.component.d.ts +1 -1
- package/lib/component/relation/relation-type/relation-type.component.d.ts +2 -2
- package/lib/component/shared/transaction-article-text-overview/transaction-article-text-overview.component.d.ts +2 -3
- package/lib/component/transaction/style/_layout.scss +4 -21
- package/lib/component/transaction/style/_material-definition.scss +1 -4
- package/lib/component/transaction-header/transaction-header/transaction-header.component.d.ts +1 -1
- package/lib/component/transaction-header/transaction-header-relation/transaction-header-relation.component.d.ts +17 -12
- package/lib/component/transaction-header-fields/transaction-header-administrative-relation.component.d.ts +4 -2
- package/lib/component/transaction-header-fields/transaction-header-branch.component.d.ts +5 -3
- package/lib/component/transaction-header-fields/transaction-header-partial-delivery.component.d.ts +3 -1
- package/lib/component/transaction-line/transaction-base-line/style/_layout.scss +3 -0
- package/lib/component/transaction-line/transaction-base-line/style/_material-definition.scss +6 -0
- package/lib/component/transaction-line/transaction-base-line/transaction-base-line.component.d.ts +2 -1
- package/lib/component/transaction-line/transaction-line/style/_layout.scss +14 -8
- package/lib/component/transaction-line/transaction-order-delivery-line/service/transaction-order-delivery.service.d.ts +4 -0
- package/lib/component/transaction-line/transaction-order-delivery-line/style/_layout.scss +4 -4
- package/lib/component/transaction-line/transaction-order-delivery-line/transaction-order-delivery-line.component.d.ts +9 -4
- package/lib/component/transaction-line-fields/transaction-line-commission-code.component.d.ts +1 -1
- package/lib/component/transaction-line-fields/transaction-line-supplier-button.component.d.ts +3 -1
- package/lib/component/transaction-line-fields/transaction-line-supplier.component.d.ts +4 -2
- package/lib/component/transaction-lines/style/material.scss +1 -0
- package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/style/_layout.scss +4 -0
- package/lib/component/transaction-quick-access/transaction-quick-access-order-delivery/transaction-quick-access-order-delivery.component.d.ts +10 -3
- package/lib/component/transaction-search/style/_layout.scss +1 -1
- package/lib/component/transaction-search/style/_material-definition.scss +0 -2
- package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-article/transaction-purchase-order-filter-content-article.component.d.ts +3 -1
- package/lib/component/transaction-search/transaction-filter-content/purchase-order-filter-content/transaction-purchase-order-filter-content-order/transaction-purchase-order-filter-content-order.component.d.ts +3 -1
- package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-article/transaction-sales-order-filter-content-article.component.d.ts +3 -1
- package/lib/component/transaction-search/transaction-filter-content/sales-order-filter-content/transaction-sales-order-filter-content-order/transaction-sales-order-filter-content-order.component.d.ts +3 -1
- package/lib/component/transaction-search/transaction-search-header/style/_layout.scss +0 -10
- package/lib/model/relation-any-type.d.ts +2 -2
- package/lib/service/article-connector.service.d.ts +3 -1
- package/lib/service/error.service.d.ts +1 -1
- package/lib/service/pending-reason.service.d.ts +5 -5
- package/lib/service/relation-connector.service.d.ts +34 -0
- package/lib/service/relation.service.d.ts +37 -0
- package/lib/service/shared.service.d.ts +3 -1
- package/lib/service/transaction-connector-adapter.service.d.ts +16 -25
- package/lib/service/transaction-connector.service.d.ts +14 -25
- package/lib/service/transaction-event.service.d.ts +4 -2
- package/lib/service/transaction.service.d.ts +9 -25
- package/lib/style/_variables.scss +23 -23
- package/package.json +9 -3
- package/esm2015/lib/factory/business-object-factory.js +0 -120
- package/esm2015/lib/factory/decorators/boolean.decorator.js +0 -102
- package/esm2015/lib/factory/decorators/complex-array.decorator.js +0 -55
- package/esm2015/lib/factory/decorators/complex-field.decorator.js +0 -57
- package/esm2015/lib/factory/decorators/date-field.decorator.js +0 -36
- package/esm2015/lib/factory/decorators/string-number.decorator.js +0 -43
- package/esm2015/lib/model/business-object.js +0 -81
- package/esm2015/lib/utils/array-utils.js +0 -183
- package/esm2015/lib/utils/is-nill.function.js +0 -5
- package/esm2015/lib/utils/string-utils.js +0 -64
- package/lib/factory/business-object-factory.d.ts +0 -23
- package/lib/factory/decorators/boolean.decorator.d.ts +0 -43
- package/lib/factory/decorators/complex-array.decorator.d.ts +0 -25
- package/lib/factory/decorators/complex-field.decorator.d.ts +0 -25
- package/lib/factory/decorators/date-field.decorator.d.ts +0 -17
- package/lib/factory/decorators/string-number.decorator.d.ts +0 -22
- package/lib/model/business-object.d.ts +0 -7
- package/lib/utils/array-utils.d.ts +0 -57
- package/lib/utils/is-nill.function.d.ts +0 -1
- package/lib/utils/string-utils.d.ts +0 -22
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import { GetYesNoDbBooleanValue } from "@colijnit/transactionapi/build/enum/yes-no-db-type.enum";
|
|
2
|
-
import { GetTrueFalseDbBooleanValue } from "@colijnit/transactionapi/build/enum/true-false-db-type.enum";
|
|
3
|
-
import { GetOneZeroDbBooleanValue } from "@colijnit/transactionapi/build/enum/one-zero-bool-db-type.enum";
|
|
4
|
-
import { GetLogicalBooleanValue } from "@colijnit/transactionapi/build/enum/db-boolean-value-type.enum";
|
|
5
|
-
const PROP_META_KEY_JN = "booleanTextJN";
|
|
6
|
-
const PROP_META_KEY_TF = "booleanTextTF";
|
|
7
|
-
const PROP_META_KEY_10 = "booleanText10";
|
|
8
|
-
/**
|
|
9
|
-
* There are 'J', 'T', 'N', 'F', 0 and 1 'boolean values' in the database. These should be translated to true and false boolean values in
|
|
10
|
-
* our client application.
|
|
11
|
-
*
|
|
12
|
-
* The values 'J' and 'N' seem to be most commonly used. This is the default setting when using this decorator.
|
|
13
|
-
* You can pass 'T' or 1 for the other variants as follows:
|
|
14
|
-
*
|
|
15
|
-
* Usage:
|
|
16
|
-
*
|
|
17
|
-
* @BooleanText() or @BooleanText("J") (the default, uses YesNoDbType char values)
|
|
18
|
-
* public foo: boolean // 'J' and 'N' become true and false after BusinessObjectFactoryService and -SerializerService processing
|
|
19
|
-
*
|
|
20
|
-
* @BooleanText('T') (uses TrueFalseDbType char values)
|
|
21
|
-
* public bar: boolean // 'T' and 'F' become true and false after BusinessObjectFactoryService and -SerializerService processing
|
|
22
|
-
*
|
|
23
|
-
* @BooleanText(1)
|
|
24
|
-
* public baz: boolean // 1 and 0 become true and false after BusinessObjectFactoryService and -SerializerService processing
|
|
25
|
-
*/
|
|
26
|
-
export function BooleanText(type) {
|
|
27
|
-
return function (target, propertyKey) {
|
|
28
|
-
if (!target || !propertyKey) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
// by default, it's a J N boolean text
|
|
32
|
-
if (!type || type === "J") {
|
|
33
|
-
Reflect.defineMetadata(PROP_META_KEY_JN, true, target, propertyKey);
|
|
34
|
-
}
|
|
35
|
-
else if (type === "T") {
|
|
36
|
-
Reflect.defineMetadata(PROP_META_KEY_TF, true, target, propertyKey);
|
|
37
|
-
}
|
|
38
|
-
else if (type === 1) {
|
|
39
|
-
Reflect.defineMetadata(PROP_META_KEY_10, true, target, propertyKey);
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
// Utility function holder of the BooleanTextDecorator decorator.
|
|
44
|
-
export class BooleanTextDecorator {
|
|
45
|
-
/**
|
|
46
|
-
* Returns whether given property (as a string) on given object is a boolean text field. That is, it's a field that is decorated
|
|
47
|
-
* with the @BooleanText decorator.
|
|
48
|
-
*/
|
|
49
|
-
static IsBooleanTextField(target, propertyKey) {
|
|
50
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
51
|
-
return false;
|
|
52
|
-
}
|
|
53
|
-
return (Reflect.getMetadata(PROP_META_KEY_JN, target, propertyKey) === true
|
|
54
|
-
||
|
|
55
|
-
Reflect.getMetadata(PROP_META_KEY_TF, target, propertyKey) === true
|
|
56
|
-
||
|
|
57
|
-
Reflect.getMetadata(PROP_META_KEY_10, target, propertyKey) === true);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Returns the logical true or false value of given character ('J', 'N', 'T' or 'F') or number (0 or 1).
|
|
61
|
-
* Returns UNDEFINED if given boolChar was not recognised as a boolean text.
|
|
62
|
-
*/
|
|
63
|
-
static GetLogicalBooleanValue(dbBoolChar) {
|
|
64
|
-
return GetLogicalBooleanValue(dbBoolChar);
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Returns the boolean character / number of given logical bool property on target object. Uses its @BooleanText() annotation to decide
|
|
68
|
-
* what character / number to return.
|
|
69
|
-
* Used in BusinessObjectSerializerServiceService to convert logical bools to their original boolean character.
|
|
70
|
-
* @returns {string|number} The original, reverse-engineered boolean character (or number) of given object property, or undefined.
|
|
71
|
-
*/
|
|
72
|
-
static GetDbBooleanValue(target, propertyKey) {
|
|
73
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
74
|
-
return undefined;
|
|
75
|
-
}
|
|
76
|
-
let dbBoolVal = undefined;
|
|
77
|
-
const curBoolVal = target[propertyKey];
|
|
78
|
-
if (BooleanTextDecorator._IsJaNeeProp(target, propertyKey)) {
|
|
79
|
-
dbBoolVal = GetYesNoDbBooleanValue(curBoolVal);
|
|
80
|
-
}
|
|
81
|
-
else if (BooleanTextDecorator._IsTrueFalseProp(target, propertyKey)) {
|
|
82
|
-
dbBoolVal = GetTrueFalseDbBooleanValue(curBoolVal);
|
|
83
|
-
}
|
|
84
|
-
else if (BooleanTextDecorator._IsZeroOneProp(target, propertyKey)) {
|
|
85
|
-
dbBoolVal = GetOneZeroDbBooleanValue(curBoolVal);
|
|
86
|
-
}
|
|
87
|
-
return dbBoolVal;
|
|
88
|
-
}
|
|
89
|
-
static _IsJaNeeProp(target, propertyKey) {
|
|
90
|
-
return BooleanTextDecorator._IsProp(PROP_META_KEY_JN, target, propertyKey);
|
|
91
|
-
}
|
|
92
|
-
static _IsTrueFalseProp(target, propertyKey) {
|
|
93
|
-
return BooleanTextDecorator._IsProp(PROP_META_KEY_TF, target, propertyKey);
|
|
94
|
-
}
|
|
95
|
-
static _IsZeroOneProp(target, propertyKey) {
|
|
96
|
-
return BooleanTextDecorator._IsProp(PROP_META_KEY_10, target, propertyKey);
|
|
97
|
-
}
|
|
98
|
-
static _IsProp(prop, target, propertyKey) {
|
|
99
|
-
return !!target && !!propertyKey && typeof target === "object" && Reflect.hasMetadata(prop, target, propertyKey);
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2ZhY3RvcnkvZGVjb3JhdG9ycy9ib29sZWFuLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQztBQUMvRixPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw2REFBNkQsQ0FBQztBQUN2RyxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSxnRUFBZ0UsQ0FBQztBQUN4RyxPQUFPLEVBQXFCLHNCQUFzQixFQUFDLE1BQU0sZ0VBQWdFLENBQUM7QUFFMUgsTUFBTSxnQkFBZ0IsR0FBVyxlQUFlLENBQUM7QUFDakQsTUFBTSxnQkFBZ0IsR0FBVyxlQUFlLENBQUM7QUFDakQsTUFBTSxnQkFBZ0IsR0FBVyxlQUFlLENBQUM7QUFFakQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFvQjtJQUM1QyxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQW1CO1FBQzdDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBQ0Qsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxJQUFJLElBQUksSUFBSSxLQUFLLEdBQUcsRUFBRTtZQUN2QixPQUFPLENBQUMsY0FBYyxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7U0FDdkU7YUFBTSxJQUFJLElBQUksS0FBSyxHQUFHLEVBQUU7WUFDckIsT0FBTyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ3ZFO2FBQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztTQUN2RTtJQUNMLENBQUMsQ0FBQztBQUNOLENBQUM7QUFFRCxpRUFBaUU7QUFDakUsTUFBTSxPQUFPLG9CQUFvQjtJQUU3Qjs7O09BR0c7SUFDSSxNQUFNLENBQUMsa0JBQWtCLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQ2hFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3ZELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxDQUNILE9BQU8sQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxLQUFLLElBQUk7O2dCQUVuRSxPQUFPLENBQUMsV0FBVyxDQUFDLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsS0FBSyxJQUFJOztnQkFFbkUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLEtBQUssSUFBSSxDQUN0RSxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxVQUF1QztRQUN4RSxPQUFPLHNCQUFzQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDL0QsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDdkQsT0FBTyxTQUFTLENBQUM7U0FDcEI7UUFFRCxJQUFJLFNBQVMsR0FBUSxTQUFTLENBQUM7UUFFL0IsTUFBTSxVQUFVLEdBQVksTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRWhELElBQUksb0JBQW9CLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRTtZQUN4RCxTQUFTLEdBQUcsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEQ7YUFBTSxJQUFJLG9CQUFvQixDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRTtZQUNuRSxTQUFTLEdBQUcsMEJBQTBCLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDdEQ7YUFBTSxJQUFJLG9CQUFvQixDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDakUsU0FBUyxHQUFHLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3BEO1FBRUQsT0FBTyxTQUFzQyxDQUFDO0lBQ2xELENBQUM7SUFFTyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUMzRCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDL0QsT0FBTyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFTyxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUM3RCxPQUFPLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBWSxFQUFFLE1BQWMsRUFBRSxXQUFtQjtRQUNwRSxPQUFPLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3JILENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7R2V0WWVzTm9EYkJvb2xlYW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3llcy1uby1kYi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtHZXRUcnVlRmFsc2VEYkJvb2xlYW5WYWx1ZX0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9lbnVtL3RydWUtZmFsc2UtZGItdHlwZS5lbnVtXCI7XHJcbmltcG9ydCB7R2V0T25lWmVyb0RiQm9vbGVhblZhbHVlfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL2VudW0vb25lLXplcm8tYm9vbC1kYi10eXBlLmVudW1cIjtcclxuaW1wb3J0IHtEYkJvb2xlYW5WYWx1ZVR5cGUsIEdldExvZ2ljYWxCb29sZWFuVmFsdWV9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZW51bS9kYi1ib29sZWFuLXZhbHVlLXR5cGUuZW51bVwiO1xyXG5cclxuY29uc3QgUFJPUF9NRVRBX0tFWV9KTjogc3RyaW5nID0gXCJib29sZWFuVGV4dEpOXCI7XHJcbmNvbnN0IFBST1BfTUVUQV9LRVlfVEY6IHN0cmluZyA9IFwiYm9vbGVhblRleHRURlwiO1xyXG5jb25zdCBQUk9QX01FVEFfS0VZXzEwOiBzdHJpbmcgPSBcImJvb2xlYW5UZXh0MTBcIjtcclxuXHJcbi8qKlxyXG4gKiBUaGVyZSBhcmUgJ0onLCAnVCcsICdOJywgJ0YnLCAwIGFuZCAxICdib29sZWFuIHZhbHVlcycgaW4gdGhlIGRhdGFiYXNlLiBUaGVzZSBzaG91bGQgYmUgdHJhbnNsYXRlZCB0byB0cnVlIGFuZCBmYWxzZSBib29sZWFuIHZhbHVlcyBpblxyXG4gKiBvdXIgY2xpZW50IGFwcGxpY2F0aW9uLlxyXG4gKlxyXG4gKiBUaGUgdmFsdWVzICdKJyBhbmQgJ04nIHNlZW0gdG8gYmUgbW9zdCBjb21tb25seSB1c2VkLiBUaGlzIGlzIHRoZSBkZWZhdWx0IHNldHRpbmcgd2hlbiB1c2luZyB0aGlzIGRlY29yYXRvci5cclxuICogWW91IGNhbiBwYXNzICdUJyBvciAxIGZvciB0aGUgb3RoZXIgdmFyaWFudHMgYXMgZm9sbG93czpcclxuICpcclxuICogVXNhZ2U6XHJcbiAqXHJcbiAqIEBCb29sZWFuVGV4dCgpIG9yIEBCb29sZWFuVGV4dChcIkpcIikgKHRoZSBkZWZhdWx0LCB1c2VzIFllc05vRGJUeXBlIGNoYXIgdmFsdWVzKVxyXG4gKiBwdWJsaWMgZm9vOiBib29sZWFuIC8vICdKJyBhbmQgJ04nIGJlY29tZSB0cnVlIGFuZCBmYWxzZSBhZnRlciBCdXNpbmVzc09iamVjdEZhY3RvcnlTZXJ2aWNlIGFuZCAtU2VyaWFsaXplclNlcnZpY2UgcHJvY2Vzc2luZ1xyXG4gKlxyXG4gKiBAQm9vbGVhblRleHQoJ1QnKSAodXNlcyBUcnVlRmFsc2VEYlR5cGUgY2hhciB2YWx1ZXMpXHJcbiAqIHB1YmxpYyBiYXI6IGJvb2xlYW4gLy8gJ1QnIGFuZCAnRicgYmVjb21lIHRydWUgYW5kIGZhbHNlIGFmdGVyIEJ1c2luZXNzT2JqZWN0RmFjdG9yeVNlcnZpY2UgYW5kIC1TZXJpYWxpemVyU2VydmljZSBwcm9jZXNzaW5nXHJcbiAqXHJcbiAqIEBCb29sZWFuVGV4dCgxKVxyXG4gKiBwdWJsaWMgYmF6OiBib29sZWFuIC8vIDEgYW5kIDAgYmVjb21lIHRydWUgYW5kIGZhbHNlIGFmdGVyIEJ1c2luZXNzT2JqZWN0RmFjdG9yeVNlcnZpY2UgYW5kIC1TZXJpYWxpemVyU2VydmljZSBwcm9jZXNzaW5nXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gQm9vbGVhblRleHQodHlwZT86IFwiSlwiIHwgXCJUXCIgfCAxKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIGJ5IGRlZmF1bHQsIGl0J3MgYSBKIE4gYm9vbGVhbiB0ZXh0XHJcbiAgICAgICAgaWYgKCF0eXBlIHx8IHR5cGUgPT09IFwiSlwiKSB7XHJcbiAgICAgICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoUFJPUF9NRVRBX0tFWV9KTiwgdHJ1ZSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBcIlRcIikge1xyXG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFBST1BfTUVUQV9LRVlfVEYsIHRydWUsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gMSkge1xyXG4gICAgICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFBST1BfTUVUQV9LRVlfMTAsIHRydWUsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgICAgIH1cclxuICAgIH07XHJcbn1cclxuXHJcbi8vIFV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIG9mIHRoZSBCb29sZWFuVGV4dERlY29yYXRvciBkZWNvcmF0b3IuXHJcbmV4cG9ydCBjbGFzcyBCb29sZWFuVGV4dERlY29yYXRvciB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gcHJvcGVydHkgKGFzIGEgc3RyaW5nKSBvbiBnaXZlbiBvYmplY3QgaXMgYSBib29sZWFuIHRleHQgZmllbGQuIFRoYXQgaXMsIGl0J3MgYSBmaWVsZCB0aGF0IGlzIGRlY29yYXRlZFxyXG4gICAgICogd2l0aCB0aGUgQEJvb2xlYW5UZXh0IGRlY29yYXRvci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBJc0Jvb2xlYW5UZXh0RmllbGQodGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICBpZiAoIXRhcmdldCB8fCAhcHJvcGVydHlLZXkgfHwgdHlwZW9mIHRhcmdldCAhPT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICAgIFJlZmxlY3QuZ2V0TWV0YWRhdGEoUFJPUF9NRVRBX0tFWV9KTiwgdGFyZ2V0LCBwcm9wZXJ0eUtleSkgPT09IHRydWVcclxuICAgICAgICAgICAgfHxcclxuICAgICAgICAgICAgUmVmbGVjdC5nZXRNZXRhZGF0YShQUk9QX01FVEFfS0VZX1RGLCB0YXJnZXQsIHByb3BlcnR5S2V5KSA9PT0gdHJ1ZVxyXG4gICAgICAgICAgICB8fFxyXG4gICAgICAgICAgICBSZWZsZWN0LmdldE1ldGFkYXRhKFBST1BfTUVUQV9LRVlfMTAsIHRhcmdldCwgcHJvcGVydHlLZXkpID09PSB0cnVlXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGxvZ2ljYWwgdHJ1ZSBvciBmYWxzZSB2YWx1ZSBvZiBnaXZlbiBjaGFyYWN0ZXIgKCdKJywgJ04nLCAnVCcgb3IgJ0YnKSBvciBudW1iZXIgKDAgb3IgMSkuXHJcbiAgICAgKiBSZXR1cm5zIFVOREVGSU5FRCBpZiBnaXZlbiBib29sQ2hhciB3YXMgbm90IHJlY29nbmlzZWQgYXMgYSBib29sZWFuIHRleHQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0TG9naWNhbEJvb2xlYW5WYWx1ZShkYkJvb2xDaGFyOiBEYkJvb2xlYW5WYWx1ZVR5cGUgfCBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gR2V0TG9naWNhbEJvb2xlYW5WYWx1ZShkYkJvb2xDaGFyKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdGhlIGJvb2xlYW4gY2hhcmFjdGVyIC8gbnVtYmVyIG9mIGdpdmVuIGxvZ2ljYWwgYm9vbCBwcm9wZXJ0eSBvbiB0YXJnZXQgb2JqZWN0LiBVc2VzIGl0cyBAQm9vbGVhblRleHQoKSBhbm5vdGF0aW9uIHRvIGRlY2lkZVxyXG4gICAgICogd2hhdCBjaGFyYWN0ZXIgLyBudW1iZXIgdG8gcmV0dXJuLlxyXG4gICAgICogVXNlZCBpbiBCdXNpbmVzc09iamVjdFNlcmlhbGl6ZXJTZXJ2aWNlU2VydmljZSB0byBjb252ZXJ0IGxvZ2ljYWwgYm9vbHMgdG8gdGhlaXIgb3JpZ2luYWwgYm9vbGVhbiBjaGFyYWN0ZXIuXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfG51bWJlcn0gVGhlIG9yaWdpbmFsLCByZXZlcnNlLWVuZ2luZWVyZWQgYm9vbGVhbiBjaGFyYWN0ZXIgKG9yIG51bWJlcikgb2YgZ2l2ZW4gb2JqZWN0IHByb3BlcnR5LCBvciB1bmRlZmluZWQuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0RGJCb29sZWFuVmFsdWUodGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcpOiBEYkJvb2xlYW5WYWx1ZVR5cGUge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBsZXQgZGJCb29sVmFsOiBhbnkgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgICAgIGNvbnN0IGN1ckJvb2xWYWw6IGJvb2xlYW4gPSB0YXJnZXRbcHJvcGVydHlLZXldO1xyXG5cclxuICAgICAgICBpZiAoQm9vbGVhblRleHREZWNvcmF0b3IuX0lzSmFOZWVQcm9wKHRhcmdldCwgcHJvcGVydHlLZXkpKSB7XHJcbiAgICAgICAgICAgIGRiQm9vbFZhbCA9IEdldFllc05vRGJCb29sZWFuVmFsdWUoY3VyQm9vbFZhbCk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChCb29sZWFuVGV4dERlY29yYXRvci5fSXNUcnVlRmFsc2VQcm9wKHRhcmdldCwgcHJvcGVydHlLZXkpKSB7XHJcbiAgICAgICAgICAgIGRiQm9vbFZhbCA9IEdldFRydWVGYWxzZURiQm9vbGVhblZhbHVlKGN1ckJvb2xWYWwpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoQm9vbGVhblRleHREZWNvcmF0b3IuX0lzWmVyb09uZVByb3AodGFyZ2V0LCBwcm9wZXJ0eUtleSkpIHtcclxuICAgICAgICAgICAgZGJCb29sVmFsID0gR2V0T25lWmVyb0RiQm9vbGVhblZhbHVlKGN1ckJvb2xWYWwpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGRiQm9vbFZhbCBhcyBhbnkgYXMgRGJCb29sZWFuVmFsdWVUeXBlO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9Jc0phTmVlUHJvcCh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBCb29sZWFuVGV4dERlY29yYXRvci5fSXNQcm9wKFBST1BfTUVUQV9LRVlfSk4sIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9Jc1RydWVGYWxzZVByb3AodGFyZ2V0OiBPYmplY3QsIHByb3BlcnR5S2V5OiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gQm9vbGVhblRleHREZWNvcmF0b3IuX0lzUHJvcChQUk9QX01FVEFfS0VZX1RGLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHN0YXRpYyBfSXNaZXJvT25lUHJvcCh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiBCb29sZWFuVGV4dERlY29yYXRvci5fSXNQcm9wKFBST1BfTUVUQV9LRVlfMTAsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc3RhdGljIF9Jc1Byb3AocHJvcDogc3RyaW5nLCB0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhIXRhcmdldCAmJiAhIXByb3BlcnR5S2V5ICYmIHR5cGVvZiB0YXJnZXQgPT09IFwib2JqZWN0XCIgJiYgUmVmbGVjdC5oYXNNZXRhZGF0YShwcm9wLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { notNill } from "@colijnit/transactionapi/build/utils/function/not-nill.function";
|
|
2
|
-
import { ObjectUtils } from "@colijnit/transactionapi/build/utils/object-utils";
|
|
3
|
-
const PROP_META_KEY = "complexArray";
|
|
4
|
-
/**
|
|
5
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Property decorator for properties of businessobject classes that are an array of other strongly typed businessobjects.
|
|
9
|
-
* Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods
|
|
10
|
-
* to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
*
|
|
14
|
-
* @ComplexArray(TransactionLine)
|
|
15
|
-
* public transactionLines: TransactionLine[]
|
|
16
|
-
*/
|
|
17
|
-
export function ComplexArray(type) {
|
|
18
|
-
return function (target, propertyKey) {
|
|
19
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
// warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem
|
|
23
|
-
// to be immediately processed when a class is first imported
|
|
24
|
-
if (!type) {
|
|
25
|
-
console.warn(`@ComplexArray(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +
|
|
26
|
-
`Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +
|
|
27
|
-
`where both classes and their dependencies are used, e.g. factory, repository or models..`);
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
// Utility function holder of the ComplexArrayDecorator decorator.
|
|
34
|
-
export class ComplexArrayDecorator {
|
|
35
|
-
/**
|
|
36
|
-
* Returns whether given property (as a string) on given object is a complex array. A complex array is an array field that is decorated
|
|
37
|
-
* with the @ComplexArray decorator.
|
|
38
|
-
*/
|
|
39
|
-
static IsComplexArray(target, propertyKey) {
|
|
40
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
41
|
-
return false;
|
|
42
|
-
}
|
|
43
|
-
return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Returns the VALUE of the @ComplexArray(VALUE) property decorator on the given propertyKey on the given modelobject.
|
|
47
|
-
*/
|
|
48
|
-
static GetComplexArrayType(target, propertyKey) {
|
|
49
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC1hcnJheS5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2ZhY3RvcnkvZGVjb3JhdG9ycy9jb21wbGV4LWFycmF5LmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDeEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlFLE1BQU0sYUFBYSxHQUFXLGNBQWMsQ0FBQztBQUU3Qzs7R0FFRztBQUVIOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBUztJQUNsQyxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQW1CO1FBQzdDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3ZELE9BQU87U0FDVjtRQUNELGtJQUFrSTtRQUNsSSw2REFBNkQ7UUFDN0QsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sQ0FBQyxJQUFJLENBQUMsNERBQTRELFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssV0FBVyxLQUFLO2dCQUMxSCxzSEFBc0g7Z0JBQ3RILDBGQUEwRixDQUFDLENBQUM7WUFDaEcsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDNUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDdkQsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFFRCxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLG1CQUFtQixDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUNqRSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUN2RCxPQUFPLFNBQVMsQ0FBQztTQUNwQjtRQUVELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7bm90TmlsbH0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9mdW5jdGlvbi9ub3QtbmlsbC5mdW5jdGlvblwiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL29iamVjdC11dGlsc1wiO1xyXG5cclxuY29uc3QgUFJPUF9NRVRBX0tFWTogc3RyaW5nID0gXCJjb21wbGV4QXJyYXlcIjtcclxuXHJcbi8qKlxyXG4gKiAhISBqdXN0IGEgVEFHIERFQ09SQVRPUiBmb3Igbm93LCB0aGVyZSBpcyBubyBjb2RlIHRoYXQgdXNlcyB0aGlzIG1ldGEgZGF0YSB3aXRoaW4gdGhlIGlvbmUgY29ubmVjdG9yIGxpYiBpdHNlbGYuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciBmb3IgcHJvcGVydGllcyBvZiBidXNpbmVzc29iamVjdCBjbGFzc2VzIHRoYXQgYXJlIGFuIGFycmF5IG9mIG90aGVyIHN0cm9uZ2x5IHR5cGVkIGJ1c2luZXNzb2JqZWN0cy5cclxuICogRW5zdXJlcyB0aGF0IHRoZSBCdXNpbmVzc09iamVjdEZhY3RvcnlTZXJ2aWNlIG1ha2VzIHByb3Blcmx5IHR5cGVkIG9iamVjdHMgZnJvbSBpbmNvbWluZyByYXcgcGVyc2lzdGVuY2UgZGF0YS4gT3RoZXJ3aXNlIHdlIGNvdWxkbid0IGFkZCBtZXRob2RzXHJcbiAqIHRvIG91ciBvd24gYnVzaW5lc3NvYmplY3RzIGFuZCB1c2UgdGhlbSwgc2luY2UgYWxsIGZpZWxkcyB3b3VsZCBiZSBmbGF0IGRhdGEgd2l0aG91dCBtZXRob2RzIGFmdGVyIEJ1c2luZXNzT2JqZWN0RmFjdG9yeVNlcnZpY2UgY3JlYXRpb24uXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiBAQ29tcGxleEFycmF5KFRyYW5zYWN0aW9uTGluZSlcclxuICogcHVibGljIHRyYW5zYWN0aW9uTGluZXM6IFRyYW5zYWN0aW9uTGluZVtdXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gQ29tcGxleEFycmF5KHR5cGU6IGFueSk6IFByb3BlcnR5RGVjb3JhdG9yIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAodGFyZ2V0OiBhbnksIHByb3BlcnR5S2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRhcmdldCB8fCAhcHJvcGVydHlLZXkgfHwgdHlwZW9mIHRhcmdldCAhPT0gXCJvYmplY3RcIikge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHdhcm4gdGhlIHByb2dyYW1tZXIgaWYgZ2l2ZW4gdHlwZSB3YXMgdW5kZWZpbmVkOyBpdCdzIHByb2JhYmx5IGFuIGltcG9ydCBvcmRlciBnbGl0Y2ggdGhhdCBjYXVzZWQgdGhpcywgYmVjYXVzZSBkZWNvcmF0b3JzIHNlZW1cclxuICAgICAgICAvLyB0byBiZSBpbW1lZGlhdGVseSBwcm9jZXNzZWQgd2hlbiBhIGNsYXNzIGlzIGZpcnN0IGltcG9ydGVkXHJcbiAgICAgICAgaWYgKCF0eXBlKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihgQENvbXBsZXhBcnJheSh0eXBlKTogdHlwZSB3YXMgVU5ERUZJTkVELiBDYWxsZWQgb24gcHJvcCAoJHtPYmplY3RVdGlscy5HZXRDbGFzc05hbWUodGFyZ2V0KX0sICR7cHJvcGVydHlLZXl9KS4gYCArXHJcbiAgICAgICAgICAgICAgICBgQ2xhc3Mgd2lsbCBub3QgcHJvcGVybHkgc2VyaWFsaXplIGFuZCBkZXNlcmlhbGl6ZSBub3cuIFdlJ3ZlIGFsd2F5cyBiZWVuIGFibGUgdG8gZml4IHRoaXMgYnkgQ0hBTkdJTkcgSU1QT1JUIE9SREVSUyBgICtcclxuICAgICAgICAgICAgICAgIGB3aGVyZSBib3RoIGNsYXNzZXMgYW5kIHRoZWlyIGRlcGVuZGVuY2llcyBhcmUgdXNlZCwgZS5nLiBmYWN0b3J5LCByZXBvc2l0b3J5IG9yIG1vZGVscy4uYCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShQUk9QX01FVEFfS0VZLCB0eXBlLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8vIFV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIG9mIHRoZSBDb21wbGV4QXJyYXlEZWNvcmF0b3IgZGVjb3JhdG9yLlxyXG5leHBvcnQgY2xhc3MgQ29tcGxleEFycmF5RGVjb3JhdG9yIHtcclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIHByb3BlcnR5IChhcyBhIHN0cmluZykgb24gZ2l2ZW4gb2JqZWN0IGlzIGEgY29tcGxleCBhcnJheS4gQSBjb21wbGV4IGFycmF5IGlzIGFuIGFycmF5IGZpZWxkIHRoYXQgaXMgZGVjb3JhdGVkXHJcbiAgICAgKiB3aXRoIHRoZSBAQ29tcGxleEFycmF5IGRlY29yYXRvci5cclxuICAgICAqL1xyXG4gICAgcHVibGljIHN0YXRpYyBJc0NvbXBsZXhBcnJheSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSB8fCB0eXBlb2YgdGFyZ2V0ICE9PSBcIm9iamVjdFwiKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiAobm90TmlsbChSZWZsZWN0LmdldE1ldGFkYXRhKFBST1BfTUVUQV9LRVksIHRhcmdldCwgcHJvcGVydHlLZXkpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZXR1cm5zIHRoZSBWQUxVRSBvZiB0aGUgQENvbXBsZXhBcnJheShWQUxVRSkgcHJvcGVydHkgZGVjb3JhdG9yIG9uIHRoZSBnaXZlbiBwcm9wZXJ0eUtleSBvbiB0aGUgZ2l2ZW4gbW9kZWxvYmplY3QuXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Q29tcGxleEFycmF5VHlwZSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBSZWZsZWN0LmdldE1ldGFkYXRhKFBST1BfTUVUQV9LRVksIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import { notNill } from "@colijnit/transactionapi/build/utils/function/not-nill.function";
|
|
2
|
-
import { ObjectUtils } from "@colijnit/transactionapi/build/utils/object-utils";
|
|
3
|
-
const PROP_META_KEY = "complexField";
|
|
4
|
-
/**
|
|
5
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Property decorator for properties of businessobject classes that are other strongly typed businessobjects.
|
|
9
|
-
* Ensures that the BusinessObjectFactoryService makes properly typed objects from incoming raw persistence data. Otherwise we couldn't add methods
|
|
10
|
-
* to our own businessobjects and use them, since all fields would be flat data without methods after BusinessObjectFactoryService creation.
|
|
11
|
-
*
|
|
12
|
-
* Usage:
|
|
13
|
-
*
|
|
14
|
-
* @ComplexField(Transaction)
|
|
15
|
-
* public transaction: Transaction
|
|
16
|
-
*
|
|
17
|
-
* Also keeps track of a "complexFieldProps" metadata on the class-level, as a reflect-metadata workaround to be able to
|
|
18
|
-
* retrieve all properties that have the @ComplexField(..) decorator (impossible with current Reflect API).
|
|
19
|
-
*/
|
|
20
|
-
export function ComplexField(type) {
|
|
21
|
-
return function (target, propertyKey) {
|
|
22
|
-
if (!target || !propertyKey) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
// warn the programmer if given type was undefined; it's probably an import order glitch that caused this, because decorators seem
|
|
26
|
-
// to be immediately processed when a class is first imported
|
|
27
|
-
if (!type) {
|
|
28
|
-
// eslint-disable-next-line no-console
|
|
29
|
-
console.warn(`@ComplexField(type): type was UNDEFINED. Called on prop (${ObjectUtils.GetClassName(target)}, ${propertyKey}). ` +
|
|
30
|
-
`Class will not properly serialize and deserialize now. We've always been able to fix this by CHANGING IMPORT ORDERS ` +
|
|
31
|
-
`where both classes and their dependencies are used, e.g. factory, repository or models..`);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
Reflect.defineMetadata(PROP_META_KEY, type, target, propertyKey);
|
|
35
|
-
};
|
|
36
|
-
}
|
|
37
|
-
// Utility function holder of the ComplexFieldDecorator decorator.
|
|
38
|
-
export class ComplexFieldDecorator {
|
|
39
|
-
/**
|
|
40
|
-
* Returns whether given property (as a string) on given object is a complex field. A complex field is a field that is decorated
|
|
41
|
-
* with the @ComplexField decorator.
|
|
42
|
-
*/
|
|
43
|
-
static IsComplexField(target, propertyKey) {
|
|
44
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
return (notNill(Reflect.getMetadata(PROP_META_KEY, target, propertyKey)));
|
|
48
|
-
}
|
|
49
|
-
// Returns the VALUE of the @ComplexField(VALUE) property decorator on the given propertyKey on the given modelObject.
|
|
50
|
-
static GetComplexFieldType(target, propertyKey) {
|
|
51
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
52
|
-
return undefined;
|
|
53
|
-
}
|
|
54
|
-
return Reflect.getMetadata(PROP_META_KEY, target, propertyKey);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxleC1maWVsZC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2ZhY3RvcnkvZGVjb3JhdG9ycy9jb21wbGV4LWZpZWxkLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUVBQWlFLENBQUM7QUFDeEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBRTlFLE1BQU0sYUFBYSxHQUFXLGNBQWMsQ0FBQztBQUU3Qzs7R0FFRztBQUVIOzs7Ozs7Ozs7Ozs7R0FZRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQUMsSUFBUztJQUNsQyxPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQW1CO1FBQzdDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBRUQsa0lBQWtJO1FBQ2xJLDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ1Qsc0NBQXNDO1lBQ3BDLE9BQU8sQ0FBQyxJQUFJLENBQUMsNERBQTRELFdBQVcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssV0FBVyxLQUFLO2dCQUMxSCxzSEFBc0g7Z0JBQ3RILDBGQUEwRixDQUFDLENBQUM7WUFDaEcsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUNyRSxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsa0VBQWtFO0FBQ2xFLE1BQU0sT0FBTyxxQkFBcUI7SUFFOUI7OztPQUdHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFjLEVBQUUsV0FBbUI7UUFDNUQsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDdkQsT0FBTyxLQUFLLENBQUM7U0FDaEI7UUFDRCxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELHNIQUFzSDtJQUMvRyxNQUFNLENBQUMsbUJBQW1CLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQ2pFLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3ZELE9BQU8sU0FBUyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtub3ROaWxsfSBmcm9tIFwiQGNvbGlqbml0L3RyYW5zYWN0aW9uYXBpL2J1aWxkL3V0aWxzL2Z1bmN0aW9uL25vdC1uaWxsLmZ1bmN0aW9uXCI7XHJcbmltcG9ydCB7T2JqZWN0VXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvb2JqZWN0LXV0aWxzXCI7XHJcblxyXG5jb25zdCBQUk9QX01FVEFfS0VZOiBzdHJpbmcgPSBcImNvbXBsZXhGaWVsZFwiO1xyXG5cclxuLyoqXHJcbiAqICEhIGp1c3QgYSBUQUcgREVDT1JBVE9SIGZvciBub3csIHRoZXJlIGlzIG5vIGNvZGUgdGhhdCB1c2VzIHRoaXMgbWV0YSBkYXRhIHdpdGhpbiB0aGUgaW9uZSBjb25uZWN0b3IgbGliIGl0c2VsZi5cclxuICovXHJcblxyXG4vKipcclxuICogUHJvcGVydHkgZGVjb3JhdG9yIGZvciBwcm9wZXJ0aWVzIG9mIGJ1c2luZXNzb2JqZWN0IGNsYXNzZXMgdGhhdCBhcmUgb3RoZXIgc3Ryb25nbHkgdHlwZWQgYnVzaW5lc3NvYmplY3RzLlxyXG4gKiBFbnN1cmVzIHRoYXQgdGhlIEJ1c2luZXNzT2JqZWN0RmFjdG9yeVNlcnZpY2UgbWFrZXMgcHJvcGVybHkgdHlwZWQgb2JqZWN0cyBmcm9tIGluY29taW5nIHJhdyBwZXJzaXN0ZW5jZSBkYXRhLiBPdGhlcndpc2Ugd2UgY291bGRuJ3QgYWRkIG1ldGhvZHNcclxuICogdG8gb3VyIG93biBidXNpbmVzc29iamVjdHMgYW5kIHVzZSB0aGVtLCBzaW5jZSBhbGwgZmllbGRzIHdvdWxkIGJlIGZsYXQgZGF0YSB3aXRob3V0IG1ldGhvZHMgYWZ0ZXIgQnVzaW5lc3NPYmplY3RGYWN0b3J5U2VydmljZSBjcmVhdGlvbi5cclxuICpcclxuICogVXNhZ2U6XHJcbiAqXHJcbiAqIEBDb21wbGV4RmllbGQoVHJhbnNhY3Rpb24pXHJcbiAqIHB1YmxpYyB0cmFuc2FjdGlvbjogVHJhbnNhY3Rpb25cclxuICpcclxuICogQWxzbyBrZWVwcyB0cmFjayBvZiBhIFwiY29tcGxleEZpZWxkUHJvcHNcIiBtZXRhZGF0YSBvbiB0aGUgY2xhc3MtbGV2ZWwsIGFzIGEgcmVmbGVjdC1tZXRhZGF0YSB3b3JrYXJvdW5kIHRvIGJlIGFibGUgdG9cclxuICogcmV0cmlldmUgYWxsIHByb3BlcnRpZXMgdGhhdCBoYXZlIHRoZSBAQ29tcGxleEZpZWxkKC4uKSBkZWNvcmF0b3IgKGltcG9zc2libGUgd2l0aCBjdXJyZW50IFJlZmxlY3QgQVBJKS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBDb21wbGV4RmllbGQodHlwZTogYW55KTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAvLyB3YXJuIHRoZSBwcm9ncmFtbWVyIGlmIGdpdmVuIHR5cGUgd2FzIHVuZGVmaW5lZDsgaXQncyBwcm9iYWJseSBhbiBpbXBvcnQgb3JkZXIgZ2xpdGNoIHRoYXQgY2F1c2VkIHRoaXMsIGJlY2F1c2UgZGVjb3JhdG9ycyBzZWVtXHJcbiAgICAgICAgLy8gdG8gYmUgaW1tZWRpYXRlbHkgcHJvY2Vzc2VkIHdoZW4gYSBjbGFzcyBpcyBmaXJzdCBpbXBvcnRlZFxyXG4gICAgICAgIGlmICghdHlwZSkge1xyXG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcclxuICAgICAgICAgICAgY29uc29sZS53YXJuKGBAQ29tcGxleEZpZWxkKHR5cGUpOiB0eXBlIHdhcyBVTkRFRklORUQuIENhbGxlZCBvbiBwcm9wICgke09iamVjdFV0aWxzLkdldENsYXNzTmFtZSh0YXJnZXQpfSwgJHtwcm9wZXJ0eUtleX0pLiBgICtcclxuICAgICAgICAgICAgICAgIGBDbGFzcyB3aWxsIG5vdCBwcm9wZXJseSBzZXJpYWxpemUgYW5kIGRlc2VyaWFsaXplIG5vdy4gV2UndmUgYWx3YXlzIGJlZW4gYWJsZSB0byBmaXggdGhpcyBieSBDSEFOR0lORyBJTVBPUlQgT1JERVJTIGAgK1xyXG4gICAgICAgICAgICAgICAgYHdoZXJlIGJvdGggY2xhc3NlcyBhbmQgdGhlaXIgZGVwZW5kZW5jaWVzIGFyZSB1c2VkLCBlLmcuIGZhY3RvcnksIHJlcG9zaXRvcnkgb3IgbW9kZWxzLi5gKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBSZWZsZWN0LmRlZmluZU1ldGFkYXRhKFBST1BfTUVUQV9LRVksIHR5cGUsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLy8gVXRpbGl0eSBmdW5jdGlvbiBob2xkZXIgb2YgdGhlIENvbXBsZXhGaWVsZERlY29yYXRvciBkZWNvcmF0b3IuXHJcbmV4cG9ydCBjbGFzcyBDb21wbGV4RmllbGREZWNvcmF0b3Ige1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB3aGV0aGVyIGdpdmVuIHByb3BlcnR5IChhcyBhIHN0cmluZykgb24gZ2l2ZW4gb2JqZWN0IGlzIGEgY29tcGxleCBmaWVsZC4gQSBjb21wbGV4IGZpZWxkIGlzIGEgZmllbGQgdGhhdCBpcyBkZWNvcmF0ZWRcclxuICAgICAqIHdpdGggdGhlIEBDb21wbGV4RmllbGQgZGVjb3JhdG9yLlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc3RhdGljIElzQ29tcGxleEZpZWxkKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gKG5vdE5pbGwoUmVmbGVjdC5nZXRNZXRhZGF0YShQUk9QX01FVEFfS0VZLCB0YXJnZXQsIHByb3BlcnR5S2V5KSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIFJldHVybnMgdGhlIFZBTFVFIG9mIHRoZSBAQ29tcGxleEZpZWxkKFZBTFVFKSBwcm9wZXJ0eSBkZWNvcmF0b3Igb24gdGhlIGdpdmVuIHByb3BlcnR5S2V5IG9uIHRoZSBnaXZlbiBtb2RlbE9iamVjdC5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0Q29tcGxleEZpZWxkVHlwZSh0YXJnZXQ6IE9iamVjdCwgcHJvcGVydHlLZXk6IHN0cmluZyk6IGFueSB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIFJlZmxlY3QuZ2V0TWV0YWRhdGEoUFJPUF9NRVRBX0tFWSwgdGFyZ2V0LCBwcm9wZXJ0eUtleSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import { DateUtils } from "@colijnit/transactionapi/build/utils/date-utils";
|
|
2
|
-
const PROP_META_KEY = "dateField";
|
|
3
|
-
/**
|
|
4
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Property decorator for properties of businessobject classes that are of type Date, but are sent to us as strings.
|
|
8
|
-
* Ensures that the BusinessObjectFactory makes proper JavaScript Date objects from incoming strings for @DateField() decorated properties.
|
|
9
|
-
*
|
|
10
|
-
* Usage:
|
|
11
|
-
*
|
|
12
|
-
* @DateField()
|
|
13
|
-
* public expectedDeliveryDate: Date
|
|
14
|
-
*/
|
|
15
|
-
export function DateField() {
|
|
16
|
-
return function (target, propertyKey) {
|
|
17
|
-
if (!target || !propertyKey) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
// Utility function holder of the @DateField() decorator.
|
|
24
|
-
export class DateFieldFieldDecorator {
|
|
25
|
-
// Returns whether given property (as a string) on given object is decorated with @DateField().
|
|
26
|
-
static IsDateField(target, propertyKey) {
|
|
27
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);
|
|
31
|
-
}
|
|
32
|
-
static StringAsDate(str) {
|
|
33
|
-
return DateUtils.StringAsDate(str);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWVsZC5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2ZhY3RvcnkvZGVjb3JhdG9ycy9kYXRlLWZpZWxkLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0saURBQWlELENBQUM7QUFFMUUsTUFBTSxhQUFhLEdBQVcsV0FBVyxDQUFDO0FBRTFDOztHQUVHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsU0FBUztJQUNyQixPQUFPLFVBQVUsTUFBVyxFQUFFLFdBQW1CO1FBQzdDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDekIsT0FBTztTQUNWO1FBQ0QsT0FBTyxDQUFDLGNBQWMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRSxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQseURBQXlEO0FBQ3pELE1BQU0sT0FBTyx1QkFBdUI7SUFFaEMsK0ZBQStGO0lBQ3hGLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBYyxFQUFFLFdBQW1CO1FBQ3pELElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFO1lBQ3ZELE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsT0FBTyxPQUFPLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBVztRQUNsQyxPQUFPLFNBQVMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvdXRpbHMvZGF0ZS11dGlsc1wiO1xyXG5cclxuY29uc3QgUFJPUF9NRVRBX0tFWTogc3RyaW5nID0gXCJkYXRlRmllbGRcIjtcclxuXHJcbi8qKlxyXG4gKiAhISBqdXN0IGEgVEFHIERFQ09SQVRPUiBmb3Igbm93LCB0aGVyZSBpcyBubyBjb2RlIHRoYXQgdXNlcyB0aGlzIG1ldGEgZGF0YSB3aXRoaW4gdGhlIGlvbmUgY29ubmVjdG9yIGxpYiBpdHNlbGYuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIFByb3BlcnR5IGRlY29yYXRvciBmb3IgcHJvcGVydGllcyBvZiBidXNpbmVzc29iamVjdCBjbGFzc2VzIHRoYXQgYXJlIG9mIHR5cGUgRGF0ZSwgYnV0IGFyZSBzZW50IHRvIHVzIGFzIHN0cmluZ3MuXHJcbiAqIEVuc3VyZXMgdGhhdCB0aGUgQnVzaW5lc3NPYmplY3RGYWN0b3J5IG1ha2VzIHByb3BlciBKYXZhU2NyaXB0IERhdGUgb2JqZWN0cyBmcm9tIGluY29taW5nIHN0cmluZ3MgZm9yIEBEYXRlRmllbGQoKSBkZWNvcmF0ZWQgcHJvcGVydGllcy5cclxuICpcclxuICogVXNhZ2U6XHJcbiAqXHJcbiAqIEBEYXRlRmllbGQoKVxyXG4gKiBwdWJsaWMgZXhwZWN0ZWREZWxpdmVyeURhdGU6IERhdGVcclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiBEYXRlRmllbGQoKTogUHJvcGVydHlEZWNvcmF0b3Ige1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uICh0YXJnZXQ6IGFueSwgcHJvcGVydHlLZXk6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGFyZ2V0IHx8ICFwcm9wZXJ0eUtleSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFJlZmxlY3QuZGVmaW5lTWV0YWRhdGEoUFJPUF9NRVRBX0tFWSwgdW5kZWZpbmVkLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH07XHJcbn1cclxuXHJcbi8vIFV0aWxpdHkgZnVuY3Rpb24gaG9sZGVyIG9mIHRoZSBARGF0ZUZpZWxkKCkgZGVjb3JhdG9yLlxyXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkRmllbGREZWNvcmF0b3Ige1xyXG5cclxuICAgIC8vIFJldHVybnMgd2hldGhlciBnaXZlbiBwcm9wZXJ0eSAoYXMgYSBzdHJpbmcpIG9uIGdpdmVuIG9iamVjdCBpcyBkZWNvcmF0ZWQgd2l0aCBARGF0ZUZpZWxkKCkuXHJcbiAgICBwdWJsaWMgc3RhdGljIElzRGF0ZUZpZWxkKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXNNZXRhZGF0YShQUk9QX01FVEFfS0VZLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0FzRGF0ZShzdHI6IHN0cmluZyk6IERhdGUge1xyXG4gICAgICAgIHJldHVybiBEYXRlVXRpbHMuU3RyaW5nQXNEYXRlKHN0cik7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { NumberUtils } from "@colijnit/transactionapi/build/utils/number-utils";
|
|
2
|
-
const PROP_META_KEY = "stringNumber";
|
|
3
|
-
/**
|
|
4
|
-
* !! just a TAG DECORATOR for now, there is no code that uses this meta data within the ione connector lib itself.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Decorator for properties of businessobjects that are sent to us as strings from the database, but which we want to use as a number in the client.
|
|
8
|
-
*
|
|
9
|
-
* Can be handy for incongruent backend api cases, where id data types are communicated wrongly via strings instead of numbers
|
|
10
|
-
* (e.g. on EmployeeFullObject.district, points to a District which has a number id, but in employee it's a string representation of that number...)
|
|
11
|
-
*
|
|
12
|
-
* Used by business object factory and -serializer.
|
|
13
|
-
*
|
|
14
|
-
* Usage:
|
|
15
|
-
*
|
|
16
|
-
* @StringNumber()
|
|
17
|
-
* public rights: UserRightType
|
|
18
|
-
*/
|
|
19
|
-
export function StringNumber() {
|
|
20
|
-
return function (target, propertyKey) {
|
|
21
|
-
if (!target || !propertyKey) {
|
|
22
|
-
return;
|
|
23
|
-
}
|
|
24
|
-
Reflect.defineMetadata(PROP_META_KEY, undefined, target, propertyKey);
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
// Utility function holder of the @StringNumber() decorator.
|
|
28
|
-
export class StringNumberDecorator {
|
|
29
|
-
// Returns whether given property (as a string) on given object is decorated with @StringNumber().
|
|
30
|
-
static IsStringNumber(target, propertyKey) {
|
|
31
|
-
if (!target || !propertyKey || typeof target !== "object") {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
return Reflect.hasMetadata(PROP_META_KEY, target, propertyKey);
|
|
35
|
-
}
|
|
36
|
-
static StringAsNumber(str) {
|
|
37
|
-
return NumberUtils.ParseFloatKeepPrecision(str);
|
|
38
|
-
}
|
|
39
|
-
static NumberAsString(nr) {
|
|
40
|
-
return "" + nr;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLW51bWJlci5kZWNvcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90cmFuc2FjdGlvbi9zcmMvbGliL2ZhY3RvcnkvZGVjb3JhdG9ycy9zdHJpbmctbnVtYmVyLmRlY29yYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbURBQW1ELENBQUM7QUFFOUUsTUFBTSxhQUFhLEdBQVcsY0FBYyxDQUFDO0FBQzdDOztHQUVHO0FBRUg7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxVQUFVLE1BQVcsRUFBRSxXQUFtQjtRQUM3QyxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3pCLE9BQU87U0FDVjtRQUNELE9BQU8sQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELDREQUE0RDtBQUM1RCxNQUFNLE9BQU8scUJBQXFCO0lBRTlCLGtHQUFrRztJQUMzRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQWMsRUFBRSxXQUFtQjtRQUM1RCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtZQUN2RCxPQUFPLEtBQUssQ0FBQztTQUNoQjtRQUNELE9BQU8sT0FBTyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFTSxNQUFNLENBQUMsY0FBYyxDQUFDLEdBQVc7UUFDcEMsT0FBTyxXQUFXLENBQUMsdUJBQXVCLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVNLE1BQU0sQ0FBQyxjQUFjLENBQUMsRUFBVTtRQUNuQyxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDbkIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOdW1iZXJVdGlsc30gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC91dGlscy9udW1iZXItdXRpbHNcIjtcclxuXHJcbmNvbnN0IFBST1BfTUVUQV9LRVk6IHN0cmluZyA9IFwic3RyaW5nTnVtYmVyXCI7XHJcbi8qKlxyXG4gKiAhISBqdXN0IGEgVEFHIERFQ09SQVRPUiBmb3Igbm93LCB0aGVyZSBpcyBubyBjb2RlIHRoYXQgdXNlcyB0aGlzIG1ldGEgZGF0YSB3aXRoaW4gdGhlIGlvbmUgY29ubmVjdG9yIGxpYiBpdHNlbGYuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIERlY29yYXRvciBmb3IgcHJvcGVydGllcyBvZiBidXNpbmVzc29iamVjdHMgdGhhdCBhcmUgc2VudCB0byB1cyBhcyBzdHJpbmdzIGZyb20gdGhlIGRhdGFiYXNlLCBidXQgd2hpY2ggd2Ugd2FudCB0byB1c2UgYXMgYSBudW1iZXIgaW4gdGhlIGNsaWVudC5cclxuICpcclxuICogQ2FuIGJlIGhhbmR5IGZvciBpbmNvbmdydWVudCBiYWNrZW5kIGFwaSBjYXNlcywgd2hlcmUgaWQgZGF0YSB0eXBlcyBhcmUgY29tbXVuaWNhdGVkIHdyb25nbHkgdmlhIHN0cmluZ3MgaW5zdGVhZCBvZiBudW1iZXJzXHJcbiAqIChlLmcuIG9uIEVtcGxveWVlRnVsbE9iamVjdC5kaXN0cmljdCwgcG9pbnRzIHRvIGEgRGlzdHJpY3Qgd2hpY2ggaGFzIGEgbnVtYmVyIGlkLCBidXQgaW4gZW1wbG95ZWUgaXQncyBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGF0IG51bWJlci4uLilcclxuICpcclxuICogVXNlZCBieSBidXNpbmVzcyBvYmplY3QgZmFjdG9yeSBhbmQgLXNlcmlhbGl6ZXIuXHJcbiAqXHJcbiAqIFVzYWdlOlxyXG4gKlxyXG4gKiBAU3RyaW5nTnVtYmVyKClcclxuICogcHVibGljIHJpZ2h0czogVXNlclJpZ2h0VHlwZVxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIFN0cmluZ051bWJlcigpOiBQcm9wZXJ0eURlY29yYXRvciB7XHJcbiAgICByZXR1cm4gZnVuY3Rpb24gKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YShQUk9QX01FVEFfS0VZLCB1bmRlZmluZWQsIHRhcmdldCwgcHJvcGVydHlLZXkpO1xyXG4gICAgfTtcclxufVxyXG5cclxuLy8gVXRpbGl0eSBmdW5jdGlvbiBob2xkZXIgb2YgdGhlIEBTdHJpbmdOdW1iZXIoKSBkZWNvcmF0b3IuXHJcbmV4cG9ydCBjbGFzcyBTdHJpbmdOdW1iZXJEZWNvcmF0b3Ige1xyXG5cclxuICAgIC8vIFJldHVybnMgd2hldGhlciBnaXZlbiBwcm9wZXJ0eSAoYXMgYSBzdHJpbmcpIG9uIGdpdmVuIG9iamVjdCBpcyBkZWNvcmF0ZWQgd2l0aCBAU3RyaW5nTnVtYmVyKCkuXHJcbiAgICBwdWJsaWMgc3RhdGljIElzU3RyaW5nTnVtYmVyKHRhcmdldDogT2JqZWN0LCBwcm9wZXJ0eUtleTogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICAgICAgaWYgKCF0YXJnZXQgfHwgIXByb3BlcnR5S2V5IHx8IHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gUmVmbGVjdC5oYXNNZXRhZGF0YShQUk9QX01FVEFfS0VZLCB0YXJnZXQsIHByb3BlcnR5S2V5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ0FzTnVtYmVyKHN0cjogc3RyaW5nKTogbnVtYmVyIHtcclxuICAgICAgICByZXR1cm4gTnVtYmVyVXRpbHMuUGFyc2VGbG9hdEtlZXBQcmVjaXNpb24oc3RyKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIE51bWJlckFzU3RyaW5nKG5yOiBudW1iZXIpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBcIlwiICsgbnI7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This type represents the concept of a business object ID type. ID's of business objects can be a primary number, a simple string or a
|
|
3
|
-
* object for a composite key.
|
|
4
|
-
*
|
|
5
|
-
* Simply to prevent type declarations of 'number | string | Object' for BO ID data all over the application.
|
|
6
|
-
*/
|
|
7
|
-
import { MapPropertyDecorator } from "@colijnit/transactionapi/build/factory/decorators/map-property.decorator";
|
|
8
|
-
import { BooleanTextDecorator } from "@colijnit/transactionapi/build/factory/decorators/boolean.decorator";
|
|
9
|
-
import { JsonFieldFieldDecorator } from "@colijnit/transactionapi/build/factory/decorators/json.decorator";
|
|
10
|
-
import { ComplexArrayDecorator } from "@colijnit/transactionapi/build/factory/decorators/complex-array.decorator";
|
|
11
|
-
export class BusinessObject {
|
|
12
|
-
constructor() {
|
|
13
|
-
}
|
|
14
|
-
// Overridable. Returns the ID of the model. Concrete model classes often override this method to provide their specific ID getter.
|
|
15
|
-
getId() {
|
|
16
|
-
return this.id;
|
|
17
|
-
}
|
|
18
|
-
setOwnMappedPropsFromRawData(rawData = {}) {
|
|
19
|
-
if (!rawData) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
Object.keys(this).forEach((key) => {
|
|
23
|
-
// check if property needs to be mapped
|
|
24
|
-
if (MapPropertyDecorator.IsMapProperty(this, key)) {
|
|
25
|
-
const mapKeys = MapPropertyDecorator.GetMapProperty(this, key).split(",");
|
|
26
|
-
const len = mapKeys.length;
|
|
27
|
-
for (let i = 0; i < len; i++) {
|
|
28
|
-
// eslint-disable-next-line
|
|
29
|
-
const mapKey = mapKeys[i].trim();
|
|
30
|
-
const objProp = rawData[mapKey];
|
|
31
|
-
let decorated = false;
|
|
32
|
-
if (rawData.hasOwnProperty(mapKey)) {
|
|
33
|
-
if (BooleanTextDecorator.IsBooleanTextField(this, key)) {
|
|
34
|
-
this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);
|
|
35
|
-
decorated = true;
|
|
36
|
-
}
|
|
37
|
-
if (JsonFieldFieldDecorator.IsJsonField(this, key)) {
|
|
38
|
-
this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);
|
|
39
|
-
decorated = true;
|
|
40
|
-
}
|
|
41
|
-
if (ComplexArrayDecorator.IsComplexArray(this, key)) {
|
|
42
|
-
const arrayClass = ComplexArrayDecorator.GetComplexArrayType(this, key);
|
|
43
|
-
// eslint-disable-next-line
|
|
44
|
-
const origArray = this[key];
|
|
45
|
-
// eslint-disable-next-line
|
|
46
|
-
const newArray = [];
|
|
47
|
-
// eslint-disable-next-line @typescript-eslint/prefer-for-of
|
|
48
|
-
for (let j = 0; j < origArray.length; j++) {
|
|
49
|
-
// eslint-disable-next-line
|
|
50
|
-
const item = new arrayClass(origArray[j]);
|
|
51
|
-
newArray.push(item);
|
|
52
|
-
}
|
|
53
|
-
this[key] = newArray;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
if (!decorated) {
|
|
57
|
-
this[key] = objProp;
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
break;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
if (rawData.hasOwnProperty(key)) {
|
|
66
|
-
const objProp = rawData[key];
|
|
67
|
-
if (BooleanTextDecorator.IsBooleanTextField(this, key)) {
|
|
68
|
-
this[key] = BooleanTextDecorator.GetLogicalBooleanValue(objProp);
|
|
69
|
-
}
|
|
70
|
-
else if (JsonFieldFieldDecorator.IsJsonField(this, key)) {
|
|
71
|
-
this[key] = JsonFieldFieldDecorator.StringAsJson(objProp);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
this[key] = objProp;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVzaW5lc3Mtb2JqZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHJhbnNhY3Rpb24vc3JjL2xpYi9tb2RlbC9idXNpbmVzcy1vYmplY3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwwRUFBMEUsQ0FBQztBQUM5RyxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxRUFBcUUsQ0FBQztBQUN6RyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxrRUFBa0UsQ0FBQztBQUN6RyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwyRUFBMkUsQ0FBQztBQUloSCxNQUFNLE9BQWdCLGNBQWM7SUFTaEM7SUFDQSxDQUFDO0lBTkQsbUlBQW1JO0lBQzVILEtBQUs7UUFDUixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUtTLDRCQUE0QixDQUFDLFVBQWUsRUFBRTtRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUM5Qix1Q0FBdUM7WUFDdkMsSUFBSSxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQyxNQUFNLE9BQU8sR0FBYSxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDcEYsTUFBTSxHQUFHLEdBQVcsT0FBTyxDQUFDLE1BQU0sQ0FBQztnQkFDbkMsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDcEMsNEJBQTRCO29CQUMxQixNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ2pDLE1BQU0sT0FBTyxHQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDckMsSUFBSSxTQUFTLEdBQVksS0FBSyxDQUFDO29CQUMvQixJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7d0JBQ2hDLElBQUksb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFOzRCQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7NEJBQ2pFLFNBQVMsR0FBRyxJQUFJLENBQUM7eUJBQ3BCO3dCQUNELElBQUksdUJBQXVCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTs0QkFDaEQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQzs0QkFDMUQsU0FBUyxHQUFHLElBQUksQ0FBQzt5QkFDcEI7d0JBQ0QsSUFBSSxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFOzRCQUNqRCxNQUFNLFVBQVUsR0FBUSxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7NEJBQy9FLDRCQUE0Qjs0QkFDMUIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDOzRCQUM5Qiw0QkFBNEI7NEJBQzFCLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQzs0QkFDdEIsNERBQTREOzRCQUMxRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtnQ0FDekMsMkJBQTJCO2dDQUN6QixNQUFNLElBQUksR0FBRyxJQUFJLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQ0FDMUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQzs2QkFDdkI7NEJBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQzt5QkFDeEI7NkJBQU07NEJBQ0gsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQ0FDWixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDOzZCQUN2Qjt5QkFDSjt3QkFDRCxNQUFNO3FCQUNUO2lCQUNKO2FBQ0o7aUJBQU07Z0JBQ0gsSUFBSSxPQUFPLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUM3QixNQUFNLE9BQU8sR0FBUSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQ2xDLElBQUksb0JBQW9CLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFO3dCQUNwRCxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsb0JBQW9CLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7cUJBQ3BFO3lCQUFNLElBQUksdUJBQXVCLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFBRTt3QkFDdkQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLHVCQUF1QixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztxQkFDN0Q7eUJBQU07d0JBQ0gsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQztxQkFDdkI7aUJBQ0o7YUFDSjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUVKIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIFRoaXMgdHlwZSByZXByZXNlbnRzIHRoZSBjb25jZXB0IG9mIGEgYnVzaW5lc3Mgb2JqZWN0IElEIHR5cGUuIElEJ3Mgb2YgYnVzaW5lc3Mgb2JqZWN0cyBjYW4gYmUgYSBwcmltYXJ5IG51bWJlciwgYSBzaW1wbGUgc3RyaW5nIG9yIGFcclxuICogb2JqZWN0IGZvciBhIGNvbXBvc2l0ZSBrZXkuXHJcbiAqXHJcbiAqIFNpbXBseSB0byBwcmV2ZW50IHR5cGUgZGVjbGFyYXRpb25zIG9mICdudW1iZXIgfCBzdHJpbmcgfCBPYmplY3QnIGZvciBCTyBJRCBkYXRhIGFsbCBvdmVyIHRoZSBhcHBsaWNhdGlvbi5cclxuICovXHJcbmltcG9ydCB7TWFwUHJvcGVydHlEZWNvcmF0b3J9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZmFjdG9yeS9kZWNvcmF0b3JzL21hcC1wcm9wZXJ0eS5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtCb29sZWFuVGV4dERlY29yYXRvcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9mYWN0b3J5L2RlY29yYXRvcnMvYm9vbGVhbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtKc29uRmllbGRGaWVsZERlY29yYXRvcn0gZnJvbSBcIkBjb2xpam5pdC90cmFuc2FjdGlvbmFwaS9idWlsZC9mYWN0b3J5L2RlY29yYXRvcnMvanNvbi5kZWNvcmF0b3JcIjtcclxuaW1wb3J0IHtDb21wbGV4QXJyYXlEZWNvcmF0b3J9IGZyb20gXCJAY29saWpuaXQvdHJhbnNhY3Rpb25hcGkvYnVpbGQvZmFjdG9yeS9kZWNvcmF0b3JzL2NvbXBsZXgtYXJyYXkuZGVjb3JhdG9yXCI7XHJcblxyXG5leHBvcnQgdHlwZSBCdXNpbmVzc09iamVjdElEVHlwZSA9IG51bWJlciB8IHN0cmluZyB8IE9iamVjdDtcclxuXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCdXNpbmVzc09iamVjdCB7XHJcbiAgICAvLyBUaGUgSUQgb2YgdGhlIG1vZGVsLlxyXG4gICAgcHVibGljIGlkOiBCdXNpbmVzc09iamVjdElEVHlwZTtcclxuXHJcbiAgICAvLyBPdmVycmlkYWJsZS4gUmV0dXJucyB0aGUgSUQgb2YgdGhlIG1vZGVsLiBDb25jcmV0ZSBtb2RlbCBjbGFzc2VzIG9mdGVuIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIHByb3ZpZGUgdGhlaXIgc3BlY2lmaWMgSUQgZ2V0dGVyLlxyXG4gICAgcHVibGljIGdldElkKCk6IEJ1c2luZXNzT2JqZWN0SURUeXBlIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pZDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0T3duTWFwcGVkUHJvcHNGcm9tUmF3RGF0YShyYXdEYXRhOiBhbnkgPSB7fSk6IHZvaWQge1xyXG4gICAgICAgIGlmICghcmF3RGF0YSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG4gICAgICAgIE9iamVjdC5rZXlzKHRoaXMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICAgICAgICAvLyBjaGVjayBpZiBwcm9wZXJ0eSBuZWVkcyB0byBiZSBtYXBwZWRcclxuICAgICAgICAgICAgaWYgKE1hcFByb3BlcnR5RGVjb3JhdG9yLklzTWFwUHJvcGVydHkodGhpcywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgbWFwS2V5czogc3RyaW5nW10gPSBNYXBQcm9wZXJ0eURlY29yYXRvci5HZXRNYXBQcm9wZXJ0eSh0aGlzLCBrZXkpLnNwbGl0KFwiLFwiKTtcclxuICAgICAgICAgICAgICAgIGNvbnN0IGxlbjogbnVtYmVyID0gbWFwS2V5cy5sZW5ndGg7XHJcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcEtleSA9IG1hcEtleXNbaV0udHJpbSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9ialByb3A6IGFueSA9IHJhd0RhdGFbbWFwS2V5XTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgZGVjb3JhdGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJhd0RhdGEuaGFzT3duUHJvcGVydHkobWFwS2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoQm9vbGVhblRleHREZWNvcmF0b3IuSXNCb29sZWFuVGV4dEZpZWxkKHRoaXMsIGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IEJvb2xlYW5UZXh0RGVjb3JhdG9yLkdldExvZ2ljYWxCb29sZWFuVmFsdWUob2JqUHJvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChKc29uRmllbGRGaWVsZERlY29yYXRvci5Jc0pzb25GaWVsZCh0aGlzLCBrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBKc29uRmllbGRGaWVsZERlY29yYXRvci5TdHJpbmdBc0pzb24ob2JqUHJvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmF0ZWQgPSB0cnVlO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChDb21wbGV4QXJyYXlEZWNvcmF0b3IuSXNDb21wbGV4QXJyYXkodGhpcywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgYXJyYXlDbGFzczogYW55ID0gQ29tcGxleEFycmF5RGVjb3JhdG9yLkdldENvbXBsZXhBcnJheVR5cGUodGhpcywga2V5KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBvcmlnQXJyYXkgPSB0aGlzW2tleV07XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3QXJyYXkgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L3ByZWZlci1mb3Itb2ZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgb3JpZ0FycmF5Lmxlbmd0aDsgaisrKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBuZXcgYXJyYXlDbGFzcyhvcmlnQXJyYXlbal0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld0FycmF5LnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBuZXdBcnJheTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZGVjb3JhdGVkKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gb2JqUHJvcDtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBpZiAocmF3RGF0YS5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgb2JqUHJvcDogYW55ID0gcmF3RGF0YVtrZXldO1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChCb29sZWFuVGV4dERlY29yYXRvci5Jc0Jvb2xlYW5UZXh0RmllbGQodGhpcywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBCb29sZWFuVGV4dERlY29yYXRvci5HZXRMb2dpY2FsQm9vbGVhblZhbHVlKG9ialByb3ApO1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoSnNvbkZpZWxkRmllbGREZWNvcmF0b3IuSXNKc29uRmllbGQodGhpcywga2V5KSkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBKc29uRmllbGRGaWVsZERlY29yYXRvci5TdHJpbmdBc0pzb24ob2JqUHJvcCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpc1trZXldID0gb2JqUHJvcDtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbn1cclxuIl19
|