@veloceapps/api 7.0.0-9 → 7.0.1-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/{esm2015/lib/api.module.js → esm2020/lib/api.module.mjs} +6 -6
  2. package/esm2020/lib/services/account-api.service.mjs +80 -0
  3. package/esm2020/lib/services/catalog-admin-api.service.mjs +165 -0
  4. package/{esm2015/lib/services/catalog-api.service.js → esm2020/lib/services/catalog-api.service.mjs} +4 -4
  5. package/esm2020/lib/services/configuration-api.service.mjs +78 -0
  6. package/esm2020/lib/services/configuration-settings-api.service.mjs +96 -0
  7. package/{esm2015/lib/services/context-api.service.js → esm2020/lib/services/context-api.service.mjs} +4 -4
  8. package/{esm2015/lib/services/delta-api.service.js → esm2020/lib/services/delta-api.service.mjs} +4 -4
  9. package/{esm2015/lib/services/document-attachment-api.service.js → esm2020/lib/services/document-attachment-api.service.mjs} +4 -4
  10. package/esm2020/lib/services/document-templates-api.service.mjs +298 -0
  11. package/{esm2015/lib/services/endpoints-api.service.js → esm2020/lib/services/endpoints-api.service.mjs} +4 -4
  12. package/esm2020/lib/services/flows-api.service.mjs +24 -0
  13. package/esm2020/lib/services/guided-sellings-admin-api.service.mjs +65 -0
  14. package/esm2020/lib/services/guided-sellings-api.service.mjs +27 -0
  15. package/{esm2015/lib/services/offers-api.service.js → esm2020/lib/services/offers-api.service.mjs} +4 -4
  16. package/esm2020/lib/services/org-info-api.service.mjs +19 -0
  17. package/{esm2015/lib/services/picklists-api.service.js → esm2020/lib/services/picklists-api.service.mjs} +8 -5
  18. package/{esm2015/lib/services/price-api.service.js → esm2020/lib/services/price-api.service.mjs} +4 -4
  19. package/{esm2015/lib/services/procedures-api.service.js → esm2020/lib/services/procedures-api.service.mjs} +4 -4
  20. package/{esm2015/lib/services/product-api.service.js → esm2020/lib/services/product-api.service.mjs} +4 -4
  21. package/esm2020/lib/services/product-model-api.service.mjs +232 -0
  22. package/esm2020/lib/services/quote-api.service.mjs +58 -0
  23. package/esm2020/lib/services/ramp-api.service.mjs +31 -0
  24. package/{esm2015/lib/services/rule-groups-api.service.js → esm2020/lib/services/rule-groups-api.service.mjs} +4 -4
  25. package/{esm2015/lib/services/rules-api.service.js → esm2020/lib/services/rules-api.service.mjs} +4 -4
  26. package/esm2020/lib/services/salesforce-api.service.mjs +61 -0
  27. package/{esm2015/lib/services/scripts-api.service.js → esm2020/lib/services/scripts-api.service.mjs} +4 -4
  28. package/esm2020/lib/services/shopping-cart-settings-api.service.mjs +28 -0
  29. package/esm2020/lib/services/ui-templates-api.service.mjs +281 -0
  30. package/esm2020/lib/types/dto/configuration-settings-dto.types.mjs +22 -0
  31. package/fesm2015/{veloceapps-api.js → veloceapps-api.mjs} +100 -101
  32. package/fesm2015/veloceapps-api.mjs.map +1 -0
  33. package/fesm2020/veloceapps-api.mjs +2468 -0
  34. package/fesm2020/veloceapps-api.mjs.map +1 -0
  35. package/lib/services/catalog-admin-api.service.d.ts +2 -2
  36. package/lib/services/guided-sellings-admin-api.service.d.ts +2 -2
  37. package/lib/services/quote-api.service.d.ts +1 -1
  38. package/lib/services/ui-templates-api.service.d.ts +3 -3
  39. package/lib/types/dto/offers-dto.types.d.ts +2 -2
  40. package/lib/types/search-request.types.d.ts +1 -1
  41. package/package.json +26 -24
  42. package/bundles/veloceapps-api.umd.js +0 -2880
  43. package/bundles/veloceapps-api.umd.js.map +0 -1
  44. package/esm2015/lib/services/account-api.service.js +0 -50
  45. package/esm2015/lib/services/catalog-admin-api.service.js +0 -165
  46. package/esm2015/lib/services/configuration-api.service.js +0 -72
  47. package/esm2015/lib/services/configuration-settings-api.service.js +0 -61
  48. package/esm2015/lib/services/document-templates-api.service.js +0 -284
  49. package/esm2015/lib/services/flows-api.service.js +0 -24
  50. package/esm2015/lib/services/guided-sellings-admin-api.service.js +0 -65
  51. package/esm2015/lib/services/guided-sellings-api.service.js +0 -27
  52. package/esm2015/lib/services/org-info-api.service.js +0 -20
  53. package/esm2015/lib/services/product-model-api.service.js +0 -232
  54. package/esm2015/lib/services/quote-api.service.js +0 -48
  55. package/esm2015/lib/services/ramp-api.service.js +0 -21
  56. package/esm2015/lib/services/salesforce-api.service.js +0 -43
  57. package/esm2015/lib/services/shopping-cart-settings-api.service.js +0 -28
  58. package/esm2015/lib/services/ui-templates-api.service.js +0 -282
  59. package/esm2015/lib/types/dto/configuration-settings-dto.types.js +0 -22
  60. package/fesm2015/veloceapps-api.js.map +0 -1
  61. package/veloceapps-api.d.ts +0 -5
  62. /package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  63. /package/{esm2015/lib/types/clone-request.types.js → esm2020/lib/types/clone-request.types.mjs} +0 -0
  64. /package/{esm2015/lib/types/delta-request.types.js → esm2020/lib/types/delta-request.types.mjs} +0 -0
  65. /package/{esm2015/lib/types/dto/offers-dto.types.js → esm2020/lib/types/dto/offers-dto.types.mjs} +0 -0
  66. /package/{esm2015/lib/types/dto/ui-template-dto.types.js → esm2020/lib/types/dto/ui-template-dto.types.mjs} +0 -0
  67. /package/{esm2015/lib/types/index.js → esm2020/lib/types/index.mjs} +0 -0
  68. /package/{esm2015/lib/types/org-info.types.js → esm2020/lib/types/org-info.types.mjs} +0 -0
  69. /package/{esm2015/lib/types/price.types.js → esm2020/lib/types/price.types.mjs} +0 -0
  70. /package/{esm2015/lib/types/ramp-request.types.js → esm2020/lib/types/ramp-request.types.mjs} +0 -0
  71. /package/{esm2015/lib/types/search-request.types.js → esm2020/lib/types/search-request.types.mjs} +0 -0
  72. /package/{esm2015/lib/utils/ui-template.utils.js → esm2020/lib/utils/ui-template.utils.mjs} +0 -0
  73. /package/{esm2015/veloceapps-api.js → esm2020/veloceapps-api.mjs} +0 -0
@@ -1,232 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { EntityUtil, ModelTranslatorUtils, ModelUtils, ProductModelsContainer, } from '@veloceapps/core';
3
- import { forkJoin } from 'rxjs';
4
- import { catchError, map } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@veloceapps/core";
7
- export class ProductModelApiService {
8
- constructor(httpService) {
9
- this.httpService = httpService;
10
- this.SERVICE_URL = '/models';
11
- }
12
- addModel(model) {
13
- return this.httpService
14
- .api({
15
- method: 'post',
16
- url: this.SERVICE_URL,
17
- body: model,
18
- errorHandler: this.httpService.handleValidationError,
19
- })
20
- .pipe(map(result => {
21
- if (result.successful) {
22
- return result;
23
- }
24
- else {
25
- throw new Error(result.message);
26
- }
27
- }));
28
- }
29
- releaseModel(model) {
30
- return this.httpService
31
- .api({
32
- method: 'put',
33
- url: `${this.SERVICE_URL}/${model.id}/release`,
34
- body: model,
35
- errorHandler: this.httpService.handleValidationError,
36
- })
37
- .pipe(map(result => {
38
- if (result.successful) {
39
- return '';
40
- }
41
- else {
42
- throw new Error(result.message);
43
- }
44
- }));
45
- }
46
- removeModel(modelId, successFn, failureFn) {
47
- const observable = this.httpService
48
- .api({
49
- method: 'delete',
50
- url: `${this.SERVICE_URL}/${modelId}`,
51
- errorHandler: this.httpService.handleValidationError,
52
- })
53
- .pipe(map(result => {
54
- if (result.successful) {
55
- return '';
56
- }
57
- else {
58
- throw new Error(result.message);
59
- }
60
- }));
61
- observable.subscribe(() => {
62
- successFn && successFn.apply();
63
- }, () => {
64
- failureFn && failureFn.apply();
65
- });
66
- }
67
- getModelVersions(modelId, count = 100, skip = 0) {
68
- return this.httpService.api({
69
- method: 'post',
70
- url: `${this.SERVICE_URL}/${modelId}/versions`,
71
- body: {
72
- skipCount: skip,
73
- count: count,
74
- },
75
- });
76
- }
77
- getModel(id, version) {
78
- let url = `${this.SERVICE_URL}/${id}`;
79
- if (version) {
80
- url += `/versions/${version}`;
81
- }
82
- return this.httpService.api({ url });
83
- }
84
- getModels(skipCount, searchText) {
85
- return this.httpService.api({
86
- method: 'post',
87
- url: `${this.SERVICE_URL}/search`,
88
- body: {
89
- nameRegex: searchText,
90
- skipCount: skipCount.toString(),
91
- count: ProductModelApiService.MAX_RESULTS,
92
- },
93
- });
94
- }
95
- getLinkedModels(id, version) {
96
- let url = `${this.SERVICE_URL}/${id}`;
97
- if (version) {
98
- url += `/versions/${version}`;
99
- }
100
- url += '/linked';
101
- return this.httpService.api({ url }).pipe(map((linkedModels) => {
102
- if (linkedModels) {
103
- linkedModels.forEach(model => ModelTranslatorUtils.toLocalModel(model));
104
- }
105
- return linkedModels;
106
- }));
107
- }
108
- load(id, version) {
109
- return forkJoin([this.getModel(id, version), this.getLinkedModels(id, version)]).pipe(map(([model, linkedModels]) => {
110
- const container = new ProductModelsContainer(model, linkedModels !== null && linkedModels !== void 0 ? linkedModels : []);
111
- ModelUtils.override(container.main, container.linked);
112
- ModelTranslatorUtils.toLocalModel(container.main, container.linked);
113
- return container;
114
- }));
115
- }
116
- getPML(modelId, version) {
117
- let url = `${this.SERVICE_URL}/${modelId}/pml/${version}`;
118
- if (version) {
119
- url += `/versions/${version}`;
120
- }
121
- return this.httpService.api({
122
- url,
123
- responseType: 'text',
124
- });
125
- }
126
- savePML(modelId, pml, comment) {
127
- return this.httpService
128
- .api({
129
- method: 'put',
130
- url: `${this.SERVICE_URL}/${modelId}/pml`,
131
- body: {
132
- id: modelId,
133
- pml: pml,
134
- comment: comment,
135
- },
136
- })
137
- .pipe(map(result => {
138
- if (result.successful) {
139
- return '';
140
- }
141
- else {
142
- throw new Error(result.message);
143
- }
144
- }), catchError(this.httpService.handleValidationError));
145
- }
146
- generateProducts(modelId) {
147
- return this.httpService.api({
148
- url: `${this.SERVICE_URL}/${modelId}/generate-products`,
149
- });
150
- }
151
- saveModel(productModel, comment) {
152
- const model = EntityUtil.clone(productModel);
153
- model.comment = comment;
154
- ModelTranslatorUtils.toServerModel(model);
155
- return this.httpService
156
- .api({
157
- method: 'put',
158
- url: `${this.SERVICE_URL}/${model.id}`,
159
- body: model,
160
- })
161
- .pipe(map(result => {
162
- if (result.successful) {
163
- return '';
164
- }
165
- else {
166
- throw new Error(result.message);
167
- }
168
- }), catchError(this.httpService.handleValidationError));
169
- }
170
- validateModel(productModel) {
171
- return this.httpService
172
- .api({
173
- method: 'post',
174
- url: `${this.SERVICE_URL}/validate`,
175
- body: productModel,
176
- errorHandler: this.httpService.handleValidationError,
177
- })
178
- .pipe(map(result => {
179
- if (result.successful) {
180
- return '';
181
- }
182
- else {
183
- throw new Error(result.message);
184
- }
185
- }));
186
- }
187
- renameModel(productModel, name) {
188
- const model = EntityUtil.clone(productModel);
189
- model.name = name;
190
- ModelTranslatorUtils.toServerModel(model);
191
- return this.httpService
192
- .api({
193
- method: 'patch',
194
- url: `${this.SERVICE_URL}/${model.id}`,
195
- body: model,
196
- })
197
- .pipe(catchError(this.httpService.handleValidationError));
198
- }
199
- uploadPmlFile(file, modelId) {
200
- const formData = new FormData();
201
- formData.append('file', file, file.name);
202
- return this.httpService.upload({
203
- url: `${this.SERVICE_URL}/${modelId}/pml/upload`,
204
- body: formData,
205
- });
206
- }
207
- runPml(modelId, pml, rootType, configurationMode) {
208
- return this.httpService.api({
209
- method: 'post',
210
- url: `${this.SERVICE_URL}/${modelId}/pml/run`,
211
- body: {
212
- pml,
213
- rootType,
214
- configurationMode,
215
- },
216
- responseType: 'text',
217
- });
218
- }
219
- evictAllCache() {
220
- return this.httpService.api({
221
- method: 'get',
222
- url: '/cache/evict/environment-variables',
223
- });
224
- }
225
- }
226
- ProductModelApiService.MAX_RESULTS = 200;
227
- ProductModelApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductModelApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
228
- ProductModelApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductModelApiService });
229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ProductModelApiService, decorators: [{
230
- type: Injectable
231
- }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcHJvZHVjdC1tb2RlbC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxVQUFVLEVBRVYsb0JBQW9CLEVBQ3BCLFVBQVUsRUFHVixzQkFBc0IsR0FFdkIsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUdqRCxNQUFNLE9BQU8sc0JBQXNCO0lBS2pDLFlBQW9CLFdBQTRCO1FBQTVCLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUYvQixnQkFBVyxHQUFHLFNBQVMsQ0FBQztJQUVVLENBQUM7SUFFN0MsUUFBUSxDQUFDLEtBQW1CO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDcEIsR0FBRyxDQUFDO1lBQ0gsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDckIsSUFBSSxFQUFFLEtBQUs7WUFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUI7U0FDckQsQ0FBQzthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDWCxJQUFJLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0JBQ3JCLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7aUJBQU07Z0JBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ04sQ0FBQztJQUVNLFlBQVksQ0FBQyxLQUEw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RTtnQkFDSixHQUFHO2dCQUNILFFBQVE7Z0JBQ1IsaUJBQWlCO2FBQ2xCO1lBQ0QsWUFBWSxFQUFFLE1BQU07U0FDckIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxvQ0FBb0M7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUEzUWEsa0NBQVcsR0FBRyxHQUFHLENBQUM7b0hBRHJCLHNCQUFzQjt3SEFBdEIsc0JBQXNCOzRGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBCYXNlSHR0cFNlcnZpY2UsXG4gIEVudGl0eVV0aWwsXG4gIE1vZGVsUmVsZWFzZVJlcXVlc3QsXG4gIE1vZGVsVHJhbnNsYXRvclV0aWxzLFxuICBNb2RlbFV0aWxzLFxuICBQbWxDb25maWd1cmF0aW9uTW9kZSxcbiAgUHJvZHVjdE1vZGVsLFxuICBQcm9kdWN0TW9kZWxzQ29udGFpbmVyLFxuICBQcm9kdWN0TW9kZWxWZXJzaW9uLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IGZvcmtKb2luLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBQcm9kdWN0TW9kZWxBcGlTZXJ2aWNlIHtcbiAgcHVibGljIHN0YXRpYyBNQVhfUkVTVUxUUyA9IDIwMDtcblxuICBwcml2YXRlIHJlYWRvbmx5IFNFUlZJQ0VfVVJMID0gJy9tb2RlbHMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICBwdWJsaWMgYWRkTW9kZWwobW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiB0aGlzLlNFUlZJQ0VfVVJMLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IocmVzdWx0Lm1lc3NhZ2UpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHJlbGVhc2VNb2RlbChtb2RlbDogTW9kZWxSZWxlYXNlUmVxdWVzdCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwdXQnLFxuICAgICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWwuaWR9L3JlbGVhc2VgLFxuICAgICAgICBib2R5OiBtb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlTW9kZWwobW9kZWxJZDogc3RyaW5nLCBzdWNjZXNzRm4/OiBhbnksIGZhaWx1cmVGbj86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IG9ic2VydmFibGUgPSB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAnZGVsZXRlJyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9YCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICBvYnNlcnZhYmxlLnN1YnNjcmliZShcbiAgICAgICgpID0+IHtcbiAgICAgICAgc3VjY2Vzc0ZuICYmIHN1Y2Nlc3NGbi5hcHBseSgpO1xuICAgICAgfSxcbiAgICAgICgpID0+IHtcbiAgICAgICAgZmFpbHVyZUZuICYmIGZhaWx1cmVGbi5hcHBseSgpO1xuICAgICAgfSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldE1vZGVsVmVyc2lvbnMobW9kZWxJZDogc3RyaW5nLCBjb3VudDogbnVtYmVyID0gMTAwLCBza2lwOiBudW1iZXIgPSAwKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxWZXJzaW9uW10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vdmVyc2lvbnNgLFxuICAgICAgYm9keToge1xuICAgICAgICBza2lwQ291bnQ6IHNraXAsXG4gICAgICAgIGNvdW50OiBjb3VudCxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9kZWwoaWQ6IHN0cmluZywgdmVyc2lvbj86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsPiB7XG4gICAgbGV0IHVybCA9IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7aWR9YDtcblxuICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICB1cmwgKz0gYC92ZXJzaW9ucy8ke3ZlcnNpb259YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmwgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TW9kZWxzKHNraXBDb3VudDogbnVtYmVyLCBzZWFyY2hUZXh0OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3RNb2RlbFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9zZWFyY2hgLFxuICAgICAgYm9keToge1xuICAgICAgICBuYW1lUmVnZXg6IHNlYXJjaFRleHQsXG4gICAgICAgIHNraXBDb3VudDogc2tpcENvdW50LnRvU3RyaW5nKCksXG4gICAgICAgIGNvdW50OiBQcm9kdWN0TW9kZWxBcGlTZXJ2aWNlLk1BWF9SRVNVTFRTLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMaW5rZWRNb2RlbHMoaWQ6IHN0cmluZywgdmVyc2lvbj86IHN0cmluZyk6IE9ic2VydmFibGU8UHJvZHVjdE1vZGVsW10+IHtcbiAgICBsZXQgdXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gO1xuXG4gICAgaWYgKHZlcnNpb24pIHtcbiAgICAgIHVybCArPSBgL3ZlcnNpb25zLyR7dmVyc2lvbn1gO1xuICAgIH1cblxuICAgIHVybCArPSAnL2xpbmtlZCc7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmwgfSkucGlwZShcbiAgICAgIG1hcCgobGlua2VkTW9kZWxzOiBQcm9kdWN0TW9kZWxbXSkgPT4ge1xuICAgICAgICBpZiAobGlua2VkTW9kZWxzKSB7XG4gICAgICAgICAgbGlua2VkTW9kZWxzLmZvckVhY2gobW9kZWwgPT4gTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9Mb2NhbE1vZGVsKG1vZGVsKSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmtlZE1vZGVscztcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbG9hZChpZDogc3RyaW5nLCB2ZXJzaW9uPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxQcm9kdWN0TW9kZWxzQ29udGFpbmVyPiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKFt0aGlzLmdldE1vZGVsKGlkLCB2ZXJzaW9uKSwgdGhpcy5nZXRMaW5rZWRNb2RlbHMoaWQsIHZlcnNpb24pXSkucGlwZShcbiAgICAgIG1hcCgoW21vZGVsLCBsaW5rZWRNb2RlbHNdKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IG5ldyBQcm9kdWN0TW9kZWxzQ29udGFpbmVyKG1vZGVsLCBsaW5rZWRNb2RlbHMgPz8gW10pO1xuXG4gICAgICAgIE1vZGVsVXRpbHMub3ZlcnJpZGUoY29udGFpbmVyLm1haW4sIGNvbnRhaW5lci5saW5rZWQpO1xuICAgICAgICBNb2RlbFRyYW5zbGF0b3JVdGlscy50b0xvY2FsTW9kZWwoY29udGFpbmVyLm1haW4sIGNvbnRhaW5lci5saW5rZWQpO1xuXG4gICAgICAgIHJldHVybiBjb250YWluZXI7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldFBNTChtb2RlbElkOiBzdHJpbmcsIHZlcnNpb24/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGxldCB1cmwgPSBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbC8ke3ZlcnNpb259YDtcblxuICAgIGlmICh2ZXJzaW9uKSB7XG4gICAgICB1cmwgKz0gYC92ZXJzaW9ucy8ke3ZlcnNpb259YDtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsLFxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZVBNTChtb2RlbElkOiBzdHJpbmcsIHBtbDogc3RyaW5nLCBjb21tZW50OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsSWR9L3BtbGAsXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBpZDogbW9kZWxJZCxcbiAgICAgICAgICBwbWw6IHBtbCxcbiAgICAgICAgICBjb21tZW50OiBjb21tZW50LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVQcm9kdWN0cyhtb2RlbElkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFByb2R1Y3RNb2RlbD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vZ2VuZXJhdGUtcHJvZHVjdHNgLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNhdmVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCwgY29tbWVudDogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICBjb25zdCBtb2RlbCA9IEVudGl0eVV0aWwuY2xvbmUocHJvZHVjdE1vZGVsKTtcbiAgICBtb2RlbC5jb21tZW50ID0gY29tbWVudDtcbiAgICBNb2RlbFRyYW5zbGF0b3JVdGlscy50b1NlcnZlck1vZGVsKG1vZGVsKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsLmlkfWAsXG4gICAgICAgIGJvZHk6IG1vZGVsLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzdWx0ID0+IHtcbiAgICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3NmdWwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKHJlc3VsdC5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKHRoaXMuaHR0cFNlcnZpY2UuaGFuZGxlVmFsaWRhdGlvbkVycm9yKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGVNb2RlbChwcm9kdWN0TW9kZWw6IFByb2R1Y3RNb2RlbCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS92YWxpZGF0ZWAsXG4gICAgICAgIGJvZHk6IHByb2R1Y3RNb2RlbCxcbiAgICAgICAgZXJyb3JIYW5kbGVyOiB0aGlzLmh0dHBTZXJ2aWNlLmhhbmRsZVZhbGlkYXRpb25FcnJvcixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKHJlc3VsdCA9PiB7XG4gICAgICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzZnVsKSB7XG4gICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihyZXN1bHQubWVzc2FnZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgcmVuYW1lTW9kZWwocHJvZHVjdE1vZGVsOiBQcm9kdWN0TW9kZWwsIG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgbW9kZWwgPSBFbnRpdHlVdGlsLmNsb25lKHByb2R1Y3RNb2RlbCk7XG4gICAgbW9kZWwubmFtZSA9IG5hbWU7XG4gICAgTW9kZWxUcmFuc2xhdG9yVXRpbHMudG9TZXJ2ZXJNb2RlbChtb2RlbCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaSh7XG4gICAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke21vZGVsLmlkfWAsXG4gICAgICAgIGJvZHk6IG1vZGVsLFxuICAgICAgfSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IodGhpcy5odHRwU2VydmljZS5oYW5kbGVWYWxpZGF0aW9uRXJyb3IpKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGxvYWRQbWxGaWxlKGZpbGU6IEZpbGUsIG1vZGVsSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLnVwbG9hZCh7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7bW9kZWxJZH0vcG1sL3VwbG9hZGAsXG4gICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBydW5QbWwoXG4gICAgbW9kZWxJZDogc3RyaW5nLFxuICAgIHBtbDogc3RyaW5nLFxuICAgIHJvb3RUeXBlOiBzdHJpbmcsXG4gICAgY29uZmlndXJhdGlvbk1vZGU6IFBtbENvbmZpZ3VyYXRpb25Nb2RlLFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHttb2RlbElkfS9wbWwvcnVuYCxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgcG1sLFxuICAgICAgICByb290VHlwZSxcbiAgICAgICAgY29uZmlndXJhdGlvbk1vZGUsXG4gICAgICB9LFxuICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZXZpY3RBbGxDYWNoZSgpOiBPYnNlcnZhYmxlPHsgcmVzdWx0OiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgdXJsOiAnL2NhY2hlL2V2aWN0L2Vudmlyb25tZW50LXZhcmlhYmxlcycsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,48 +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 QuoteApiService {
5
- constructor(httpService) {
6
- this.httpService = httpService;
7
- this.SERVICE_URL = '/quotes';
8
- /**
9
- * @deprecated
10
- * Will be removed in next major release
11
- * Use `getQuoteDraft` instead
12
- */
13
- // eslint-disable-next-line @typescript-eslint/member-ordering
14
- this.getQuote = this.getQuoteDraft;
15
- }
16
- // request quoteId | accountId | opportunityId | orderId
17
- getQuoteDraft(objectId, params, errorHandler) {
18
- return this.httpService.api({
19
- method: 'get',
20
- url: `${this.SERVICE_URL}/${objectId}`,
21
- params,
22
- errorHandler,
23
- });
24
- }
25
- upsertQuote(request, options) {
26
- return this.httpService.api(Object.assign({ method: 'post', url: `${this.SERVICE_URL}`, body: request }, options));
27
- }
28
- submitQuote(request, options) {
29
- return this.httpService.api(Object.assign({ method: 'post', url: `${this.SERVICE_URL}/submit`, body: request }, options));
30
- }
31
- attachDocument(id, documentName, data) {
32
- const formData = new FormData();
33
- const blob = new Blob([data]);
34
- formData.append('file', blob, documentName);
35
- return this.httpService.upload({
36
- url: `${this.SERVICE_URL}/${id}/attach-document`,
37
- responseType: 'arraybuffer',
38
- method: 'post',
39
- body: formData,
40
- });
41
- }
42
- }
43
- QuoteApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuoteApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
44
- QuoteApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuoteApiService });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: QuoteApiService, decorators: [{
46
- type: Injectable
47
- }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVvdGUtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3NlcnZpY2VzL3F1b3RlLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU0zQyxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxTQUFTLENBQUM7UUFrQnpDOzs7O1dBSUc7UUFDSCw4REFBOEQ7UUFDdkQsYUFBUSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7SUF0QmMsQ0FBQztJQUVwRCx3REFBd0Q7SUFDakQsYUFBYSxDQUNsQixRQUFnQixFQUNoQixNQUEyQixFQUMzQixZQUFtQztRQUVuQyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxLQUFLO1lBQ2IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQUU7WUFDdEMsTUFBTTtZQUNOLFlBQVk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDO0lBVU0sV0FBVyxDQUFDLE9BQW1CLEVBQUUsT0FBd0M7UUFDOUUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsaUJBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUMxQixJQUFJLEVBQUUsT0FBTyxJQUNWLE9BQU8sRUFDVixDQUFDO0lBQ0wsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFtQixFQUFFLE9BQXdDO1FBQzlFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGlCQUN6QixNQUFNLEVBQUUsTUFBTSxFQUNkLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLFNBQVMsRUFDakMsSUFBSSxFQUFFLE9BQU8sSUFDVixPQUFPLEVBQ1YsQ0FBQztJQUNMLENBQUM7SUFFTSxjQUFjLENBQUMsRUFBVSxFQUFFLFlBQW9CLEVBQUUsSUFBUztRQUMvRCxNQUFNLFFBQVEsR0FBYSxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQzFDLE1BQU0sSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM5QixRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFFNUMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQztZQUM3QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsa0JBQWtCO1lBQ2hELFlBQVksRUFBRSxhQUFhO1lBQzNCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLFFBQVE7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDOzs2R0F4RFUsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCYXNlSHR0cFNlcnZpY2UsIEh0dHBSZXF1ZXN0Q29uZmlndXJhYmxlT3B0aW9ucywgUXVvdGVEcmFmdCB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBRdW90ZUFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNFUlZJQ0VfVVJMID0gJy9xdW90ZXMnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICAvLyByZXF1ZXN0IHF1b3RlSWQgfCBhY2NvdW50SWQgfCBvcHBvcnR1bml0eUlkIHwgb3JkZXJJZFxuICBwdWJsaWMgZ2V0UXVvdGVEcmFmdChcbiAgICBvYmplY3RJZDogc3RyaW5nLFxuICAgIHBhcmFtcz86IERpY3Rpb25hcnk8c3RyaW5nPixcbiAgICBlcnJvckhhbmRsZXI/OiAoZXJyb3I6IGFueSkgPT4gdm9pZCxcbiAgKTogT2JzZXJ2YWJsZTxRdW90ZURyYWZ0PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7b2JqZWN0SWR9YCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIGVycm9ySGFuZGxlcixcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZFxuICAgKiBXaWxsIGJlIHJlbW92ZWQgaW4gbmV4dCBtYWpvciByZWxlYXNlXG4gICAqIFVzZSBgZ2V0UXVvdGVEcmFmdGAgaW5zdGVhZFxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmdcbiAgcHVibGljIGdldFF1b3RlID0gdGhpcy5nZXRRdW90ZURyYWZ0O1xuXG4gIHB1YmxpYyB1cHNlcnRRdW90ZShyZXF1ZXN0OiBRdW90ZURyYWZ0LCBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zKTogT2JzZXJ2YWJsZTx7IHF1b3RlSWQ6IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfWAsXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJtaXRRdW90ZShyZXF1ZXN0OiBRdW90ZURyYWZ0LCBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zKTogT2JzZXJ2YWJsZTx7IHF1b3RlSWQ6IHN0cmluZyB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9zdWJtaXRgLFxuICAgICAgYm9keTogcmVxdWVzdCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgYXR0YWNoRG9jdW1lbnQoaWQ6IHN0cmluZywgZG9jdW1lbnROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIGNvbnN0IGZvcm1EYXRhOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbZGF0YV0pO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGJsb2IsIGRvY3VtZW50TmFtZSk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke2lkfS9hdHRhY2gtZG9jdW1lbnRgLFxuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,21 +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 RampApiService {
5
- constructor(httpService) {
6
- this.httpService = httpService;
7
- this.SERVICE_URL = '/ramp';
8
- }
9
- next(request, options) {
10
- return this.httpService.api(Object.assign({ method: 'post', url: `${this.SERVICE_URL}/next`, body: request }, options));
11
- }
12
- renew(request, options) {
13
- return this.httpService.api(Object.assign({ method: 'post', url: `${this.SERVICE_URL}/renew`, body: request }, options));
14
- }
15
- }
16
- RampApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RampApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
17
- RampApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RampApiService });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: RampApiService, decorators: [{
19
- type: Injectable
20
- }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFtcC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvcmFtcC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNM0MsTUFBTSxPQUFPLGNBQWM7SUFHekIsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsT0FBTyxDQUFDO0lBRVksQ0FBQztJQUU3QyxJQUFJLENBQUMsT0FBd0IsRUFBRSxPQUF3QztRQUM1RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxpQkFDekIsTUFBTSxFQUFFLE1BQU0sRUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxPQUFPLEVBQy9CLElBQUksRUFBRSxPQUFPLElBQ1YsT0FBTyxFQUNWLENBQUM7SUFDTCxDQUFDO0lBRU0sS0FBSyxDQUFDLE9BQXlCLEVBQUUsT0FBd0M7UUFDOUUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsaUJBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsUUFBUSxFQUNoQyxJQUFJLEVBQUUsT0FBTyxJQUNWLE9BQU8sRUFDVixDQUFDO0lBQ0wsQ0FBQzs7NEdBckJVLGNBQWM7Z0hBQWQsY0FBYzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBIdHRwUmVxdWVzdENvbmZpZ3VyYWJsZU9wdGlvbnMsIFByaWNlU3VtbWFyeSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTmV4dFJhbXBSZXF1ZXN0LCBSZW5ld1JhbXBSZXF1ZXN0IH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmFtcEFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNFUlZJQ0VfVVJMID0gJy9yYW1wJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5leHQocmVxdWVzdDogTmV4dFJhbXBSZXF1ZXN0LCBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zKTogT2JzZXJ2YWJsZTxQcmljZVN1bW1hcnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L25leHRgLFxuICAgICAgYm9keTogcmVxdWVzdCxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgcmVuZXcocmVxdWVzdDogUmVuZXdSYW1wUmVxdWVzdCwgb3B0aW9ucz86IEh0dHBSZXF1ZXN0Q29uZmlndXJhYmxlT3B0aW9ucyk6IE9ic2VydmFibGU8UHJpY2VTdW1tYXJ5PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9yZW5ld2AsXG4gICAgICBib2R5OiByZXF1ZXN0LFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,43 +0,0 @@
1
- import { HttpParams } from '@angular/common/http';
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@veloceapps/core";
5
- export class SalesforceApiService {
6
- constructor(httpService) {
7
- this.httpService = httpService;
8
- this.SERVICE_URL = '/proxy';
9
- }
10
- query(searchRequest, objectName, options) {
11
- return this.httpService.api(Object.assign({ method: 'post', body: Object.assign(Object.assign({}, searchRequest), { count: searchRequest.count || 100 }), url: `${this.SERVICE_URL}/query/${objectName}` }, options));
12
- }
13
- queryObjects(search, options) {
14
- let params = new HttpParams();
15
- if (search) {
16
- params = params.append('search', search);
17
- }
18
- return this.httpService.api(Object.assign({ url: `${this.SERVICE_URL}/query`, params }, options));
19
- }
20
- search(req, options) {
21
- return this.httpService.api(Object.assign({ url: `${this.SERVICE_URL}/rest/search`, params: { q: req.searchString } }, options));
22
- }
23
- describe(objectName, fieldName, options) {
24
- const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields` + (fieldName ? `/${fieldName}` : '');
25
- return this.httpService.api(Object.assign({ url: methodUrl }, options));
26
- }
27
- describe2(objectName, fields, options) {
28
- const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields`;
29
- return this.httpService.api(Object.assign({ method: 'post', url: methodUrl, body: fields }, options));
30
- }
31
- apexGetRequest(path, params, options) {
32
- return this.httpService.api(Object.assign({ url: `${this.SERVICE_URL}/apex${path}`, params }, options));
33
- }
34
- apexPostRequest(path, body, options) {
35
- return this.httpService.api(Object.assign({ method: 'post', body, url: `${this.SERVICE_URL}/apex${path}` }, options));
36
- }
37
- }
38
- SalesforceApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SalesforceApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
39
- SalesforceApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SalesforceApiService });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: SalesforceApiService, decorators: [{
41
- type: Injectable
42
- }], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FsZXNmb3JjZS1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvc2FsZXNmb3JjZS1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBVzNDLE1BQU0sT0FBTyxvQkFBb0I7SUFHL0IsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsUUFBUSxDQUFDO0lBRVcsQ0FBQztJQUU3QyxLQUFLLENBQ1YsYUFBNEIsRUFDNUIsVUFBa0IsRUFDbEIsT0FBd0M7UUFFeEMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsaUJBQ3pCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxrQ0FBTyxhQUFhLEtBQUUsS0FBSyxFQUFFLGFBQWEsQ0FBQyxLQUFLLElBQUksR0FBRyxLQUMzRCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxVQUFVLFVBQVUsRUFBRSxJQUMzQyxPQUFPLEVBQ1YsQ0FBQztJQUNMLENBQUM7SUFFTSxZQUFZLENBQUMsTUFBZSxFQUFFLE9BQXdDO1FBQzNFLElBQUksTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDOUIsSUFBSSxNQUFNLEVBQUU7WUFDVixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxpQkFDekIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsUUFBUSxFQUNoQyxNQUFNLElBQ0gsT0FBTyxFQUNWLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFBTSxDQUNYLEdBQTZCLEVBQzdCLE9BQXdDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGlCQUN6QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxjQUFjLEVBQ3RDLE1BQU0sRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLENBQUMsWUFBWSxFQUFFLElBQzVCLE9BQU8sRUFDVixDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVEsQ0FDYixVQUFrQixFQUNsQixTQUFrQixFQUNsQixPQUF3QztRQUV4QyxNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLGFBQWEsVUFBVSxTQUFTLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNHLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGlCQUFHLEdBQUcsRUFBRSxTQUFTLElBQUssT0FBTyxFQUFHLENBQUM7SUFDOUQsQ0FBQztJQUVNLFNBQVMsQ0FBSSxVQUFrQixFQUFFLE1BQWdCLEVBQUUsT0FBd0M7UUFDaEcsTUFBTSxTQUFTLEdBQUcsR0FBRyxJQUFJLENBQUMsV0FBVyxhQUFhLFVBQVUsU0FBUyxDQUFDO1FBRXRFLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGlCQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxJQUFLLE9BQU8sRUFBRyxDQUFDO0lBQzVGLENBQUM7SUFFTSxjQUFjLENBQUksSUFBWSxFQUFFLE1BQWtCLEVBQUUsT0FBd0M7UUFDakcsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsaUJBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUssT0FBTyxFQUFHLENBQUM7SUFDOUYsQ0FBQztJQUVNLGVBQWUsQ0FBTyxJQUFZLEVBQUUsSUFBTyxFQUFFLE9BQXdDO1FBQzFGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGlCQUN6QixNQUFNLEVBQUUsTUFBTSxFQUNkLElBQUksRUFDSixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxRQUFRLElBQUksRUFBRSxJQUNuQyxPQUFPLEVBQ1YsQ0FBQztJQUNMLENBQUM7O2tIQXJFVSxvQkFBb0I7c0hBQXBCLG9CQUFvQjs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhc2VIdHRwU2VydmljZSxcbiAgSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zLFxuICBTYWxlc2ZvcmNlRmllbGQsXG4gIFNhbGVzZm9yY2VPYmplY3QsXG4gIFNlYXJjaFJlcXVlc3QsXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2FsZXNmb3JjZUFwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IFNFUlZJQ0VfVVJMID0gJy9wcm94eSc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwU2VydmljZTogQmFzZUh0dHBTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBxdWVyeTxUPihcbiAgICBzZWFyY2hSZXF1ZXN0OiBTZWFyY2hSZXF1ZXN0LFxuICAgIG9iamVjdE5hbWU6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICBtZXRob2Q6ICdwb3N0JyxcbiAgICAgIGJvZHk6IHsgLi4uc2VhcmNoUmVxdWVzdCwgY291bnQ6IHNlYXJjaFJlcXVlc3QuY291bnQgfHwgMTAwIH0sXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3F1ZXJ5LyR7b2JqZWN0TmFtZX1gLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBxdWVyeU9iamVjdHMoc2VhcmNoPzogc3RyaW5nLCBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zKTogT2JzZXJ2YWJsZTxTYWxlc2ZvcmNlT2JqZWN0W10+IHtcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKTtcbiAgICBpZiAoc2VhcmNoKSB7XG4gICAgICBwYXJhbXMgPSBwYXJhbXMuYXBwZW5kKCdzZWFyY2gnLCBzZWFyY2gpO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3F1ZXJ5YCxcbiAgICAgIHBhcmFtcyxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoPFQgPSBhbnk+KFxuICAgIHJlcTogeyBzZWFyY2hTdHJpbmc6IHN0cmluZyB9LFxuICAgIG9wdGlvbnM/OiBIdHRwUmVxdWVzdENvbmZpZ3VyYWJsZU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8eyBzZWFyY2hSZWNvcmRzOiBUW10gfT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L3Jlc3Qvc2VhcmNoYCxcbiAgICAgIHBhcmFtczogeyBxOiByZXEuc2VhcmNoU3RyaW5nIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGRlc2NyaWJlKFxuICAgIG9iamVjdE5hbWU6IHN0cmluZyxcbiAgICBmaWVsZE5hbWU/OiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEh0dHBSZXF1ZXN0Q29uZmlndXJhYmxlT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxTYWxlc2ZvcmNlRmllbGRbXT4ge1xuICAgIGNvbnN0IG1ldGhvZFVybCA9IGAke3RoaXMuU0VSVklDRV9VUkx9L2Rlc2NyaWJlLyR7b2JqZWN0TmFtZX0vZmllbGRzYCArIChmaWVsZE5hbWUgPyBgLyR7ZmllbGROYW1lfWAgOiAnJyk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmw6IG1ldGhvZFVybCwgLi4ub3B0aW9ucyB9KTtcbiAgfVxuXG4gIHB1YmxpYyBkZXNjcmliZTI8VD4ob2JqZWN0TmFtZTogc3RyaW5nLCBmaWVsZHM6IHN0cmluZ1tdLCBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgbWV0aG9kVXJsID0gYCR7dGhpcy5TRVJWSUNFX1VSTH0vZGVzY3JpYmUvJHtvYmplY3ROYW1lfS9maWVsZHNgO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHsgbWV0aG9kOiAncG9zdCcsIHVybDogbWV0aG9kVXJsLCBib2R5OiBmaWVsZHMsIC4uLm9wdGlvbnMgfSk7XG4gIH1cblxuICBwdWJsaWMgYXBleEdldFJlcXVlc3Q8VD4ocGF0aDogc3RyaW5nLCBwYXJhbXM6IEh0dHBQYXJhbXMsIG9wdGlvbnM/OiBIdHRwUmVxdWVzdENvbmZpZ3VyYWJsZU9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoeyB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9L2FwZXgke3BhdGh9YCwgcGFyYW1zLCAuLi5vcHRpb25zIH0pO1xuICB9XG5cbiAgcHVibGljIGFwZXhQb3N0UmVxdWVzdDxULCBTPihwYXRoOiBzdHJpbmcsIGJvZHk6IFMsIG9wdGlvbnM/OiBIdHRwUmVxdWVzdENvbmZpZ3VyYWJsZU9wdGlvbnMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5LFxuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9hcGV4JHtwYXRofWAsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,28 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { parseJsonSafely } from '@veloceapps/core';
3
- import { map } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./configuration-settings-api.service";
6
- export class ShoppingCartSettingsApiService {
7
- constructor(configurationSettingsApiService) {
8
- this.configurationSettingsApiService = configurationSettingsApiService;
9
- this.shoppingCartSettingsKey = 'shopping-cart';
10
- }
11
- getSetting(id) {
12
- return this.fetchSettings().pipe(map((settings) => parseJsonSafely(settings === null || settings === void 0 ? void 0 : settings.value, [])), map(settings => settings.find(setting => setting.id == id)));
13
- }
14
- fetchSettings() {
15
- return this.configurationSettingsApiService.fetchSetting(this.shoppingCartSettingsKey, { skipErrorHandler: true });
16
- }
17
- getSettingsMap() {
18
- return this.fetchSettings().pipe(map((settings) => parseJsonSafely(settings === null || settings === void 0 ? void 0 : settings.value, [])), map((settings) => settings.reduce((acc, setting) => {
19
- return Object.assign(Object.assign({}, acc), { [setting.id]: setting.properties });
20
- }, {})));
21
- }
22
- }
23
- ShoppingCartSettingsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ShoppingCartSettingsApiService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
24
- ShoppingCartSettingsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ShoppingCartSettingsApiService });
25
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ShoppingCartSettingsApiService, decorators: [{
26
- type: Injectable
27
- }], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hvcHBpbmctY2FydC1zZXR0aW5ncy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvc2hvcHBpbmctY2FydC1zZXR0aW5ncy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBeUIsZUFBZSxFQUE2QyxNQUFNLGtCQUFrQixDQUFDO0FBRXJILE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBSXJDLE1BQU0sT0FBTyw4QkFBOEI7SUFHekMsWUFBb0IsK0JBQWdFO1FBQWhFLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFGbkUsNEJBQXVCLEdBQUcsZUFBZSxDQUFDO0lBRTRCLENBQUM7SUFFakYsVUFBVSxDQUFDLEVBQVU7UUFDMUIsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUM5QixHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQXlCLEVBQUUsQ0FBQyxlQUFlLENBQXdCLFFBQVEsYUFBUixRQUFRLHVCQUFSLFFBQVEsQ0FBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFDckcsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FDNUQsQ0FBQztJQUNKLENBQUM7SUFFTSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLCtCQUErQixDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3JILENBQUM7SUFFTSxjQUFjO1FBQ25CLE9BQU8sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FDOUIsR0FBRyxDQUFDLENBQUMsUUFBc0MsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUF3QixRQUFRLGFBQVIsUUFBUSx1QkFBUixRQUFRLENBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQzVHLEdBQUcsQ0FBQyxDQUFDLFFBQStCLEVBQUUsRUFBRSxDQUN0QyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQy9CLHVDQUFZLEdBQUcsS0FBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsRUFBRSxPQUFPLENBQUMsVUFBVSxJQUFHO1FBQ3RELENBQUMsRUFBRSxFQUEwQixDQUFDLENBQy9CLENBQ0YsQ0FBQztJQUNKLENBQUM7OzRIQXpCVSw4QkFBOEI7Z0lBQTlCLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlndXJhdGlvblNldHRpbmdzLCBwYXJzZUpzb25TYWZlbHksIFNob3BwaW5nQ2FydFNldHRpbmcsIFNob3BwaW5nQ2FydFNldHRpbmdzIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXNldHRpbmdzLWFwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNob3BwaW5nQ2FydFNldHRpbmdzQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2hvcHBpbmdDYXJ0U2V0dGluZ3NLZXkgPSAnc2hvcHBpbmctY2FydCc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlOiBDb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyBnZXRTZXR0aW5nKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFNob3BwaW5nQ2FydFNldHRpbmcgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5mZXRjaFNldHRpbmdzKCkucGlwZShcbiAgICAgIG1hcCgoc2V0dGluZ3MpOiBTaG9wcGluZ0NhcnRTZXR0aW5nW10gPT4gcGFyc2VKc29uU2FmZWx5PFNob3BwaW5nQ2FydFNldHRpbmdbXT4oc2V0dGluZ3M/LnZhbHVlLCBbXSkpLFxuICAgICAgbWFwKHNldHRpbmdzID0+IHNldHRpbmdzLmZpbmQoc2V0dGluZyA9PiBzZXR0aW5nLmlkID09IGlkKSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmZXRjaFNldHRpbmdzKCk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvblNldHRpbmdzIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLmNvbmZpZ3VyYXRpb25TZXR0aW5nc0FwaVNlcnZpY2UuZmV0Y2hTZXR0aW5nKHRoaXMuc2hvcHBpbmdDYXJ0U2V0dGluZ3NLZXksIHsgc2tpcEVycm9ySGFuZGxlcjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTZXR0aW5nc01hcCgpOiBPYnNlcnZhYmxlPFNob3BwaW5nQ2FydFNldHRpbmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hTZXR0aW5ncygpLnBpcGUoXG4gICAgICBtYXAoKHNldHRpbmdzOiBDb25maWd1cmF0aW9uU2V0dGluZ3MgfCBudWxsKSA9PiBwYXJzZUpzb25TYWZlbHk8U2hvcHBpbmdDYXJ0U2V0dGluZ1tdPihzZXR0aW5ncz8udmFsdWUsIFtdKSksXG4gICAgICBtYXAoKHNldHRpbmdzOiBTaG9wcGluZ0NhcnRTZXR0aW5nW10pID0+XG4gICAgICAgIHNldHRpbmdzLnJlZHVjZSgoYWNjLCBzZXR0aW5nKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCBbc2V0dGluZy5pZF06IHNldHRpbmcucHJvcGVydGllcyB9O1xuICAgICAgICB9LCB7fSBhcyBTaG9wcGluZ0NhcnRTZXR0aW5ncyksXG4gICAgICApLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==