@veloceapps/api 4.0.21-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/bundles/veloceapps-api.umd.js +2950 -0
- package/bundles/veloceapps-api.umd.js.map +1 -0
- package/esm2015/index.js +25 -0
- package/esm2015/lib/api.module.js +89 -0
- package/esm2015/lib/services/account-api.service.js +50 -0
- package/esm2015/lib/services/catalog-admin-api.service.js +159 -0
- package/esm2015/lib/services/catalog-api.service.js +90 -0
- package/esm2015/lib/services/configuration-api.service.js +73 -0
- package/esm2015/lib/services/configuration-settings-api.service.js +52 -0
- package/esm2015/lib/services/context-api.service.js +26 -0
- package/esm2015/lib/services/delta-api.service.js +27 -0
- package/esm2015/lib/services/document-attachment-api.service.js +66 -0
- package/esm2015/lib/services/document-templates-api.service.js +284 -0
- package/esm2015/lib/services/flows-api.service.js +24 -0
- package/esm2015/lib/services/picklists-api.service.js +38 -0
- package/esm2015/lib/services/price-api.service.js +63 -0
- package/esm2015/lib/services/procedures-api.service.js +93 -0
- package/esm2015/lib/services/product-api.service.js +153 -0
- package/esm2015/lib/services/product-model-api.service.js +232 -0
- package/esm2015/lib/services/quote-api.service.js +48 -0
- package/esm2015/lib/services/ramp-api.service.js +21 -0
- package/esm2015/lib/services/rule-groups-api.service.js +62 -0
- package/esm2015/lib/services/rules-api.service.js +81 -0
- package/esm2015/lib/services/salesforce-api.service.js +40 -0
- package/esm2015/lib/services/scripts-api.service.js +76 -0
- package/esm2015/lib/services/ui-templates-api.service.js +282 -0
- package/esm2015/lib/types/clone-request.types.js +2 -0
- package/esm2015/lib/types/delta-request.types.js +2 -0
- package/esm2015/lib/types/dto/attribute-dto.types.js +21 -0
- package/esm2015/lib/types/dto/charge-group-item-dto.types.js +49 -0
- package/esm2015/lib/types/dto/charge-item-dto.types.js +78 -0
- package/esm2015/lib/types/dto/configuration-dto.types.js +19 -0
- package/esm2015/lib/types/dto/configuration-settings-dto.types.js +22 -0
- package/esm2015/lib/types/dto/domain-type-dto.types.js +27 -0
- package/esm2015/lib/types/dto/line-item-dto.types.js +103 -0
- package/esm2015/lib/types/dto/port-domain-dto.types.js +22 -0
- package/esm2015/lib/types/dto/price-adjustment-dto.types.js +15 -0
- package/esm2015/lib/types/dto/price-dto.types.js +25 -0
- package/esm2015/lib/types/dto/recommended-price-dto.types.js +25 -0
- package/esm2015/lib/types/dto/ui-template-dto.types.js +2 -0
- package/esm2015/lib/types/index.js +5 -0
- package/esm2015/lib/types/price.types.js +2 -0
- package/esm2015/lib/types/ramp-request.types.js +2 -0
- package/esm2015/lib/types/search-request.types.js +2 -0
- package/esm2015/lib/utils/ui-template.utils.js +13 -0
- package/esm2015/veloceapps-api.js +5 -0
- package/fesm2015/veloceapps-api.js +2420 -0
- package/fesm2015/veloceapps-api.js.map +1 -0
- package/index.d.ts +24 -0
- package/lib/api.module.d.ts +7 -0
- package/lib/services/account-api.service.d.ts +22 -0
- package/lib/services/catalog-admin-api.service.d.ts +34 -0
- package/lib/services/catalog-api.service.d.ts +20 -0
- package/lib/services/configuration-api.service.d.ts +18 -0
- package/lib/services/configuration-settings-api.service.d.ts +17 -0
- package/lib/services/context-api.service.d.ts +11 -0
- package/lib/services/delta-api.service.d.ts +12 -0
- package/lib/services/document-attachment-api.service.d.ts +16 -0
- package/lib/services/document-templates-api.service.d.ts +47 -0
- package/lib/services/flows-api.service.d.ts +13 -0
- package/lib/services/picklists-api.service.d.ts +17 -0
- package/lib/services/price-api.service.d.ts +16 -0
- package/lib/services/procedures-api.service.d.ts +27 -0
- package/lib/services/product-api.service.d.ts +31 -0
- package/lib/services/product-model-api.service.d.ts +30 -0
- package/lib/services/quote-api.service.d.ts +25 -0
- package/lib/services/ramp-api.service.d.ts +13 -0
- package/lib/services/rule-groups-api.service.d.ts +18 -0
- package/lib/services/rules-api.service.d.ts +21 -0
- package/lib/services/salesforce-api.service.d.ts +17 -0
- package/lib/services/scripts-api.service.d.ts +21 -0
- package/lib/services/ui-templates-api.service.d.ts +49 -0
- package/lib/types/clone-request.types.d.ts +5 -0
- package/lib/types/delta-request.types.d.ts +5 -0
- package/lib/types/dto/attribute-dto.types.d.ts +11 -0
- package/lib/types/dto/charge-group-item-dto.types.d.ts +26 -0
- package/lib/types/dto/charge-item-dto.types.d.ts +41 -0
- package/lib/types/dto/configuration-dto.types.d.ts +18 -0
- package/lib/types/dto/configuration-settings-dto.types.d.ts +9 -0
- package/lib/types/dto/domain-type-dto.types.d.ts +15 -0
- package/lib/types/dto/line-item-dto.types.d.ts +55 -0
- package/lib/types/dto/port-domain-dto.types.d.ts +13 -0
- package/lib/types/dto/price-adjustment-dto.types.d.ts +8 -0
- package/lib/types/dto/price-dto.types.d.ts +13 -0
- package/lib/types/dto/recommended-price-dto.types.d.ts +14 -0
- package/lib/types/dto/ui-template-dto.types.d.ts +6 -0
- package/lib/types/index.d.ts +4 -0
- package/lib/types/price.types.d.ts +5 -0
- package/lib/types/ramp-request.types.d.ts +13 -0
- package/lib/types/search-request.types.d.ts +8 -0
- package/lib/utils/ui-template.utils.d.ts +3 -0
- package/package.json +37 -0
- package/veloceapps-api.d.ts +5 -0
@@ -0,0 +1,52 @@
|
|
1
|
+
import { HttpErrorResponse } from '@angular/common/http';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { of } from 'rxjs';
|
4
|
+
import { catchError, map } from 'rxjs/operators';
|
5
|
+
import { ConfigurationSettingsDTO } from '../types/dto/configuration-settings-dto.types';
|
6
|
+
import * as i0 from "@angular/core";
|
7
|
+
import * as i1 from "@veloceapps/core";
|
8
|
+
export class ConfigurationSettingsApiService {
|
9
|
+
constructor(httpService) {
|
10
|
+
this.httpService = httpService;
|
11
|
+
this.SERVICE_URL = '/configuration-settings';
|
12
|
+
}
|
13
|
+
fetchSettings(options) {
|
14
|
+
return this.httpService
|
15
|
+
.api(Object.assign({ url: `${this.SERVICE_URL}`, method: 'get' }, options))
|
16
|
+
.pipe(map((settings) => settings.map(setting => ConfigurationSettingsDTO.fromDTO(setting))));
|
17
|
+
}
|
18
|
+
fetchSetting(settingsKey, options) {
|
19
|
+
return this.httpService
|
20
|
+
.api(Object.assign({ url: `${this.SERVICE_URL}/byKey/${settingsKey}`, method: 'get' }, options))
|
21
|
+
.pipe(map((setting) => ConfigurationSettingsDTO.fromDTO(setting, settingsKey)), catchError(err => {
|
22
|
+
if (err instanceof HttpErrorResponse && err.status === 404) {
|
23
|
+
return of(null);
|
24
|
+
}
|
25
|
+
throw err;
|
26
|
+
}));
|
27
|
+
}
|
28
|
+
createSetting(setting, options) {
|
29
|
+
const request = ConfigurationSettingsDTO.toDTO(setting);
|
30
|
+
return this.httpService.api(Object.assign({ url: `${this.SERVICE_URL}`, method: 'post', body: Object.assign({}, request) }, options));
|
31
|
+
}
|
32
|
+
updateSetting(setting, options) {
|
33
|
+
const request = ConfigurationSettingsDTO.toDTO(setting);
|
34
|
+
return this.httpService.api(Object.assign({ url: `${this.SERVICE_URL}/${request.id}`, method: 'put', body: Object.assign({}, request) }, options));
|
35
|
+
}
|
36
|
+
removeSetting(setting, options) {
|
37
|
+
const request = ConfigurationSettingsDTO.toDTO(setting);
|
38
|
+
return this.httpService.api(Object.assign({ url: `${this.SERVICE_URL}/${request.id}`, method: 'delete' }, options));
|
39
|
+
}
|
40
|
+
restoreSetting(settingId, options) {
|
41
|
+
return this.httpService.api(Object.assign({ url: `${this.SERVICE_URL}/${settingId}/restore`, method: 'patch' }, options));
|
42
|
+
}
|
43
|
+
clear(name, options) {
|
44
|
+
return this.httpService.api(Object.assign({ method: 'get', url: '/cache/evict/' + name }, options));
|
45
|
+
}
|
46
|
+
}
|
47
|
+
ConfigurationSettingsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfigurationSettingsApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
48
|
+
ConfigurationSettingsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfigurationSettingsApiService });
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ConfigurationSettingsApiService, decorators: [{
|
50
|
+
type: Injectable
|
51
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlndXJhdGlvbi1zZXR0aW5ncy1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvY29uZmlndXJhdGlvbi1zZXR0aW5ncy1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBTzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7O0FBR3pGLE1BQU0sT0FBTywrQkFBK0I7SUFHMUMsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcseUJBQXlCLENBQUM7SUFFTixDQUFDO0lBRXBELGFBQWEsQ0FBQyxPQUF3QztRQUNwRCxPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLEdBQUcsaUJBQ0YsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUMxQixNQUFNLEVBQUUsS0FBSyxJQUNWLE9BQU8sRUFDVjthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxRQUFvQyxFQUFFLEVBQUUsQ0FDM0MsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNuRSxDQUNGLENBQUM7SUFDTixDQUFDO0lBRUQsWUFBWSxDQUNWLFdBQW1CLEVBQ25CLE9BQXdDO1FBRXhDLE9BQU8sSUFBSSxDQUFDLFdBQVc7YUFDcEIsR0FBRyxpQkFDRixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxVQUFVLFdBQVcsRUFBRSxFQUMvQyxNQUFNLEVBQUUsS0FBSyxJQUNWLE9BQU8sRUFDVjthQUNELElBQUksQ0FDSCxHQUFHLENBQUMsQ0FBQyxPQUFpQyxFQUFFLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDLEVBQ2xHLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksR0FBRyxZQUFZLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUMxRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNqQjtZQUVELE1BQU0sR0FBRyxDQUFDO1FBQ1osQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhLENBQ1gsT0FBOEIsRUFDOUIsT0FBd0M7UUFFeEMsTUFBTSxPQUFPLEdBQUcsd0JBQXdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLGlCQUN6QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQzFCLE1BQU0sRUFBRSxNQUFNLEVBQ2QsSUFBSSxvQkFDQyxPQUFPLEtBRVQsT0FBTyxFQUNWLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUNYLE9BQThCLEVBQzlCLE9BQXdDO1FBRXhDLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxpQkFDekIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQ3hDLE1BQU0sRUFBRSxLQUFLLEVBQ2IsSUFBSSxvQkFDQyxPQUFPLEtBRVQsT0FBTyxFQUNWLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUNYLE9BQThCLEVBQzlCLE9BQXdDO1FBRXhDLE1BQU0sT0FBTyxHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxpQkFDekIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQ3hDLE1BQU0sRUFBRSxRQUFRLElBQ2IsT0FBTyxFQUNWLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYyxDQUFDLFNBQWlCLEVBQUUsT0FBd0M7UUFDeEUsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsaUJBQ3pCLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxVQUFVLEVBQy9DLE1BQU0sRUFBRSxPQUFPLElBQ1osT0FBTyxFQUNWLENBQUM7SUFDTCxDQUFDO0lBRUQsS0FBSyxDQUFDLElBQTZCLEVBQUUsT0FBd0M7UUFDM0UsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsaUJBQ3pCLE1BQU0sRUFBRSxLQUFLLEVBQ2IsR0FBRyxFQUFFLGVBQWUsR0FBRyxJQUFJLElBQ3hCLE9BQU8sRUFDVixDQUFDO0lBQ0wsQ0FBQzs7NkhBcEdVLCtCQUErQjtpSUFBL0IsK0JBQStCOzRGQUEvQiwrQkFBK0I7a0JBRDNDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEJhc2VIdHRwU2VydmljZSxcbiAgQ29uZmlndXJhdGlvblNldHRpbmdzLFxuICBEYXRhQWRtaW5pc3RyYXRpb25GaWVsZCxcbiAgSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zLFxufSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2V0dGluZ3NEVE8gfSBmcm9tICcuLi90eXBlcy9kdG8vY29uZmlndXJhdGlvbi1zZXR0aW5ncy1kdG8udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkwgPSAnL2NvbmZpZ3VyYXRpb24tc2V0dGluZ3MnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICBmZXRjaFNldHRpbmdzKG9wdGlvbnM/OiBIdHRwUmVxdWVzdENvbmZpZ3VyYWJsZU9wdGlvbnMpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25TZXR0aW5nc1tdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2VcbiAgICAgIC5hcGk8Q29uZmlndXJhdGlvblNldHRpbmdzRFRPW10+KHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfWAsXG4gICAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoc2V0dGluZ3M6IENvbmZpZ3VyYXRpb25TZXR0aW5nc0RUT1tdKSA9PlxuICAgICAgICAgIHNldHRpbmdzLm1hcChzZXR0aW5nID0+IENvbmZpZ3VyYXRpb25TZXR0aW5nc0RUTy5mcm9tRFRPKHNldHRpbmcpKSxcbiAgICAgICAgKSxcbiAgICAgICk7XG4gIH1cblxuICBmZXRjaFNldHRpbmcoXG4gICAgc2V0dGluZ3NLZXk6IHN0cmluZyxcbiAgICBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zLFxuICApOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb25TZXR0aW5ncyB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZVxuICAgICAgLmFwaTxDb25maWd1cmF0aW9uU2V0dGluZ3NEVE8+KHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9ieUtleS8ke3NldHRpbmdzS2V5fWAsXG4gICAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgoc2V0dGluZzogQ29uZmlndXJhdGlvblNldHRpbmdzRFRPKSA9PiBDb25maWd1cmF0aW9uU2V0dGluZ3NEVE8uZnJvbURUTyhzZXR0aW5nLCBzZXR0aW5nc0tleSkpLFxuICAgICAgICBjYXRjaEVycm9yKGVyciA9PiB7XG4gICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlICYmIGVyci5zdGF0dXMgPT09IDQwNCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgfSksXG4gICAgICApO1xuICB9XG5cbiAgY3JlYXRlU2V0dGluZyhcbiAgICBzZXR0aW5nOiBDb25maWd1cmF0aW9uU2V0dGluZ3MsXG4gICAgb3B0aW9ucz86IEh0dHBSZXF1ZXN0Q29uZmlndXJhYmxlT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uU2V0dGluZ3M+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ29uZmlndXJhdGlvblNldHRpbmdzRFRPLnRvRFRPKHNldHRpbmcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH1gLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIC4uLnJlcXVlc3QsXG4gICAgICB9LFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHVwZGF0ZVNldHRpbmcoXG4gICAgc2V0dGluZzogQ29uZmlndXJhdGlvblNldHRpbmdzLFxuICAgIG9wdGlvbnM/OiBIdHRwUmVxdWVzdENvbmZpZ3VyYWJsZU9wdGlvbnMsXG4gICk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvblNldHRpbmdzPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IENvbmZpZ3VyYXRpb25TZXR0aW5nc0RUTy50b0RUTyhzZXR0aW5nKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7cmVxdWVzdC5pZH1gLFxuICAgICAgbWV0aG9kOiAncHV0JyxcbiAgICAgIGJvZHk6IHtcbiAgICAgICAgLi4ucmVxdWVzdCxcbiAgICAgIH0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG5cbiAgcmVtb3ZlU2V0dGluZyhcbiAgICBzZXR0aW5nOiBDb25maWd1cmF0aW9uU2V0dGluZ3MsXG4gICAgb3B0aW9ucz86IEh0dHBSZXF1ZXN0Q29uZmlndXJhYmxlT3B0aW9ucyxcbiAgKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uU2V0dGluZ3M+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gQ29uZmlndXJhdGlvblNldHRpbmdzRFRPLnRvRFRPKHNldHRpbmcpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtyZXF1ZXN0LmlkfWAsXG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIHJlc3RvcmVTZXR0aW5nKHNldHRpbmdJZDogc3RyaW5nLCBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zKSB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtzZXR0aW5nSWR9L3Jlc3RvcmVgLFxuICAgICAgbWV0aG9kOiAncGF0Y2gnLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyKG5hbWU6IERhdGFBZG1pbmlzdHJhdGlvbkZpZWxkLCBvcHRpb25zPzogSHR0cFJlcXVlc3RDb25maWd1cmFibGVPcHRpb25zKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgICB1cmw6ICcvY2FjaGUvZXZpY3QvJyArIG5hbWUsXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,26 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { ConfigurationContextMode } from '@veloceapps/core';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@veloceapps/core";
|
5
|
+
export class ContextApiService {
|
6
|
+
constructor(httpService) {
|
7
|
+
this.httpService = httpService;
|
8
|
+
this.SERVICE_URL = '/context';
|
9
|
+
}
|
10
|
+
getContext(headerId, mode) {
|
11
|
+
return this.httpService.api({
|
12
|
+
method: 'post',
|
13
|
+
body: {
|
14
|
+
headerId: headerId,
|
15
|
+
contextMode: ConfigurationContextMode[mode],
|
16
|
+
},
|
17
|
+
url: `${this.SERVICE_URL}`,
|
18
|
+
});
|
19
|
+
}
|
20
|
+
}
|
21
|
+
ContextApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ContextApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
22
|
+
ContextApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ContextApiService });
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: ContextApiService, decorators: [{
|
24
|
+
type: Injectable
|
25
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvY29udGV4dC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBeUMsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBSW5HLE1BQU0sT0FBTyxpQkFBaUI7SUFHNUIsWUFBb0IsV0FBNEI7UUFBNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWlCO1FBRi9CLGdCQUFXLEdBQUcsVUFBVSxDQUFDO0lBRVMsQ0FBQztJQUVwRCxVQUFVLENBQUMsUUFBZ0IsRUFBRSxJQUE4QjtRQUN6RCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDO1lBQzFCLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxRQUFRO2dCQUNsQixXQUFXLEVBQUUsd0JBQXdCLENBQUMsSUFBSSxDQUFDO2FBQzVDO1lBQ0QsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtTQUMzQixDQUFDLENBQUM7SUFDTCxDQUFDOzsrR0FkVSxpQkFBaUI7bUhBQWpCLGlCQUFpQjs0RkFBakIsaUJBQWlCO2tCQUQ3QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBDb25maWd1cmF0aW9uQ29udGV4dCwgQ29uZmlndXJhdGlvbkNvbnRleHRNb2RlIH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb250ZXh0QXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkwgPSAnL2NvbnRleHQnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICBnZXRDb250ZXh0KGhlYWRlcklkOiBzdHJpbmcsIG1vZGU6IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZSk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbkNvbnRleHQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIGhlYWRlcklkOiBoZWFkZXJJZCxcbiAgICAgICAgY29udGV4dE1vZGU6IENvbmZpZ3VyYXRpb25Db250ZXh0TW9kZVttb2RlXSxcbiAgICAgIH0sXG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9YCxcbiAgICB9KTtcbiAgfVxufVxuIl19
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { map } from 'rxjs';
|
3
|
+
import { LineItemDTO } from '../types/dto/line-item-dto.types';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@veloceapps/core";
|
6
|
+
export class DeltaApiService {
|
7
|
+
constructor(httpService) {
|
8
|
+
this.httpService = httpService;
|
9
|
+
this.SERVICE_URL = '/delta';
|
10
|
+
}
|
11
|
+
calculate$(request) {
|
12
|
+
return this.httpService
|
13
|
+
.api({
|
14
|
+
method: 'post',
|
15
|
+
url: `${this.SERVICE_URL}/calculate`,
|
16
|
+
body: request,
|
17
|
+
skipErrorHandler: true,
|
18
|
+
})
|
19
|
+
.pipe(map(dtos => dtos.map(dto => LineItemDTO.fromDTO(dto))));
|
20
|
+
}
|
21
|
+
}
|
22
|
+
DeltaApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DeltaApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
23
|
+
DeltaApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DeltaApiService });
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DeltaApiService, decorators: [{
|
25
|
+
type: Injectable
|
26
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsdGEtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3NlcnZpY2VzL2RlbHRhLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUV2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7OztBQUcvRCxNQUFNLE9BQU8sZUFBZTtJQUcxQixZQUFvQixXQUE0QjtRQUE1QixnQkFBVyxHQUFYLFdBQVcsQ0FBaUI7UUFGL0IsZ0JBQVcsR0FBRyxRQUFRLENBQUM7SUFFVyxDQUFDO0lBRXBELFVBQVUsQ0FBQyxPQUE4QjtRQUN2QyxPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLEdBQUcsQ0FBZ0I7WUFDbEIsTUFBTSxFQUFFLE1BQU07WUFDZCxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxZQUFZO1lBQ3BDLElBQUksRUFBRSxPQUFPO1lBQ2IsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFDO2FBQ0QsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7OzZHQWRVLGVBQWU7aUhBQWYsZUFBZTs0RkFBZixlQUFlO2tCQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBMaW5lSXRlbSB9IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDYWxjdWxhdGVEZWx0YVJlcXVlc3QgfSBmcm9tICcuLi90eXBlcy9kZWx0YS1yZXF1ZXN0LnR5cGVzJztcbmltcG9ydCB7IExpbmVJdGVtRFRPIH0gZnJvbSAnLi4vdHlwZXMvZHRvL2xpbmUtaXRlbS1kdG8udHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVsdGFBcGlTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBTRVJWSUNFX1VSTCA9ICcvZGVsdGEnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cFNlcnZpY2U6IEJhc2VIdHRwU2VydmljZSkge31cblxuICBjYWxjdWxhdGUkKHJlcXVlc3Q6IENhbGN1bGF0ZURlbHRhUmVxdWVzdCk6IE9ic2VydmFibGU8TGluZUl0ZW1bXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpPExpbmVJdGVtRFRPW10+KHtcbiAgICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vY2FsY3VsYXRlYCxcbiAgICAgICAgYm9keTogcmVxdWVzdCxcbiAgICAgICAgc2tpcEVycm9ySGFuZGxlcjogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAucGlwZShtYXAoZHRvcyA9PiBkdG9zLm1hcChkdG8gPT4gTGluZUl0ZW1EVE8uZnJvbURUTyhkdG8pKSkpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,66 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { map, tap } from 'rxjs/operators';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "@veloceapps/core";
|
5
|
+
export class DocumentAttachmentApiService {
|
6
|
+
constructor(httpService, fileDownloadService) {
|
7
|
+
this.httpService = httpService;
|
8
|
+
this.fileDownloadService = fileDownloadService;
|
9
|
+
this.SERVICE_URL = '/attachments';
|
10
|
+
}
|
11
|
+
getAttachments(searchRequest) {
|
12
|
+
return this.httpService.api({
|
13
|
+
url: `${this.SERVICE_URL}/search`,
|
14
|
+
method: 'post',
|
15
|
+
body: searchRequest,
|
16
|
+
});
|
17
|
+
}
|
18
|
+
createAttachment(attachment, file, reportProgress) {
|
19
|
+
const formData = new FormData();
|
20
|
+
if (file) {
|
21
|
+
formData.append('file', file, file.name);
|
22
|
+
}
|
23
|
+
formData.append('attachment', new Blob([JSON.stringify(attachment)], {
|
24
|
+
type: 'application/json',
|
25
|
+
}));
|
26
|
+
return this.httpService.upload({
|
27
|
+
url: `${this.SERVICE_URL}`,
|
28
|
+
body: formData,
|
29
|
+
method: 'post',
|
30
|
+
observe: reportProgress ? 'events' : undefined,
|
31
|
+
reportProgress,
|
32
|
+
});
|
33
|
+
}
|
34
|
+
updateAttachment(id, attachment) {
|
35
|
+
return this.httpService.api({
|
36
|
+
url: `${this.SERVICE_URL}/${id}`,
|
37
|
+
body: attachment,
|
38
|
+
method: 'put',
|
39
|
+
});
|
40
|
+
}
|
41
|
+
getAttachmentFile(id, isPreventDownload) {
|
42
|
+
return this.httpService
|
43
|
+
.api({
|
44
|
+
url: `${this.SERVICE_URL}/${id}/file`,
|
45
|
+
responseType: isPreventDownload ? 'arraybuffer' : 'blob',
|
46
|
+
observe: isPreventDownload ? 'body' : 'response',
|
47
|
+
})
|
48
|
+
.pipe(tap(response => {
|
49
|
+
if (!isPreventDownload) {
|
50
|
+
this.fileDownloadService.processDownload(response);
|
51
|
+
}
|
52
|
+
}), map(response => (isPreventDownload ? new Blob([response.body || response]) : response.body || response)));
|
53
|
+
}
|
54
|
+
removeAttachment(id) {
|
55
|
+
return this.httpService.api({
|
56
|
+
url: `${this.SERVICE_URL}/${id}`,
|
57
|
+
method: 'delete',
|
58
|
+
});
|
59
|
+
}
|
60
|
+
}
|
61
|
+
DocumentAttachmentApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentAttachmentApiService, deps: [{ token: i1.BaseHttpService }, { token: i1.FileDownloadService }], target: i0.ɵɵFactoryTarget.Injectable });
|
62
|
+
DocumentAttachmentApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentAttachmentApiService });
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentAttachmentApiService, decorators: [{
|
64
|
+
type: Injectable
|
65
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }, { type: i1.FileDownloadService }]; } });
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtYXR0YWNobWVudC1hcGkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYXBpL3NyYy9saWIvc2VydmljZXMvZG9jdW1lbnQtYXR0YWNobWVudC1hcGkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUcxQyxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLFlBQW9CLFdBQTRCLEVBQVUsbUJBQXdDO1FBQTlFLGdCQUFXLEdBQVgsV0FBVyxDQUFpQjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFGakYsZ0JBQVcsR0FBRyxjQUFjLENBQUM7SUFFdUQsQ0FBQztJQUV0RyxjQUFjLENBQUMsYUFBOEM7UUFDM0QsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQztZQUMxQixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxTQUFTO1lBQ2pDLE1BQU0sRUFBRSxNQUFNO1lBQ2QsSUFBSSxFQUFFLGFBQWE7U0FDcEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQXNCLEVBQUUsSUFBVyxFQUFFLGNBQXdCO1FBQzVFLE1BQU0sUUFBUSxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFFMUMsSUFBSSxJQUFJLEVBQUU7WUFDUixRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFDO1FBRUQsUUFBUSxDQUFDLE1BQU0sQ0FDYixZQUFZLEVBQ1osSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUU7WUFDckMsSUFBSSxFQUFFLGtCQUFrQjtTQUN6QixDQUFDLENBQ0gsQ0FBQztRQUVGLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDN0IsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUMxQixJQUFJLEVBQUUsUUFBUTtZQUNkLE1BQU0sRUFBRSxNQUFNO1lBQ2QsT0FBTyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzlDLGNBQWM7U0FDZixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBVSxFQUFFLFVBQXNCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUU7WUFDaEMsSUFBSSxFQUFFLFVBQVU7WUFDaEIsTUFBTSxFQUFFLEtBQUs7U0FDZCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBVSxFQUFFLGlCQUEyQjtRQUN2RCxPQUFPLElBQUksQ0FBQyxXQUFXO2FBQ3BCLEdBQUcsQ0FBQztZQUNILEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLElBQUksRUFBRSxPQUFPO1lBQ3JDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxNQUFNO1lBQ3hELE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVO1NBQ2pELENBQUM7YUFDRCxJQUFJLENBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUFFO2dCQUN0QixJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQ3BEO1FBQ0gsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDLENBQUMsQ0FDekcsQ0FBQztJQUNOLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxFQUFVO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7WUFDMUIsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFLEVBQUU7WUFDaEMsTUFBTSxFQUFFLFFBQVE7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MEhBbEVVLDRCQUE0Qjs4SEFBNUIsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7a0JBRHhDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdHRhY2htZW50LCBCYXNlSHR0cFNlcnZpY2UsIEZpbGVEb3dubG9hZFNlcnZpY2UsIFRlbXBsYXRlQXR0YWNobWVudFNlYXJjaFJlcXVlc3QgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRBdHRhY2htZW50QXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgU0VSVklDRV9VUkwgPSAnL2F0dGFjaG1lbnRzJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UsIHByaXZhdGUgZmlsZURvd25sb2FkU2VydmljZTogRmlsZURvd25sb2FkU2VydmljZSkge31cblxuICBnZXRBdHRhY2htZW50cyhzZWFyY2hSZXF1ZXN0OiBUZW1wbGF0ZUF0dGFjaG1lbnRTZWFyY2hSZXF1ZXN0KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50W10+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS9zZWFyY2hgLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiBzZWFyY2hSZXF1ZXN0LFxuICAgIH0pO1xuICB9XG5cbiAgY3JlYXRlQXR0YWNobWVudChhdHRhY2htZW50OiBBdHRhY2htZW50LCBmaWxlPzogRmlsZSwgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PiB7XG4gICAgY29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG5cbiAgICBpZiAoZmlsZSkge1xuICAgICAgZm9ybURhdGEuYXBwZW5kKCdmaWxlJywgZmlsZSwgZmlsZS5uYW1lKTtcbiAgICB9XG5cbiAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAnYXR0YWNobWVudCcsXG4gICAgICBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkoYXR0YWNobWVudCldLCB7XG4gICAgICAgIHR5cGU6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS51cGxvYWQoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfWAsXG4gICAgICBib2R5OiBmb3JtRGF0YSxcbiAgICAgIG1ldGhvZDogJ3Bvc3QnLFxuICAgICAgb2JzZXJ2ZTogcmVwb3J0UHJvZ3Jlc3MgPyAnZXZlbnRzJyA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9ydFByb2dyZXNzLFxuICAgIH0pO1xuICB9XG5cbiAgdXBkYXRlQXR0YWNobWVudChpZDogc3RyaW5nLCBhdHRhY2htZW50OiBBdHRhY2htZW50KTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH1gLFxuICAgICAgYm9keTogYXR0YWNobWVudCxcbiAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgfSk7XG4gIH1cblxuICBnZXRBdHRhY2htZW50RmlsZShpZDogc3RyaW5nLCBpc1ByZXZlbnREb3dubG9hZD86IGJvb2xlYW4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBTZXJ2aWNlXG4gICAgICAuYXBpKHtcbiAgICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke2lkfS9maWxlYCxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBpc1ByZXZlbnREb3dubG9hZCA/ICdhcnJheWJ1ZmZlcicgOiAnYmxvYicsXG4gICAgICAgIG9ic2VydmU6IGlzUHJldmVudERvd25sb2FkID8gJ2JvZHknIDogJ3Jlc3BvbnNlJyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBpZiAoIWlzUHJldmVudERvd25sb2FkKSB7XG4gICAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZFNlcnZpY2UucHJvY2Vzc0Rvd25sb2FkKHJlc3BvbnNlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gKGlzUHJldmVudERvd25sb2FkID8gbmV3IEJsb2IoW3Jlc3BvbnNlLmJvZHkgfHwgcmVzcG9uc2VdKSA6IHJlc3BvbnNlLmJvZHkgfHwgcmVzcG9uc2UpKSxcbiAgICAgICk7XG4gIH1cblxuICByZW1vdmVBdHRhY2htZW50KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,284 @@
|
|
1
|
+
import { CurrencyPipe } from '@angular/common';
|
2
|
+
import { Injectable } from '@angular/core';
|
3
|
+
import { DocxTemplater, isLegacyDocumentTemplate, QuoteDraft, StringUtils, } from '@veloceapps/core';
|
4
|
+
import * as _ from 'lodash';
|
5
|
+
import * as moment_ from 'moment';
|
6
|
+
import { forkJoin, of, zip } from 'rxjs';
|
7
|
+
import { defaultIfEmpty, map, switchMap, tap } from 'rxjs/operators';
|
8
|
+
import * as i0 from "@angular/core";
|
9
|
+
import * as i1 from "@veloceapps/core";
|
10
|
+
import * as i2 from "./salesforce-api.service";
|
11
|
+
import * as i3 from "./document-attachment-api.service";
|
12
|
+
import * as i4 from "@angular/common/http";
|
13
|
+
const moment = moment_;
|
14
|
+
export class DocumentTemplatesApiService {
|
15
|
+
constructor(service, salesforceApiService, fileDownloadService, documentAttachmentService, http) {
|
16
|
+
this.service = service;
|
17
|
+
this.salesforceApiService = salesforceApiService;
|
18
|
+
this.fileDownloadService = fileDownloadService;
|
19
|
+
this.documentAttachmentService = documentAttachmentService;
|
20
|
+
this.http = http;
|
21
|
+
this.DOCGEN_TAG = 'docgen';
|
22
|
+
this.SERVICE_URL = '/templates';
|
23
|
+
this.DOC_GEN_URL_FALLBACK = 'https://dev-dp1.velocpq.com/docgen';
|
24
|
+
this.mapSfQueryResult = (limit) => map((records) => {
|
25
|
+
if (!records.length) {
|
26
|
+
return { _result: 'No Records Found' };
|
27
|
+
}
|
28
|
+
if (limit === 1) {
|
29
|
+
return records[0];
|
30
|
+
}
|
31
|
+
return records;
|
32
|
+
});
|
33
|
+
this.mapBooleanIfAplicable = (value) => {
|
34
|
+
if (value === 'true') {
|
35
|
+
return true;
|
36
|
+
}
|
37
|
+
if (value === 'false') {
|
38
|
+
return false;
|
39
|
+
}
|
40
|
+
return value;
|
41
|
+
};
|
42
|
+
if (window.VELO_DOCGEN_API) {
|
43
|
+
this.DOC_GEN_URL = window.VELO_DOCGEN_API;
|
44
|
+
}
|
45
|
+
else {
|
46
|
+
console.log(`window.VELO_DOCGEN_API not set, will use fallback "${this.DOC_GEN_URL_FALLBACK}"`);
|
47
|
+
this.DOC_GEN_URL = this.DOC_GEN_URL_FALLBACK;
|
48
|
+
}
|
49
|
+
}
|
50
|
+
getTemplates(tag) {
|
51
|
+
return this.service.api({
|
52
|
+
url: `${this.SERVICE_URL}`,
|
53
|
+
method: 'get',
|
54
|
+
params: Object.assign({}, (tag && { tag })),
|
55
|
+
});
|
56
|
+
}
|
57
|
+
getTemplate(id) {
|
58
|
+
return this.service.api({
|
59
|
+
url: `${this.SERVICE_URL}/${id}`,
|
60
|
+
method: 'get',
|
61
|
+
});
|
62
|
+
}
|
63
|
+
upsertTemplate(template, file, reportProgress) {
|
64
|
+
const formData = new FormData();
|
65
|
+
if (file) {
|
66
|
+
formData.append('file', file, file.name);
|
67
|
+
}
|
68
|
+
formData.append('template', new Blob([JSON.stringify(template)], {
|
69
|
+
type: 'application/json',
|
70
|
+
}));
|
71
|
+
let url = `${this.SERVICE_URL}`;
|
72
|
+
if (template.id) {
|
73
|
+
url += `/${template.id}`;
|
74
|
+
}
|
75
|
+
return this.service.upload({
|
76
|
+
url,
|
77
|
+
body: formData,
|
78
|
+
method: template.id ? 'put' : 'post',
|
79
|
+
reportProgress,
|
80
|
+
});
|
81
|
+
}
|
82
|
+
removeTemplate(id) {
|
83
|
+
return this.service.api({
|
84
|
+
url: `${this.SERVICE_URL}/${id}`,
|
85
|
+
method: 'delete',
|
86
|
+
});
|
87
|
+
}
|
88
|
+
restoreTemplate(id) {
|
89
|
+
return this.service.api({
|
90
|
+
url: `${this.SERVICE_URL}/${id}/restore`,
|
91
|
+
method: 'patch',
|
92
|
+
});
|
93
|
+
}
|
94
|
+
cloneTemplate(id, propertiesToOverride = {}) {
|
95
|
+
return this.service.api({
|
96
|
+
url: `${this.SERVICE_URL}/clone/${id}`,
|
97
|
+
method: 'post',
|
98
|
+
body: {
|
99
|
+
id,
|
100
|
+
propertiesToOverride,
|
101
|
+
},
|
102
|
+
});
|
103
|
+
}
|
104
|
+
getTemplateFile(id) {
|
105
|
+
return this.service.api({
|
106
|
+
method: 'get',
|
107
|
+
url: `${this.SERVICE_URL}/${id}/file`,
|
108
|
+
responseType: 'arraybuffer',
|
109
|
+
});
|
110
|
+
}
|
111
|
+
downloadTemplateFile(id) {
|
112
|
+
return this.service
|
113
|
+
.api({
|
114
|
+
url: `${this.SERVICE_URL}/${id}/file`,
|
115
|
+
responseType: 'blob',
|
116
|
+
observe: 'response',
|
117
|
+
})
|
118
|
+
.pipe(tap(response => {
|
119
|
+
this.fileDownloadService.processDownload(response);
|
120
|
+
}), map(response => response.body || response));
|
121
|
+
}
|
122
|
+
mergeDocuments(document, attachments) {
|
123
|
+
const body = new FormData();
|
124
|
+
attachments.forEach(attachment => {
|
125
|
+
body.append('attachments', new Blob([attachment]));
|
126
|
+
});
|
127
|
+
body.append('orderform', document);
|
128
|
+
return this.http.post(`${this.DOC_GEN_URL}/documents/merge`, body, {
|
129
|
+
responseType: 'arraybuffer',
|
130
|
+
});
|
131
|
+
}
|
132
|
+
getAttachments(searchRequest) {
|
133
|
+
return this.documentAttachmentService.getAttachments(searchRequest);
|
134
|
+
}
|
135
|
+
getAttachmentFile(id) {
|
136
|
+
return this.documentAttachmentService.getAttachmentFile(id);
|
137
|
+
}
|
138
|
+
createAttachment(attachment, file, reportProgress) {
|
139
|
+
return this.documentAttachmentService.createAttachment(attachment, file, reportProgress);
|
140
|
+
}
|
141
|
+
removeAttachment(id) {
|
142
|
+
return this.documentAttachmentService.removeAttachment(id);
|
143
|
+
}
|
144
|
+
generateDocumentData(template, object, params = {}) {
|
145
|
+
var _a;
|
146
|
+
if (isLegacyDocumentTemplate(template)) {
|
147
|
+
return this.generateDocumentDataLegacy(template, object, params);
|
148
|
+
}
|
149
|
+
const templateProperties = (_a = template.properties) === null || _a === void 0 ? void 0 : _a.reduce((acc, { name, value }) => (Object.assign(Object.assign({}, acc), { [name]: this.mapBooleanIfAplicable(value) })), {});
|
150
|
+
/*
|
151
|
+
Resolve quote and template properties for now
|
152
|
+
When procedures are ready, whey will replace template scripts.
|
153
|
+
|
154
|
+
TODO: run procedure to resolve document data
|
155
|
+
*/
|
156
|
+
return of(Object.assign(Object.assign({}, (typeof object === 'object' ? object : { object })), templateProperties));
|
157
|
+
}
|
158
|
+
generateDocument(template, object, params = {}) {
|
159
|
+
const documentData$ = this.generateDocumentData(template, object, Object.assign(Object.assign({}, params), { shouldPreventDownload: true }));
|
160
|
+
return zip(this.getTemplateFile(template.id), documentData$, this.resolveAttachments$(template)).pipe(switchMap(([templateFile, data, attachments]) => {
|
161
|
+
var _a, _b, _c, _d, _e, _f;
|
162
|
+
const document = DocxTemplater.generate(templateFile, data);
|
163
|
+
const properties = (_c = (_b = (_a = object === null || object === void 0 ? void 0 : object.context) === null || _a === void 0 ? void 0 : _a.properties) !== null && _b !== void 0 ? _b : object === null || object === void 0 ? void 0 : object.properties) !== null && _c !== void 0 ? _c : {};
|
164
|
+
const documentName = properties.Name || template.name;
|
165
|
+
const documentFormat = (_d = params.documentFormat) !== null && _d !== void 0 ? _d : (_f = (_e = template.properties) === null || _e === void 0 ? void 0 : _e.find(p => p.name === 'documentFormat')) === null || _f === void 0 ? void 0 : _f.value;
|
166
|
+
if (documentFormat === 'DOCX') {
|
167
|
+
this.fileDownloadService.processDownload(document, documentName);
|
168
|
+
return of(document);
|
169
|
+
}
|
170
|
+
return this.mergeDocuments(document, attachments).pipe(switchMap(pdf => {
|
171
|
+
if (params.attachToQuote && QuoteDraft.isQuote(object)) {
|
172
|
+
const file = new File([pdf], `${documentName}.pdf`);
|
173
|
+
return this.documentAttachmentService
|
174
|
+
.createAttachment({
|
175
|
+
linkedEntityId: object.quoteId,
|
176
|
+
fileName: documentName,
|
177
|
+
fileExtension: 'pdf',
|
178
|
+
tags: this.DOCGEN_TAG,
|
179
|
+
}, file)
|
180
|
+
.pipe(map(() => pdf));
|
181
|
+
}
|
182
|
+
return of(pdf);
|
183
|
+
}), map(pdf => {
|
184
|
+
const blob = new Blob([pdf]);
|
185
|
+
if (!params.shouldPreventDownload) {
|
186
|
+
this.fileDownloadService.processDownload(blob, `${documentName}.pdf`);
|
187
|
+
}
|
188
|
+
return blob;
|
189
|
+
}));
|
190
|
+
}));
|
191
|
+
}
|
192
|
+
generateDocumentDataLegacy(template, object, params = {}) {
|
193
|
+
var _a, _b, _c, _d;
|
194
|
+
const shouldPreventDownload = params.shouldPreventDownload;
|
195
|
+
const allQueries = [...((_a = template === null || template === void 0 ? void 0 : template.queries) !== null && _a !== void 0 ? _a : [])];
|
196
|
+
const properties = (_d = (_c = (_b = object === null || object === void 0 ? void 0 : object.context) === null || _b === void 0 ? void 0 : _b.properties) !== null && _c !== void 0 ? _c : object === null || object === void 0 ? void 0 : object.properties) !== null && _d !== void 0 ? _d : {};
|
197
|
+
const accountId = properties === null || properties === void 0 ? void 0 : properties.AccountId;
|
198
|
+
const userId = properties === null || properties === void 0 ? void 0 : properties.UserId;
|
199
|
+
if (accountId) {
|
200
|
+
allQueries.push({
|
201
|
+
queryName: 'QuoteAccountQuery',
|
202
|
+
objectName: 'Account',
|
203
|
+
resultObjectName: 'account',
|
204
|
+
statement: `Id ='${accountId}'`,
|
205
|
+
fields: [],
|
206
|
+
});
|
207
|
+
}
|
208
|
+
if (userId) {
|
209
|
+
allQueries.push({
|
210
|
+
queryName: 'QuoteUserQuery',
|
211
|
+
objectName: 'User',
|
212
|
+
resultObjectName: 'agent',
|
213
|
+
statement: `Id ='${userId}'`,
|
214
|
+
fields: [],
|
215
|
+
});
|
216
|
+
}
|
217
|
+
const queries = allQueries.map(query => this.queryObject(query, { properties })) || [];
|
218
|
+
return forkJoin([...queries]).pipe(defaultIfEmpty([]), map(results => {
|
219
|
+
var _a, _b, _c, _d;
|
220
|
+
const queriesResult = _.chain(results)
|
221
|
+
.reduce((acc, r) => {
|
222
|
+
if (r) {
|
223
|
+
return Object.assign(Object.assign({}, acc), r);
|
224
|
+
}
|
225
|
+
return acc;
|
226
|
+
}, {})
|
227
|
+
.value();
|
228
|
+
const templateProperties = ((template === null || template === void 0 ? void 0 : template.properties) || []).reduce((trunk, { name, value }) => {
|
229
|
+
return Object.assign(Object.assign({}, trunk), { [name]: this.mapBooleanIfAplicable(value) });
|
230
|
+
}, {});
|
231
|
+
const data = Object.assign(Object.assign(Object.assign({}, (typeof object === 'object' ? object : { object })), queriesResult), templateProperties);
|
232
|
+
if (template.script && template.script.trim().length) {
|
233
|
+
const currencyFormat = ((_b = (_a = template.properties) === null || _a === void 0 ? void 0 : _a.find(({ name }) => name === 'currencyFormat')) === null || _b === void 0 ? void 0 : _b.value) || '1.2-2';
|
234
|
+
const dateFormat = ((_d = (_c = template.properties) === null || _c === void 0 ? void 0 : _c.find(({ name }) => name === 'dateFormat')) === null || _d === void 0 ? void 0 : _d.value) || 'D/MMM/YYYY';
|
235
|
+
const formatDate = (value) => {
|
236
|
+
return value ? moment(value).format(dateFormat) : value;
|
237
|
+
};
|
238
|
+
const transform = new Function(`return ${template.script}`)();
|
239
|
+
const transformedData = transform(Object.assign(Object.assign({}, data), { utils: {
|
240
|
+
lodash: _,
|
241
|
+
currency: (value) => new CurrencyPipe('en-US').transform(value, 'USD', 'symbol', currencyFormat),
|
242
|
+
date: formatDate,
|
243
|
+
}, ToDay: formatDate(Date.now()) }));
|
244
|
+
if (!shouldPreventDownload) {
|
245
|
+
const blob = new Blob([JSON.stringify(transformedData)]);
|
246
|
+
this.fileDownloadService.processDownload(blob, 'data.json');
|
247
|
+
}
|
248
|
+
return transformedData;
|
249
|
+
}
|
250
|
+
return data;
|
251
|
+
}));
|
252
|
+
}
|
253
|
+
resolveAttachments$(template) {
|
254
|
+
var _a, _b;
|
255
|
+
const attachmentIds = (_b = (_a = template.attachments) === null || _a === void 0 ? void 0 : _a.map(({ id }) => id).filter(Boolean)) !== null && _b !== void 0 ? _b : [];
|
256
|
+
if (!attachmentIds.length) {
|
257
|
+
return of([]);
|
258
|
+
}
|
259
|
+
return forkJoin(attachmentIds.map(id => this.documentAttachmentService.getAttachmentFile(id, true)));
|
260
|
+
}
|
261
|
+
queryObject({ objectName, resultObjectName, fields, statement }, { properties }) {
|
262
|
+
var _a;
|
263
|
+
const patternLimit = /(\s*limit\s\d*)/i;
|
264
|
+
let limit = 1;
|
265
|
+
if (statement && patternLimit.test(statement)) {
|
266
|
+
const limitStr = (_a = statement === null || statement === void 0 ? void 0 : statement.match(patternLimit)) === null || _a === void 0 ? void 0 : _a[1].trim().substring(5).trim();
|
267
|
+
if (limitStr) {
|
268
|
+
limit = Number.parseInt(limitStr, 10);
|
269
|
+
}
|
270
|
+
statement = statement.replace(patternLimit, '');
|
271
|
+
}
|
272
|
+
const resolvedStatement = statement
|
273
|
+
? StringUtils.fillPlaceholders(statement, properties, /:\s*(\w[\w\d_.]+)/i)
|
274
|
+
: undefined;
|
275
|
+
const searchRequest = Object.assign({ skip: 0, count: limit, rawCondition: resolvedStatement }, ((fields === null || fields === void 0 ? void 0 : fields.length) && !!fields[0] && { fields }));
|
276
|
+
return this.salesforceApiService.query(searchRequest, objectName).pipe(this.mapSfQueryResult(limit), map(value => ({ [resultObjectName]: value })));
|
277
|
+
}
|
278
|
+
}
|
279
|
+
DocumentTemplatesApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentTemplatesApiService, deps: [{ token: i1.BaseHttpService }, { token: i2.SalesforceApiService }, { token: i1.FileDownloadService }, { token: i3.DocumentAttachmentApiService }, { token: i4.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
280
|
+
DocumentTemplatesApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentTemplatesApiService });
|
281
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: DocumentTemplatesApiService, decorators: [{
|
282
|
+
type: Injectable
|
283
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }, { type: i2.SalesforceApiService }, { type: i1.FileDownloadService }, { type: i3.DocumentAttachmentApiService }, { type: i4.HttpClient }]; } });
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtdGVtcGxhdGVzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvc3JjL2xpYi9zZXJ2aWNlcy9kb2N1bWVudC10ZW1wbGF0ZXMtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUtMLGFBQWEsRUFFYix3QkFBd0IsRUFDeEIsVUFBVSxFQUVWLFdBQVcsR0FJWixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sS0FBSyxDQUFDLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sS0FBSyxPQUFPLE1BQU0sUUFBUSxDQUFDO0FBQ2xDLE9BQU8sRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7OztBQUlyRSxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUM7QUFVdkIsTUFBTSxPQUFPLDJCQUEyQjtJQU90QyxZQUNVLE9BQXdCLEVBQ3hCLG9CQUEwQyxFQUMxQyxtQkFBd0MsRUFDeEMseUJBQXVELEVBQ3ZELElBQWdCO1FBSmhCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4Qyw4QkFBeUIsR0FBekIseUJBQXlCLENBQThCO1FBQ3ZELFNBQUksR0FBSixJQUFJLENBQVk7UUFYVixlQUFVLEdBQUcsUUFBUSxDQUFDO1FBRXJCLGdCQUFXLEdBQUcsWUFBWSxDQUFDO1FBQzNCLHlCQUFvQixHQUFHLG9D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LENBQUM7UUFFbkIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ3BFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsRUFDNUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQzlDLENBQUM7SUFDSixDQUFDOzt5SEEzWFUsMkJBQTJCOzZIQUEzQiwyQkFBMkI7NEZBQTNCLDJCQUEyQjtrQkFEdkMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgQW55V2l0aFByb3BlcnRpZXMsXG4gIEF0dGFjaG1lbnQsXG4gIEJhc2VIdHRwU2VydmljZSxcbiAgRG9jdW1lbnRUZW1wbGF0ZSxcbiAgRG9jeFRlbXBsYXRlcixcbiAgRmlsZURvd25sb2FkU2VydmljZSxcbiAgaXNMZWdhY3lEb2N1bWVudFRlbXBsYXRlLFxuICBRdW90ZURyYWZ0LFxuICBTZWFyY2hSZXF1ZXN0LFxuICBTdHJpbmdVdGlscyxcbiAgVGVtcGxhdGVBdHRhY2htZW50U2VhcmNoUmVxdWVzdCxcbiAgVGVtcGxhdGVRdWVyeSxcbiAgVmxXaW5kb3csXG59IGZyb20gJ0B2ZWxvY2VhcHBzL2NvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0ICogYXMgbW9tZW50XyBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCB6aXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlZmF1bHRJZkVtcHR5LCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRG9jdW1lbnRBdHRhY2htZW50QXBpU2VydmljZSB9IGZyb20gJy4vZG9jdW1lbnQtYXR0YWNobWVudC1hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBTYWxlc2ZvcmNlQXBpU2VydmljZSB9IGZyb20gJy4vc2FsZXNmb3JjZS1hcGkuc2VydmljZSc7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudF87XG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogVmxXaW5kb3c7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRHZW5lcmF0aW9uUGFyYW1zIHtcbiAgYXR0YWNoVG9RdW90ZT86IGJvb2xlYW47XG4gIGRvY3VtZW50Rm9ybWF0PzogJ0RPQ1gnO1xuICBzaG91bGRQcmV2ZW50RG93bmxvYWQ/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRG9jdW1lbnRUZW1wbGF0ZXNBcGlTZXJ2aWNlIHtcbiAgcHVibGljIHJlYWRvbmx5IERPQ0dFTl9UQUcgPSAnZG9jZ2VuJztcblxuICBwcml2YXRlIHJlYWRvbmx5IFNFUlZJQ0VfVVJMID0gJy90ZW1wbGF0ZXMnO1xuICBwcml2YXRlIHJlYWRvbmx5IERPQ19HRU5fVVJMX0ZBTExCQUNLID0gJ2h0dHBzOi8vZGV2LWRwMS52ZWxvY3BxLmNvbS9kb2NnZW4nO1xuICBwcml2YXRlIHJlYWRvbmx5IERPQ19HRU5fVVJMO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2VydmljZTogQmFzZUh0dHBTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2FsZXNmb3JjZUFwaVNlcnZpY2U6IFNhbGVzZm9yY2VBcGlTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmlsZURvd25sb2FkU2VydmljZTogRmlsZURvd25sb2FkU2VydmljZSxcbiAgICBwcml2YXRlIGRvY3VtZW50QXR0YWNobWVudFNlcnZpY2U6IERvY3VtZW50QXR0YWNobWVudEFwaVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICApIHtcbiAgICBpZiAod2luZG93LlZFTE9fRE9DR0VOX0FQSSkge1xuICAgICAgdGhpcy5ET0NfR0VOX1VSTCA9IHdpbmRvdy5WRUxPX0RPQ0dFTl9BUEk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKGB3aW5kb3cuVkVMT19ET0NHRU5fQVBJIG5vdCBzZXQsIHdpbGwgdXNlIGZhbGxiYWNrIFwiJHt0aGlzLkRPQ19HRU5fVVJMX0ZBTExCQUNLfVwiYCk7XG4gICAgICB0aGlzLkRPQ19HRU5fVVJMID0gdGhpcy5ET0NfR0VOX1VSTF9GQUxMQkFDSztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VGVtcGxhdGVzKHRhZz86IHN0cmluZyk6IE9ic2VydmFibGU8RG9jdW1lbnRUZW1wbGF0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfWAsXG4gICAgICBtZXRob2Q6ICdnZXQnLFxuICAgICAgcGFyYW1zOiB7XG4gICAgICAgIC4uLih0YWcgJiYgeyB0YWcgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldFRlbXBsYXRlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERvY3VtZW50VGVtcGxhdGU+IHtcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmFwaSh7XG4gICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7aWR9YCxcbiAgICAgIG1ldGhvZDogJ2dldCcsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdXBzZXJ0VGVtcGxhdGUoXG4gICAgdGVtcGxhdGU6IERvY3VtZW50VGVtcGxhdGUsXG4gICAgZmlsZT86IEZpbGUsXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuLFxuICApOiBPYnNlcnZhYmxlPERvY3VtZW50VGVtcGxhdGU+IHtcbiAgICBjb25zdCBmb3JtRGF0YTogRm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBmaWxlLCBmaWxlLm5hbWUpO1xuICAgIH1cbiAgICBmb3JtRGF0YS5hcHBlbmQoXG4gICAgICAndGVtcGxhdGUnLFxuICAgICAgbmV3IEJsb2IoW0pTT04uc3RyaW5naWZ5KHRlbXBsYXRlKV0sIHtcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSksXG4gICAgKTtcblxuICAgIGxldCB1cmwgPSBgJHt0aGlzLlNFUlZJQ0VfVVJMfWA7XG4gICAgaWYgKHRlbXBsYXRlLmlkKSB7XG4gICAgICB1cmwgKz0gYC8ke3RlbXBsYXRlLmlkfWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS51cGxvYWQoe1xuICAgICAgdXJsLFxuICAgICAgYm9keTogZm9ybURhdGEsXG4gICAgICBtZXRob2Q6IHRlbXBsYXRlLmlkID8gJ3B1dCcgOiAncG9zdCcsXG4gICAgICByZXBvcnRQcm9ncmVzcyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVUZW1wbGF0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxEb2N1bWVudFRlbXBsYXRlPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke2lkfWAsXG4gICAgICBtZXRob2Q6ICdkZWxldGUnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlc3RvcmVUZW1wbGF0ZShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLlNFUlZJQ0VfVVJMfS8ke2lkfS9yZXN0b3JlYCxcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBjbG9uZVRlbXBsYXRlKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcGVydGllc1RvT3ZlcnJpZGU6IFBhcnRpYWw8RG9jdW1lbnRUZW1wbGF0ZT4gPSB7fSxcbiAgKTogT2JzZXJ2YWJsZTx7IGNsb25lZFJlY29yZElkOiBzdHJpbmcgfT4ge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYXBpKHtcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vY2xvbmUvJHtpZH1gLFxuICAgICAgbWV0aG9kOiAncG9zdCcsXG4gICAgICBib2R5OiB7XG4gICAgICAgIGlkLFxuICAgICAgICBwcm9wZXJ0aWVzVG9PdmVycmlkZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VGVtcGxhdGVGaWxlKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEFycmF5QnVmZmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmljZS5hcGkoe1xuICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgIHVybDogYCR7dGhpcy5TRVJWSUNFX1VSTH0vJHtpZH0vZmlsZWAsXG4gICAgICByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZG93bmxvYWRUZW1wbGF0ZUZpbGUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QmxvYj4ge1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2VcbiAgICAgIC5hcGkoe1xuICAgICAgICB1cmw6IGAke3RoaXMuU0VSVklDRV9VUkx9LyR7aWR9L2ZpbGVgLFxuICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgICAgb2JzZXJ2ZTogJ3Jlc3BvbnNlJyxcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZFNlcnZpY2UucHJvY2Vzc0Rvd25sb2FkKHJlc3BvbnNlKTtcbiAgICAgICAgfSksXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiByZXNwb25zZS5ib2R5IHx8IHJlc3BvbnNlKSxcbiAgICAgICk7XG4gIH1cblxuICBwdWJsaWMgbWVyZ2VEb2N1bWVudHMoZG9jdW1lbnQ6IEJsb2IsIGF0dGFjaG1lbnRzOiBBcnJheUJ1ZmZlcltdKTogT2JzZXJ2YWJsZTxBcnJheUJ1ZmZlcj4ge1xuICAgIGNvbnN0IGJvZHkgPSBuZXcgRm9ybURhdGEoKTtcblxuICAgIGF0dGFjaG1lbnRzLmZvckVhY2goYXR0YWNobWVudCA9PiB7XG4gICAgICBib2R5LmFwcGVuZCgnYXR0YWNobWVudHMnLCBuZXcgQmxvYihbYXR0YWNobWVudF0pKTtcbiAgICB9KTtcblxuICAgIGJvZHkuYXBwZW5kKCdvcmRlcmZvcm0nLCBkb2N1bWVudCk7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5ET0NfR0VOX1VSTH0vZG9jdW1lbnRzL21lcmdlYCwgYm9keSwge1xuICAgICAgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldEF0dGFjaG1lbnRzKHNlYXJjaFJlcXVlc3Q6IFRlbXBsYXRlQXR0YWNobWVudFNlYXJjaFJlcXVlc3QpOiBPYnNlcnZhYmxlPEF0dGFjaG1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50QXR0YWNobWVudFNlcnZpY2UuZ2V0QXR0YWNobWVudHMoc2VhcmNoUmVxdWVzdCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0QXR0YWNobWVudEZpbGUoaWQ6IHN0cmluZyk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRBdHRhY2htZW50U2VydmljZS5nZXRBdHRhY2htZW50RmlsZShpZCk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQXR0YWNobWVudChhdHRhY2htZW50OiBBdHRhY2htZW50LCBmaWxlPzogRmlsZSwgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxBdHRhY2htZW50PiB7XG4gICAgcmV0dXJuIHRoaXMuZG9jdW1lbnRBdHRhY2htZW50U2VydmljZS5jcmVhdGVBdHRhY2htZW50KGF0dGFjaG1lbnQsIGZpbGUsIHJlcG9ydFByb2dyZXNzKTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVBdHRhY2htZW50KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudEF0dGFjaG1lbnRTZXJ2aWNlLnJlbW92ZUF0dGFjaG1lbnQoaWQpO1xuICB9XG5cbiAgcHVibGljIGdlbmVyYXRlRG9jdW1lbnREYXRhKFxuICAgIHRlbXBsYXRlOiBEb2N1bWVudFRlbXBsYXRlLFxuICAgIG9iamVjdDogYW55LFxuICAgIHBhcmFtczogRG9jdW1lbnRHZW5lcmF0aW9uUGFyYW1zID0ge30sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgaWYgKGlzTGVnYWN5RG9jdW1lbnRUZW1wbGF0ZSh0ZW1wbGF0ZSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlRG9jdW1lbnREYXRhTGVnYWN5KHRlbXBsYXRlLCBvYmplY3QsIHBhcmFtcyk7XG4gICAgfVxuXG4gICAgY29uc3QgdGVtcGxhdGVQcm9wZXJ0aWVzID0gdGVtcGxhdGUucHJvcGVydGllcz8ucmVkdWNlKFxuICAgICAgKGFjYywgeyBuYW1lLCB2YWx1ZSB9KSA9PiAoeyAuLi5hY2MsIFtuYW1lXTogdGhpcy5tYXBCb29sZWFuSWZBcGxpY2FibGUodmFsdWUpIH0pLFxuICAgICAge30sXG4gICAgKTtcblxuICAgIC8qXG4gICAgICBSZXNvbHZlIHF1b3RlIGFuZCB0ZW1wbGF0ZSBwcm9wZXJ0aWVzIGZvciBub3dcbiAgICAgIFdoZW4gcHJvY2VkdXJlcyBhcmUgcmVhZHksIHdoZXkgd2lsbCByZXBsYWNlIHRlbXBsYXRlIHNjcmlwdHMuXG5cbiAgICAgIFRPRE86IHJ1biBwcm9jZWR1cmUgdG8gcmVzb2x2ZSBkb2N1bWVudCBkYXRhXG4gICAgKi9cbiAgICByZXR1cm4gb2Yoe1xuICAgICAgLi4uKHR5cGVvZiBvYmplY3QgPT09ICdvYmplY3QnID8gb2JqZWN0IDogeyBvYmplY3QgfSksXG4gICAgICAuLi50ZW1wbGF0ZVByb3BlcnRpZXMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVEb2N1bWVudChcbiAgICB0ZW1wbGF0ZTogRG9jdW1lbnRUZW1wbGF0ZSxcbiAgICBvYmplY3Q6IGFueSxcbiAgICBwYXJhbXM6IERvY3VtZW50R2VuZXJhdGlvblBhcmFtcyA9IHt9LFxuICApOiBPYnNlcnZhYmxlPEJsb2I+IHtcbiAgICBjb25zdCBkb2N1bWVudERhdGEkID0gdGhpcy5nZW5lcmF0ZURvY3VtZW50RGF0YSh0ZW1wbGF0ZSwgb2JqZWN0LCB7IC4uLnBhcmFtcywgc2hvdWxkUHJldmVudERvd25sb2FkOiB0cnVlIH0pO1xuXG4gICAgcmV0dXJuIHppcCh0aGlzLmdldFRlbXBsYXRlRmlsZSh0ZW1wbGF0ZS5pZCksIGRvY3VtZW50RGF0YSQsIHRoaXMucmVzb2x2ZUF0dGFjaG1lbnRzJCh0ZW1wbGF0ZSkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKFt0ZW1wbGF0ZUZpbGUsIGRhdGEsIGF0dGFjaG1lbnRzXSkgPT4ge1xuICAgICAgICBjb25zdCBkb2N1bWVudCA9IERvY3hUZW1wbGF0ZXIuZ2VuZXJhdGUodGVtcGxhdGVGaWxlLCBkYXRhKTtcbiAgICAgICAgY29uc3QgcHJvcGVydGllczogXy5EaWN0aW9uYXJ5PHN0cmluZz4gPSBvYmplY3Q/LmNvbnRleHQ/LnByb3BlcnRpZXMgPz8gb2JqZWN0Py5wcm9wZXJ0aWVzID8/IHt9O1xuICAgICAgICBjb25zdCBkb2N1bWVudE5hbWUgPSBwcm9wZXJ0aWVzLk5hbWUgfHwgdGVtcGxhdGUubmFtZTtcblxuICAgICAgICBjb25zdCBkb2N1bWVudEZvcm1hdCA9XG4gICAgICAgICAgcGFyYW1zLmRvY3VtZW50Rm9ybWF0ID8/IHRlbXBsYXRlLnByb3BlcnRpZXM/LmZpbmQocCA9PiBwLm5hbWUgPT09ICdkb2N1bWVudEZvcm1hdCcpPy52YWx1ZTtcbiAgICAgICAgaWYgKGRvY3VtZW50Rm9ybWF0ID09PSAnRE9DWCcpIHtcbiAgICAgICAgICB0aGlzLmZpbGVEb3dubG9hZFNlcnZpY2UucHJvY2Vzc0Rvd25sb2FkKGRvY3VtZW50LCBkb2N1bWVudE5hbWUpO1xuXG4gICAgICAgICAgcmV0dXJuIG9mKGRvY3VtZW50KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLm1lcmdlRG9jdW1lbnRzKGRvY3VtZW50LCBhdHRhY2htZW50cykucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAocGRmID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJhbXMuYXR0YWNoVG9RdW90ZSAmJiBRdW90ZURyYWZ0LmlzUXVvdGUob2JqZWN0KSkge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlID0gbmV3IEZpbGUoW3BkZl0sIGAke2RvY3VtZW50TmFtZX0ucGRmYCk7XG4gICAgICAgICAgICAgIHJldHVybiB0aGlzLmRvY3VtZW50QXR0YWNobWVudFNlcnZpY2VcbiAgICAgICAgICAgICAgICAuY3JlYXRlQXR0YWNobWVudChcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgbGlua2VkRW50aXR5SWQ6IG9iamVjdC5xdW90ZUlkLFxuICAgICAgICAgICAgICAgICAgICBmaWxlTmFtZTogZG9jdW1lbnROYW1lLFxuICAgICAgICAgICAgICAgICAgICBmaWxlRXh0ZW5zaW9uOiAncGRmJyxcbiAgICAgICAgICAgICAgICAgICAgdGFnczogdGhpcy5ET0NHRU5fVEFHLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIGZpbGUsXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5waXBlKG1hcCgoKSA9PiBwZGYpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG9mKHBkZik7XG4gICAgICAgICAgfSksXG4gICAgICAgICAgbWFwKHBkZiA9PiB7XG4gICAgICAgICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3BkZl0pO1xuXG4gICAgICAgICAgICBpZiAoIXBhcmFtcy5zaG91bGRQcmV2ZW50RG93bmxvYWQpIHtcbiAgICAgICAgICAgICAgdGhpcy5maWxlRG93bmxvYWRTZXJ2aWNlLnByb2Nlc3NEb3dubG9hZChibG9iLCBgJHtkb2N1bWVudE5hbWV9LnBkZmApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYmxvYjtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlRG9jdW1lbnREYXRhTGVnYWN5KFxuICAgIHRlbXBsYXRlOiBEb2N1bWVudFRlbXBsYXRlLFxuICAgIG9iamVjdDogYW55LFxuICAgIHBhcmFtczogRG9jdW1lbnRHZW5lcmF0aW9uUGFyYW1zID0ge30sXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3Qgc2hvdWxkUHJldmVudERvd25sb2FkID0gcGFyYW1zLnNob3VsZFByZXZlbnREb3dubG9hZDtcbiAgICBjb25zdCBhbGxRdWVyaWVzOiBUZW1wbGF0ZVF1ZXJ5W10gPSBbLi4uKHRlbXBsYXRlPy5xdWVyaWVzID8/IFtdKV07XG4gICAgY29uc3QgcHJvcGVydGllczogXy5EaWN0aW9uYXJ5PHN0cmluZz4gPSBvYmplY3Q/LmNvbnRleHQ/LnByb3BlcnRpZXMgPz8gb2JqZWN0Py5wcm9wZXJ0aWVzID8/IHt9O1xuICAgIGNvbnN0IGFjY291bnRJZCA9IHByb3BlcnRpZXM/LkFjY291bnRJZDtcbiAgICBjb25zdCB1c2VySWQgPSBwcm9wZXJ0aWVzPy5Vc2VySWQ7XG5cbiAgICBpZiAoYWNjb3VudElkKSB7XG4gICAgICBhbGxRdWVyaWVzLnB1c2goe1xuICAgICAgICBxdWVyeU5hbWU6ICdRdW90ZUFjY291bnRRdWVyeScsXG4gICAgICAgIG9iamVjdE5hbWU6ICdBY2NvdW50JyxcbiAgICAgICAgcmVzdWx0T2JqZWN0TmFtZTogJ2FjY291bnQnLFxuICAgICAgICBzdGF0ZW1lbnQ6IGBJZCA9JyR7YWNjb3VudElkfSdgLFxuICAgICAgICBmaWVsZHM6IFtdLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmICh1c2VySWQpIHtcbiAgICAgIGFsbFF1ZXJpZXMucHVzaCh7XG4gICAgICAgIHF1ZXJ5TmFtZTogJ1F1b3RlVXNlclF1ZXJ5JyxcbiAgICAgICAgb2JqZWN0TmFtZTogJ1VzZXInLFxuICAgICAgICByZXN1bHRPYmplY3ROYW1lOiAnYWdlbnQnLFxuICAgICAgICBzdGF0ZW1lbnQ6IGBJZCA9JyR7dXNlcklkfSdgLFxuICAgICAgICBmaWVsZHM6IFtdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcmllcyA9IGFsbFF1ZXJpZXMubWFwKHF1ZXJ5ID0+IHRoaXMucXVlcnlPYmplY3QocXVlcnksIHsgcHJvcGVydGllcyB9KSkgfHwgW107XG5cbiAgICByZXR1cm4gZm9ya0pvaW4oWy4uLnF1ZXJpZXNdKS5waXBlKFxuICAgICAgZGVmYXVsdElmRW1wdHkoW10gYXMgYW55W10pLFxuICAgICAgbWFwKHJlc3VsdHMgPT4ge1xuICAgICAgICBjb25zdCBxdWVyaWVzUmVzdWx0ID0gXy5jaGFpbihyZXN1bHRzKVxuICAgICAgICAgIC5yZWR1Y2UoKGFjYywgcikgPT4ge1xuICAgICAgICAgICAgaWYgKHIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIHsgLi4uYWNjLCAuLi5yIH07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgfSwge30pXG4gICAgICAgICAgLnZhbHVlKCk7XG5cbiAgICAgICAgY29uc3QgdGVtcGxhdGVQcm9wZXJ0aWVzID0gKHRlbXBsYXRlPy5wcm9wZXJ0aWVzIHx8IFtdKS5yZWR1Y2UoKHRydW5rLCB7IG5hbWUsIHZhbHVlIH0pID0+IHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udHJ1bmssXG4gICAgICAgICAgICBbbmFtZSBhcyBzdHJpbmddOiB0aGlzLm1hcEJvb2xlYW5JZkFwbGljYWJsZSh2YWx1ZSBhcyBhbnkpLFxuICAgICAgICAgIH07XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICBjb25zdCBkYXRhID0ge1xuICAgICAgICAgIC4uLih0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyA/IG9iamVjdCA6IHsgb2JqZWN0IH0pLFxuICAgICAgICAgIC4uLnF1ZXJpZXNSZXN1bHQsXG4gICAgICAgICAgLi4udGVtcGxhdGVQcm9wZXJ0aWVzLFxuICAgICAgICB9O1xuXG4gICAgICAgIGlmICh0ZW1wbGF0ZS5zY3JpcHQgJiYgdGVtcGxhdGUuc2NyaXB0LnRyaW0oKS5sZW5ndGgpIHtcbiAgICAgICAgICBjb25zdCBjdXJyZW5jeUZvcm1hdCA9IHRlbXBsYXRlLnByb3BlcnRpZXM/LmZpbmQoKHsgbmFtZSB9KSA9PiBuYW1lID09PSAnY3VycmVuY3lGb3JtYXQnKT8udmFsdWUgfHwgJzEuMi0yJztcbiAgICAgICAgICBjb25zdCBkYXRlRm9ybWF0ID0gdGVtcGxhdGUucHJvcGVydGllcz8uZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09ICdkYXRlRm9ybWF0Jyk/LnZhbHVlIHx8ICdEL01NTS9ZWVlZJztcbiAgICAgICAgICBjb25zdCBmb3JtYXREYXRlID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSA/IG1vbWVudCh2YWx1ZSkuZm9ybWF0KGRhdGVGb3JtYXQpIDogdmFsdWU7XG4gICAgICAgICAgfTtcbiAgICAgICAgICBjb25zdCB0cmFuc2Zvcm0gPSBuZXcgRnVuY3Rpb24oYHJldHVybiAke3RlbXBsYXRlLnNjcmlwdH1gKSgpO1xuICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVkRGF0YSA9IHRyYW5zZm9ybSh7XG4gICAgICAgICAgICAuLi5kYXRhLFxuICAgICAgICAgICAgdXRpbHM6IHtcbiAgICAgICAgICAgICAgbG9kYXNoOiBfLFxuICAgICAgICAgICAgICBjdXJyZW5jeTogKHZhbHVlOiBhbnkpID0+IG5ldyBDdXJyZW5jeVBpcGUoJ2VuLVVTJykudHJhbnNmb3JtKHZhbHVlLCAnVVNEJywgJ3N5bWJvbCcsIGN1cnJlbmN5Rm9ybWF0KSxcbiAgICAgICAgICAgICAgZGF0ZTogZm9ybWF0RGF0ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBUb0RheTogZm9ybWF0RGF0ZShEYXRlLm5vdygpIGFzIGFueSksXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCFzaG91bGRQcmV2ZW50RG93bmxvYWQpIHtcbiAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbSlNPTi5zdHJpbmdpZnkodHJhbnNmb3JtZWREYXRhKV0pO1xuICAgICAgICAgICAgdGhpcy5maWxlRG93bmxvYWRTZXJ2aWNlLnByb2Nlc3NEb3dubG9hZChibG9iLCAnZGF0YS5qc29uJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB0cmFuc2Zvcm1lZERhdGE7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlQXR0YWNobWVudHMkKHRlbXBsYXRlOiBEb2N1bWVudFRlbXBsYXRlKTogT2JzZXJ2YWJsZTxBcnJheUJ1ZmZlcltdPiB7XG4gICAgY29uc3QgYXR0YWNobWVudElkcyA9ICh0ZW1wbGF0ZS5hdHRhY2htZW50cz8ubWFwKCh7IGlkIH0pID0+IGlkKS5maWx0ZXIoQm9vbGVhbikgYXMgc3RyaW5nW10pID8/IFtdO1xuXG4gICAgaWYgKCFhdHRhY2htZW50SWRzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZm9ya0pvaW4oYXR0YWNobWVudElkcy5tYXAoaWQgPT4gdGhpcy5kb2N1bWVudEF0dGFjaG1lbnRTZXJ2aWNlLmdldEF0dGFjaG1lbnRGaWxlKGlkLCB0cnVlKSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXBTZlF1ZXJ5UmVzdWx0ID0gPFQ+KGxpbWl0OiBudW1iZXIpID0+XG4gICAgbWFwKChyZWNvcmRzOiBUW10pID0+IHtcbiAgICAgIGlmICghcmVjb3Jkcy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHsgX3Jlc3VsdDogJ05vIFJlY29yZHMgRm91bmQnIH07XG4gICAgICB9XG5cbiAgICAgIGlmIChsaW1pdCA9PT0gMSkge1xuICAgICAgICByZXR1cm4gcmVjb3Jkc1swXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlY29yZHM7XG4gICAgfSk7XG5cbiAgcHJpdmF0ZSBtYXBCb29sZWFuSWZBcGxpY2FibGUgPSAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgIGlmICh2YWx1ZSA9PT0gJ3RydWUnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09ICdmYWxzZScpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWU7XG4gIH07XG5cbiAgcHJpdmF0ZSBxdWVyeU9iamVjdChcbiAgICB7IG9iamVjdE5hbWUsIHJlc3VsdE9iamVjdE5hbWUsIGZpZWxkcywgc3RhdGVtZW50IH06IFRlbXBsYXRlUXVlcnksXG4gICAgeyBwcm9wZXJ0aWVzIH06IEFueVdpdGhQcm9wZXJ0aWVzLFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHBhdHRlcm5MaW1pdCA9IC8oXFxzKmxpbWl0XFxzXFxkKikvaTtcbiAgICBsZXQgbGltaXQgPSAxO1xuICAgIGlmIChzdGF0ZW1lbnQgJiYgcGF0dGVybkxpbWl0LnRlc3Qoc3RhdGVtZW50KSkge1xuICAgICAgY29uc3QgbGltaXRTdHIgPSBzdGF0ZW1lbnQ/Lm1hdGNoKHBhdHRlcm5MaW1pdCk/LlsxXS50cmltKCkuc3Vic3RyaW5nKDUpLnRyaW0oKTtcbiAgICAgIGlmIChsaW1pdFN0cikge1xuICAgICAgICBsaW1pdCA9IE51bWJlci5wYXJzZUludChsaW1pdFN0ciwgMTApO1xuICAgICAgfVxuICAgICAgc3RhdGVtZW50ID0gc3RhdGVtZW50LnJlcGxhY2UocGF0dGVybkxpbWl0LCAnJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzb2x2ZWRTdGF0ZW1lbnQgPSBzdGF0ZW1lbnRcbiAgICAgID8gU3RyaW5nVXRpbHMuZmlsbFBsYWNlaG9sZGVycyhzdGF0ZW1lbnQsIHByb3BlcnRpZXMsIC86XFxzKihcXHdbXFx3XFxkXy5dKykvaSlcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3Qgc2VhcmNoUmVxdWVzdCA9IHtcbiAgICAgIHNraXA6IDAsXG4gICAgICBjb3VudDogbGltaXQsXG4gICAgICByYXdDb25kaXRpb246IHJlc29sdmVkU3RhdGVtZW50LFxuICAgICAgLi4uKGZpZWxkcz8ubGVuZ3RoICYmICEhZmllbGRzWzBdICYmIHsgZmllbGRzIH0pLFxuICAgIH0gYXMgU2VhcmNoUmVxdWVzdDtcblxuICAgIHJldHVybiB0aGlzLnNhbGVzZm9yY2VBcGlTZXJ2aWNlLnF1ZXJ5KHNlYXJjaFJlcXVlc3QsIG9iamVjdE5hbWUpLnBpcGUoXG4gICAgICB0aGlzLm1hcFNmUXVlcnlSZXN1bHQobGltaXQpLFxuICAgICAgbWFwKHZhbHVlID0+ICh7IFtyZXN1bHRPYmplY3ROYW1lXTogdmFsdWUgfSkpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { map } from 'rxjs/operators';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
import * as i1 from "./configuration-settings-api.service";
|
5
|
+
export class FlowsApiService {
|
6
|
+
constructor(configurationSettingsApiService) {
|
7
|
+
this.configurationSettingsApiService = configurationSettingsApiService;
|
8
|
+
this.flowsKey = 'flows';
|
9
|
+
}
|
10
|
+
getFlow(id) {
|
11
|
+
return this.fetchFlows().pipe(map(flows => flows.find(flow => flow.id == id)));
|
12
|
+
}
|
13
|
+
fetchFlows() {
|
14
|
+
return this.configurationSettingsApiService
|
15
|
+
.fetchSetting(this.flowsKey)
|
16
|
+
.pipe(map((flow) => ((flow === null || flow === void 0 ? void 0 : flow.value) ? JSON.parse(flow.value) : [])));
|
17
|
+
}
|
18
|
+
}
|
19
|
+
FlowsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FlowsApiService, deps: [{ token: i1.ConfigurationSettingsApiService }], target: i0.ɵɵFactoryTarget.Injectable });
|
20
|
+
FlowsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FlowsApiService });
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FlowsApiService, decorators: [{
|
22
|
+
type: Injectable
|
23
|
+
}], ctorParameters: function () { return [{ type: i1.ConfigurationSettingsApiService }]; } });
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxvd3MtYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FwaS9zcmMvbGliL3NlcnZpY2VzL2Zsb3dzLWFwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFJckMsTUFBTSxPQUFPLGVBQWU7SUFHMUIsWUFBb0IsK0JBQWdFO1FBQWhFLG9DQUErQixHQUEvQiwrQkFBK0IsQ0FBaUM7UUFGbkUsYUFBUSxHQUFHLE9BQU8sQ0FBQztJQUVtRCxDQUFDO0lBRWpGLE9BQU8sQ0FBQyxFQUFVO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQywrQkFBK0I7YUFDeEMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7YUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxLQUFLLEVBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQzs7NkdBYlUsZUFBZTtpSEFBZixlQUFlOzRGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGbG93IH0gZnJvbSAnQHZlbG9jZWFwcHMvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlIH0gZnJvbSAnLi9jb25maWd1cmF0aW9uLXNldHRpbmdzLWFwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZsb3dzQXBpU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmxvd3NLZXkgPSAnZmxvd3MnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZTogQ29uZmlndXJhdGlvblNldHRpbmdzQXBpU2VydmljZSkge31cblxuICBwdWJsaWMgZ2V0RmxvdyhpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxGbG93IHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hGbG93cygpLnBpcGUobWFwKGZsb3dzID0+IGZsb3dzLmZpbmQoZmxvdyA9PiBmbG93LmlkID09IGlkKSkpO1xuICB9XG5cbiAgcHVibGljIGZldGNoRmxvd3MoKTogT2JzZXJ2YWJsZTxGbG93W10+IHtcbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uU2V0dGluZ3NBcGlTZXJ2aWNlXG4gICAgICAuZmV0Y2hTZXR0aW5nKHRoaXMuZmxvd3NLZXkpXG4gICAgICAucGlwZShtYXAoKGZsb3cpOiBGbG93W10gPT4gKGZsb3c/LnZhbHVlID8gSlNPTi5wYXJzZShmbG93LnZhbHVlKSA6IFtdKSkpO1xuICB9XG59XG4iXX0=
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@veloceapps/core";
|
4
|
+
export class PicklistsApiService {
|
5
|
+
constructor(baseHttpService) {
|
6
|
+
this.baseHttpService = baseHttpService;
|
7
|
+
this.serviceUrl = '/admin';
|
8
|
+
this.fetchAllPicklists$ = () => this.baseHttpService.api({ url: `${this.serviceUrl}/picklists` });
|
9
|
+
this.fetchPicklist$ = (code) => this.baseHttpService.api({ url: `${this.serviceUrl}/picklists/${code}` });
|
10
|
+
this.createPicklist$ = (picklist) => {
|
11
|
+
return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/picklists`, body: picklist });
|
12
|
+
};
|
13
|
+
this.updatePicklist$ = (picklist) => {
|
14
|
+
return this.baseHttpService.api({
|
15
|
+
method: 'put',
|
16
|
+
url: `${this.serviceUrl}/picklists/${picklist.id}`,
|
17
|
+
body: picklist,
|
18
|
+
});
|
19
|
+
};
|
20
|
+
this.removePicklist$ = (id) => this.baseHttpService.api({ method: 'delete', url: `${this.serviceUrl}/picklists/${id}` });
|
21
|
+
this.restorePicklist$ = (id) => {
|
22
|
+
return this.baseHttpService.api({
|
23
|
+
url: `${this.serviceUrl}/picklists/${id}/restore`,
|
24
|
+
method: 'patch',
|
25
|
+
});
|
26
|
+
};
|
27
|
+
this.addPicklistValue$ = (picklist, value) => {
|
28
|
+
const data = Object.assign(Object.assign({}, picklist), { values: [...picklist.values, value] });
|
29
|
+
return this.baseHttpService.api({ method: 'put', url: `${this.serviceUrl}/picklists/${picklist.id}`, body: data });
|
30
|
+
};
|
31
|
+
}
|
32
|
+
}
|
33
|
+
PicklistsApiService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PicklistsApiService, deps: [{ token: i1.BaseHttpService }], target: i0.ɵɵFactoryTarget.Injectable });
|
34
|
+
PicklistsApiService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PicklistsApiService });
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: PicklistsApiService, decorators: [{
|
36
|
+
type: Injectable
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.BaseHttpService }]; } });
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2xpc3RzLWFwaS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hcGkvc3JjL2xpYi9zZXJ2aWNlcy9waWNrbGlzdHMtYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBSzNDLE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRm5DLGVBQVUsR0FBVyxRQUFRLENBQUM7UUFJL0MsdUJBQWtCLEdBQUcsR0FBMkIsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsWUFBWSxFQUFFLENBQUMsQ0FBQztRQUVySCxtQkFBYyxHQUFHLENBQUMsSUFBWSxFQUF3QixFQUFFLENBQ3RELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsY0FBYyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFNUUsb0JBQWUsR0FBRyxDQUFDLFFBQXFCLEVBQXdCLEVBQUU7WUFDaEUsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQzNHLENBQUMsQ0FBQztRQUVGLG9CQUFlLEdBQUcsQ0FBQyxRQUFrQixFQUF3QixFQUFFO1lBQzdELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7Z0JBQzlCLE1BQU0sRUFBRSxLQUFLO2dCQUNiLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLGNBQWMsUUFBUSxDQUFDLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxFQUFFLFFBQVE7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7UUFFRixvQkFBZSxHQUFHLENBQUMsRUFBVSxFQUFvQixFQUFFLENBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxjQUFjLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU1RixxQkFBZ0IsR0FBRyxDQUFDLEVBQVUsRUFBb0IsRUFBRTtZQUNsRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO2dCQUM5QixHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxjQUFjLEVBQUUsVUFBVTtnQkFDakQsTUFBTSxFQUFFLE9BQU87YUFDaEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO1FBRUYsc0JBQWlCLEdBQUcsQ0FBQyxRQUFrQixFQUFFLEtBQXVCLEVBQXdCLEVBQUU7WUFDeEYsTUFBTSxJQUFJLG1DQUNMLFFBQVEsS0FDWCxNQUFNLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEdBQ3BDLENBQUM7WUFFRixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsVUFBVSxjQUFjLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNySCxDQUFDLENBQUM7SUFwQ3FELENBQUM7O2lIQUg3QyxtQkFBbUI7cUhBQW5CLG1CQUFtQjs0RkFBbkIsbUJBQW1CO2tCQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmFzZUh0dHBTZXJ2aWNlLCBOZXdQaWNrbGlzdCwgTmV3UGlja2xpc3RWYWx1ZSwgUGlja2xpc3QgfSBmcm9tICdAdmVsb2NlYXBwcy9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBpY2tsaXN0c0FwaVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IHNlcnZpY2VVcmw6IHN0cmluZyA9ICcvYWRtaW4nO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYmFzZUh0dHBTZXJ2aWNlOiBCYXNlSHR0cFNlcnZpY2UpIHt9XG5cbiAgZmV0Y2hBbGxQaWNrbGlzdHMkID0gKCk6IE9ic2VydmFibGU8UGlja2xpc3RbXT4gPT4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHsgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L3BpY2tsaXN0c2AgfSk7XG5cbiAgZmV0Y2hQaWNrbGlzdCQgPSAoY29kZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxQaWNrbGlzdD4gPT5cbiAgICB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoeyB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vcGlja2xpc3RzLyR7Y29kZX1gIH0pO1xuXG4gIGNyZWF0ZVBpY2tsaXN0JCA9IChwaWNrbGlzdDogTmV3UGlja2xpc3QpOiBPYnNlcnZhYmxlPFBpY2tsaXN0PiA9PiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7IG1ldGhvZDogJ3Bvc3QnLCB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vcGlja2xpc3RzYCwgYm9keTogcGlja2xpc3QgfSk7XG4gIH07XG5cbiAgdXBkYXRlUGlja2xpc3QkID0gKHBpY2tsaXN0OiBQaWNrbGlzdCk6IE9ic2VydmFibGU8UGlja2xpc3Q+ID0+IHtcbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHtcbiAgICAgIG1ldGhvZDogJ3B1dCcsXG4gICAgICB1cmw6IGAke3RoaXMuc2VydmljZVVybH0vcGlja2xpc3RzLyR7cGlja2xpc3QuaWR9YCxcbiAgICAgIGJvZHk6IHBpY2tsaXN0LFxuICAgIH0pO1xuICB9O1xuXG4gIHJlbW92ZVBpY2tsaXN0JCA9IChpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPiA9PlxuICAgIHRoaXMuYmFzZUh0dHBTZXJ2aWNlLmFwaSh7IG1ldGhvZDogJ2RlbGV0ZScsIHVybDogYCR7dGhpcy5zZXJ2aWNlVXJsfS9waWNrbGlzdHMvJHtpZH1gIH0pO1xuXG4gIHJlc3RvcmVQaWNrbGlzdCQgPSAoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4gPT4ge1xuICAgIHJldHVybiB0aGlzLmJhc2VIdHRwU2VydmljZS5hcGkoe1xuICAgICAgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L3BpY2tsaXN0cy8ke2lkfS9yZXN0b3JlYCxcbiAgICAgIG1ldGhvZDogJ3BhdGNoJyxcbiAgICB9KTtcbiAgfTtcblxuICBhZGRQaWNrbGlzdFZhbHVlJCA9IChwaWNrbGlzdDogUGlja2xpc3QsIHZhbHVlOiBOZXdQaWNrbGlzdFZhbHVlKTogT2JzZXJ2YWJsZTxQaWNrbGlzdD4gPT4ge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAuLi5waWNrbGlzdCxcbiAgICAgIHZhbHVlczogWy4uLnBpY2tsaXN0LnZhbHVlcywgdmFsdWVdLFxuICAgIH07XG5cbiAgICByZXR1cm4gdGhpcy5iYXNlSHR0cFNlcnZpY2UuYXBpKHsgbWV0aG9kOiAncHV0JywgdXJsOiBgJHt0aGlzLnNlcnZpY2VVcmx9L3BpY2tsaXN0cy8ke3BpY2tsaXN0LmlkfWAsIGJvZHk6IGRhdGEgfSk7XG4gIH07XG59XG4iXX0=
|