@veloceapps/api 11.0.0-12 → 11.0.0-120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/esm2020/src/index.mjs +1 -19
  2. package/esm2020/src/lib/api.module.mjs +1 -55
  3. package/esm2020/src/lib/types/index.mjs +1 -3
  4. package/esm2020/src/lib/types/stateful-configuration.types.mjs +1 -1
  5. package/esm2020/v2/api-v2.module.mjs +44 -22
  6. package/esm2020/v2/services/cache-api.service.mjs +22 -0
  7. package/esm2020/v2/services/catalog-admin-api.service.mjs +192 -0
  8. package/esm2020/v2/services/catalog-api.service.mjs +90 -0
  9. package/esm2020/v2/services/configuration-settings-api.service.mjs +89 -0
  10. package/esm2020/v2/services/context-definition-admin-api.service.mjs +73 -0
  11. package/esm2020/v2/services/document-attachment-api.service.mjs +66 -0
  12. package/esm2020/v2/services/endpoints-admin-api.service.mjs +79 -0
  13. package/esm2020/v2/services/flows-api.service.mjs +29 -0
  14. package/esm2020/v2/services/functions-admin-api.service.mjs +116 -0
  15. package/esm2020/v2/services/guided-sellings-admin-api.service.mjs +65 -0
  16. package/esm2020/v2/services/guided-sellings-api.service.mjs +37 -0
  17. package/esm2020/v2/services/index.mjs +22 -11
  18. package/esm2020/v2/services/orchestrations-admin-api.service.mjs +87 -0
  19. package/esm2020/v2/services/orchestrations-api.service.mjs +23 -0
  20. package/esm2020/v2/services/pcm-api.service.mjs +38 -0
  21. package/esm2020/v2/services/picklists-admin-api.service.mjs +41 -0
  22. package/esm2020/v2/services/products-admin-api.service.mjs +90 -0
  23. package/esm2020/v2/services/sales-transactions-api.service.mjs +20 -36
  24. package/esm2020/v2/services/salesforce-api.service.mjs +83 -0
  25. package/esm2020/v2/services/shopping-cart-settings-api.service.mjs +28 -0
  26. package/esm2020/v2/services/ui-definitions-admin-api.service.mjs +70 -0
  27. package/esm2020/v2/services/ui-templates-admin-api.service.mjs +286 -0
  28. package/esm2020/v2/services/veloce-objects-api.service.mjs +90 -0
  29. package/esm2020/v2/types/attachment.types.mjs +2 -0
  30. package/esm2020/v2/types/dto/configuration-settings-dto.types.mjs +22 -0
  31. package/esm2020/v2/types/dto/ui-definition-dto.types.mjs +2 -0
  32. package/esm2020/v2/types/function.types.mjs +2 -0
  33. package/esm2020/v2/types/index.mjs +4 -1
  34. package/esm2020/v2/types/pcm.types.mjs +2 -0
  35. package/esm2020/v2/types/procedure.types.mjs +1 -1
  36. package/esm2020/v2/types/sales-transaction.types.mjs +1 -1
  37. package/esm2020/v2/types/search-request.types.mjs +2 -0
  38. package/esm2020/v2/utils/ui-definition.utils.mjs +23 -0
  39. package/fesm2015/veloceapps-api-v2.mjs +1127 -411
  40. package/fesm2015/veloceapps-api-v2.mjs.map +1 -1
  41. package/fesm2015/veloceapps-api.mjs +68 -1476
  42. package/fesm2015/veloceapps-api.mjs.map +1 -1
  43. package/fesm2020/veloceapps-api-v2.mjs +1255 -460
  44. package/fesm2020/veloceapps-api-v2.mjs.map +1 -1
  45. package/fesm2020/veloceapps-api.mjs +107 -1593
  46. package/fesm2020/veloceapps-api.mjs.map +1 -1
  47. package/package.json +1 -1
  48. package/src/index.d.ts +0 -18
  49. package/src/lib/types/index.d.ts +0 -2
  50. package/src/lib/types/stateful-configuration.types.d.ts +1 -2
  51. package/v2/services/cache-api.service.d.ts +11 -0
  52. package/{src/lib → v2}/services/catalog-admin-api.service.d.ts +2 -2
  53. package/{src/lib → v2}/services/catalog-api.service.d.ts +5 -5
  54. package/{src/lib → v2}/services/configuration-settings-api.service.d.ts +1 -2
  55. package/v2/services/{context-definition-api.service.d.ts → context-definition-admin-api.service.d.ts} +5 -4
  56. package/{src/lib → v2}/services/document-attachment-api.service.d.ts +1 -1
  57. package/{src/lib/services/endpoints-api.service.d.ts → v2/services/endpoints-admin-api.service.d.ts} +3 -4
  58. package/v2/services/functions-admin-api.service.d.ts +25 -0
  59. package/v2/services/index.d.ts +21 -10
  60. package/v2/services/orchestrations-admin-api.service.d.ts +21 -0
  61. package/v2/services/orchestrations-api.service.d.ts +12 -0
  62. package/v2/services/pcm-api.service.d.ts +12 -0
  63. package/{src/lib/services/picklists-api.service.d.ts → v2/services/picklists-admin-api.service.d.ts} +3 -3
  64. package/v2/services/products-admin-api.service.d.ts +21 -0
  65. package/v2/services/sales-transactions-api.service.d.ts +11 -5
  66. package/{src/lib → v2}/services/salesforce-api.service.d.ts +1 -0
  67. package/v2/services/ui-definitions-admin-api.service.d.ts +18 -0
  68. package/v2/services/{ui-templates-api.service.d.ts → ui-templates-admin-api.service.d.ts} +3 -3
  69. package/{src/lib → v2}/services/veloce-objects-api.service.d.ts +3 -3
  70. package/v2/types/dto/ui-definition-dto.types.d.ts +7 -0
  71. package/v2/types/function.types.d.ts +14 -0
  72. package/v2/types/index.d.ts +3 -0
  73. package/v2/types/pcm.types.d.ts +10 -0
  74. package/v2/types/procedure.types.d.ts +58 -7
  75. package/v2/types/sales-transaction.types.d.ts +6 -3
  76. package/v2/types/search-request.types.d.ts +8 -0
  77. package/v2/utils/ui-definition.utils.d.ts +5 -0
  78. package/esm2020/src/lib/services/catalog-admin-api.service.mjs +0 -192
  79. package/esm2020/src/lib/services/catalog-api.service.mjs +0 -90
  80. package/esm2020/src/lib/services/configuration-api.service.mjs +0 -122
  81. package/esm2020/src/lib/services/configuration-settings-api.service.mjs +0 -96
  82. package/esm2020/src/lib/services/delta-api.service.mjs +0 -23
  83. package/esm2020/src/lib/services/document-attachment-api.service.mjs +0 -66
  84. package/esm2020/src/lib/services/endpoints-api.service.mjs +0 -80
  85. package/esm2020/src/lib/services/flows-api.service.mjs +0 -29
  86. package/esm2020/src/lib/services/guided-sellings-admin-api.service.mjs +0 -65
  87. package/esm2020/src/lib/services/guided-sellings-api.service.mjs +0 -37
  88. package/esm2020/src/lib/services/picklists-api.service.mjs +0 -41
  89. package/esm2020/src/lib/services/price-api.service.mjs +0 -63
  90. package/esm2020/src/lib/services/product-api.service.mjs +0 -153
  91. package/esm2020/src/lib/services/product-model-api.service.mjs +0 -223
  92. package/esm2020/src/lib/services/ramp-api.service.mjs +0 -31
  93. package/esm2020/src/lib/services/salesforce-api.service.mjs +0 -79
  94. package/esm2020/src/lib/services/shopping-cart-settings-api.service.mjs +0 -28
  95. package/esm2020/src/lib/services/veloce-objects-api.service.mjs +0 -90
  96. package/esm2020/src/lib/types/attachment.types.mjs +0 -2
  97. package/esm2020/src/lib/types/dto/configuration-settings-dto.types.mjs +0 -22
  98. package/esm2020/src/lib/types/price.types.mjs +0 -2
  99. package/esm2020/src/lib/types/quote.types.mjs +0 -2
  100. package/esm2020/src/lib/types/ramp-request.types.mjs +0 -2
  101. package/esm2020/v2/services/context-definition-api.service.mjs +0 -62
  102. package/esm2020/v2/services/procedures-admin-api.service.mjs +0 -82
  103. package/esm2020/v2/services/procedures-api.service.mjs +0 -44
  104. package/esm2020/v2/services/rule-groups-admin-api.service.mjs +0 -62
  105. package/esm2020/v2/services/rules-admin-api.service.mjs +0 -98
  106. package/esm2020/v2/services/rules-api.service.mjs +0 -36
  107. package/esm2020/v2/services/scripts-admin-api.service.mjs +0 -75
  108. package/esm2020/v2/services/scripts-api.service.mjs +0 -23
  109. package/esm2020/v2/services/ui-definitions-api.service.mjs +0 -132
  110. package/esm2020/v2/services/ui-templates-api.service.mjs +0 -286
  111. package/src/lib/services/configuration-api.service.d.ts +0 -23
  112. package/src/lib/services/delta-api.service.d.ts +0 -12
  113. package/src/lib/services/price-api.service.d.ts +0 -16
  114. package/src/lib/services/product-api.service.d.ts +0 -31
  115. package/src/lib/services/product-model-api.service.d.ts +0 -29
  116. package/src/lib/services/ramp-api.service.d.ts +0 -13
  117. package/src/lib/types/price.types.d.ts +0 -5
  118. package/src/lib/types/quote.types.d.ts +0 -8
  119. package/src/lib/types/ramp-request.types.d.ts +0 -13
  120. package/v2/services/procedures-admin-api.service.d.ts +0 -23
  121. package/v2/services/procedures-api.service.d.ts +0 -15
  122. package/v2/services/rule-groups-admin-api.service.d.ts +0 -18
  123. package/v2/services/rules-admin-api.service.d.ts +0 -22
  124. package/v2/services/rules-api.service.d.ts +0 -11
  125. package/v2/services/scripts-admin-api.service.d.ts +0 -20
  126. package/v2/services/scripts-api.service.d.ts +0 -11
  127. package/v2/services/ui-definitions-api.service.d.ts +0 -24
  128. /package/{src/lib → v2}/services/flows-api.service.d.ts +0 -0
  129. /package/{src/lib → v2}/services/guided-sellings-admin-api.service.d.ts +0 -0
  130. /package/{src/lib → v2}/services/guided-sellings-api.service.d.ts +0 -0
  131. /package/{src/lib → v2}/services/shopping-cart-settings-api.service.d.ts +0 -0
  132. /package/{src/lib → v2}/types/attachment.types.d.ts +0 -0
  133. /package/{src/lib → v2}/types/dto/configuration-settings-dto.types.d.ts +0 -0
@@ -1,132 +0,0 @@
1
- import { HttpParams } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { uiDefinitionFromDTO, uiDefinitionToDTO, } from '@veloceapps/core';
4
- import { omit } from 'lodash';
5
- import { map } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@veloceapps/core";
8
- export class UIDefinitionsApiService {
9
- constructor(baseHttpService) {
10
- this.baseHttpService = baseHttpService;
11
- this.serviceUrl = '/v2/uidefinitions';
12
- }
13
- fetch$(modelId, version) {
14
- const serviceUrl = this.getServiceUrl(modelId);
15
- let params = new HttpParams();
16
- if (version != null) {
17
- params = params.set('modelVersion', version);
18
- }
19
- return this.baseHttpService
20
- .api({
21
- method: 'get',
22
- url: serviceUrl,
23
- params: params,
24
- })
25
- .pipe(map(containers => containers.map(uiDefinitionFromDTO)));
26
- }
27
- create$(modelId, uiDefinitionContainer) {
28
- const serviceUrl = this.getServiceUrl(modelId);
29
- const dto = {
30
- ...omit(uiDefinitionContainer, 'source'),
31
- name: uiDefinitionContainer.source.name,
32
- modelId: uiDefinitionContainer.source.modelId,
33
- templateName: uiDefinitionContainer.source.uiTemplateData?.TEMPLATE_NAME,
34
- rootType: uiDefinitionContainer.source.uiTemplateData?.ROOT_TYPE,
35
- defaultFlag: uiDefinitionContainer.source.primary,
36
- sourceBlob: JSON.stringify(uiDefinitionContainer.source),
37
- };
38
- return this.baseHttpService
39
- .api({
40
- method: 'post',
41
- url: serviceUrl,
42
- body: dto,
43
- })
44
- .pipe(map(container => uiDefinitionFromDTO(container)));
45
- }
46
- get$(modelId, uiDefinitionId) {
47
- const serviceUrl = this.getServiceUrl(modelId);
48
- return this.baseHttpService
49
- .api({
50
- method: 'get',
51
- url: `${serviceUrl}/${uiDefinitionId}`,
52
- })
53
- .pipe(map(container => uiDefinitionFromDTO({ ...container, id: uiDefinitionId })));
54
- }
55
- update$(uiDefinitionContainer) {
56
- const serviceUrl = this.getServiceUrl(uiDefinitionContainer.modelId);
57
- const dto = uiDefinitionToDTO(uiDefinitionContainer);
58
- return this.baseHttpService
59
- .api({
60
- method: 'put',
61
- url: `${serviceUrl}/${uiDefinitionContainer.id}`,
62
- body: dto,
63
- })
64
- .pipe(map(container => uiDefinitionFromDTO(container)));
65
- }
66
- delete$(uiDefinitionContainer) {
67
- const serviceUrl = this.getServiceUrl(uiDefinitionContainer.modelId);
68
- return this.baseHttpService.api({
69
- method: 'delete',
70
- url: `${serviceUrl}/${uiDefinitionContainer.id}`,
71
- });
72
- }
73
- getServiceUrl(modelId) {
74
- return `/models/${modelId}/uidefinitions`;
75
- }
76
- fetchUIDefinitions$(params) {
77
- let httpParams = new HttpParams();
78
- if (params?.productId != null) {
79
- httpParams = httpParams.set('productId', params.productId);
80
- }
81
- if (params?.defaultUIDefinitionId != null) {
82
- httpParams = httpParams.set('defaultUIDefinitionId', params.defaultUIDefinitionId);
83
- }
84
- return this.baseHttpService
85
- .api({
86
- method: 'get',
87
- url: this.serviceUrl,
88
- params: httpParams,
89
- })
90
- .pipe(map(containers => containers.map(uiDefinitionFromDTO)));
91
- }
92
- fetchUIDefinition$(id) {
93
- return this.baseHttpService
94
- .api({
95
- method: 'get',
96
- url: `${this.serviceUrl}/${id}`,
97
- })
98
- .pipe(map(container => uiDefinitionFromDTO({ ...container, id })), map(uiDefinition => {
99
- const result = uiDefinition;
100
- if (!uiDefinition.modelId && uiDefinition.source.modelId) {
101
- result['modelId'] = uiDefinition.source.modelId;
102
- }
103
- return result;
104
- }));
105
- }
106
- createUIDefinition$(body) {
107
- return this.baseHttpService.api({
108
- method: 'post',
109
- url: this.serviceUrl,
110
- body,
111
- });
112
- }
113
- updateUIDefinition$(uiDefinition) {
114
- return this.baseHttpService.api({
115
- method: 'put',
116
- url: `${this.serviceUrl}/${uiDefinition.id}`,
117
- body: uiDefinition,
118
- });
119
- }
120
- deleteUIDefinition$(id) {
121
- return this.baseHttpService.api({
122
- method: 'delete',
123
- url: `${this.serviceUrl}/${id}`,
124
- });
125
- }
126
- }
127
- UIDefinitionsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UIDefinitionsApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
128
- UIDefinitionsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UIDefinitionsApiService });
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UIDefinitionsApiService, decorators: [{
130
- type: Injectable
131
- }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktZGVmaW5pdGlvbnMtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS92Mi9zZXJ2aWNlcy91aS1kZWZpbml0aW9ucy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBS0wsbUJBQW1CLEVBQ25CLGlCQUFpQixHQUNsQixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDOUIsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQzs7O0FBR3ZDLE1BQU0sT0FBTyx1QkFBdUI7SUFHbEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRm5DLGVBQVUsR0FBVyxtQkFBbUIsQ0FBQztJQUVILENBQUM7SUFFakQsTUFBTSxDQUFDLE9BQWUsRUFBRSxPQUFnQjtRQUM3QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9DLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ25CLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUM5QztRQUVELE9BQU8sSUFBSSxDQUFDLGVBQWU7YUFDeEIsR0FBRyxDQUE2QjtZQUMvQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxVQUFVO1lBQ2YsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FB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LENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxJQUFTO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDOUIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDcEIsSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxZQUFpQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO1lBQzlCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxZQUFZLENBQUMsRUFBRSxFQUFFO1lBQzVDLElBQUksRUFBRSxZQUFZO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxFQUFVO1FBQ25DLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7WUFDOUIsTUFBTSxFQUFFLFFBQVE7WUFDaEIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUU7U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBM0lVLHVCQUF1Qjt3SEFBdkIsdUJBQXVCOzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQmFzZUh0dHBTZXJ2aWNlLFxuICBOZXdVSURlZmluaXRpb25Db250YWluZXIsXG4gIFVJRGVmaW5pdGlvbkNvbnRhaW5lcixcbiAgVUlEZWZpbml0aW9uQ29udGFpbmVyRFRPLFxuICB1aURlZmluaXRpb25Gcm9tRFRPLFxuICB1aURlZmluaXRpb25Ub0RUTyxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBvbWl0IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVUlEZWZpbml0aW9uc0FwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VVcmw6IHN0cmluZyA9ICcvdjIvdWlkZWZpbml0aW9ucyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBiYXNlSHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICBwdWJsaWMgZmV0Y2gkKG1vZGVsSWQ6IHN0cmluZywgdmVyc2lvbj86IG51bWJlcik6IE9ic2VydmFibGU8VUlEZWZpbml0aW9uQ29udGFpbmVyW10+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5nZXRTZXJ2aWNlVXJsKG1vZGVsSWQpO1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmICh2ZXJzaW9uICE9IG51bGwpIHtcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ21vZGVsVmVyc2lvbicsIHZlcnNpb24pO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxVSURlZmluaXRpb25Db250YWluZXJEVE9bXT4oe1xuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgICB1cmw6IHNlcnZpY2VVcmwsXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcChjb250YWluZXJzID0+IGNvbnRhaW5lcnMubWFwKHVpRGVmaW5pdGlvbkZyb21EVE8pKSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlJChtb2RlbElkOiBzdHJpbmcsIHVpRGVmaW5pdGlvbkNvbnRhaW5lcjogTmV3VUlEZWZpbml0aW9uQ29udGFpbmVyKTogT2JzZXJ2YWJsZTxVSURlZmluaXRpb25Db250YWluZXI+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5nZXRTZXJ2aWNlVXJsKG1vZGVsSWQpO1xuICAgIGNvbnN0IGR0byA9IHtcbiAgICAgIC4uLm9taXQodWlEZWZpbml0aW9uQ29udGFpbmVyLCAnc291cmNlJyksXG4gICAgICBuYW1lOiB1aURlZmluaXRpb25Db250YWluZXIuc291cmNlLm5hbWUsXG4gICAgICBtb2RlbElkOiB1aURlZmluaXRpb25Db250YWluZXIuc291cmNlLm1vZGVsSWQsXG4gICAgICB0ZW1wbGF0ZU5hbWU6IHVpRGVmaW5pdGlvbkNvbnRhaW5lci5zb3VyY2UudWlUZW1wbGF0ZURhdGE/LlRFTVBMQVRFX05BTUUsXG4gICAgICByb290VHlwZTogdWlEZWZpbml0aW9uQ29udGFpbmVyLnNvdXJjZS51aVRlbXBsYXRlRGF0YT8uUk9PVF9UWVBFLFxuICAgICAgZGVmYXVsdEZsYWc6IHVpRGVmaW5pdGlvbkNvbnRhaW5lci5zb3VyY2UucHJpbWFyeSxcbiAgICAgIHNvdXJjZUJsb2I6IEpTT04uc3RyaW5naWZ5KHVpRGVmaW5pdGlvbkNvbnRhaW5lci5zb3VyY2UpLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGk8VUlEZWZpbml0aW9uQ29udGFpbmVyRFRPPih7XG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICB1cmw6IHNlcnZpY2VVcmwsXG4gICAgICAgIGJvZHk6IGR0byxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoY29udGFpbmVyID0+IHVpRGVmaW5pdGlvbkZyb21EVE8oY29udGFpbmVyKSkpO1xuICB9XG5cbiAgcHVibGljIGdldCQobW9kZWxJZDogc3RyaW5nLCB1aURlZmluaXRpb25JZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVSURlZmluaXRpb25Db250YWluZXIgfCBudWxsPiB7XG4gICAgY29uc3Qgc2VydmljZVVybCA9IHRoaXMuZ2V0U2VydmljZVVybChtb2RlbElkKTtcblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxVSURlZmluaXRpb25Db250YWluZXJEVE8+KHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgdXJsOiBgJHtzZXJ2aWNlVXJsfS8ke3VpRGVmaW5pdGlvbklkfWAsXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKGNvbnRhaW5lciA9PiB1aURlZmluaXRpb25Gcm9tRFRPKHsgLi4uY29udGFpbmVyLCBpZDogdWlEZWZpbml0aW9uSWQgfSkpKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGUkKHVpRGVmaW5pdGlvbkNvbnRhaW5lcjogVUlEZWZpbml0aW9uQ29udGFpbmVyKTogT2JzZXJ2YWJsZTxVSURlZmluaXRpb25Db250YWluZXI+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5nZXRTZXJ2aWNlVXJsKHVpRGVmaW5pdGlvbkNvbnRhaW5lci5tb2RlbElkKTtcbiAgICBjb25zdCBkdG8gPSB1aURlZmluaXRpb25Ub0RUTyh1aURlZmluaXRpb25Db250YWluZXIpO1xuXG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpPFVJRGVmaW5pdGlvbkNvbnRhaW5lckRUTz4oe1xuICAgICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgICB1cmw6IGAke3NlcnZpY2VVcmx9LyR7dWlEZWZpbml0aW9uQ29udGFpbmVyLmlkfWAsXG4gICAgICAgIGJvZHk6IGR0byxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoY29udGFpbmVyID0+IHVpRGVmaW5pdGlvbkZyb21EVE8oY29udGFpbmVyKSkpO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZSQodWlEZWZpbml0aW9uQ29udGFpbmVyOiBVSURlZmluaXRpb25Db250YWluZXIpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICBjb25zdCBzZXJ2aWNlVXJsID0gdGhpcy5nZXRTZXJ2aWNlVXJsKHVpRGVmaW5pdGlvbkNvbnRhaW5lci5tb2RlbElkKTtcblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybDogYCR7c2VydmljZVVybH0vJHt1aURlZmluaXRpb25Db250YWluZXIuaWR9YCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0U2VydmljZVVybChtb2RlbElkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBgL21vZGVscy8ke21vZGVsSWR9L3VpZGVmaW5pdGlvbnNgO1xuICB9XG5cbiAgcHVibGljIGZldGNoVUlEZWZpbml0aW9ucyQocGFyYW1zPzoge1xuICAgIHByb2R1Y3RJZD86IHN0cmluZztcbiAgICBkZWZhdWx0VUlEZWZpbml0aW9uSWQ/OiBzdHJpbmc7XG4gIH0pOiBPYnNlcnZhYmxlPFVJRGVmaW5pdGlvbkNvbnRhaW5lcltdPiB7XG4gICAgbGV0IGh0dHBQYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChwYXJhbXM/LnByb2R1Y3RJZCAhPSBudWxsKSB7XG4gICAgICBodHRwUGFyYW1zID0gaHR0cFBhcmFtcy5zZXQoJ3Byb2R1Y3RJZCcsIHBhcmFtcy5wcm9kdWN0SWQpO1xuICAgIH1cbiAgICBpZiAocGFyYW1zPy5kZWZhdWx0VUlEZWZpbml0aW9uSWQgIT0gbnVsbCkge1xuICAgICAgaHR0cFBhcmFtcyA9IGh0dHBQYXJhbXMuc2V0KCdkZWZhdWx0VUlEZWZpbml0aW9uSWQnLCBwYXJhbXMuZGVmYXVsdFVJRGVmaW5pdGlvbklkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGk8VUlEZWZpbml0aW9uQ29udGFpbmVyRFRPW10+KHtcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgdXJsOiB0aGlzLnNlcnZpY2VVcmwsXG4gICAgICAgIHBhcmFtczogaHR0cFBhcmFtcyxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoY29udGFpbmVycyA9PiBjb250YWluZXJzLm1hcCh1aURlZmluaXRpb25Gcm9tRFRPKSkpO1xuICB9XG5cbiAgcHVibGljIGZldGNoVUlEZWZpbml0aW9uJChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxVSURlZmluaXRpb25Db250YWluZXI+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtpZH1gLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAoY29udGFpbmVyID0+IHVpRGVmaW5pdGlvbkZyb21EVE8oeyAuLi5jb250YWluZXIsIGlkIH0pKSxcbiAgICAgICAgbWFwKHVpRGVmaW5pdGlvbiA9PiB7XG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gdWlEZWZpbml0aW9uO1xuICAgICAgICAgIGlmICghdWlEZWZpbml0aW9uLm1vZGVsSWQgJiYgdWlEZWZpbml0aW9uLnNvdXJjZS5tb2RlbElkKSB7XG4gICAgICAgICAgICByZXN1bHRbJ21vZGVsSWQnXSA9IHVpRGVmaW5pdGlvbi5zb3VyY2UubW9kZWxJZDtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZVVJRGVmaW5pdGlvbiQoYm9keTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiB0aGlzLnNlcnZpY2VVcmwsXG4gICAgICBib2R5LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZVVJRGVmaW5pdGlvbiQodWlEZWZpbml0aW9uOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3VpRGVmaW5pdGlvbi5pZH1gLFxuICAgICAgYm9keTogdWlEZWZpbml0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlbGV0ZVVJRGVmaW5pdGlvbiQoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,286 +0,0 @@
1
- import { HttpParams } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import { catchError, forkJoin, map, noop, of, switchMap } from 'rxjs';
4
- import { fromUIComponentStoryDTO } from '../utils/ui-template.utils';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@veloceapps/core";
7
- export class UITemplatesApiService {
8
- constructor(baseHttpService) {
9
- this.baseHttpService = baseHttpService;
10
- this.serviceUrl = '/v2/uitemplates';
11
- this.fetchTemplates$ = (name) => {
12
- let params = new HttpParams();
13
- if (name) {
14
- params = params.append('name', name);
15
- }
16
- return this.baseHttpService.api({ url: `${this.serviceUrl}`, params });
17
- };
18
- this.createTemplate$ = (template) => {
19
- return this.baseHttpService.api({
20
- method: 'post',
21
- url: `${this.serviceUrl}`,
22
- body: template,
23
- });
24
- };
25
- this.updateTemplate$ = (template) => {
26
- return this.baseHttpService.api({
27
- method: 'put',
28
- url: `${this.serviceUrl}/${template.id}`,
29
- body: template,
30
- });
31
- };
32
- this.duplicateTemplate$ = (template, cloneRequest) => {
33
- return this.baseHttpService
34
- .api({
35
- url: `${this.serviceUrl}/${template.id}/clone`,
36
- method: 'post',
37
- body: cloneRequest,
38
- })
39
- .pipe(map(response => response.clonedRecordId));
40
- };
41
- this.removeTemplate$ = (id) => {
42
- return this.baseHttpService.api({
43
- method: 'delete',
44
- url: `${this.serviceUrl}/${id}`,
45
- });
46
- };
47
- this.restoreTemplate$ = (id) => {
48
- return this.baseHttpService.api({
49
- method: 'patch',
50
- url: `${this.serviceUrl}/${id}`,
51
- });
52
- };
53
- this.searchTemplates$ = (data) => {
54
- return this.baseHttpService.api({
55
- method: 'post',
56
- url: `${this.serviceUrl}/search`,
57
- params: data.params,
58
- body: data.expression,
59
- });
60
- };
61
- this.fetchComponents$ = (templateId, name) => {
62
- let params = new HttpParams();
63
- if (name) {
64
- params = params.append('name', name);
65
- }
66
- return this.baseHttpService.api({
67
- url: `${this.serviceUrl}/${templateId}/components`,
68
- params,
69
- });
70
- };
71
- this.fetchComponent$ = (templateId, componentId) => {
72
- return this.baseHttpService.api({
73
- url: `${this.serviceUrl}/${templateId}/components/${componentId}`,
74
- });
75
- };
76
- this.createComponent$ = (component) => {
77
- return this.baseHttpService.api({
78
- method: 'post',
79
- url: `${this.serviceUrl}/${component.uiTemplateId}/components`,
80
- body: component,
81
- });
82
- };
83
- this.updateComponent$ = (component) => {
84
- return this.baseHttpService.api({
85
- method: 'put',
86
- url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}`,
87
- body: component,
88
- });
89
- };
90
- this.duplicateComponent$ = (component, cloneRequest) => {
91
- return this.baseHttpService
92
- .api({
93
- url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}/clone`,
94
- method: 'post',
95
- body: cloneRequest,
96
- })
97
- .pipe(map(response => response.clonedRecordId));
98
- };
99
- this.removeComponent$ = (templateId, componentId) => {
100
- return this.baseHttpService.api({
101
- method: 'delete',
102
- url: `${this.serviceUrl}/${templateId}/components/${componentId}`,
103
- });
104
- };
105
- this.restoreComponent$ = (templateId, componentId) => {
106
- return this.baseHttpService.api({
107
- method: 'patch',
108
- url: `${this.serviceUrl}/${templateId}/components/${componentId}`,
109
- });
110
- };
111
- this.searchComponents$ = (templateId, data) => {
112
- return this.baseHttpService.api({
113
- method: 'post',
114
- url: `${this.serviceUrl}/${templateId}/components/search`,
115
- params: data.params,
116
- body: data.expression,
117
- });
118
- };
119
- this.fetchStoryAttachment = (templateId, componentId, storyId, type) => {
120
- return this.baseHttpService
121
- .api({
122
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments/${type}/file`,
123
- responseType: 'text',
124
- errorHandler: noop,
125
- })
126
- .pipe(catchError(() => of('')));
127
- };
128
- this.convertToComponentStory$ = (templateId, componentId, storyDto) => {
129
- return forkJoin([
130
- this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'html'),
131
- this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'js'),
132
- this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'css'),
133
- this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'json'),
134
- ]).pipe(map(([html, js, css, json]) => ({ html, js, css, json })), map(attachments => fromUIComponentStoryDTO(storyDto, attachments)));
135
- };
136
- this.fetchStories$ = (templateId, componentId, name) => {
137
- let params = new HttpParams();
138
- if (name) {
139
- params = params.append('name', name);
140
- }
141
- return this.baseHttpService
142
- .api({
143
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories`,
144
- params,
145
- })
146
- .pipe(switchMap(dtos => {
147
- if (!dtos.length) {
148
- return of([]);
149
- }
150
- return forkJoin(dtos.map(dto => this.convertToComponentStory$(templateId, componentId, dto)));
151
- }));
152
- };
153
- this.fetchStory$ = (templateId, componentId, storyId) => {
154
- return this.baseHttpService
155
- .api({
156
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,
157
- })
158
- .pipe(switchMap(dto => this.convertToComponentStory$(templateId, componentId, dto)));
159
- };
160
- this.createComponentStory$ = (templateId, story) => {
161
- return this.baseHttpService.api({
162
- method: 'post',
163
- url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories`,
164
- body: story,
165
- });
166
- };
167
- this.updateComponentStory$ = (templateId, story) => {
168
- const { script, template, styles, section, ...rest } = story;
169
- return this.baseHttpService
170
- .api({
171
- method: 'put',
172
- url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories/${story.id}`,
173
- body: rest,
174
- })
175
- .pipe(map(dto => fromUIComponentStoryDTO(dto, { html: template, js: script, css: styles, json: section })));
176
- };
177
- this.duplicateComponentStory$ = (story, cloneRequest) => {
178
- return this.baseHttpService
179
- .api({
180
- url: `${this.serviceUrl}/${story.template}/components/${story.uiComponentId}/stories/${story.id}/clone`,
181
- method: 'post',
182
- body: cloneRequest,
183
- })
184
- .pipe(map(response => response.clonedRecordId));
185
- };
186
- this.deleteComponentStory$ = (templateId, componentId, storyId) => {
187
- return this.baseHttpService.api({
188
- method: 'delete',
189
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,
190
- });
191
- };
192
- this.restoreComponentStory$ = (templateId, componentId, storyId) => {
193
- return this.baseHttpService.api({
194
- method: 'patch',
195
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,
196
- });
197
- };
198
- this.uploadStoryAttachments$ = (templateId, componentId, storyId, attachments) => {
199
- const formData = new FormData();
200
- if (attachments.html != null) {
201
- formData.append('html', new Blob([attachments.html]), 'story-template.html');
202
- }
203
- if (attachments.css != null) {
204
- formData.append('css', new Blob([attachments.css]), 'story-styles.css');
205
- }
206
- if (attachments.js != null) {
207
- formData.append('js', new Blob([attachments.js]), 'story-script.js');
208
- }
209
- if (attachments.json != null) {
210
- formData.append('json', new Blob([attachments.json]), 'story-section.json');
211
- }
212
- return this.baseHttpService.upload({
213
- method: 'post',
214
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments`,
215
- body: formData,
216
- });
217
- };
218
- this.fetchComponentAttachments$ = (templateId, component) => {
219
- return forkJoin([
220
- this.fetchComponentAttachmentFile$(templateId, component.id, 'html'),
221
- this.fetchComponentAttachmentFile$(templateId, component.id, 'js'),
222
- this.fetchComponentAttachmentFile$(templateId, component.id, 'css'),
223
- this.fetchComponentAttachmentFile$(templateId, component.id, 'json'),
224
- ]).pipe(map(([html, js, css, json]) => ({ html, js, css, json })));
225
- };
226
- this.fetchComponentsAttachments$ = (templateId) => {
227
- return this.fetchComponents$(templateId).pipe(switchMap(components => {
228
- return forkJoin(components.map(component => this.fetchComponentAttachments$(templateId, component)));
229
- }));
230
- };
231
- this.fetchComponentAttachmentFile$ = (templateId, componentId, attachmentType) => {
232
- return this.baseHttpService
233
- .api({
234
- method: 'get',
235
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments/${attachmentType}/file`,
236
- responseType: 'text',
237
- errorHandler: noop,
238
- })
239
- .pipe(catchError(() => of('')));
240
- };
241
- this.uploadComponentAttachments$ = (templateId, componentId, attachments) => {
242
- const formData = new FormData();
243
- if (attachments.html != null) {
244
- formData.append('html', new Blob([attachments.html]), 'template.html');
245
- }
246
- if (attachments.css != null) {
247
- formData.append('css', new Blob([attachments.css]), 'styles.css');
248
- }
249
- if (attachments.js != null) {
250
- formData.append('js', new Blob([attachments.js]), 'script.js');
251
- }
252
- if (attachments.json != null) {
253
- formData.append('json', new Blob([attachments.json]), 'section.json');
254
- }
255
- return this.baseHttpService.upload({
256
- method: 'post',
257
- url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments`,
258
- body: formData,
259
- });
260
- };
261
- }
262
- getTemplateThumbnailUrl(templateId) {
263
- return `${this.serviceUrl}/${templateId}/thumbnail/file`;
264
- }
265
- attachTemplateThumbnail$(templateId, file) {
266
- const data = new FormData();
267
- data.append('thumb', file);
268
- return this.baseHttpService.upload({
269
- method: 'post',
270
- url: `${this.serviceUrl}/${templateId}/thumbnail`,
271
- body: data,
272
- });
273
- }
274
- removeTemplateThumbnail$(templateId) {
275
- return this.baseHttpService.api({
276
- method: 'delete',
277
- url: `${this.serviceUrl}/${templateId}/thumbnail`,
278
- });
279
- }
280
- }
281
- UITemplatesApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UITemplatesApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
282
- UITemplatesApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UITemplatesApiService });
283
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: UITemplatesApiService, decorators: [{
284
- type: Injectable
285
- }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
286
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktdGVtcGxhdGVzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvdjIvc2VydmljZXMvdWktdGVtcGxhdGVzLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBZTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWMsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdsRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBR3JFLE1BQU0sT0FBTyxxQkFBcUI7SUFHaEMsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRm5DLGVBQVUsR0FBVyxpQkFBaUIsQ0FBQztRQUlqRCxvQkFBZSxHQUFHLENBQUMsSUFBYSxFQUE0QixFQUFFO1lBQ25FLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFDOUIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2FBQ3RDO1lBRUQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBZSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLENBQUMsQ0FBQztRQUVLLG9CQUFlLEdBQUcsQ0FBQyxRQUF1QixFQUEwQixFQUFFO1lBQzNFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQWE7Z0JBQzFDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLEdBQUcsRUFBRSxHQUFHLElB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WCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sd0JBQXdCLENBQUMsVUFBa0I7UUFDaEQsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQztZQUM5QixNQUFNLEVBQUUsUUFBUTtZQUNoQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLFVBQVUsWUFBWTtTQUNsRCxDQUFDLENBQUM7SUFDTCxDQUFDOztrSEEvUlUscUJBQXFCO3NIQUFyQixxQkFBcUI7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlSHR0cFNlcnZpY2UsXG4gIENvbXBvbmVudEF0dGFjaG1lbnRzLFxuICBDb21wb25lbnRTdG9yeSxcbiAgQ29tcG9uZW50U3RvcnlBdHRhY2htZW50cyxcbiAgRXhwcmVzc2lvbixcbiAgTmV3Q29tcG9uZW50U3RvcnksXG4gIE5ld1RlbXBsYXRlQ29tcG9uZW50LFxuICBOZXdVSVRlbXBsYXRlLFxuICBUZW1wbGF0ZUF0dGFjaG1lbnRUeXBlLFxuICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgVUlUZW1wbGF0ZSxcbn0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZvcmtKb2luLCBtYXAsIG5vb3AsIE9ic2VydmFibGUsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENsb25lUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzL2Nsb25lLXJlcXVlc3QudHlwZXMnO1xuaW1wb3J0IHsgVUlDb21wb25lbnRTdG9yeURUTyB9IGZyb20gJy4uL3R5cGVzL2R0by91aS10ZW1wbGF0ZS1kdG8udHlwZXMnO1xuaW1wb3J0IHsgZnJvbVVJQ29tcG9uZW50U3RvcnlEVE8gfSBmcm9tICcuLi91dGlscy91aS10ZW1wbGF0ZS51dGlscyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVSVRlbXBsYXRlc0FwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VVcmw6IHN0cmluZyA9ICcvdjIvdWl0ZW1wbGF0ZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIGZldGNoVGVtcGxhdGVzJCA9IChuYW1lPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlW10+ID0+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbmFtZScsIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8VUlUZW1wbGF0ZVtdPih7IHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfWAsIHBhcmFtcyB9KTtcbiAgfTtcblxuICBwdWJsaWMgY3JlYXRlVGVtcGxhdGUkID0gKHRlbXBsYXRlOiBOZXdVSVRlbXBsYXRlKTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxVSVRlbXBsYXRlPih7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfWAsXG4gICAgICBib2R5OiB0ZW1wbGF0ZSxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgdXBkYXRlVGVtcGxhdGUkID0gKHRlbXBsYXRlOiBVSVRlbXBsYXRlKTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxVSVRlbXBsYXRlPih7XG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGUuaWR9YCxcbiAgICAgIGJvZHk6IHRlbXBsYXRlLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBkdXBsaWNhdGVUZW1wbGF0ZSQgPSAodGVtcGxhdGU6IFVJVGVtcGxhdGUsIGNsb25lUmVxdWVzdDogQ2xvbmVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZS5pZH0vY2xvbmVgLFxuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgYm9keTogY2xvbmVSZXF1ZXN0LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5jbG9uZWRSZWNvcmRJZCkpO1xuICB9O1xuXG4gIHB1YmxpYyByZW1vdmVUZW1wbGF0ZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke2lkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHJlc3RvcmVUZW1wbGF0ZSQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7aWR9YCxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgc2VhcmNoVGVtcGxhdGVzJCA9IChkYXRhOiB7XG4gICAgcGFyYW1zPzogRGljdGlvbmFyeTxzdHJpbmc+O1xuICAgIGV4cHJlc3Npb24/OiBFeHByZXNzaW9uO1xuICB9KTogT2JzZXJ2YWJsZTxVSVRlbXBsYXRlW10+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L3NlYXJjaGAsXG4gICAgICBwYXJhbXM6IGRhdGEucGFyYW1zLFxuICAgICAgYm9keTogZGF0YS5leHByZXNzaW9uLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBmZXRjaENvbXBvbmVudHMkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgbmFtZT86IHN0cmluZyk6IE9ic2VydmFibGU8VGVtcGxhdGVDb21wb25lbnRbXT4gPT4ge1xuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpO1xuICAgIGlmIChuYW1lKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCduYW1lJywgbmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaTxUZW1wbGF0ZUNvbXBvbmVudFtdPih7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZUlkfS9jb21wb25lbnRzYCxcbiAgICAgIHBhcmFtcyxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgZmV0Y2hDb21wb25lbnQkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8VGVtcGxhdGVDb21wb25lbnQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFRlbXBsYXRlQ29tcG9uZW50Pih7XG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZUlkfS9jb21wb25lbnRzLyR7Y29tcG9uZW50SWR9YCxcbiAgICB9KTtcbiAgfTtcblxuICBwdWJsaWMgY3JlYXRlQ29tcG9uZW50JCA9IChjb21wb25lbnQ6IE5ld1RlbXBsYXRlQ29tcG9uZW50KTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGk8VGVtcGxhdGVDb21wb25lbnQ+KHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7Y29tcG9uZW50LnVpVGVtcGxhdGVJZH0vY29tcG9uZW50c2AsXG4gICAgICBib2R5OiBjb21wb25lbnQsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHVwZGF0ZUNvbXBvbmVudCQgPSAoY29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IE9ic2VydmFibGU8VGVtcGxhdGVDb21wb25lbnQ+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPFRlbXBsYXRlQ29tcG9uZW50Pih7XG4gICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7Y29tcG9uZW50LnVpVGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudC5pZH1gLFxuICAgICAgYm9keTogY29tcG9uZW50LFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyBkdXBsaWNhdGVDb21wb25lbnQkID0gKGNvbXBvbmVudDogVGVtcGxhdGVDb21wb25lbnQsIGNsb25lUmVxdWVzdDogQ2xvbmVSZXF1ZXN0KTogT2JzZXJ2YWJsZTxzdHJpbmc+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHtjb21wb25lbnQudWlUZW1wbGF0ZUlkfS9jb21wb25lbnRzLyR7Y29tcG9uZW50LmlkfS9jbG9uZWAsXG4gICAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgICBib2R5OiBjbG9uZVJlcXVlc3QsXG4gICAgICB9KVxuICAgICAgLnBpcGUobWFwKHJlc3BvbnNlID0+IHJlc3BvbnNlLmNsb25lZFJlY29yZElkKSk7XG4gIH07XG5cbiAgcHVibGljIHJlbW92ZUNvbXBvbmVudCQgPSAodGVtcGxhdGVJZDogc3RyaW5nLCBjb21wb25lbnRJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHJlc3RvcmVDb21wb25lbnQkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHNlYXJjaENvbXBvbmVudHMkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBkYXRhOiB7IHBhcmFtcz86IERpY3Rpb25hcnk8c3RyaW5nPjsgZXhwcmVzc2lvbj86IEV4cHJlc3Npb24gfSxcbiAgKTogT2JzZXJ2YWJsZTxUZW1wbGF0ZUNvbXBvbmVudFtdPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L2NvbXBvbmVudHMvc2VhcmNoYCxcbiAgICAgIHBhcmFtczogZGF0YS5wYXJhbXMsXG4gICAgICBib2R5OiBkYXRhLmV4cHJlc3Npb24sXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIGZldGNoU3RvcnlBdHRhY2htZW50ID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIHN0b3J5SWQ6IHN0cmluZyxcbiAgICB0eXBlOiBUZW1wbGF0ZUF0dGFjaG1lbnRUeXBlLFxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxzdHJpbmc+KHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnlJZH0vYXR0YWNobWVudHMvJHt0eXBlfS9maWxlYCxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIGVycm9ySGFuZGxlcjogbm9vcCxcbiAgICAgIH0pXG4gICAgICAucGlwZShjYXRjaEVycm9yKCgpID0+IG9mKCcnKSkpO1xuICB9O1xuXG4gIHByaXZhdGUgY29udmVydFRvQ29tcG9uZW50U3RvcnkkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIHN0b3J5RHRvOiBVSUNvbXBvbmVudFN0b3J5RFRPLFxuICApOiBPYnNlcnZhYmxlPENvbXBvbmVudFN0b3J5PiA9PiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKFtcbiAgICAgIHRoaXMuZmV0Y2hTdG9yeUF0dGFjaG1lbnQodGVtcGxhdGVJZCwgY29tcG9uZW50SWQsIHN0b3J5RHRvLmlkLCAnaHRtbCcpLFxuICAgICAgdGhpcy5mZXRjaFN0b3J5QXR0YWNobWVudCh0ZW1wbGF0ZUlkLCBjb21wb25lbnRJZCwgc3RvcnlEdG8uaWQsICdqcycpLFxuICAgICAgdGhpcy5mZXRjaFN0b3J5QXR0YWNobWVudCh0ZW1wbGF0ZUlkLCBjb21wb25lbnRJZCwgc3RvcnlEdG8uaWQsICdjc3MnKSxcbiAgICAgIHRoaXMuZmV0Y2hTdG9yeUF0dGFjaG1lbnQodGVtcGxhdGVJZCwgY29tcG9uZW50SWQsIHN0b3J5RHRvLmlkLCAnanNvbicpLFxuICAgIF0pLnBpcGUoXG4gICAgICBtYXAoKFtodG1sLCBqcywgY3NzLCBqc29uXSkgPT4gKHsgaHRtbCwganMsIGNzcywganNvbiB9KSksXG4gICAgICBtYXAoYXR0YWNobWVudHMgPT4gZnJvbVVJQ29tcG9uZW50U3RvcnlEVE8oc3RvcnlEdG8sIGF0dGFjaG1lbnRzKSksXG4gICAgKTtcbiAgfTtcblxuICBwdWJsaWMgZmV0Y2hTdG9yaWVzJCA9ICh0ZW1wbGF0ZUlkOiBzdHJpbmcsIGNvbXBvbmVudElkOiBzdHJpbmcsIG5hbWU/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbXBvbmVudFN0b3J5W10+ID0+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAobmFtZSkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLmFwcGVuZCgnbmFtZScsIG5hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxVSUNvbXBvbmVudFN0b3J5RFRPW10+KHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzYCxcbiAgICAgICAgcGFyYW1zLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBzd2l0Y2hNYXAoZHRvcyA9PiB7XG4gICAgICAgICAgaWYgKCFkdG9zLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZvcmtKb2luKGR0b3MubWFwKGR0byA9PiB0aGlzLmNvbnZlcnRUb0NvbXBvbmVudFN0b3J5JCh0ZW1wbGF0ZUlkLCBjb21wb25lbnRJZCwgZHRvKSkpO1xuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH07XG5cbiAgcHVibGljIGZldGNoU3RvcnkkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgc3RvcnlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21wb25lbnRTdG9yeT4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaTxVSUNvbXBvbmVudFN0b3J5RFRPPih7XG4gICAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L2NvbXBvbmVudHMvJHtjb21wb25lbnRJZH0vc3Rvcmllcy8ke3N0b3J5SWR9YCxcbiAgICAgIH0pXG4gICAgICAucGlwZShzd2l0Y2hNYXAoZHRvID0+IHRoaXMuY29udmVydFRvQ29tcG9uZW50U3RvcnkkKHRlbXBsYXRlSWQsIGNvbXBvbmVudElkLCBkdG8pKSk7XG4gIH07XG5cbiAgcHVibGljIGNyZWF0ZUNvbXBvbmVudFN0b3J5JCA9ICh0ZW1wbGF0ZUlkOiBzdHJpbmcsIHN0b3J5OiBOZXdDb21wb25lbnRTdG9yeSk6IE9ic2VydmFibGU8Q29tcG9uZW50U3Rvcnk+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpPENvbXBvbmVudFN0b3J5Pih7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L2NvbXBvbmVudHMvJHtzdG9yeS51aUNvbXBvbmVudElkfS9zdG9yaWVzYCxcbiAgICAgIGJvZHk6IHN0b3J5LFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyB1cGRhdGVDb21wb25lbnRTdG9yeSQgPSAodGVtcGxhdGVJZDogc3RyaW5nLCBzdG9yeTogQ29tcG9uZW50U3RvcnkpOiBPYnNlcnZhYmxlPENvbXBvbmVudFN0b3J5PiA9PiB7XG4gICAgY29uc3QgeyBzY3JpcHQsIHRlbXBsYXRlLCBzdHlsZXMsIHNlY3Rpb24sIC4uLnJlc3QgfSA9IHN0b3J5O1xuXG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpPFVJQ29tcG9uZW50U3RvcnlEVE8+KHtcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke3N0b3J5LnVpQ29tcG9uZW50SWR9L3N0b3JpZXMvJHtzdG9yeS5pZH1gLFxuICAgICAgICBib2R5OiByZXN0LFxuICAgICAgfSlcbiAgICAgIC5waXBlKG1hcChkdG8gPT4gZnJvbVVJQ29tcG9uZW50U3RvcnlEVE8oZHRvLCB7IGh0bWw6IHRlbXBsYXRlLCBqczogc2NyaXB0LCBjc3M6IHN0eWxlcywganNvbjogc2VjdGlvbiB9KSkpO1xuICB9O1xuXG4gIHB1YmxpYyBkdXBsaWNhdGVDb21wb25lbnRTdG9yeSQgPSAoc3Rvcnk6IENvbXBvbmVudFN0b3J5LCBjbG9uZVJlcXVlc3Q6IENsb25lUmVxdWVzdCk6IE9ic2VydmFibGU8c3RyaW5nPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7c3RvcnkudGVtcGxhdGV9L2NvbXBvbmVudHMvJHtzdG9yeS51aUNvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnkuaWR9L2Nsb25lYCxcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIGJvZHk6IGNsb25lUmVxdWVzdCxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UuY2xvbmVkUmVjb3JkSWQpKTtcbiAgfTtcblxuICBwdWJsaWMgZGVsZXRlQ29tcG9uZW50U3RvcnkkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgc3RvcnlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnlJZH1gLFxuICAgIH0pO1xuICB9O1xuXG4gIHB1YmxpYyByZXN0b3JlQ29tcG9uZW50U3RvcnkkID0gKHRlbXBsYXRlSWQ6IHN0cmluZywgY29tcG9uZW50SWQ6IHN0cmluZywgc3RvcnlJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwYXRjaCcsXG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vJHt0ZW1wbGF0ZUlkfS9jb21wb25lbnRzLyR7Y29tcG9uZW50SWR9L3N0b3JpZXMvJHtzdG9yeUlkfWAsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIHVwbG9hZFN0b3J5QXR0YWNobWVudHMkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIHN0b3J5SWQ6IHN0cmluZyxcbiAgICBhdHRhY2htZW50czogQ29tcG9uZW50U3RvcnlBdHRhY2htZW50cyxcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBpZiAoYXR0YWNobWVudHMuaHRtbCAhPSBudWxsKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2h0bWwnLCBuZXcgQmxvYihbYXR0YWNobWVudHMuaHRtbF0pLCAnc3RvcnktdGVtcGxhdGUuaHRtbCcpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMuY3NzICE9IG51bGwpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnY3NzJywgbmV3IEJsb2IoW2F0dGFjaG1lbnRzLmNzc10pLCAnc3Rvcnktc3R5bGVzLmNzcycpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMuanMgIT0gbnVsbCkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdqcycsIG5ldyBCbG9iKFthdHRhY2htZW50cy5qc10pLCAnc3Rvcnktc2NyaXB0LmpzJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2htZW50cy5qc29uICE9IG51bGwpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnanNvbicsIG5ldyBCbG9iKFthdHRhY2htZW50cy5qc29uXSksICdzdG9yeS1zZWN0aW9uLmpzb24nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UudXBsb2FkKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9zdG9yaWVzLyR7c3RvcnlJZH0vYXR0YWNobWVudHNgLFxuICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgfSk7XG4gIH07XG5cbiAgcHVibGljIGdldFRlbXBsYXRlVGh1bWJuYWlsVXJsKHRlbXBsYXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vdGh1bWJuYWlsL2ZpbGVgO1xuICB9XG5cbiAgcHVibGljIGF0dGFjaFRlbXBsYXRlVGh1bWJuYWlsJCh0ZW1wbGF0ZUlkOiBzdHJpbmcsIGZpbGU6IEZpbGUpIHtcbiAgICBjb25zdCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZGF0YS5hcHBlbmQoJ3RodW1iJywgZmlsZSk7XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UudXBsb2FkKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vdGh1bWJuYWlsYCxcbiAgICAgIGJvZHk6IGRhdGEsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlVGVtcGxhdGVUaHVtYm5haWwkKHRlbXBsYXRlSWQ6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L3RodW1ibmFpbGAsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZmV0Y2hDb21wb25lbnRBdHRhY2htZW50cyQgPSAoXG4gICAgdGVtcGxhdGVJZDogc3RyaW5nLFxuICAgIGNvbXBvbmVudDogVGVtcGxhdGVDb21wb25lbnQsXG4gICk6IE9ic2VydmFibGU8Q29tcG9uZW50QXR0YWNobWVudHM+ID0+IHtcbiAgICByZXR1cm4gZm9ya0pvaW4oW1xuICAgICAgdGhpcy5mZXRjaENvbXBvbmVudEF0dGFjaG1lbnRGaWxlJCh0ZW1wbGF0ZUlkLCBjb21wb25lbnQuaWQsICdodG1sJyksXG4gICAgICB0aGlzLmZldGNoQ29tcG9uZW50QXR0YWNobWVudEZpbGUkKHRlbXBsYXRlSWQsIGNvbXBvbmVudC5pZCwgJ2pzJyksXG4gICAgICB0aGlzLmZldGNoQ29tcG9uZW50QXR0YWNobWVudEZpbGUkKHRlbXBsYXRlSWQsIGNvbXBvbmVudC5pZCwgJ2NzcycpLFxuICAgICAgdGhpcy5mZXRjaENvbXBvbmVudEF0dGFjaG1lbnRGaWxlJCh0ZW1wbGF0ZUlkLCBjb21wb25lbnQuaWQsICdqc29uJyksXG4gICAgXSkucGlwZShtYXAoKFtodG1sLCBqcywgY3NzLCBqc29uXSkgPT4gKHsgaHRtbCwganMsIGNzcywganNvbiB9KSkpO1xuICB9O1xuXG4gIHB1YmxpYyBmZXRjaENvbXBvbmVudHNBdHRhY2htZW50cyQgPSAodGVtcGxhdGVJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxDb21wb25lbnRBdHRhY2htZW50c1tdPiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hDb21wb25lbnRzJCh0ZW1wbGF0ZUlkKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGNvbXBvbmVudHMgPT4ge1xuICAgICAgICByZXR1cm4gZm9ya0pvaW4oY29tcG9uZW50cy5tYXAoY29tcG9uZW50ID0+IHRoaXMuZmV0Y2hDb21wb25lbnRBdHRhY2htZW50cyQodGVtcGxhdGVJZCwgY29tcG9uZW50KSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIGZldGNoQ29tcG9uZW50QXR0YWNobWVudEZpbGUkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRUeXBlOiBUZW1wbGF0ZUF0dGFjaG1lbnRUeXBlLFxuICApOiBPYnNlcnZhYmxlPHN0cmluZz4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS8ke3RlbXBsYXRlSWR9L2NvbXBvbmVudHMvJHtjb21wb25lbnRJZH0vYXR0YWNobWVudHMvJHthdHRhY2htZW50VHlwZX0vZmlsZWAsXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnLFxuICAgICAgICBlcnJvckhhbmRsZXI6IG5vb3AsXG4gICAgICB9KVxuICAgICAgLnBpcGUoY2F0Y2hFcnJvcigoKSA9PiBvZignJykpKTtcbiAgfTtcblxuICBwdWJsaWMgdXBsb2FkQ29tcG9uZW50QXR0YWNobWVudHMkID0gKFxuICAgIHRlbXBsYXRlSWQ6IHN0cmluZyxcbiAgICBjb21wb25lbnRJZDogc3RyaW5nLFxuICAgIGF0dGFjaG1lbnRzOiBDb21wb25lbnRBdHRhY2htZW50cyxcbiAgKTogT2JzZXJ2YWJsZTx2b2lkPiA9PiB7XG4gICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICBpZiAoYXR0YWNobWVudHMuaHRtbCAhPSBudWxsKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2h0bWwnLCBuZXcgQmxvYihbYXR0YWNobWVudHMuaHRtbF0pLCAndGVtcGxhdGUuaHRtbCcpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMuY3NzICE9IG51bGwpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnY3NzJywgbmV3IEJsb2IoW2F0dGFjaG1lbnRzLmNzc10pLCAnc3R5bGVzLmNzcycpO1xuICAgIH1cbiAgICBpZiAoYXR0YWNobWVudHMuanMgIT0gbnVsbCkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdqcycsIG5ldyBCbG9iKFthdHRhY2htZW50cy5qc10pLCAnc2NyaXB0LmpzJyk7XG4gICAgfVxuICAgIGlmIChhdHRhY2htZW50cy5qc29uICE9IG51bGwpIHtcbiAgICAgIGZvcm1EYXRhLmFwcGVuZCgnanNvbicsIG5ldyBCbG9iKFthdHRhY2htZW50cy5qc29uXSksICdzZWN0aW9uLmpzb24nKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UudXBsb2FkKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9LyR7dGVtcGxhdGVJZH0vY29tcG9uZW50cy8ke2NvbXBvbmVudElkfS9hdHRhY2htZW50c2AsXG4gICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICB9KTtcbiAgfTtcbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { BaseHttpService, ConfigurationRequest, ConfigurePrice, RuntimeData, RuntimeModel } from '@veloceapps/core';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class ConfigurationApiService {
5
- private httpService;
6
- private readonly SERVICE_URL;
7
- constructor(httpService: BaseHttpService);
8
- configureLineItem({ configurationRequest, runtimeModel, pricingEnabled, }: {
9
- configurationRequest: ConfigurationRequest;
10
- runtimeModel?: RuntimeModel;
11
- pricingEnabled?: boolean;
12
- }): Observable<ConfigurePrice>;
13
- customConfigurePrice({ url, configurationRequest, runtimeModel, }: {
14
- url: string;
15
- configurationRequest: ConfigurationRequest;
16
- runtimeModel?: RuntimeModel;
17
- }): Observable<ConfigurePrice>;
18
- getRuntimeDataByProductId(productId: string, offeringId?: string, defaultUIDefinitionId?: string, requiredUIDefinitionId?: string): Observable<RuntimeData>;
19
- getRuntimeDataByModelId(modelId: string): Observable<RuntimeData>;
20
- private updateDomains;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationApiService, never>;
22
- static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationApiService>;
23
- }
@@ -1,12 +0,0 @@
1
- import { BaseHttpService, LineItem } from '@veloceapps/core';
2
- import { Observable } from 'rxjs';
3
- import { CalculateDeltaRequest } from '../types/delta-request.types';
4
- import * as i0 from "@angular/core";
5
- export declare class DeltaApiService {
6
- private httpService;
7
- private readonly SERVICE_URL;
8
- constructor(httpService: BaseHttpService);
9
- calculate$(request: CalculateDeltaRequest): Observable<LineItem[]>;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<DeltaApiService, never>;
11
- static ɵprov: i0.ɵɵInjectableDeclaration<DeltaApiService>;
12
- }
@@ -1,16 +0,0 @@
1
- import { BaseHttpService, PriceList, PriceSummary } from '@veloceapps/core';
2
- import { Observable } from 'rxjs';
3
- import { PriceCalculateRequest } from '../types/price.types';
4
- import * as i0 from "@angular/core";
5
- export declare class PriceApiService {
6
- private httpService;
7
- private readonly SERVICE_URL;
8
- constructor(httpService: BaseHttpService);
9
- calculate(request: PriceCalculateRequest): Observable<PriceSummary>;
10
- getPriceLists(): Observable<PriceList[]>;
11
- getPriceList(id: string): Observable<PriceList>;
12
- getSellingTermByEndDate(planId?: string, offeringId?: string, startDate?: string, endDate?: string, frequencyUnit?: string, frequencyDuration?: string): Observable<any>;
13
- getSellingTermByTerm(planId?: string, offeringId?: string, startDate?: string, term?: number, frequencyUnit?: string, frequencyDuration?: string): Observable<any>;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<PriceApiService, never>;
15
- static ɵprov: i0.ɵɵInjectableDeclaration<PriceApiService>;
16
- }
@@ -1,31 +0,0 @@
1
- import { AttributeDefinition, BaseHttpService, Expression, LazyChunkRequest, NewAttributeDefinition, NewProduct, NewProductAttribute, Product, ProductAttribute } from '@veloceapps/core';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class ProductApiService {
5
- private baseHttpService;
6
- private readonly serviceUrl;
7
- constructor(baseHttpService: BaseHttpService);
8
- fetchProducts$: (payload: LazyChunkRequest) => Observable<Product[]>;
9
- searchProducts$: (expression: Expression, skip: number, count: number) => Observable<Product[]>;
10
- fetchProduct$: (id: string) => Observable<Product>;
11
- fetchAttributes$: () => Observable<AttributeDefinition[]>;
12
- searchAttributes$: (expression: Expression, skip: number, count: number) => Observable<AttributeDefinition[]>;
13
- fetchAttributesByModel: (modelId: string) => Observable<AttributeDefinition[]>;
14
- createNewProduct$: (productData: NewProduct) => Observable<Product>;
15
- updateProduct$: (body: Product) => Observable<Product>;
16
- removeProduct$: (id: string) => Observable<string>;
17
- restoreProduct$: (id: string) => Observable<void>;
18
- createProductAttribute$: (attributeData: NewProductAttribute) => Observable<AttributeDefinition>;
19
- updateProductAttribute$: (attributeData: ProductAttribute) => Observable<AttributeDefinition>;
20
- removeProductAttribute$: (id: string) => Observable<void>;
21
- createNewAttribute$: (attributeData: NewAttributeDefinition) => Observable<AttributeDefinition>;
22
- updateAttribute$: (body: AttributeDefinition) => Observable<AttributeDefinition>;
23
- removeAttribute$: (id: string) => Observable<void>;
24
- restoreAttribute$: (id: string) => Observable<void>;
25
- attachImage$(productId: string, file: File): Observable<void>;
26
- removeImage$(productId: string): Observable<void>;
27
- fetchImage$(productId: string): Observable<File>;
28
- getImageUrl(productId: string): string;
29
- static ɵfac: i0.ɵɵFactoryDeclaration<ProductApiService, never>;
30
- static ɵprov: i0.ɵɵInjectableDeclaration<ProductApiService>;
31
- }
@@ -1,29 +0,0 @@
1
- import { BaseHttpService, ModelReleaseRequest, PmlConfigurationMode, ProductModel, ProductModelVersion } from '@veloceapps/core';
2
- import { Observable } from 'rxjs';
3
- import * as i0 from "@angular/core";
4
- export declare class ProductModelApiService {
5
- private httpService;
6
- static MAX_RESULTS: number;
7
- private readonly SERVICE_URL;
8
- constructor(httpService: BaseHttpService);
9
- addModel(model: ProductModel): Observable<any>;
10
- releaseModel(model: ModelReleaseRequest): Observable<any>;
11
- removeModel(modelId: string, successFn?: any, failureFn?: any): void;
12
- getModelVersions(modelId: string, count?: number, skip?: number): Observable<ProductModelVersion[]>;
13
- getModel(id: string, version?: string): Observable<ProductModel>;
14
- getModels(skipCount: number, searchText: string): Observable<ProductModel[]>;
15
- getLinkedModels(id: string, version?: string): Observable<ProductModel[]>;
16
- getPML(modelId: string, version?: string): Observable<any>;
17
- savePML(modelId: string, pml: string, comment: string): Observable<any>;
18
- generateProducts(modelId: string): Observable<ProductModel>;
19
- saveModel(productModel: ProductModel, comment: string): Observable<string>;
20
- validateModel(productModel: ProductModel): Observable<string>;
21
- renameModel(productModel: ProductModel, name: string): Observable<any>;
22
- uploadPmlFile(file: File, modelId: string): Observable<any>;
23
- runPml(modelId: string, pml: string, rootType: string, configurationMode: PmlConfigurationMode): Observable<any>;
24
- evictAllCache(): Observable<{
25
- result: string;
26
- }>;
27
- static ɵfac: i0.ɵɵFactoryDeclaration<ProductModelApiService, never>;
28
- static ɵprov: i0.ɵɵInjectableDeclaration<ProductModelApiService>;
29
- }
@@ -1,13 +0,0 @@
1
- import { BaseHttpService, HttpRequestConfigurableOptions, PriceSummary } from '@veloceapps/core';
2
- import { Observable } from 'rxjs';
3
- import { NextRampRequest, RenewRampRequest } from '../types';
4
- import * as i0 from "@angular/core";
5
- export declare class RampApiService {
6
- private httpService;
7
- private readonly SERVICE_URL;
8
- constructor(httpService: BaseHttpService);
9
- next(request: NextRampRequest, options?: HttpRequestConfigurableOptions): Observable<PriceSummary>;
10
- renew(request: RenewRampRequest, options?: HttpRequestConfigurableOptions): Observable<PriceSummary>;
11
- static ɵfac: i0.ɵɵFactoryDeclaration<RampApiService, never>;
12
- static ɵprov: i0.ɵɵInjectableDeclaration<RampApiService>;
13
- }
@@ -1,5 +0,0 @@
1
- import { ConfigurationContext, LineItem } from '@veloceapps/core';
2
- export interface PriceCalculateRequest {
3
- context: ConfigurationContext;
4
- currentState: LineItem[];
5
- }