@veloceapps/api 11.0.0-2 → 11.0.0-21
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2020/index.mjs +2 -45
- package/esm2020/src/index.mjs +32 -0
- package/esm2020/src/lib/api.module.mjs +108 -0
- package/esm2020/src/lib/services/account-api.service.mjs +87 -0
- package/esm2020/src/lib/services/auth.service.mjs +22 -0
- package/esm2020/src/lib/services/catalog-admin-api.service.mjs +192 -0
- package/esm2020/src/lib/services/catalog-api.service.mjs +90 -0
- package/esm2020/src/lib/services/configuration-settings-api.service.mjs +96 -0
- package/esm2020/src/lib/services/contracted-price-api.service.mjs +45 -0
- package/esm2020/src/lib/services/delta-api.service.mjs +23 -0
- package/esm2020/src/lib/services/document-attachment-api.service.mjs +66 -0
- package/esm2020/src/lib/services/endpoints-api.service.mjs +80 -0
- package/esm2020/src/lib/services/flow-state-api.mjs +142 -0
- package/esm2020/src/lib/services/flows-api.service.mjs +29 -0
- package/esm2020/src/lib/services/guided-sellings-admin-api.service.mjs +65 -0
- package/esm2020/src/lib/services/guided-sellings-api.service.mjs +37 -0
- package/esm2020/src/lib/services/offers-api.service.mjs +76 -0
- package/esm2020/src/lib/services/org-info-api.service.mjs +54 -0
- package/esm2020/src/lib/services/picklists-api.service.mjs +41 -0
- package/esm2020/src/lib/services/portals-api.service.mjs +76 -0
- package/esm2020/src/lib/services/price-api.service.mjs +63 -0
- package/esm2020/src/lib/services/product-api.service.mjs +153 -0
- package/esm2020/src/lib/services/promotions-api.service.mjs +68 -0
- package/esm2020/src/lib/services/ramp-api.service.mjs +31 -0
- package/esm2020/src/lib/services/rebate-program-api.service.mjs +68 -0
- package/esm2020/src/lib/services/rebate-type-api.service.mjs +68 -0
- package/esm2020/src/lib/services/salesforce-api.service.mjs +79 -0
- package/esm2020/src/lib/services/sandbox-manager-api.service.mjs +94 -0
- package/esm2020/src/lib/services/shopping-cart-settings-api.service.mjs +28 -0
- package/esm2020/src/lib/services/stateful-configuration-api.mjs +51 -0
- package/esm2020/src/lib/services/veloce-objects-api.service.mjs +90 -0
- package/esm2020/src/lib/types/attachment.types.mjs +2 -0
- package/esm2020/src/lib/types/auth.types.mjs +2 -0
- package/esm2020/src/lib/types/clone-request.types.mjs +2 -0
- package/esm2020/src/lib/types/delta-request.types.mjs +2 -0
- package/esm2020/src/lib/types/dto/configuration-settings-dto.types.mjs +22 -0
- package/esm2020/src/lib/types/dto/offers-dto.types.mjs +2 -0
- package/esm2020/src/lib/types/index.mjs +8 -0
- package/esm2020/src/lib/types/org-info.types.mjs +2 -0
- package/esm2020/src/lib/types/price.types.mjs +2 -0
- package/esm2020/src/lib/types/quote.types.mjs +2 -0
- package/esm2020/src/lib/types/ramp-request.types.mjs +2 -0
- package/esm2020/src/lib/types/search-request.types.mjs +2 -0
- package/esm2020/src/lib/types/stateful-configuration.types.mjs +2 -0
- package/esm2020/src/lib/utils/canvas.utils.mjs +33 -0
- package/esm2020/src/lib/utils/index.mjs +2 -0
- package/esm2020/v2/api-v2.module.mjs +48 -0
- package/esm2020/v2/index.mjs +4 -0
- package/esm2020/v2/services/configuration-processors-api.service.mjs +38 -0
- package/esm2020/v2/services/context-definition-api.service.mjs +62 -0
- package/esm2020/v2/services/index.mjs +13 -0
- package/esm2020/v2/services/procedures-admin-api.service.mjs +82 -0
- package/esm2020/v2/services/procedures-api.service.mjs +44 -0
- package/esm2020/v2/services/rule-groups-admin-api.service.mjs +62 -0
- package/esm2020/v2/services/rules-admin-api.service.mjs +95 -0
- package/esm2020/v2/services/rules-api.service.mjs +36 -0
- package/esm2020/v2/services/sales-transactions-api.service.mjs +52 -0
- package/esm2020/v2/services/scripts-admin-api.service.mjs +75 -0
- package/esm2020/v2/services/scripts-api.service.mjs +23 -0
- package/esm2020/v2/services/ui-definitions-api.service.mjs +66 -0
- package/esm2020/{lib → v2}/services/ui-templates-api.service.mjs +2 -2
- package/esm2020/v2/types/clone-request.types.mjs +2 -0
- package/esm2020/v2/types/dto/ui-definition-dto.types.mjs +2 -0
- package/esm2020/v2/types/dto/ui-template-dto.types.mjs +2 -0
- package/esm2020/v2/types/index.mjs +4 -0
- package/esm2020/v2/types/procedure.types.mjs +2 -0
- package/esm2020/v2/types/sales-transaction.types.mjs +2 -0
- package/esm2020/v2/utils/ui-definition.utils.mjs +23 -0
- package/esm2020/v2/utils/ui-template.utils.mjs +13 -0
- package/esm2020/v2/veloceapps-api-v2.mjs +5 -0
- package/esm2020/veloceapps-api.mjs +1 -1
- package/fesm2015/veloceapps-api-v2.mjs +940 -0
- package/fesm2015/veloceapps-api-v2.mjs.map +1 -0
- package/fesm2015/veloceapps-api.mjs +14 -1217
- package/fesm2015/veloceapps-api.mjs.map +1 -1
- package/fesm2020/veloceapps-api-v2.mjs +956 -0
- package/fesm2020/veloceapps-api-v2.mjs.map +1 -0
- package/fesm2020/veloceapps-api.mjs +11 -1246
- package/fesm2020/veloceapps-api.mjs.map +1 -1
- package/index.d.ts +1 -44
- package/package.json +9 -1
- package/src/index.d.ts +31 -0
- package/{lib → src/lib}/api.module.d.ts +2 -1
- package/{lib → src/lib}/services/catalog-api.service.d.ts +5 -5
- package/src/lib/types/price.types.d.ts +5 -0
- package/{lib → src/lib}/types/ramp-request.types.d.ts +3 -3
- package/{lib → src/lib}/types/stateful-configuration.types.d.ts +1 -2
- package/src/lib/utils/index.d.ts +1 -0
- package/v2/api-v2.module.d.ts +7 -0
- package/v2/index.d.ts +3 -0
- package/{lib/services/rlm-api.service.d.ts → v2/services/context-definition-api.service.d.ts} +3 -3
- package/v2/services/index.d.ts +12 -0
- package/{lib/services/procedures-api.service.d.ts → v2/services/procedures-admin-api.service.d.ts} +6 -13
- package/v2/services/procedures-api.service.d.ts +15 -0
- package/{lib/services/rule-groups-api.service.d.ts → v2/services/rule-groups-admin-api.service.d.ts} +3 -3
- package/{lib/services/rules-api.service.d.ts → v2/services/rules-admin-api.service.d.ts} +4 -4
- package/v2/services/rules-api.service.d.ts +11 -0
- package/v2/services/sales-transactions-api.service.d.ts +20 -0
- package/{lib/services/scripts-api.service.d.ts → v2/services/scripts-admin-api.service.d.ts} +4 -5
- package/v2/services/scripts-api.service.d.ts +11 -0
- package/{lib → v2}/services/ui-definitions-api.service.d.ts +8 -5
- package/v2/types/clone-request.types.d.ts +5 -0
- package/v2/types/dto/ui-definition-dto.types.d.ts +7 -0
- package/v2/types/index.d.ts +3 -0
- package/v2/types/procedure.types.d.ts +10 -0
- package/v2/types/sales-transaction.types.d.ts +14 -0
- package/v2/utils/ui-definition.utils.d.ts +5 -0
- package/esm2020/lib/api.module.mjs +0 -146
- package/esm2020/lib/services/account-api.service.mjs +0 -87
- package/esm2020/lib/services/auth.service.mjs +0 -22
- package/esm2020/lib/services/catalog-admin-api.service.mjs +0 -192
- package/esm2020/lib/services/catalog-api.service.mjs +0 -90
- package/esm2020/lib/services/configuration-api.service.mjs +0 -109
- package/esm2020/lib/services/configuration-processors-api.service.mjs +0 -38
- package/esm2020/lib/services/configuration-settings-api.service.mjs +0 -96
- package/esm2020/lib/services/context-api.service.mjs +0 -26
- package/esm2020/lib/services/contracted-price-api.service.mjs +0 -45
- package/esm2020/lib/services/delta-api.service.mjs +0 -23
- package/esm2020/lib/services/document-attachment-api.service.mjs +0 -66
- package/esm2020/lib/services/endpoints-api.service.mjs +0 -80
- package/esm2020/lib/services/flow-state-api.mjs +0 -142
- package/esm2020/lib/services/flows-api.service.mjs +0 -29
- package/esm2020/lib/services/guided-sellings-admin-api.service.mjs +0 -65
- package/esm2020/lib/services/guided-sellings-api.service.mjs +0 -37
- package/esm2020/lib/services/offers-api.service.mjs +0 -76
- package/esm2020/lib/services/org-info-api.service.mjs +0 -54
- package/esm2020/lib/services/picklists-api.service.mjs +0 -41
- package/esm2020/lib/services/portals-api.service.mjs +0 -76
- package/esm2020/lib/services/price-api.service.mjs +0 -63
- package/esm2020/lib/services/procedures-api.service.mjs +0 -113
- package/esm2020/lib/services/product-api.service.mjs +0 -153
- package/esm2020/lib/services/product-model-api.service.mjs +0 -223
- package/esm2020/lib/services/promotions-api.service.mjs +0 -68
- package/esm2020/lib/services/quote-api.service.mjs +0 -56
- package/esm2020/lib/services/ramp-api.service.mjs +0 -31
- package/esm2020/lib/services/rebate-program-api.service.mjs +0 -68
- package/esm2020/lib/services/rebate-type-api.service.mjs +0 -68
- package/esm2020/lib/services/rlm-api.service.mjs +0 -65
- package/esm2020/lib/services/rlm-quote-api.service.mjs +0 -27
- package/esm2020/lib/services/rule-groups-api.service.mjs +0 -62
- package/esm2020/lib/services/rules-api.service.mjs +0 -98
- package/esm2020/lib/services/salesforce-api.service.mjs +0 -79
- package/esm2020/lib/services/sandbox-manager-api.service.mjs +0 -94
- package/esm2020/lib/services/scripts-api.service.mjs +0 -83
- package/esm2020/lib/services/shopping-cart-settings-api.service.mjs +0 -28
- package/esm2020/lib/services/stateful-configuration-api.mjs +0 -51
- package/esm2020/lib/services/ui-definitions-api.service.mjs +0 -76
- package/esm2020/lib/services/veloce-objects-api.service.mjs +0 -90
- package/esm2020/lib/types/attachment.types.mjs +0 -2
- package/esm2020/lib/types/auth.types.mjs +0 -2
- package/esm2020/lib/types/clone-request.types.mjs +0 -2
- package/esm2020/lib/types/delta-request.types.mjs +0 -2
- package/esm2020/lib/types/dto/configuration-settings-dto.types.mjs +0 -22
- package/esm2020/lib/types/dto/offers-dto.types.mjs +0 -2
- package/esm2020/lib/types/dto/ui-template-dto.types.mjs +0 -2
- package/esm2020/lib/types/index.mjs +0 -8
- package/esm2020/lib/types/org-info.types.mjs +0 -2
- package/esm2020/lib/types/price.types.mjs +0 -2
- package/esm2020/lib/types/quote.types.mjs +0 -2
- package/esm2020/lib/types/ramp-request.types.mjs +0 -2
- package/esm2020/lib/types/search-request.types.mjs +0 -2
- package/esm2020/lib/types/stateful-configuration.types.mjs +0 -2
- package/esm2020/lib/utils/canvas.utils.mjs +0 -33
- package/esm2020/lib/utils/index.mjs +0 -3
- package/esm2020/lib/utils/ui-template.utils.mjs +0 -13
- package/lib/services/configuration-api.service.d.ts +0 -23
- package/lib/services/context-api.service.d.ts +0 -11
- package/lib/services/product-model-api.service.d.ts +0 -29
- package/lib/services/quote-api.service.d.ts +0 -22
- package/lib/services/rlm-quote-api.service.d.ts +0 -11
- package/lib/types/price.types.d.ts +0 -5
- package/lib/utils/index.d.ts +0 -2
- /package/{lib → src/lib}/services/account-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/auth.service.d.ts +0 -0
- /package/{lib → src/lib}/services/catalog-admin-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/configuration-settings-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/contracted-price-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/delta-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/document-attachment-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/endpoints-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/flow-state-api.d.ts +0 -0
- /package/{lib → src/lib}/services/flows-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/guided-sellings-admin-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/guided-sellings-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/offers-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/org-info-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/picklists-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/portals-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/price-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/product-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/promotions-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/ramp-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/rebate-program-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/rebate-type-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/salesforce-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/sandbox-manager-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/shopping-cart-settings-api.service.d.ts +0 -0
- /package/{lib → src/lib}/services/stateful-configuration-api.d.ts +0 -0
- /package/{lib → src/lib}/services/veloce-objects-api.service.d.ts +0 -0
- /package/{lib → src/lib}/types/attachment.types.d.ts +0 -0
- /package/{lib → src/lib}/types/auth.types.d.ts +0 -0
- /package/{lib → src/lib}/types/clone-request.types.d.ts +0 -0
- /package/{lib → src/lib}/types/delta-request.types.d.ts +0 -0
- /package/{lib → src/lib}/types/dto/configuration-settings-dto.types.d.ts +0 -0
- /package/{lib → src/lib}/types/dto/offers-dto.types.d.ts +0 -0
- /package/{lib → src/lib}/types/index.d.ts +0 -0
- /package/{lib → src/lib}/types/org-info.types.d.ts +0 -0
- /package/{lib → src/lib}/types/quote.types.d.ts +0 -0
- /package/{lib → src/lib}/types/search-request.types.d.ts +0 -0
- /package/{lib → src/lib}/utils/canvas.utils.d.ts +0 -0
- /package/{lib → v2}/services/configuration-processors-api.service.d.ts +0 -0
- /package/{lib → v2}/services/ui-templates-api.service.d.ts +0 -0
- /package/{lib → v2}/types/dto/ui-template-dto.types.d.ts +0 -0
- /package/{lib → v2}/utils/ui-template.utils.d.ts +0 -0
@@ -1,63 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@veloceapps/core";
|
4
|
-
export class PriceApiService {
|
5
|
-
constructor(httpService) {
|
6
|
-
this.httpService = httpService;
|
7
|
-
this.SERVICE_URL = '/price';
|
8
|
-
}
|
9
|
-
calculate(request) {
|
10
|
-
return this.httpService.api({
|
11
|
-
method: 'post',
|
12
|
-
url: `${this.SERVICE_URL}/calculate`,
|
13
|
-
body: request,
|
14
|
-
skipErrorHandler: true,
|
15
|
-
});
|
16
|
-
}
|
17
|
-
getPriceLists() {
|
18
|
-
return this.httpService.api({
|
19
|
-
method: 'get',
|
20
|
-
url: '/price-lists',
|
21
|
-
});
|
22
|
-
}
|
23
|
-
getPriceList(id) {
|
24
|
-
return this.httpService.api({
|
25
|
-
method: 'get',
|
26
|
-
url: `/price-lists/${id}`,
|
27
|
-
});
|
28
|
-
}
|
29
|
-
getSellingTermByEndDate(planId, offeringId, startDate, endDate, frequencyUnit, frequencyDuration) {
|
30
|
-
return this.httpService.api({
|
31
|
-
method: 'post',
|
32
|
-
url: `${this.SERVICE_URL}/selling-term-by-end-date`,
|
33
|
-
body: {
|
34
|
-
planId: planId,
|
35
|
-
offeringId: offeringId,
|
36
|
-
startDate: startDate,
|
37
|
-
endDate: endDate,
|
38
|
-
frequencyUnit: frequencyUnit,
|
39
|
-
frequencyDuration: frequencyDuration,
|
40
|
-
},
|
41
|
-
});
|
42
|
-
}
|
43
|
-
getSellingTermByTerm(planId, offeringId, startDate, term, frequencyUnit, frequencyDuration) {
|
44
|
-
return this.httpService.api({
|
45
|
-
method: 'post',
|
46
|
-
url: `${this.SERVICE_URL}/selling-term-by-term`,
|
47
|
-
body: {
|
48
|
-
planId: planId,
|
49
|
-
offeringId: offeringId,
|
50
|
-
startDate: startDate,
|
51
|
-
term: term,
|
52
|
-
frequencyUnit: frequencyUnit,
|
53
|
-
frequencyDuration: frequencyDuration,
|
54
|
-
},
|
55
|
-
});
|
56
|
-
}
|
57
|
-
}
|
58
|
-
PriceApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PriceApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
59
|
-
PriceApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PriceApiService });
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: PriceApiService, decorators: [{
|
61
|
-
type: Injectable
|
62
|
-
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpY2UtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3NlcnZpY2VzL3ByaWNlLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxRQUFRLENBQUM7SUFFVyxDQUFDO0lBRTdDLFNBQVMsQ0FBQyxPQUE4QjtRQUM3QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsWUFBWTtZQUNwQyxJQUFJLEVBQUUsT0FBTztZQUNiLGdCQUFnQixFQUFFLElBQUk7U0FDdkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxjQUFjO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsRUFBVTtRQUM1QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLGdCQUFnQixFQUFFLEVBQUU7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLHVCQUF1QixDQUM1QixNQUFlLEVBQ2YsVUFBbUIsRUFDbkIsU0FBa0IsRUFDbEIsT0FBZ0IsRUFDaEIsYUFBc0IsRUFDdEIsaUJBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVywyQkFBMkI7WUFDbkQsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixTQUFTLEVBQUUsU0FBUztnQkFDcEIsT0FBTyxFQUFFLE9BQU87Z0JBQ2hCLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixpQkFBaUIsRUFBRSxpQkFBaUI7YUFDckM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sb0JBQW9CLENBQ3pCLE1BQWUsRUFDZixVQUFtQixFQUNuQixTQUFrQixFQUNsQixJQUFhLEVBQ2IsYUFBc0IsRUFDdEIsaUJBQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyx1QkFBdUI7WUFDL0MsSUFBSSxFQUFFO2dCQUNKLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFVBQVUsRUFBRSxVQUFVO2dCQUN0QixTQUFTLEVBQUUsU0FBUztnQkFDcEIsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsYUFBYSxFQUFFLGFBQWE7Z0JBQzVCLGlCQUFpQixFQUFFLGlCQUFpQjthQUNyQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7OzRHQXRFVSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VIdHRwU2VydmljZSwgUHJpY2VMaXN0LCBQcmljZVN1bW1hcnkgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFByaWNlQ2FsY3VsYXRlUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzL3ByaWNlLnR5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByaWNlQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkwgPSAnL3ByaWNlJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGNhbGN1bGF0ZShyZXF1ZXN0OiBQcmljZUNhbGN1bGF0ZVJlcXVlc3QpOiBPYnNlcnZhYmxlPFByaWNlU3VtbWFyeT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vY2FsY3VsYXRlYCxcbiAgICAgIGJvZHk6IHJlcXVlc3QsXG4gICAgICBza2lwRXJyb3JIYW5kbGVyOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFByaWNlTGlzdHMoKTogT2JzZXJ2YWJsZTxQcmljZUxpc3RbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiAnL3ByaWNlLWxpc3RzJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQcmljZUxpc3QoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJpY2VMaXN0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IGAvcHJpY2UtbGlzdHMvJHtpZH1gLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFNlbGxpbmdUZXJtQnlFbmREYXRlKFxuICAgIHBsYW5JZD86IHN0cmluZyxcbiAgICBvZmZlcmluZ0lkPzogc3RyaW5nLFxuICAgIHN0YXJ0RGF0ZT86IHN0cmluZyxcbiAgICBlbmREYXRlPzogc3RyaW5nLFxuICAgIGZyZXF1ZW5jeVVuaXQ/OiBzdHJpbmcsXG4gICAgZnJlcXVlbmN5RHVyYXRpb24/OiBzdHJpbmcsXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9zZWxsaW5nLXRlcm0tYnktZW5kLWRhdGVgLFxuICAgICAgYm9keToge1xuICAgICAgICBwbGFuSWQ6IHBsYW5JZCxcbiAgICAgICAgb2ZmZXJpbmdJZDogb2ZmZXJpbmdJZCxcbiAgICAgICAgc3RhcnREYXRlOiBzdGFydERhdGUsXG4gICAgICAgIGVuZERhdGU6IGVuZERhdGUsXG4gICAgICAgIGZyZXF1ZW5jeVVuaXQ6IGZyZXF1ZW5jeVVuaXQsXG4gICAgICAgIGZyZXF1ZW5jeUR1cmF0aW9uOiBmcmVxdWVuY3lEdXJhdGlvbixcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VsbGluZ1Rlcm1CeVRlcm0oXG4gICAgcGxhbklkPzogc3RyaW5nLFxuICAgIG9mZmVyaW5nSWQ/OiBzdHJpbmcsXG4gICAgc3RhcnREYXRlPzogc3RyaW5nLFxuICAgIHRlcm0/OiBudW1iZXIsXG4gICAgZnJlcXVlbmN5VW5pdD86IHN0cmluZyxcbiAgICBmcmVxdWVuY3lEdXJhdGlvbj86IHN0cmluZyxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3NlbGxpbmctdGVybS1ieS10ZXJtYCxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcGxhbklkOiBwbGFuSWQsXG4gICAgICAgIG9mZmVyaW5nSWQ6IG9mZmVyaW5nSWQsXG4gICAgICAgIHN0YXJ0RGF0ZTogc3RhcnREYXRlLFxuICAgICAgICB0ZXJtOiB0ZXJtLFxuICAgICAgICBmcmVxdWVuY3lVbml0OiBmcmVxdWVuY3lVbml0LFxuICAgICAgICBmcmVxdWVuY3lEdXJhdGlvbjogZnJlcXVlbmN5RHVyYXRpb24sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -1,113 +0,0 @@
|
|
1
|
-
import { HttpParams } from '@angular/common/http';
|
2
|
-
import { Injectable } from '@angular/core';
|
3
|
-
import { Expression, } from '@veloceapps/core';
|
4
|
-
import { map } from 'rxjs/operators';
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@veloceapps/core";
|
7
|
-
export class ProceduresApiService {
|
8
|
-
constructor(baseHttpService) {
|
9
|
-
this.baseHttpService = baseHttpService;
|
10
|
-
this.ADMIN_SERVICE_URL = '/admin/procedures';
|
11
|
-
this.SERVICE_URL = '/procedures';
|
12
|
-
this.fetchProcedures$ = () => {
|
13
|
-
return this.searchProcedures$(new Expression(), 0, 100);
|
14
|
-
};
|
15
|
-
this.searchProcedures$ = (expression, skip, count) => {
|
16
|
-
let params = new HttpParams();
|
17
|
-
params = params.set('skip', '' + skip);
|
18
|
-
params = params.set('count', '' + count);
|
19
|
-
return this.baseHttpService.api({
|
20
|
-
method: 'post',
|
21
|
-
url: `${this.ADMIN_SERVICE_URL}/search`,
|
22
|
-
params,
|
23
|
-
body: expression,
|
24
|
-
});
|
25
|
-
};
|
26
|
-
this.createProcedure$ = (newProcedure) => {
|
27
|
-
return this.baseHttpService.api({
|
28
|
-
url: `${this.ADMIN_SERVICE_URL}`,
|
29
|
-
method: 'post',
|
30
|
-
body: newProcedure,
|
31
|
-
});
|
32
|
-
};
|
33
|
-
this.updateProcedure$ = (procedure) => {
|
34
|
-
return this.baseHttpService.api({
|
35
|
-
url: `${this.ADMIN_SERVICE_URL}/${procedure.id}`,
|
36
|
-
method: 'put',
|
37
|
-
body: procedure,
|
38
|
-
});
|
39
|
-
};
|
40
|
-
this.duplicateProcedure$ = (body) => {
|
41
|
-
return this.baseHttpService
|
42
|
-
.api({
|
43
|
-
url: `${this.ADMIN_SERVICE_URL}/${body.id}/clone`,
|
44
|
-
method: 'post',
|
45
|
-
body,
|
46
|
-
})
|
47
|
-
.pipe(map(response => response.clonedRecordId));
|
48
|
-
};
|
49
|
-
this.removeProcedure$ = (id) => {
|
50
|
-
return this.baseHttpService.api({
|
51
|
-
url: `${this.ADMIN_SERVICE_URL}/${id}`,
|
52
|
-
method: 'delete',
|
53
|
-
});
|
54
|
-
};
|
55
|
-
this.restoreProcedure$ = (id) => {
|
56
|
-
return this.baseHttpService.api({
|
57
|
-
url: `${this.ADMIN_SERVICE_URL}/${id}/restore`,
|
58
|
-
method: 'patch',
|
59
|
-
});
|
60
|
-
};
|
61
|
-
}
|
62
|
-
fetchProcedure$(id) {
|
63
|
-
return this.baseHttpService.api({
|
64
|
-
url: `${this.ADMIN_SERVICE_URL}/${id}`,
|
65
|
-
method: 'get',
|
66
|
-
});
|
67
|
-
}
|
68
|
-
execute$(body) {
|
69
|
-
return this.baseHttpService.api({
|
70
|
-
url: `${this.SERVICE_URL}/execute`,
|
71
|
-
method: 'post',
|
72
|
-
body,
|
73
|
-
});
|
74
|
-
}
|
75
|
-
catalogExecute$(body) {
|
76
|
-
return this.baseHttpService.api({
|
77
|
-
url: `${this.SERVICE_URL}/catalog/execute`,
|
78
|
-
method: 'post',
|
79
|
-
body,
|
80
|
-
});
|
81
|
-
}
|
82
|
-
rlmExecute$(body) {
|
83
|
-
return this.baseHttpService.api({
|
84
|
-
url: `${this.SERVICE_URL}/rlm/execute`,
|
85
|
-
method: 'post',
|
86
|
-
body,
|
87
|
-
});
|
88
|
-
}
|
89
|
-
/**
|
90
|
-
* Run active procedure against QuoteDraft
|
91
|
-
* @param body
|
92
|
-
* @returns
|
93
|
-
*/
|
94
|
-
apply$(body) {
|
95
|
-
return this.baseHttpService.api({
|
96
|
-
url: `${this.SERVICE_URL}/apply`,
|
97
|
-
method: 'post',
|
98
|
-
body,
|
99
|
-
});
|
100
|
-
}
|
101
|
-
fetchDefaultPricingSteps$() {
|
102
|
-
return this.baseHttpService.api({
|
103
|
-
url: `${this.ADMIN_SERVICE_URL}/pricing-steps`,
|
104
|
-
method: 'get',
|
105
|
-
});
|
106
|
-
}
|
107
|
-
}
|
108
|
-
ProceduresApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProceduresApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
109
|
-
ProceduresApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProceduresApiService });
|
110
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProceduresApiService, decorators: [{
|
111
|
-
type: Injectable
|
112
|
-
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
113
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlcy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvY2VkdXJlcy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsVUFBVSxHQUtYLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJckMsTUFBTSxPQUFPLG9CQUFvQjtJQUkvQixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFIbkMsc0JBQWlCLEdBQVcsbUJBQW1CLENBQUM7UUFDaEQsZ0JBQVcsR0FBVyxhQUFhLENBQUM7UUFJOUMscUJBQWdCLEdBQUcsR0FBNEIsRUFBRTtZQUN0RCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxDQUFDLENBQUM7UUFFSyxzQkFBaUIsR0FBRyxDQUFDLFVBQXNCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBMkIsRUFBRTtZQUMxRyxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDdkMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQztZQUN6QyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO2dCQUM5QixNQUFNLEVBQUUsTUFBTTtnQkFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLFNBQVM7Z0JBQ3ZDLE1BQU07Z0JBQ04sSUFBSSxFQUFFLFVBQVU7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUsscUJBQWdCLEdBQUcsQ0FBQyxZQUEwQixFQUF5QixFQUFFO1lBQzlFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQVk7Z0JBQ3pDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDaEMsTUFBTSxFQUFFLE1BQU07Z0JBQ2QsSUFBSSxFQUFFLFlBQVk7YUFDbkIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUsscUJBQWdCLEdBQUcsQ0FBQyxTQUFvQixFQUF5QixFQUFFO1lBQ3hFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQVk7Z0JBQ3pDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxTQUFTLENBQUMsRUFBRSxFQUFFO2dCQUNoRCxNQUFNLEVBQUUsS0FBSztnQkFDYixJQUFJLEVBQUUsU0FBUzthQUNoQixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFSyx3QkFBbUIsR0FBRyxDQUFDLElBQWtCLEVBQXNCLEVBQUU7WUFDdEUsT0FBTyxJQUFJLENBQUMsZUFBZTtpQkFDeEIsR0FBRyxDQUFDO2dCQUNILEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsRUFBRSxRQUFRO2dCQUNqRCxNQUFNLEVBQUUsTUFBTTtnQkFDZCxJQUFJO2FBQ0wsQ0FBQztpQkFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDO1FBRUsscUJBQWdCLEdBQUcsQ0FBQyxFQUFVLEVBQXNCLEVBQUU7WUFDM0QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBUztnQkFDdEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsRUFBRTtnQkFDdEMsTUFBTSxFQUFFLFFBQVE7YUFDakIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUssc0JBQWlCLEdBQUcsQ0FBQyxFQUFVLEVBQXNCLEVBQUU7WUFDNUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBUztnQkFDdEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixJQUFJLEVBQUUsVUFBVTtnQkFDOUMsTUFBTSxFQUFFLE9BQU87YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO0lBeERxRCxDQUFDO0lBMERqRCxlQUFlLENBQUMsRUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFZO1lBQ3pDLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLEVBQUU7WUFDdEMsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUSxDQUFDLElBQTZCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQVc7WUFDeEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsVUFBVTtZQUNsQyxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sZUFBZSxDQUFDLElBQTZCO1FBQ2xELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQVc7WUFDeEMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsa0JBQWtCO1lBQzFDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxXQUFXLENBQUMsSUFBNkI7UUFDOUMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBVztZQUN4QyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxjQUFjO1lBQ3RDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLElBQWdCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQWE7WUFDMUMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsUUFBUTtZQUNoQyxNQUFNLEVBQUUsTUFBTTtZQUNkLElBQUk7U0FDTCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0seUJBQXlCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQVk7WUFDekMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixnQkFBZ0I7WUFDOUMsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDOztpSEEvR1Usb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlSHR0cFNlcnZpY2UsXG4gIEV4cHJlc3Npb24sXG4gIE5ld1Byb2NlZHVyZSxcbiAgUHJvY2VkdXJlLFxuICBQcm9jZWR1cmVFeGVjdXRlUmVxdWVzdCxcbiAgUXVvdGVEcmFmdCxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDbG9uZVJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9jbG9uZS1yZXF1ZXN0LnR5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2NlZHVyZXNBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBBRE1JTl9TRVJWSUNFX1VSTDogc3RyaW5nID0gJy9hZG1pbi9wcm9jZWR1cmVzJztcbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTDogc3RyaW5nID0gJy9wcm9jZWR1cmVzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGJhc2VIdHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBmZXRjaFByb2NlZHVyZXMkID0gKCk6IE9ic2VydmFibGU8UHJvY2VkdXJlW10+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hQcm9jZWR1cmVzJChuZXcgRXhwcmVzc2lvbigpLCAwLCAxMDApO1xuICB9O1xuXG4gIHB1YmxpYyBzZWFyY2hQcm9jZWR1cmVzJCA9IChleHByZXNzaW9uOiBFeHByZXNzaW9uLCBza2lwOiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb2NlZHVyZVtdPiA9PiB7XG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc2tpcCcsICcnICsgc2tpcCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLnNldCgnY291bnQnLCAnJyArIGNvdW50KTtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLkFETUlOX1NFUlZJQ0VfVVJMfS9zZWFyY2hgLFxuICAgICAgcGFyYW1zLFxuICAgICAgYm9keTogZXhwcmVzc2lvbixcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgY3JlYXRlUHJvY2VkdXJlJCA9IChuZXdQcm9jZWR1cmU6IE5ld1Byb2NlZHVyZSk6IE9ic2VydmFibGU8UHJvY2VkdXJlPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxQcm9jZWR1cmU+KHtcbiAgICAgIHVybDogYCR7dGhpcy5BRE1JTl9TRVJWSUNFX1VSTH1gLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiBuZXdQcm9jZWR1cmUsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHVwZGF0ZVByb2NlZHVyZSQgPSAocHJvY2VkdXJlOiBQcm9jZWR1cmUpOiBPYnNlcnZhYmxlPFByb2NlZHVyZT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8UHJvY2VkdXJlPih7XG4gICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9LyR7cHJvY2VkdXJlLmlkfWAsXG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgYm9keTogcHJvY2VkdXJlLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBkdXBsaWNhdGVQcm9jZWR1cmUkID0gKGJvZHk6IENsb25lUmVxdWVzdCk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLkFETUlOX1NFUlZJQ0VfVVJMfS8ke2JvZHkuaWR9L2Nsb25lYCxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIGJvZHksXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmNsb25lZFJlY29yZElkKSk7XG4gIH07XG5cbiAgcHVibGljIHJlbW92ZVByb2NlZHVyZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxzdHJpbmc+KHtcbiAgICAgIHVybDogYCR7dGhpcy5BRE1JTl9TRVJWSUNFX1VSTH0vJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgcmVzdG9yZVByb2NlZHVyZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxzdHJpbmc+KHtcbiAgICAgIHVybDogYCR7dGhpcy5BRE1JTl9TRVJWSUNFX1VSTH0vJHtpZH0vcmVzdG9yZWAsXG4gICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIGZldGNoUHJvY2VkdXJlJChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9jZWR1cmU+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFByb2NlZHVyZT4oe1xuICAgICAgdXJsOiBgJHt0aGlzLkFETUlOX1NFUlZJQ0VfVVJMfS8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGV4ZWN1dGUkKGJvZHk6IFByb2NlZHVyZUV4ZWN1dGVSZXF1ZXN0KSB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxzdHJpbmdbXT4oe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9leGVjdXRlYCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjYXRhbG9nRXhlY3V0ZSQoYm9keTogUHJvY2VkdXJlRXhlY3V0ZVJlcXVlc3QpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPHN0cmluZ1tdPih7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L2NhdGFsb2cvZXhlY3V0ZWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmxtRXhlY3V0ZSQoYm9keTogUHJvY2VkdXJlRXhlY3V0ZVJlcXVlc3QpIHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPHN0cmluZ1tdPih7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3JsbS9leGVjdXRlYCxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW4gYWN0aXZlIHByb2NlZHVyZSBhZ2FpbnN0IFF1b3RlRHJhZnRcbiAgICogQHBhcmFtIGJvZHlcbiAgICogQHJldHVybnNcbiAgICovXG4gIHB1YmxpYyBhcHBseSQoYm9keTogUXVvdGVEcmFmdCk6IE9ic2VydmFibGU8UXVvdGVEcmFmdD4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8UXVvdGVEcmFmdD4oe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9hcHBseWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hEZWZhdWx0UHJpY2luZ1N0ZXBzJCgpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8UHJvY2VkdXJlPih7XG4gICAgICB1cmw6IGAke3RoaXMuQURNSU5fU0VSVklDRV9VUkx9L3ByaWNpbmctc3RlcHNgLFxuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -1,153 +0,0 @@
|
|
1
|
-
import { HttpParams } from '@angular/common/http';
|
2
|
-
import { Injectable } from '@angular/core';
|
3
|
-
import { noop } from 'rxjs';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@veloceapps/core";
|
6
|
-
export class ProductApiService {
|
7
|
-
constructor(baseHttpService) {
|
8
|
-
this.baseHttpService = baseHttpService;
|
9
|
-
this.serviceUrl = '/products';
|
10
|
-
this.fetchProducts$ = (payload) => {
|
11
|
-
let params = new HttpParams();
|
12
|
-
params = params.append('count', payload.count);
|
13
|
-
params = params.append('skip', payload.skip);
|
14
|
-
if (payload.name) {
|
15
|
-
params = params.append('name', payload.name);
|
16
|
-
}
|
17
|
-
return this.baseHttpService.api({ url: `${this.serviceUrl}`, params });
|
18
|
-
};
|
19
|
-
this.searchProducts$ = (expression, skip, count) => {
|
20
|
-
let params = new HttpParams();
|
21
|
-
params = params.set('skip', '' + skip);
|
22
|
-
params = params.set('count', '' + count);
|
23
|
-
return this.baseHttpService.api({
|
24
|
-
method: 'post',
|
25
|
-
url: `${this.serviceUrl}/search`,
|
26
|
-
params: params,
|
27
|
-
body: expression,
|
28
|
-
});
|
29
|
-
};
|
30
|
-
this.fetchProduct$ = (id) => this.baseHttpService.api({ url: `${this.serviceUrl}/${id}` });
|
31
|
-
this.fetchAttributes$ = () => {
|
32
|
-
return this.baseHttpService.api({ url: `${this.serviceUrl}/attributes/definition` });
|
33
|
-
};
|
34
|
-
this.searchAttributes$ = (expression, skip, count) => {
|
35
|
-
let params = new HttpParams();
|
36
|
-
params = params.set('skip', '' + skip);
|
37
|
-
params = params.set('count', '' + count);
|
38
|
-
return this.baseHttpService.api({
|
39
|
-
method: 'post',
|
40
|
-
url: `${this.serviceUrl}/attributes/definition/search`,
|
41
|
-
params: params,
|
42
|
-
body: expression,
|
43
|
-
});
|
44
|
-
};
|
45
|
-
this.fetchAttributesByModel = (modelId) => {
|
46
|
-
return this.baseHttpService.api({ url: `${this.serviceUrl}/attributes/definition/forModel/${modelId}` });
|
47
|
-
};
|
48
|
-
this.createNewProduct$ = (productData) => {
|
49
|
-
return this.baseHttpService.api({
|
50
|
-
url: `${this.serviceUrl}`,
|
51
|
-
method: 'post',
|
52
|
-
body: productData,
|
53
|
-
});
|
54
|
-
};
|
55
|
-
this.updateProduct$ = (body) => {
|
56
|
-
return this.baseHttpService.api({
|
57
|
-
url: `${this.serviceUrl}/${body.id}`,
|
58
|
-
method: 'put',
|
59
|
-
body,
|
60
|
-
});
|
61
|
-
};
|
62
|
-
this.removeProduct$ = (id) => {
|
63
|
-
return this.baseHttpService.api({
|
64
|
-
url: `${this.serviceUrl}/${id}`,
|
65
|
-
method: 'delete',
|
66
|
-
});
|
67
|
-
};
|
68
|
-
this.restoreProduct$ = (id) => {
|
69
|
-
return this.baseHttpService.api({
|
70
|
-
url: `${this.serviceUrl}/${id}/restore`,
|
71
|
-
method: 'patch',
|
72
|
-
});
|
73
|
-
};
|
74
|
-
this.createProductAttribute$ = (attributeData) => {
|
75
|
-
return this.baseHttpService.api({
|
76
|
-
url: `${this.serviceUrl}/attributes`,
|
77
|
-
method: 'post',
|
78
|
-
body: attributeData,
|
79
|
-
});
|
80
|
-
};
|
81
|
-
this.updateProductAttribute$ = (attributeData) => {
|
82
|
-
return this.baseHttpService.api({
|
83
|
-
url: `${this.serviceUrl}/attributes/${attributeData.id}`,
|
84
|
-
method: 'put',
|
85
|
-
body: attributeData,
|
86
|
-
});
|
87
|
-
};
|
88
|
-
this.removeProductAttribute$ = (id) => {
|
89
|
-
return this.baseHttpService.api({
|
90
|
-
url: `${this.serviceUrl}/attributes/${id}`,
|
91
|
-
method: 'delete',
|
92
|
-
});
|
93
|
-
};
|
94
|
-
this.createNewAttribute$ = (attributeData) => {
|
95
|
-
return this.baseHttpService.api({
|
96
|
-
url: `${this.serviceUrl}/attributes/definition`,
|
97
|
-
method: 'post',
|
98
|
-
body: attributeData,
|
99
|
-
});
|
100
|
-
};
|
101
|
-
this.updateAttribute$ = (body) => {
|
102
|
-
return this.baseHttpService.api({
|
103
|
-
url: `${this.serviceUrl}/attributes/definition/${body.id}`,
|
104
|
-
method: 'put',
|
105
|
-
body,
|
106
|
-
});
|
107
|
-
};
|
108
|
-
this.removeAttribute$ = (id) => {
|
109
|
-
return this.baseHttpService.api({
|
110
|
-
url: `${this.serviceUrl}/attributes/definition/${id}`,
|
111
|
-
method: 'delete',
|
112
|
-
});
|
113
|
-
};
|
114
|
-
this.restoreAttribute$ = (id) => {
|
115
|
-
return this.baseHttpService.api({
|
116
|
-
url: `${this.serviceUrl}/attributes/definition/${id}/restore`,
|
117
|
-
method: 'patch',
|
118
|
-
});
|
119
|
-
};
|
120
|
-
}
|
121
|
-
attachImage$(productId, file) {
|
122
|
-
const data = new FormData();
|
123
|
-
data.append('image', file);
|
124
|
-
return this.baseHttpService.upload({
|
125
|
-
method: 'post',
|
126
|
-
url: `${this.serviceUrl}/${productId}/image`,
|
127
|
-
body: data,
|
128
|
-
});
|
129
|
-
}
|
130
|
-
removeImage$(productId) {
|
131
|
-
return this.baseHttpService.api({
|
132
|
-
method: 'delete',
|
133
|
-
url: `${this.serviceUrl}/${productId}/image`,
|
134
|
-
});
|
135
|
-
}
|
136
|
-
fetchImage$(productId) {
|
137
|
-
return this.baseHttpService.api({
|
138
|
-
url: this.getImageUrl(productId),
|
139
|
-
method: 'get',
|
140
|
-
responseType: 'blob',
|
141
|
-
errorHandler: noop,
|
142
|
-
});
|
143
|
-
}
|
144
|
-
getImageUrl(productId) {
|
145
|
-
return `${this.serviceUrl}/${productId}/image`;
|
146
|
-
}
|
147
|
-
}
|
148
|
-
ProductApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
149
|
-
ProductApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductApiService });
|
150
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductApiService, decorators: [{
|
151
|
-
type: Injectable
|
152
|
-
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
153
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvZHVjdC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVkzQyxPQUFPLEVBQUUsSUFBSSxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFHeEMsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFGbkMsZUFBVSxHQUFXLFdBQVcsQ0FBQztRQUkzQyxtQkFBYyxHQUFHLENBQUMsT0FBeUIsRUFBeUIsRUFBRTtZQUMzRSxJQUFJLE1BQU0sR0FBZSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM3QyxJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7Z0JBQ2hCLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDOUM7WUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDekUsQ0FBQyxDQUFDO1FBRUssb0JBQWUsR0FBRyxDQUFDLFVBQXNCLEVBQUUsSUFBWSxFQUFFLEtBQWEsRUFBeUIsRUFBRTtZQUN0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LFNBQVMsUUFBUTtZQUM1QyxJQUFJLEVBQUUsSUFBSTtTQUNYLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsU0FBaUI7UUFDbkMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQztZQUM5QixNQUFNLEVBQUUsUUFBUTtZQUNoQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLFNBQVMsUUFBUTtTQUM3QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDOUIsR0FBRyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQ2hDLE1BQU0sRUFBRSxLQUFLO1lBQ2IsWUFBWSxFQUFFLE1BQU07WUFDcEIsWUFBWSxFQUFFLElBQUk7U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxTQUFpQjtRQUNsQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxTQUFTLFFBQVEsQ0FBQztJQUNqRCxDQUFDOzs4R0F0S1UsaUJBQWlCO2tIQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFEN0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBdHRyaWJ1dGVEZWZpbml0aW9uLFxuICBCYXNlSHR0cFNlcnZpY2UsXG4gIEV4cHJlc3Npb24sXG4gIExhenlDaHVua1JlcXVlc3QsXG4gIE5ld0F0dHJpYnV0ZURlZmluaXRpb24sXG4gIE5ld1Byb2R1Y3QsXG4gIE5ld1Byb2R1Y3RBdHRyaWJ1dGUsXG4gIFByb2R1Y3QsXG4gIFByb2R1Y3RBdHRyaWJ1dGUsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbm9vcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUHJvZHVjdEFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VVcmw6IHN0cmluZyA9ICcvcHJvZHVjdHMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGZldGNoUHJvZHVjdHMkID0gKHBheWxvYWQ6IExhenlDaHVua1JlcXVlc3QpOiBPYnNlcnZhYmxlPFByb2R1Y3RbXT4gPT4ge1xuICAgIGxldCBwYXJhbXM6IEh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5hcHBlbmQoJ2NvdW50JywgcGF5bG9hZC5jb3VudCk7XG4gICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnc2tpcCcsIHBheWxvYWQuc2tpcCk7XG4gICAgaWYgKHBheWxvYWQubmFtZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbmFtZScsIHBheWxvYWQubmFtZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoeyB1cmw6IGAke3RoaXMuc2VydmljZVVybH1gLCBwYXJhbXMgfSk7XG4gIH07XG5cbiAgcHVibGljIHNlYXJjaFByb2R1Y3RzJCA9IChleHByZXNzaW9uOiBFeHByZXNzaW9uLCBza2lwOiBudW1iZXIsIGNvdW50OiBudW1iZXIpOiBPYnNlcnZhYmxlPFByb2R1Y3RbXT4gPT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NraXAnLCAnJyArIHNraXApO1xuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NvdW50JywgJycgKyBjb3VudCk7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9zZWFyY2hgLFxuICAgICAgcGFyYW1zOiBwYXJhbXMsXG4gICAgICBib2R5OiBleHByZXNzaW9uLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBmZXRjaFByb2R1Y3QkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3Q+ID0+XG4gICAgdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHsgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCB9KTtcblxuICBwdWJsaWMgZmV0Y2hBdHRyaWJ1dGVzJCA9ICgpOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZURlZmluaXRpb25bXT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoeyB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy9kZWZpbml0aW9uYCB9KTtcbiAgfTtcblxuICBwdWJsaWMgc2VhcmNoQXR0cmlidXRlcyQgPSAoXG4gICAgZXhwcmVzc2lvbjogRXhwcmVzc2lvbixcbiAgICBza2lwOiBudW1iZXIsXG4gICAgY291bnQ6IG51bWJlcixcbiAgKTogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVEZWZpbml0aW9uW10+ID0+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdza2lwJywgJycgKyBza2lwKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdjb3VudCcsICcnICsgY291bnQpO1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy9kZWZpbml0aW9uL3NlYXJjaGAsXG4gICAgICBwYXJhbXM6IHBhcmFtcyxcbiAgICAgIGJvZHk6IGV4cHJlc3Npb24sXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIGZldGNoQXR0cmlidXRlc0J5TW9kZWwgPSAobW9kZWxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVEZWZpbml0aW9uW10+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHsgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L2F0dHJpYnV0ZXMvZGVmaW5pdGlvbi9mb3JNb2RlbC8ke21vZGVsSWR9YCB9KTtcbiAgfTtcblxuICBwdWJsaWMgY3JlYXRlTmV3UHJvZHVjdCQgPSAocHJvZHVjdERhdGE6IE5ld1Byb2R1Y3QpOiBPYnNlcnZhYmxlPFByb2R1Y3Q+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfWAsXG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHk6IHByb2R1Y3REYXRhLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyB1cGRhdGVQcm9kdWN0JCA9IChib2R5OiBQcm9kdWN0KTogT2JzZXJ2YWJsZTxQcm9kdWN0PiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtib2R5LmlkfWAsXG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgcmVtb3ZlUHJvZHVjdCQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtpZH1gLFxuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgcmVzdG9yZVByb2R1Y3QkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2lkfS9yZXN0b3JlYCxcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgY3JlYXRlUHJvZHVjdEF0dHJpYnV0ZSQgPSAoYXR0cmlidXRlRGF0YTogTmV3UHJvZHVjdEF0dHJpYnV0ZSk6IE9ic2VydmFibGU8QXR0cmlidXRlRGVmaW5pdGlvbj4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L2F0dHJpYnV0ZXNgLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiBhdHRyaWJ1dGVEYXRhLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyB1cGRhdGVQcm9kdWN0QXR0cmlidXRlJCA9IChhdHRyaWJ1dGVEYXRhOiBQcm9kdWN0QXR0cmlidXRlKTogT2JzZXJ2YWJsZTxBdHRyaWJ1dGVEZWZpbml0aW9uPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy8ke2F0dHJpYnV0ZURhdGEuaWR9YCxcbiAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICBib2R5OiBhdHRyaWJ1dGVEYXRhLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyByZW1vdmVQcm9kdWN0QXR0cmlidXRlJCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBjcmVhdGVOZXdBdHRyaWJ1dGUkID0gKGF0dHJpYnV0ZURhdGE6IE5ld0F0dHJpYnV0ZURlZmluaXRpb24pOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZURlZmluaXRpb24+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9hdHRyaWJ1dGVzL2RlZmluaXRpb25gLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiBhdHRyaWJ1dGVEYXRhLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyB1cGRhdGVBdHRyaWJ1dGUkID0gKGJvZHk6IEF0dHJpYnV0ZURlZmluaXRpb24pOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZURlZmluaXRpb24+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9hdHRyaWJ1dGVzL2RlZmluaXRpb24vJHtib2R5LmlkfWAsXG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgYm9keSxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgcmVtb3ZlQXR0cmlidXRlJCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vYXR0cmlidXRlcy9kZWZpbml0aW9uLyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2RlbGV0ZScsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHJlc3RvcmVBdHRyaWJ1dGUkID0gKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9hdHRyaWJ1dGVzL2RlZmluaXRpb24vJHtpZH0vcmVzdG9yZWAsXG4gICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIGF0dGFjaEltYWdlJChwcm9kdWN0SWQ6IHN0cmluZywgZmlsZTogRmlsZSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBkYXRhLmFwcGVuZCgnaW1hZ2UnLCBmaWxlKTtcblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtwcm9kdWN0SWR9L2ltYWdlYCxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlSW1hZ2UkKHByb2R1Y3RJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7cHJvZHVjdElkfS9pbWFnZWAsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hJbWFnZSQocHJvZHVjdElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEZpbGU+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogdGhpcy5nZXRJbWFnZVVybChwcm9kdWN0SWQpLFxuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ2Jsb2InLFxuICAgICAgZXJyb3JIYW5kbGVyOiBub29wLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEltYWdlVXJsKHByb2R1Y3RJZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGAke3RoaXMuc2VydmljZVVybH0vJHtwcm9kdWN0SWR9L2ltYWdlYDtcbiAgfVxufVxuIl19
|
@@ -1,223 +0,0 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import { EntityUtil, ModelTranslatorUtils, } from '@veloceapps/core';
|
3
|
-
import { catchError, map } from 'rxjs/operators';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@veloceapps/core";
|
6
|
-
export class ProductModelApiService {
|
7
|
-
constructor(httpService) {
|
8
|
-
this.httpService = httpService;
|
9
|
-
this.SERVICE_URL = '/models';
|
10
|
-
}
|
11
|
-
addModel(model) {
|
12
|
-
return this.httpService
|
13
|
-
.api({
|
14
|
-
method: 'post',
|
15
|
-
url: this.SERVICE_URL,
|
16
|
-
body: model,
|
17
|
-
errorHandler: this.httpService.handleValidationError,
|
18
|
-
})
|
19
|
-
.pipe(map(result => {
|
20
|
-
if (result.successful) {
|
21
|
-
return result;
|
22
|
-
}
|
23
|
-
else {
|
24
|
-
throw new Error(result.message);
|
25
|
-
}
|
26
|
-
}));
|
27
|
-
}
|
28
|
-
releaseModel(model) {
|
29
|
-
return this.httpService
|
30
|
-
.api({
|
31
|
-
method: 'put',
|
32
|
-
url: `${this.SERVICE_URL}/${model.id}/release`,
|
33
|
-
body: model,
|
34
|
-
errorHandler: this.httpService.handleValidationError,
|
35
|
-
})
|
36
|
-
.pipe(map(result => {
|
37
|
-
if (result.successful) {
|
38
|
-
return '';
|
39
|
-
}
|
40
|
-
else {
|
41
|
-
throw new Error(result.message);
|
42
|
-
}
|
43
|
-
}));
|
44
|
-
}
|
45
|
-
removeModel(modelId, successFn, failureFn) {
|
46
|
-
const observable = this.httpService
|
47
|
-
.api({
|
48
|
-
method: 'delete',
|
49
|
-
url: `${this.SERVICE_URL}/${modelId}`,
|
50
|
-
errorHandler: this.httpService.handleValidationError,
|
51
|
-
})
|
52
|
-
.pipe(map(result => {
|
53
|
-
if (result.successful) {
|
54
|
-
return '';
|
55
|
-
}
|
56
|
-
else {
|
57
|
-
throw new Error(result.message);
|
58
|
-
}
|
59
|
-
}));
|
60
|
-
observable.subscribe(() => {
|
61
|
-
successFn && successFn.apply();
|
62
|
-
}, () => {
|
63
|
-
failureFn && failureFn.apply();
|
64
|
-
});
|
65
|
-
}
|
66
|
-
getModelVersions(modelId, count = 100, skip = 0) {
|
67
|
-
return this.httpService.api({
|
68
|
-
method: 'post',
|
69
|
-
url: `${this.SERVICE_URL}/${modelId}/versions`,
|
70
|
-
body: {
|
71
|
-
skipCount: skip,
|
72
|
-
count: count,
|
73
|
-
},
|
74
|
-
});
|
75
|
-
}
|
76
|
-
getModel(id, version) {
|
77
|
-
let url = `${this.SERVICE_URL}/${id}`;
|
78
|
-
if (version) {
|
79
|
-
url += `/versions/${version}`;
|
80
|
-
}
|
81
|
-
return this.httpService.api({ url });
|
82
|
-
}
|
83
|
-
getModels(skipCount, searchText) {
|
84
|
-
return this.httpService.api({
|
85
|
-
method: 'post',
|
86
|
-
url: `${this.SERVICE_URL}/search`,
|
87
|
-
body: {
|
88
|
-
nameRegex: searchText,
|
89
|
-
skipCount: skipCount.toString(),
|
90
|
-
count: ProductModelApiService.MAX_RESULTS,
|
91
|
-
},
|
92
|
-
});
|
93
|
-
}
|
94
|
-
getLinkedModels(id, version) {
|
95
|
-
let url = `${this.SERVICE_URL}/${id}`;
|
96
|
-
if (version) {
|
97
|
-
url += `/versions/${version}`;
|
98
|
-
}
|
99
|
-
url += '/linked';
|
100
|
-
return this.httpService.api({ url }).pipe(map((linkedModels) => {
|
101
|
-
if (linkedModels) {
|
102
|
-
linkedModels.forEach(model => ModelTranslatorUtils.toLocalModel(model));
|
103
|
-
}
|
104
|
-
return linkedModels;
|
105
|
-
}));
|
106
|
-
}
|
107
|
-
getPML(modelId, version) {
|
108
|
-
let url = `${this.SERVICE_URL}/${modelId}/pml/${version}`;
|
109
|
-
if (version) {
|
110
|
-
url += `/versions/${version}`;
|
111
|
-
}
|
112
|
-
return this.httpService.api({
|
113
|
-
url,
|
114
|
-
responseType: 'text',
|
115
|
-
});
|
116
|
-
}
|
117
|
-
savePML(modelId, pml, comment) {
|
118
|
-
return this.httpService
|
119
|
-
.api({
|
120
|
-
method: 'put',
|
121
|
-
url: `${this.SERVICE_URL}/${modelId}/pml`,
|
122
|
-
body: {
|
123
|
-
id: modelId,
|
124
|
-
pml: pml,
|
125
|
-
comment: comment,
|
126
|
-
},
|
127
|
-
})
|
128
|
-
.pipe(map(result => {
|
129
|
-
if (result.successful) {
|
130
|
-
return '';
|
131
|
-
}
|
132
|
-
else {
|
133
|
-
throw new Error(result.message);
|
134
|
-
}
|
135
|
-
}), catchError(this.httpService.handleValidationError));
|
136
|
-
}
|
137
|
-
generateProducts(modelId) {
|
138
|
-
return this.httpService.api({
|
139
|
-
url: `${this.SERVICE_URL}/${modelId}/generate-products`,
|
140
|
-
});
|
141
|
-
}
|
142
|
-
saveModel(productModel, comment) {
|
143
|
-
const model = EntityUtil.clone(productModel);
|
144
|
-
model.comment = comment;
|
145
|
-
ModelTranslatorUtils.toServerModel(model);
|
146
|
-
return this.httpService
|
147
|
-
.api({
|
148
|
-
method: 'put',
|
149
|
-
url: `${this.SERVICE_URL}/${model.id}`,
|
150
|
-
body: model,
|
151
|
-
})
|
152
|
-
.pipe(map(result => {
|
153
|
-
if (result.successful) {
|
154
|
-
return '';
|
155
|
-
}
|
156
|
-
else {
|
157
|
-
throw new Error(result.message);
|
158
|
-
}
|
159
|
-
}), catchError(this.httpService.handleValidationError));
|
160
|
-
}
|
161
|
-
validateModel(productModel) {
|
162
|
-
return this.httpService
|
163
|
-
.api({
|
164
|
-
method: 'post',
|
165
|
-
url: `${this.SERVICE_URL}/validate`,
|
166
|
-
body: productModel,
|
167
|
-
errorHandler: this.httpService.handleValidationError,
|
168
|
-
})
|
169
|
-
.pipe(map(result => {
|
170
|
-
if (result.successful) {
|
171
|
-
return '';
|
172
|
-
}
|
173
|
-
else {
|
174
|
-
throw new Error(result.message);
|
175
|
-
}
|
176
|
-
}));
|
177
|
-
}
|
178
|
-
renameModel(productModel, name) {
|
179
|
-
const model = EntityUtil.clone(productModel);
|
180
|
-
model.name = name;
|
181
|
-
ModelTranslatorUtils.toServerModel(model);
|
182
|
-
return this.httpService
|
183
|
-
.api({
|
184
|
-
method: 'patch',
|
185
|
-
url: `${this.SERVICE_URL}/${model.id}`,
|
186
|
-
body: model,
|
187
|
-
})
|
188
|
-
.pipe(catchError(this.httpService.handleValidationError));
|
189
|
-
}
|
190
|
-
uploadPmlFile(file, modelId) {
|
191
|
-
const formData = new FormData();
|
192
|
-
formData.append('file', file, file.name);
|
193
|
-
return this.httpService.upload({
|
194
|
-
url: `${this.SERVICE_URL}/${modelId}/pml/upload`,
|
195
|
-
body: formData,
|
196
|
-
});
|
197
|
-
}
|
198
|
-
runPml(modelId, pml, rootType, configurationMode) {
|
199
|
-
return this.httpService.api({
|
200
|
-
method: 'post',
|
201
|
-
url: `${this.SERVICE_URL}/${modelId}/pml/run`,
|
202
|
-
body: {
|
203
|
-
pml,
|
204
|
-
rootType,
|
205
|
-
configurationMode,
|
206
|
-
},
|
207
|
-
responseType: 'text',
|
208
|
-
});
|
209
|
-
}
|
210
|
-
evictAllCache() {
|
211
|
-
return this.httpService.api({
|
212
|
-
method: 'get',
|
213
|
-
url: '/cache/evict/environment-variables',
|
214
|
-
});
|
215
|
-
}
|
216
|
-
}
|
217
|
-
ProductModelApiService.MAX_RESULTS = 200;
|
218
|
-
ProductModelApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductModelApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
219
|
-
ProductModelApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductModelApiService });
|
220
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ProductModelApiService, decorators: [{
|
221
|
-
type: Injectable
|
222
|
-
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxVQUFVLEVBRVYsb0JBQW9CLEdBSXJCLE1BQU0sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBR2pELE1BQU0sT0FBTyxzQkFBc0I7SUFLakMsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsU0FBUyxDQUFDO0lBRVUsQ0FBQztJQUU3QyxRQUFRLENBQUMsS0FBbUI7UUFDakMsT0FBTyxJQUFJLENBQUMsV0FBVzthQUNwQixHQUFHLENBQUM7WUFDSCxNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUNyQixJQUFJLEVBQUUsS0FBSztZQUNYLFlBQVksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLHFCQUFxQjtTQUNyRCxDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRTtnQkFDckIsT0FBTyxNQUFNLENBQUM7YUFDZjtpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNqQztRQUNILENBQUMsQ0FBQyxDQUNILENBQUM7SUFDTixDQUFDO0lBRU0sWUFBWSxDQUFDLEtBQTBCO1FBQzVDLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDcEIsR0FBRyxDQUFDO1lBQ0gsTUFBTSxFQUFFLEtBQUs7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LENBQUM7UUFFekMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUM3QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLE9BQU8sYUFBYTtZQUNoRCxJQUFJLEVBQUUsUUFBUTtTQUNmLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxNQUFNLENBQ1gsT0FBZSxFQUNmLEdBQVcsRUFDWCxRQUFnQixFQUNoQixpQkFBdUM7UUFFdkMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsTUFBTTtZQUNkLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksT0FBTyxVQUFVO1lBQzdDLElBQUksRUFBRTtnQkFDSixHQUFHO2dCQUNILFFBQVE7Z0JBQ1IsaUJBQWlCO2FBQ2xCO1lBQ0QsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxvQ0FBb0M7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE5UGEsa0NBQVcsR0FBRyxHQUFHLENBQUM7bUhBRHJCLHNCQUFzQjt1SEFBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlSHR0cFNlcnZpY2UsXG4gIEVudGl0eVV0aWwsXG4gIE1vZGVsUmVsZWFzZVJlcXVlc3QsXG4gIE1vZGVsVHJhbnNsYXRvclV0aWxzLFxuICBQbWxDb25maWd1cmF0aW9uTW9kZSxcbiAgUHJvZHVjdE1vZGVsLFxuICBQcm9kdWN0TW9kZWxWZXJzaW9uLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFByb2R1Y3RNb2RlbEFwaVNlcnZpY2Uge1xuICBwdWJsaWMgc3RhdGljIE1BWF9SRVNVTFRTID0gMjAwO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkwgPSAnL21vZGVscyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBhZGRNb2RlbChtb2RlbDogUHJvZHVjdE1vZGVsKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICB1cmw6IHRoaXMuU0VSVklDRV9VUkwsXG4gICAgICAgIGJvZHk6IG1vZGVsLFxuICAgICAgICBlcnJvckhhbmRsZXI6IHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVsZWFzZU1vZGVsKG1vZGVsOiBNb2RlbFJlbGVhc2VSZXF1ZXN0KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH0vcmVsZWFzZWAsXG4gICAgICAgIGJvZHk6IG1vZGVsLFxuICAgICAgICBlcnJvckhhbmRsZXI6IHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVNb2RlbChtb2RlbElkOiBzdHJpbmcsIHN1Y2Nlc3NGbj86IGFueSwgZmFpbHVyZUZuPzogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgb2JzZXJ2YWJsZSA9IHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH1gLFxuICAgICAgICBlcnJvckhhbmRsZXI6IHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgIG9ic2VydmFibGUuc3Vic2NyaWJlKFxuICAgICAgKCkgPT4ge1xuICAgICAgICBzdWNjZXNzRm4gJiYgc3VjY2Vzc0ZuLmFwcGx5KCk7XG4gICAgICB9LFxuICAgICAgKCkgPT4ge1xuICAgICAgICBmYWlsdXJlRm4gJiYgZmFpbHVyZUZuLmFwcGx5KCk7XG4gICAgICB9LFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9kZWxWZXJzaW9ucyhtb2RlbElkOiBzdHJpbmcsIGNvdW50OiBudW1iZXIgPSAxMDAsIHNraXA6IG51bWJlciA9IDApOiBPYnNlcnZhYmxlPFByb2R1Y3RNb2RlbFZlcnNpb25bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS92ZXJzaW9uc2AsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHNraXBDb3VudDogc2tpcCxcbiAgICAgICAgY291bnQ6IGNvdW50LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNb2RlbChpZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWw+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IHVybCB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNb2RlbHMoc2tpcENvdW50OiBudW1iZXIsIHNlYXJjaFRleHQ6IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3NlYXJjaGAsXG4gICAgICBib2R5OiB7XG4gICAgICAgIG5hbWVSZWdleDogc2VhcmNoVGV4dCxcbiAgICAgICAgc2tpcENvdW50OiBza2lwQ291bnQudG9TdHJpbmcoKSxcbiAgICAgICAgY291bnQ6IFByb2R1Y3RNb2RlbEFwaVNlcnZpY2UuTUFYX1JFU1VMVFMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldExpbmtlZE1vZGVscyhpZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxbXT4ge1xuICAgIGxldCB1cmwgPSBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke2lkfWA7XG5cbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgdXJsICs9IGAvdmVyc2lvbnMvJHt2ZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgdXJsICs9ICcvbGlua2VkJztcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7IHVybCB9KS5waXBlKFxuICAgICAgbWFwKChsaW5rZWRNb2RlbHM6IFByb2R1Y3RNb2RlbFtdKSA9PiB7XG4gICAgICAgIGlmIChsaW5rZWRNb2RlbHMpIHtcbiAgICAgICAgICBsaW5rZWRNb2RlbHMuZm9yRWFjaChtb2RlbCA9PiBNb2RlbFRyYW5zbGF0b3JVdGlscy50b0xvY2FsTW9kZWwobW9kZWwpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGlua2VkTW9kZWxzO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQTUwobW9kZWxJZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9wbWwvJHt2ZXJzaW9ufWA7XG5cbiAgICBpZiAodmVyc2lvbikge1xuICAgICAgdXJsICs9IGAvdmVyc2lvbnMvJHt2ZXJzaW9ufWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybCxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNhdmVQTUwobW9kZWxJZDogc3RyaW5nLCBwbWw6IHN0cmluZywgY29tbWVudDogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9wbWxgLFxuICAgICAgICBib2R5OiB7XG4gICAgICAgICAgaWQ6IG1vZGVsSWQsXG4gICAgICAgICAgcG1sOiBwbWwsXG4gICAgICAgICAgY29tbWVudDogY29tbWVudCxcbiAgICAgICAgfSxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvciksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlUHJvZHVjdHMobW9kZWxJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L2dlbmVyYXRlLXByb2R1Y3RzYCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlTW9kZWwocHJvZHVjdE1vZGVsOiBQcm9kdWN0TW9kZWwsIGNvbW1lbnQ6IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgY29uc3QgbW9kZWwgPSBFbnRpdHlVdGlsLmNsb25lKHByb2R1Y3RNb2RlbCk7XG4gICAgbW9kZWwuY29tbWVudCA9IGNvbW1lbnQ7XG4gICAgTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9TZXJ2ZXJNb2RlbChtb2RlbCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH1gLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvciksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlTW9kZWwocHJvZHVjdE1vZGVsOiBQcm9kdWN0TW9kZWwpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vdmFsaWRhdGVgLFxuICAgICAgICBib2R5OiBwcm9kdWN0TW9kZWwsXG4gICAgICAgIGVycm9ySGFuZGxlcjogdGhpcy5odHRwU2VydmljZS5oYW5kbGVWYWxpZGF0aW9uRXJyb3IsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChyZXN1bHQgPT4ge1xuICAgICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzc2Z1bCkge1xuICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbmFtZU1vZGVsKHByb2R1Y3RNb2RlbDogUHJvZHVjdE1vZGVsLCBuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IG1vZGVsID0gRW50aXR5VXRpbC5jbG9uZShwcm9kdWN0TW9kZWwpO1xuICAgIG1vZGVsLm5hbWUgPSBuYW1lO1xuICAgIE1vZGVsVHJhbnNsYXRvclV0aWxzLnRvU2VydmVyTW9kZWwobW9kZWwpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbC5pZH1gLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yKSk7XG4gIH1cblxuICBwdWJsaWMgdXBsb2FkUG1sRmlsZShmaWxlOiBGaWxlLCBtb2RlbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbC91cGxvYWRgLFxuICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcnVuUG1sKFxuICAgIG1vZGVsSWQ6IHN0cmluZyxcbiAgICBwbWw6IHN0cmluZyxcbiAgICByb290VHlwZTogc3RyaW5nLFxuICAgIGNvbmZpZ3VyYXRpb25Nb2RlOiBQbWxDb25maWd1cmF0aW9uTW9kZSxcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vcG1sL3J1bmAsXG4gICAgICBib2R5OiB7XG4gICAgICAgIHBtbCxcbiAgICAgICAgcm9vdFR5cGUsXG4gICAgICAgIGNvbmZpZ3VyYXRpb25Nb2RlLFxuICAgICAgfSxcbiAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGV2aWN0QWxsQ2FjaGUoKTogT2JzZXJ2YWJsZTx7IHJlc3VsdDogc3RyaW5nIH0+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogJy9jYWNoZS9ldmljdC9lbnZpcm9ubWVudC12YXJpYWJsZXMnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|