@veloceapps/api 3.0.10 → 3.0.12

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.
@@ -1 +1 @@
1
- {"version":3,"file":"veloce-api.js","sources":["../../../../libs/api/src/lib/types/dto/attribute-dto.types.ts","../../../../libs/api/src/lib/types/dto/price-adjustment-dto.types.ts","../../../../libs/api/src/lib/types/dto/charge-group-item-dto.types.ts","../../../../libs/api/src/lib/types/dto/charge-item-dto.types.ts","../../../../libs/api/src/lib/types/dto/recommended-price-dto.types.ts","../../../../libs/api/src/lib/types/dto/domain-type-dto.types.ts","../../../../libs/api/src/lib/types/dto/port-domain-dto.types.ts","../../../../libs/api/src/lib/types/dto/price-dto.types.ts","../../../../libs/api/src/lib/types/dto/line-item-dto.types.ts","../../../../libs/api/src/lib/types/dto/configuration-dto.types.ts","../../../../libs/api/src/lib/services/configuration-api.service.ts","../../../../libs/api/src/lib/types/dto/configuration-settings-dto.types.ts","../../../../libs/api/src/lib/services/configuration-settings-api.service.ts","../../../../libs/api/src/lib/services/context-api.service.ts","../../../../libs/api/src/lib/services/document-attachment-api.service.ts","../../../../libs/api/src/lib/services/salesforce-api.service.ts","../../../../libs/api/src/lib/services/quote-api.service.ts","../../../../libs/api/src/lib/services/document-templates-api.service.ts","../../../../libs/api/src/lib/services/flows-api.service.ts","../../../../libs/api/src/lib/services/price-api.service.ts","../../../../libs/api/src/lib/services/procedures-api.service.ts","../../../../libs/api/src/lib/services/product-model-api.service.ts","../../../../libs/api/src/lib/services/ramp-api.service.ts","../../../../libs/api/src/lib/services/rule-groups-api.service.ts","../../../../libs/api/src/lib/services/rules-api.service.ts","../../../../libs/api/src/lib/services/scripts-api.service.ts","../../../../libs/api/src/lib/utils/ui-template.utils.ts","../../../../libs/api/src/lib/services/ui-templates-api.service.ts","../../../../libs/api/src/lib/api.module.ts","../../../../libs/api/src/veloce-api.ts"],"sourcesContent":["import { Attribute, CfgStatus } from '@veloce/core';\n\nexport class AttributeDTO {\n static fromDTO(dto: AttributeDTO): Attribute {\n return {\n id: dto.id,\n name: dto.name,\n type: dto.type,\n scale: dto.scale,\n value: dto.value,\n cfgStatus: dto.cfgStatus as CfgStatus,\n };\n }\n\n constructor(\n public name: string,\n public type: string,\n public value: any,\n public cfgStatus: string,\n\n public id?: string,\n public scale?: number,\n ) {}\n}\n","import { AdjustmentType, PriceAdjustment } from '@veloce/core';\n\nexport class PriceAdjustmentDTO {\n static fromDTO(dto: PriceAdjustmentDTO): PriceAdjustment {\n return {\n amount: dto.amount,\n explanation: dto.explanation,\n type: dto.type as AdjustmentType,\n };\n }\n\n constructor(public amount: number, public explanation: string, public type: string) {}\n}\n","import { ChargeGroupItem, ChargeMethod, FrequencyUnit } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { PriceAdjustmentDTO } from './price-adjustment-dto.types';\n\nexport class ChargeGroupItemDTO {\n static fromDTO(dto: ChargeGroupItemDTO): ChargeGroupItem {\n return {\n id: dto.id,\n chargeType: dto.chargeType,\n chargeTypeDisplayValue: dto.chargeTypeDisplayValue,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n currency: dto.currency,\n sellingTerm: dto.sellingTerm,\n netPrice: dto.netPrice,\n listPrice: dto.listPrice,\n netUnitPrice: dto.netUnitPrice,\n listUnitPrice: dto.listUnitPrice,\n cost: dto.cost,\n priceAdjustment: dto.priceAdjustment && PriceAdjustmentDTO.fromDTO(dto.priceAdjustment),\n priceWaterfalls: dto.priceWaterfalls?.map(PriceAdjustmentDTO.fromDTO),\n enablePriceAdjustment: dto.enablePriceAdjustment,\n properties: dto.properties,\n };\n }\n\n constructor(\n public chargeType: string,\n public chargeMethod: string,\n public properties: Dictionary<string>,\n\n public id?: string,\n public chargeTypeDisplayValue?: string,\n\n public frequencyUnit?: string,\n public frequencyDuration?: number,\n\n public currency?: string,\n public sellingTerm?: number,\n public netPrice?: number,\n public listPrice?: number,\n public netUnitPrice?: number,\n public listUnitPrice?: number,\n public cost?: number,\n\n public priceAdjustment?: PriceAdjustmentDTO,\n public priceWaterfalls?: PriceAdjustmentDTO[],\n\n public enablePriceAdjustment?: boolean,\n ) {}\n}\n","import { ChargeItem, ChargeMethod, FrequencyUnit } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { PriceAdjustmentDTO } from './price-adjustment-dto.types';\n\nexport class ChargeItemDTO {\n static fromDTO(dto: ChargeItemDTO): ChargeItem {\n return {\n id: dto.id,\n price: dto.price,\n unitPrice: dto.unitPrice,\n baseListPrice: dto.baseListPrice,\n baseListUnitPrice: dto.baseListUnitPrice,\n listPrice: dto.listPrice,\n listUnitPrice: dto.listUnitPrice,\n netPrice: dto.netPrice,\n netUnitPrice: dto.netUnitPrice,\n chargeId: dto.chargeId,\n chargeType: dto.chargeType,\n chargeTypeDisplayValue: dto.chargeTypeDisplayValue,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n priceItemId: dto.priceItemId,\n startDate: dto.startDate,\n endDate: dto.endDate,\n priceWaterfalls: dto.priceWaterfalls.map(PriceAdjustmentDTO.fromDTO),\n quantity: dto.quantity,\n properties: dto.properties,\n arr: dto.arr,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n sellingTerm: dto.sellingTerm,\n currency: dto.currency,\n unitCost: dto.unitCost,\n cost: dto.cost,\n minUnitPrice: dto.minUnitPrice,\n minPrice: dto.minPrice,\n enablePriceAdjustment: dto.enablePriceAdjustment,\n enableListPriceAdjustment: dto.enableListPriceAdjustment,\n listPriceAdjustment: dto.listPriceAdjustment && PriceAdjustmentDTO.fromDTO(dto.listPriceAdjustment),\n priceAdjustment: dto.priceAdjustment && PriceAdjustmentDTO.fromDTO(dto.priceAdjustment),\n };\n }\n\n constructor(\n public id: string,\n\n public price: number,\n public unitPrice: number,\n public baseListPrice: number,\n public baseListUnitPrice: number,\n public listPrice: number,\n public listUnitPrice: number,\n public netPrice: number,\n public netUnitPrice: number,\n\n public chargeId: string,\n public chargeType: string,\n public chargeMethod: string,\n\n public priceItemId: string,\n public startDate: string,\n public priceWaterfalls: PriceAdjustmentDTO[],\n public quantity: number,\n public properties: Dictionary<string>,\n\n public chargeTypeDisplayValue?: string,\n public arr?: number,\n\n public frequencyUnit?: string,\n public frequencyDuration?: number,\n public endDate?: string,\n\n public sellingTerm?: number,\n public currency?: string,\n public unitCost?: number,\n public cost?: number,\n\n public minUnitPrice?: number,\n public minPrice?: number,\n\n public enablePriceAdjustment?: boolean,\n public enableListPriceAdjustment?: boolean,\n public listPriceAdjustment?: PriceAdjustmentDTO,\n public priceAdjustment?: PriceAdjustmentDTO,\n ) {}\n}\n","import { ChargeMethod, FrequencyUnit, RecommendedPrice } from '@veloce/core';\n\nexport class RecommendedPriceDTO {\n static fromDTO(dto: RecommendedPriceDTO): RecommendedPrice {\n return {\n netPrice: dto.netPrice,\n listPrice: dto.listPrice,\n chargeType: dto.chargeType,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n explanation: dto.explanation,\n };\n }\n\n constructor(\n public netPrice: number,\n public listPrice: number,\n public chargeType: string,\n public chargeMethod: string,\n public explanation?: string,\n public frequencyDuration?: number,\n public frequencyUnit?: string,\n ) {}\n}\n","import { DomainType } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { RecommendedPriceDTO } from './recommended-price-dto.types';\n\nexport class DomainTypeDTO {\n static fromDTO(dto: DomainTypeDTO): DomainType {\n return {\n name: dto.name,\n displayName: dto.displayName,\n minCard: dto.minCard,\n maxCard: dto.maxCard,\n recommendedPrices: dto.recommendedPrices?.map(RecommendedPriceDTO.fromDTO),\n properties: dto.properties,\n status: dto.status,\n cardinality: dto.cardinality,\n };\n }\n\n constructor(\n public name: string,\n public displayName: string,\n public minCard: number,\n public maxCard: number,\n public recommendedPrices?: RecommendedPriceDTO[],\n public properties?: Dictionary<string>,\n public status?: string,\n public cardinality?: number,\n ) {}\n}\n","import { PortDomain } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { DomainTypeDTO } from './domain-type-dto.types';\n\nexport class PortDomainDTO {\n static fromDTO(dto: PortDomainDTO): PortDomain {\n return {\n name: dto.name,\n type: dto.type,\n minCard: dto.minCard,\n maxCard: dto.maxCard,\n domainTypes: dto.domainTypes.map(DomainTypeDTO.fromDTO),\n properties: dto.properties,\n };\n }\n\n constructor(\n public name: string,\n public type: string,\n public minCard: number,\n public maxCard: number,\n public domainTypes: DomainTypeDTO[],\n public properties: Dictionary<string>,\n ) {}\n}\n","import { ChargeMethod, FrequencyUnit, Price } from '@veloce/core';\n\nexport class PriceDTO {\n static fromDTO(dto: PriceDTO): Price {\n return {\n netPrice: dto.netPrice,\n listPrice: dto.listPrice,\n chargeType: dto.chargeType,\n chargeTypeDisplayValue: dto.chargeTypeDisplayValue,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n sellingTerm: dto.sellingTerm,\n };\n }\n\n constructor(\n public netPrice: number,\n public listPrice: number,\n public chargeType: string,\n public chargeTypeDisplayValue: string,\n public chargeMethod: string,\n public frequencyUnit: string,\n public frequencyDuration: number,\n public sellingTerm: number,\n ) {}\n}\n","import { CfgStatus, FrequencyUnit, LineItem } from '@veloce/core';\nimport { Dictionary, transform } from 'lodash';\nimport { AttributeDTO } from './attribute-dto.types';\nimport { ChargeGroupItemDTO } from './charge-group-item-dto.types';\nimport { ChargeItemDTO } from './charge-item-dto.types';\nimport { PortDomainDTO } from './port-domain-dto.types';\nimport { PriceDTO } from './price-dto.types';\n\nexport class LineItemDTO {\n static fromDTO(dto: LineItemDTO): LineItem {\n return {\n id: dto.id,\n activated: dto.activated,\n attributes: dto.attributes.map(AttributeDTO.fromDTO),\n attributeDomains: dto.attributeDomains,\n cfgStatus: dto.cfgStatus as CfgStatus,\n chargeGroupItems: dto.chargeGroupItems.map(ChargeGroupItemDTO.fromDTO),\n chargeItems: dto.chargeItems.map(ChargeItemDTO.fromDTO),\n domainComputations: dto.domainComputations,\n lineItems: dto.lineItems.map(LineItemDTO.fromDTO),\n messages: dto.messages,\n name: dto.name,\n optionalCharges: dto.optionalCharges,\n pending: dto.pending,\n portDomains: transform(dto.portDomains, (result, value, key) => (result[key] = PortDomainDTO.fromDTO(value))),\n properties: dto.properties,\n qty: dto.qty,\n totalPrices: transform(dto.totalPrices, (result, value, key) => (result[key] = PriceDTO.fromDTO(value))),\n type: dto.type,\n productId: dto.productId,\n port: dto.port,\n parentId: dto.parentId,\n assetId: dto.assetId,\n openOrderLineItemId: dto.openOrderLineItemId,\n productName: dto.productName,\n rootId: dto.rootId,\n actionCode: dto.actionCode,\n serviceStartDate: dto.serviceStartDate,\n effectiveDate: dto.effectiveDate,\n effectiveStartDate: dto.effectiveStartDate,\n startDate: dto.startDate,\n endDate: dto.endDate,\n planId: dto.planId,\n sellingFrequencyUnit: dto.sellingFrequencyUnit as FrequencyUnit,\n sellingFrequencyDuration: dto.sellingFrequencyDuration,\n offeringId: dto.offeringId,\n offeringItemId: dto.offeringItemId,\n offeringInstanceId: dto.offeringInstanceId,\n rampInstanceId: dto.rampInstanceId,\n enableRamp: dto.enableRamp,\n configurable: dto.configurable,\n };\n }\n\n constructor(\n public id: string,\n public activated: boolean,\n public attributes: AttributeDTO[],\n public attributeDomains: Dictionary<any[]>,\n public cfgStatus: string,\n public chargeGroupItems: ChargeGroupItemDTO[],\n public chargeItems: ChargeItemDTO[],\n public domainComputations: Dictionary<boolean>,\n public lineItems: LineItem[],\n public messages: string[],\n public name: string,\n public optionalCharges: any[],\n public pending: boolean,\n public portDomains: Dictionary<PortDomainDTO>,\n public properties: Dictionary<string>,\n public qty: number,\n public totalPrices: Dictionary<PriceDTO>,\n public type: string,\n\n public productId?: string,\n public port?: string,\n public parentId?: string,\n public assetId?: string,\n public openOrderLineItemId?: string,\n\n public productName?: string,\n public rootId?: string,\n public actionCode?: string,\n public serviceStartDate?: string,\n public effectiveDate?: string,\n public effectiveStartDate?: string,\n public startDate?: string,\n public endDate?: string,\n\n public planId?: string,\n public sellingFrequencyUnit?: string,\n public sellingFrequencyDuration?: string,\n\n public offeringId?: string,\n public offeringItemId?: string,\n public offeringInstanceId?: string,\n public rampInstanceId?: string,\n public enableRamp?: boolean,\n public configurable?: boolean,\n ) {}\n}\n","import { ConfigurationContext, ConfigurePrice, PricePlanCharge } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { LineItemDTO } from './line-item-dto.types';\n\nexport interface ConfigurePriceDTO {\n lineItem: LineItemDTO;\n context: ConfigurationContext;\n charges: Dictionary<PricePlanCharge>;\n deletedLineItems: LineItemDTO[];\n}\n\nexport class ConfigurePriceDTO {\n static fromDTO(dto: ConfigurePriceDTO): ConfigurePrice {\n return {\n lineItem: LineItemDTO.fromDTO(dto.lineItem),\n charges: dto.charges,\n context: dto.context,\n deletedLineItems: dto.deletedLineItems.map(deletedLineItem => LineItemDTO.fromDTO(deletedLineItem)),\n };\n }\n\n constructor(\n public lineItem: LineItemDTO,\n public context: ConfigurationContext,\n public charges: Dictionary<PricePlanCharge>,\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n ConfigurationRequest,\n ConfigurePrice,\n DomainType,\n LineItem,\n ModelTranslatorUtils,\n RuntimeData,\n RuntimeModel,\n} from '@veloce/core';\nimport { Observable, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfigurePriceDTO } from '../types/dto/configuration-dto.types';\n\n@Injectable()\nexport class ConfigurationApiService {\n private readonly SERVICE_URL = '/configuration';\n\n constructor(private httpService: BaseHttpService) {}\n\n configureLineItem({\n configurationRequest,\n runtimeModel,\n pricingEnabled,\n }: {\n configurationRequest: ConfigurationRequest;\n runtimeModel?: RuntimeModel;\n pricingEnabled?: boolean;\n }): Observable<ConfigurePrice> {\n return this.httpService\n .api<ConfigurePrice>({\n method: 'post',\n url: `${this.SERVICE_URL}${pricingEnabled ? '/price' : ''}`,\n body: configurationRequest,\n errorHandler: e => throwError(e),\n })\n .pipe(\n map(response => ConfigurePriceDTO.fromDTO(response)),\n map(configurePrice => {\n if (runtimeModel) {\n return {\n ...configurePrice,\n lineItem: this.updatePortDomains(configurePrice.lineItem, runtimeModel),\n };\n } else {\n return configurePrice;\n }\n }),\n );\n }\n\n public getRuntimeDataByProductId(productId: string, offeringId?: string): Observable<RuntimeData> {\n return this.httpService\n .api<RuntimeData>({\n method: 'get',\n url: `${this.SERVICE_URL}/${productId}/model` + ((offeringId && `/${offeringId}`) || ''),\n })\n .pipe(\n map(runtimeData => {\n runtimeData.uiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n runtimeData.uiDefinitions.forEach(uiDefinition => {\n ModelTranslatorUtils.toLocalUIDefinition(uiDefinition);\n });\n return runtimeData;\n }),\n );\n }\n\n public getRuntimeDataByModelId(modelId: string): Observable<RuntimeData> {\n return this.httpService\n .api({\n method: 'get',\n url: `${this.SERVICE_URL}/${modelId}/model-test`,\n })\n .pipe(\n map((runtimeData: RuntimeData) => {\n runtimeData.uiDefinitions = [];\n return runtimeData;\n }),\n );\n }\n\n private updatePortDomains(lineItem: LineItem, runtimeModel: RuntimeModel): LineItem {\n const type = runtimeModel.components.get(lineItem.type);\n const portDomains = { ...lineItem.portDomains };\n for (const port of type?.ports ?? []) {\n const portDomain = portDomains[port.name];\n if (portDomain?.properties?.domainComputation === 'false') {\n portDomain.domainTypes = port.domainTypes as DomainType[];\n }\n }\n return {\n ...lineItem,\n lineItems: lineItem.lineItems?.map(i => this.updatePortDomains(i, runtimeModel)),\n portDomains,\n };\n }\n}\n","import { ConfigurationSettings } from '@veloce/core';\n\nexport class ConfigurationSettingsDTO {\n static fromDTO(dto: ConfigurationSettingsDTO, key?: string): ConfigurationSettings {\n return {\n id: dto?.id,\n key: dto?.key || key || '',\n value: dto?.value,\n };\n }\n\n static toDTO(data: ConfigurationSettings): ConfigurationSettingsDTO {\n return {\n id: data.id,\n key: data.key,\n value: data.value,\n };\n }\n\n constructor(public id: string, public key: string, public value: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, ConfigurationSettings, DataAdministrationField } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfigurationSettingsDTO } from '../types/dto/configuration-settings-dto.types';\n\n@Injectable()\nexport class ConfigurationSettingsApiService {\n private readonly SERVICE_URL = '/configuration-settings';\n\n constructor(private httpService: BaseHttpService) {}\n\n fetchSettings(): Observable<ConfigurationSettings[]> {\n return this.httpService\n .api<ConfigurationSettingsDTO[]>({\n url: `${this.SERVICE_URL}`,\n method: 'get',\n })\n .pipe(\n map((settings: ConfigurationSettingsDTO[]) =>\n settings.map(setting => ConfigurationSettingsDTO.fromDTO(setting)),\n ),\n );\n }\n\n fetchSetting(settingsKey: string): Observable<ConfigurationSettings> {\n return this.httpService\n .api<ConfigurationSettingsDTO>({\n url: `${this.SERVICE_URL}/byKey/${settingsKey}`,\n method: 'get',\n })\n .pipe(map((setting: ConfigurationSettingsDTO) => ConfigurationSettingsDTO.fromDTO(setting, settingsKey)));\n }\n\n createSetting(setting: ConfigurationSettings): Observable<ConfigurationSettings> {\n const request = ConfigurationSettingsDTO.toDTO(setting);\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}`,\n method: 'post',\n body: {\n ...request,\n },\n });\n }\n\n updateSetting(setting: ConfigurationSettings): Observable<ConfigurationSettings> {\n const request = ConfigurationSettingsDTO.toDTO(setting);\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${request.id}`,\n method: 'put',\n body: {\n ...request,\n },\n });\n }\n\n removeSetting(setting: ConfigurationSettings): Observable<ConfigurationSettings> {\n const request = ConfigurationSettingsDTO.toDTO(setting);\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${request.id}`,\n method: 'delete',\n });\n }\n\n restoreSetting(settingId: string) {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${settingId}/restore`,\n method: 'patch',\n });\n }\n\n clear(name: DataAdministrationField): Observable<void> {\n return this.httpService.api({\n method: 'get',\n url: '/cache/evict/' + name,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, ConfigurationContext, ConfigurationContextMode } from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ContextApiService {\n private readonly SERVICE_URL = '/context';\n\n constructor(private httpService: BaseHttpService) {}\n\n getContext(headerId: string, mode: ConfigurationContextMode): Observable<ConfigurationContext> {\n return this.httpService.api({\n method: 'post',\n body: {\n headerId: headerId,\n contextMode: ConfigurationContextMode[mode],\n },\n url: `${this.SERVICE_URL}`,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n FileDownloadService,\n TemplateAttachment,\n TemplateAttachmentSearchRequest,\n} from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class DocumentAttachmentApiService {\n private readonly SERVICE_URL = '/attachments';\n\n constructor(private httpService: BaseHttpService, private fileDownloadService: FileDownloadService) {}\n\n getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/search`,\n method: 'post',\n body: searchRequest,\n });\n }\n\n createAttachment(\n attachment: TemplateAttachment,\n file?: File,\n reportProgress?: boolean,\n ): Observable<TemplateAttachment> {\n const formData: FormData = new FormData();\n\n if (file) {\n formData.append('file', file, file.name);\n }\n\n formData.append(\n 'attachment',\n new Blob([JSON.stringify(attachment)], {\n type: 'application/json',\n }),\n );\n\n return this.httpService.upload({\n url: `${this.SERVICE_URL}`,\n body: formData,\n method: 'post',\n observe: reportProgress ? 'events' : undefined,\n reportProgress,\n });\n }\n\n updateAttachment(id: string, attachment: TemplateAttachment): Observable<TemplateAttachment> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${id}`,\n body: attachment,\n method: 'put',\n });\n }\n\n getAttachmentFile(id: string, isPreventDownload?: boolean): Observable<any> {\n return this.httpService\n .api({\n url: `${this.SERVICE_URL}/${id}/file`,\n responseType: isPreventDownload ? 'arraybuffer' : 'blob',\n observe: isPreventDownload ? 'body' : 'response',\n })\n .pipe(\n tap(response => {\n if (!isPreventDownload) {\n this.fileDownloadService.processDownload(response);\n }\n }),\n map(response => (isPreventDownload ? new Blob([response.body || response]) : response.body || response)),\n );\n }\n\n removeAttachment(id: string): Observable<unknown> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${id}`,\n method: 'delete',\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n HttpRequestConfigurableOptions,\n SalesforceField,\n SalesforceObject,\n SearchRequest,\n} from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class SalesforceApiService {\n private readonly SERVICE_URL = '/proxy';\n\n constructor(private httpService: BaseHttpService) {}\n\n query<T>(\n searchRequest: SearchRequest,\n objectName: string,\n options?: HttpRequestConfigurableOptions,\n ): Observable<T[]> {\n return this.httpService.api({\n method: 'post',\n body: { ...searchRequest, count: searchRequest.count || 100 },\n url: `${this.SERVICE_URL}/query/${objectName}`,\n ...options,\n });\n }\n\n queryObjects(search?: string, options?: HttpRequestConfigurableOptions): Observable<SalesforceObject[]> {\n const params = new HttpParams();\n if (search) {\n params.append('search', search);\n }\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}/query`,\n params,\n ...options,\n });\n }\n\n describe(\n objectName: string,\n fieldName?: string,\n options?: HttpRequestConfigurableOptions,\n ): Observable<SalesforceField[]> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields` + (fieldName ? `/${fieldName}` : '');\n\n return this.httpService.api({ url: methodUrl, ...options });\n }\n\n describe2<T>(objectName: string, fields: string[], options?: HttpRequestConfigurableOptions): Observable<T> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields`;\n\n return this.httpService.api({ method: 'post', url: methodUrl, body: fields, ...options });\n }\n\n apexGetRequest<T>(path: string, params: HttpParams, options?: HttpRequestConfigurableOptions): Observable<T> {\n return this.httpService.api({ url: `${this.SERVICE_URL}/apex${path}`, params, ...options });\n }\n\n apexPostRequest<T, S>(path: string, body: S, options?: HttpRequestConfigurableOptions): Observable<T> {\n return this.httpService.api({\n method: 'post',\n body,\n url: `${this.SERVICE_URL}/apex${path}`,\n ...options,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, HttpRequestConfigurableOptions, QuoteDraft } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class QuoteApiService {\n private readonly SERVICE_URL = '/quotes';\n\n constructor(private httpService: BaseHttpService) {}\n\n // request quoteId | accountId | opportunityId | orderId\n getQuoteDraft(\n objectId: string,\n params?: Dictionary<string>,\n errorHandler?: (error: any) => void,\n ): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'get',\n url: `${this.SERVICE_URL}/${objectId}`,\n params,\n errorHandler,\n });\n }\n\n /**\n * @deprecated\n * Will be removed in next major release\n * Use `getQuoteDraft` instead\n */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n getQuote = this.getQuoteDraft;\n\n upsertQuote(request: QuoteDraft, options?: HttpRequestConfigurableOptions): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}`,\n body: request,\n ...options,\n });\n }\n\n submitQuote(request: QuoteDraft, options?: HttpRequestConfigurableOptions): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/submit`,\n body: request,\n ...options,\n });\n }\n\n attachDocument(id: string, documentName: string, data: any): Observable<void> {\n const formData: FormData = new FormData();\n const blob = new Blob([data]);\n formData.append('file', blob, documentName);\n\n return this.httpService.upload({\n url: `${this.SERVICE_URL}/${id}/attach-document`,\n responseType: 'arraybuffer',\n method: 'post',\n body: formData,\n });\n }\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n AnyWithProperties,\n BaseHttpService,\n DocumentTemplate,\n DocxTemplater,\n FileDownloadService,\n isLegacyDocumentTemplate,\n QuoteDraft,\n SearchRequest,\n StringUtils,\n TemplateAttachment,\n TemplateAttachmentSearchRequest,\n TemplateQuery,\n VlWindow,\n} from '@veloce/core';\nimport * as _ from 'lodash';\nimport * as moment_ from 'moment';\nimport { forkJoin, Observable, of, zip } from 'rxjs';\nimport { defaultIfEmpty, map, switchMap, tap } from 'rxjs/operators';\nimport { DocumentAttachmentApiService } from './document-attachment-api.service';\nimport { QuoteApiService } from './quote-api.service';\nimport { SalesforceApiService } from './salesforce-api.service';\n\nconst moment = moment_;\ndeclare const window: VlWindow;\n\nexport interface DocumentGenerationParams {\n attachToQuote?: boolean;\n documentFormat?: 'DOCX';\n shouldPreventDownload?: boolean;\n}\n\n@Injectable()\nexport class DocumentTemplatesApiService {\n private readonly SERVICE_URL = '/templates';\n private readonly DOC_GEN_URL_FALLBACK = 'https://dev-dp1.velocpq.com/docgen';\n private readonly DOC_GEN_URL;\n\n constructor(\n private service: BaseHttpService,\n private salesforceApiService: SalesforceApiService,\n private fileDownloadService: FileDownloadService,\n private documentAttachmentService: DocumentAttachmentApiService,\n private quoteApiService: QuoteApiService,\n private http: HttpClient,\n ) {\n if (window.VELO_DOCGEN_API) {\n this.DOC_GEN_URL = window.VELO_DOCGEN_API;\n } else {\n console.log(`window.VELO_DOCGEN_API not set, will use fallback \"${this.DOC_GEN_URL_FALLBACK}\"`);\n this.DOC_GEN_URL = this.DOC_GEN_URL_FALLBACK;\n }\n }\n\n public getTemplates(tag?: string): Observable<DocumentTemplate[]> {\n return this.service.api({\n url: `${this.SERVICE_URL}`,\n method: 'get',\n params: {\n ...(tag && { tag }),\n },\n });\n }\n\n public getTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: `${this.SERVICE_URL}/${id}`,\n method: 'get',\n });\n }\n\n public upsertTemplate(\n template: DocumentTemplate,\n file?: File,\n reportProgress?: boolean,\n ): Observable<DocumentTemplate> {\n const formData: FormData = new FormData();\n\n if (file) {\n formData.append('file', file, file.name);\n }\n formData.append(\n 'template',\n new Blob([JSON.stringify(template)], {\n type: 'application/json',\n }),\n );\n\n let url = `${this.SERVICE_URL}`;\n if (template.id) {\n url += `/${template.id}`;\n }\n\n return this.service.upload({\n url,\n body: formData,\n method: template.id ? 'put' : 'post',\n reportProgress,\n });\n }\n\n public removeTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: `${this.SERVICE_URL}/${id}`,\n method: 'delete',\n });\n }\n\n public restoreTemplate(id: string): Observable<void> {\n return this.service.api({\n url: `${this.SERVICE_URL}/${id}/restore`,\n method: 'patch',\n });\n }\n\n public cloneTemplate(\n id: string,\n propertiesToOverride: Partial<DocumentTemplate> = {},\n ): Observable<{ clonedRecordId: string }> {\n return this.service.api({\n url: `${this.SERVICE_URL}/clone/${id}`,\n method: 'post',\n body: {\n id,\n propertiesToOverride,\n },\n });\n }\n\n public getTemplateFile(id: string): Observable<ArrayBuffer> {\n return this.service.api({\n method: 'get',\n url: `${this.SERVICE_URL}/${id}/file`,\n responseType: 'arraybuffer',\n });\n }\n\n public downloadTemplateFile(id: string): Observable<Blob> {\n return this.service\n .api({\n url: `${this.SERVICE_URL}/${id}/file`,\n responseType: 'blob',\n observe: 'response',\n })\n .pipe(\n tap(response => {\n this.fileDownloadService.processDownload(response);\n }),\n map(response => response.body || response),\n );\n }\n\n public mergeDocuments(document: Blob, attachments: ArrayBuffer[]): Observable<ArrayBuffer> {\n const body = new FormData();\n\n attachments.forEach(attachment => {\n body.append('attachments', new Blob([attachment]));\n });\n\n body.append('orderform', document);\n\n return this.http.post(`${this.DOC_GEN_URL}/documents/merge`, body, {\n responseType: 'arraybuffer',\n });\n }\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.documentAttachmentService.getAttachments(searchRequest);\n }\n\n public getAttachmentFile(id: string): any {\n return this.documentAttachmentService.getAttachmentFile(id);\n }\n\n public createAttachment(\n attachment: TemplateAttachment,\n file?: File,\n reportProgress?: boolean,\n ): Observable<TemplateAttachment> {\n return this.documentAttachmentService.createAttachment(attachment, file, reportProgress);\n }\n\n public removeAttachment(id: string): Observable<unknown> {\n return this.documentAttachmentService.removeAttachment(id);\n }\n\n public generateDocumentData(\n template: DocumentTemplate,\n object: any,\n params: DocumentGenerationParams = {},\n ): Observable<any> {\n if (isLegacyDocumentTemplate(template)) {\n return this.generateDocumentDataLegacy(template, object, params);\n }\n\n const templateProperties = template.properties?.reduce(\n (acc, { name, value }) => ({ ...acc, [name]: this.mapBooleanIfAplicable(value) }),\n {},\n );\n\n /*\n Resolve quote and template properties for now\n When procedures are ready, whey will replace template scripts.\n\n TODO: run procedure to resolve document data\n */\n return of({\n ...(typeof object === 'object' ? object : { object }),\n ...templateProperties,\n });\n }\n\n public generateDocument(\n template: DocumentTemplate,\n object: any,\n params: DocumentGenerationParams = {},\n ): Observable<Blob> {\n const documentData$ = this.generateDocumentData(template, object, { ...params, shouldPreventDownload: true });\n\n return zip(this.getTemplateFile(template.id), documentData$, this.resolveAttachments$(template)).pipe(\n switchMap(([templateFile, data, attachments]) => {\n const document = DocxTemplater.generate(templateFile, data);\n const properties: _.Dictionary<string> = object?.context?.properties ?? object?.properties ?? {};\n const documentName = properties.Name || template.name;\n\n const documentFormat =\n params.documentFormat ?? template.properties?.find(p => p.name === 'documentFormat')?.value;\n if (documentFormat === 'DOCX') {\n this.fileDownloadService.processDownload(document, documentName);\n\n return of(document);\n }\n\n return this.mergeDocuments(document, attachments).pipe(\n switchMap(pdf => {\n if (params.attachToQuote && QuoteDraft.isQuote(object)) {\n return this.quoteApiService\n .attachDocument(object.quoteId, `${documentName}.pdf`, pdf)\n .pipe(map(() => pdf));\n }\n\n return of(pdf);\n }),\n map(pdf => {\n const blob = new Blob([pdf]);\n\n if (!params.shouldPreventDownload) {\n this.fileDownloadService.processDownload(blob, `${documentName}.pdf`);\n }\n\n return blob;\n }),\n );\n }),\n );\n }\n\n private generateDocumentDataLegacy(\n template: DocumentTemplate,\n object: any,\n params: DocumentGenerationParams = {},\n ): Observable<any> {\n const shouldPreventDownload = params.shouldPreventDownload;\n const allQueries: TemplateQuery[] = [...(template?.queries ?? [])];\n const properties: _.Dictionary<string> = object?.context?.properties ?? object?.properties ?? {};\n const accountId = properties?.AccountId;\n const userId = properties?.UserId;\n\n if (accountId) {\n allQueries.push({\n queryName: 'QuoteAccountQuery',\n objectName: 'Account',\n resultObjectName: 'account',\n statement: `Id ='${accountId}'`,\n fields: [],\n });\n }\n if (userId) {\n allQueries.push({\n queryName: 'QuoteUserQuery',\n objectName: 'User',\n resultObjectName: 'agent',\n statement: `Id ='${userId}'`,\n fields: [],\n });\n }\n\n const queries = allQueries.map(query => this.queryObject(query, { properties })) || [];\n\n return forkJoin([...queries]).pipe(\n defaultIfEmpty([] as any[]),\n map(results => {\n const queriesResult = _.chain(results)\n .reduce((acc, r) => {\n if (r) {\n return { ...acc, ...r };\n }\n\n return acc;\n }, {})\n .value();\n\n const templateProperties = (template?.properties || []).reduce((trunk, { name, value }) => {\n return {\n ...trunk,\n [name as string]: this.mapBooleanIfAplicable(value as any),\n };\n }, {});\n\n const data = {\n ...(typeof object === 'object' ? object : { object }),\n ...queriesResult,\n ...templateProperties,\n };\n\n if (template.script && template.script.trim().length) {\n const currencyFormat = template.properties?.find(({ name }) => name === 'currencyFormat')?.value || '1.2-2';\n const dateFormat = template.properties?.find(({ name }) => name === 'dateFormat')?.value || 'D/MMM/YYYY';\n const formatDate = (value: string) => {\n return value ? moment(value).format(dateFormat) : value;\n };\n const transform = new Function(`return ${template.script}`)();\n const transformedData = transform({\n ...data,\n utils: {\n lodash: _,\n currency: (value: any) => new CurrencyPipe('en-US').transform(value, 'USD', 'symbol', currencyFormat),\n date: formatDate,\n },\n ToDay: formatDate(Date.now() as any),\n });\n if (!shouldPreventDownload) {\n const blob = new Blob([JSON.stringify(transformedData)]);\n this.fileDownloadService.processDownload(blob, 'data.json');\n }\n return transformedData;\n }\n return data;\n }),\n );\n }\n\n private resolveAttachments$(template: DocumentTemplate): Observable<ArrayBuffer[]> {\n const attachmentIds = (template.attachments?.map(({ id }) => id).filter(Boolean) as string[]) ?? [];\n\n if (!attachmentIds.length) {\n return of([]);\n }\n\n return forkJoin(attachmentIds.map(id => this.documentAttachmentService.getAttachmentFile(id, true)));\n }\n\n private mapSfQueryResult = <T>(limit: number) =>\n map((records: T[]) => {\n if (!records.length) {\n return { _result: 'No Records Found' };\n }\n\n if (limit === 1) {\n return records[0];\n }\n\n return records;\n });\n\n private mapBooleanIfAplicable = (value: string) => {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n return value;\n };\n\n private queryObject(\n { objectName, resultObjectName, fields, statement }: TemplateQuery,\n { properties }: AnyWithProperties,\n ): Observable<any> {\n const patternLimit = /(\\s*limit\\s\\d*)/i;\n let limit = 1;\n if (statement && patternLimit.test(statement)) {\n const limitStr = statement?.match(patternLimit)?.[1].trim().substring(5).trim();\n if (limitStr) {\n limit = Number.parseInt(limitStr, 10);\n }\n statement = statement.replace(patternLimit, '');\n }\n\n const resolvedStatement = statement\n ? StringUtils.fillPlaceholders(statement, properties, /:\\s*(\\w[\\w\\d_.]+)/i)\n : undefined;\n\n const searchRequest = {\n skip: 0,\n count: limit,\n rawCondition: resolvedStatement,\n ...(fields?.length && !!fields[0] && { fields }),\n } as SearchRequest;\n\n return this.salesforceApiService.query(searchRequest, objectName).pipe(\n this.mapSfQueryResult(limit),\n map(value => ({ [resultObjectName]: value })),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Flow } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfigurationSettingsApiService } from './configuration-settings-api.service';\n\n@Injectable()\nexport class FlowsApiService {\n private readonly flowsKey = 'flows';\n\n constructor(private configurationSettingsApiService: ConfigurationSettingsApiService) {}\n\n public getFlow(id: string): Observable<Flow | undefined> {\n return this.fetchFlows().pipe(map(flows => flows.find(flow => flow.id == id)));\n }\n\n public fetchFlows(): Observable<Flow[]> {\n return this.configurationSettingsApiService\n .fetchSetting(this.flowsKey)\n .pipe(map(({ value }): Flow[] => (value ? JSON.parse(value) : [])));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, PriceList, PriceSummary } from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class PriceApiService {\n private readonly SERVICE_URL = '/price';\n\n constructor(private httpService: BaseHttpService) {}\n\n calculateRuntime(request: any): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/calculate-runtime`,\n body: request,\n });\n }\n\n calculate(request: any): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/calculate`,\n body: request,\n });\n // TODO: move outside API service\n // .pipe(\n // map(data => {\n // if (data.context) {\n // const context = this.contextService.resolveOrCreate();\n // const patchedContext = {\n // ...context,\n // properties: {\n // ...context.properties,\n // ...data.context.properties,\n // },\n // };\n\n // this.contextService.update(patchedContext);\n // }\n\n // return data;\n // }),\n // );\n }\n\n getPriceLists(): Observable<PriceList[]> {\n return this.httpService.api({\n method: 'get',\n url: '/price-lists',\n });\n }\n\n getPriceList(id: string): Observable<PriceList> {\n return this.httpService.api({\n method: 'get',\n url: `/price-lists/${id}`,\n });\n }\n\n getSellingTermByEndDate(\n planId?: string,\n offeringId?: string,\n startDate?: string,\n endDate?: string,\n frequencyUnit?: string,\n frequencyDuration?: string,\n ): Observable<any> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/selling-term-by-end-date`,\n body: {\n planId: planId,\n offeringId: offeringId,\n startDate: startDate,\n endDate: endDate,\n frequencyUnit: frequencyUnit,\n frequencyDuration: frequencyDuration,\n },\n });\n }\n\n getSellingTermByTerm(\n planId?: string,\n offeringId?: string,\n startDate?: string,\n term?: number,\n frequencyUnit?: string,\n frequencyDuration?: string,\n ): Observable<any> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/selling-term-by-term`,\n body: {\n planId: planId,\n offeringId: offeringId,\n startDate: startDate,\n term: term,\n frequencyUnit: frequencyUnit,\n frequencyDuration: frequencyDuration,\n },\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewProcedure, Procedure, ProcedureExecuteRequest } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class ProceduresApiService {\n private readonly serviceUrl: string = '/admin/procedures';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchProcedures$ = (): Observable<Procedure[]> => {\n return this.searchProcedures$(new Expression(), 0, 100);\n };\n\n searchProcedures$ = (expression: Expression, skip: number, count: number): Observable<Procedure[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n createProcedure$ = (newProcedure: NewProcedure): Observable<Procedure> => {\n return this.baseHttpService.api<Procedure>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: newProcedure,\n });\n };\n\n updateProcedure$ = (procedure: Procedure): Observable<Procedure> => {\n return this.baseHttpService.api<Procedure>({\n url: `${this.serviceUrl}/${procedure.id}`,\n method: 'put',\n body: procedure,\n });\n };\n\n duplicateProcedure$ = (body: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${body.id}/clone`,\n method: 'post',\n body,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeProcedure$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreProcedure$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n\n fetchProcedure$(id: string): Observable<Procedure> {\n return this.baseHttpService.api<Procedure>({\n url: `${this.serviceUrl}/${id}`,\n method: 'get',\n });\n }\n\n execute$(body: ProcedureExecuteRequest) {\n return this.baseHttpService.api<string[]>({\n url: `/procedures/execute`,\n method: 'post',\n body,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n EntityUtil,\n ModelReleaseRequest,\n ModelTranslatorUtils,\n ModelUtils,\n PmlConfigurationMode,\n ProductModel,\n ProductModelsContainer,\n ProductModelVersion,\n} from '@veloce/core';\nimport { forkJoin, Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class ProductModelApiService {\n public static MAX_RESULTS = 200;\n\n private readonly SERVICE_URL = '/models';\n\n constructor(private httpService: BaseHttpService) {}\n\n addModel(model: ProductModel): Observable<any> {\n return this.httpService\n .api({\n method: 'post',\n url: this.SERVICE_URL,\n body: model,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return result;\n } else {\n throw new Error(result.message);\n }\n }),\n );\n }\n\n releaseModel(model: ModelReleaseRequest): Observable<any> {\n return this.httpService\n .api({\n method: 'put',\n url: `${this.SERVICE_URL}/${model.id}/release`,\n body: model,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n );\n }\n\n removeModel(modelId: string, successFn?: any, failureFn?: any): void {\n const observable = this.httpService\n .api({\n method: 'delete',\n url: `${this.SERVICE_URL}/${modelId}`,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n );\n\n observable.subscribe(\n () => {\n successFn && successFn.apply();\n },\n () => {\n failureFn && failureFn.apply();\n },\n );\n }\n\n getModelVersions(modelId: string, count: number = 100, skip: number = 0): Observable<ProductModelVersion[]> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/${modelId}/versions`,\n body: {\n skipCount: skip,\n count: count,\n },\n });\n }\n\n getModel(id: string, version?: string): Observable<ProductModel> {\n let url = `${this.SERVICE_URL}/${id}`;\n\n if (version) {\n url += `/versions/${version}`;\n }\n\n return this.httpService.api({ url });\n }\n\n getModels(skipCount: number, searchText: string): Observable<ProductModel[]> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/search`,\n body: {\n nameRegex: searchText,\n skipCount: skipCount.toString(),\n count: ProductModelApiService.MAX_RESULTS,\n },\n });\n }\n\n getLinkedModels(id: string, version?: string): Observable<ProductModel[]> {\n let url = `${this.SERVICE_URL}/${id}`;\n\n if (version) {\n url += `/versions/${version}`;\n }\n\n url += '/linked';\n\n return this.httpService.api({ url }).pipe(\n map((linkedModels: ProductModel[]) => {\n if (linkedModels) {\n linkedModels.forEach(model => ModelTranslatorUtils.toLocalModel(model));\n }\n return linkedModels;\n }),\n );\n }\n\n load(id: string, version?: string): Observable<ProductModelsContainer> {\n return forkJoin([this.getModel(id, version), this.getLinkedModels(id, version)]).pipe(\n map(([model, linkedModels]) => {\n const container = new ProductModelsContainer(model, linkedModels ?? []);\n\n ModelUtils.override(container.main, container.linked);\n ModelTranslatorUtils.toLocalModel(container.main, container.linked);\n\n return container;\n }),\n );\n }\n\n getPML(modelId: string, version?: string): Observable<any> {\n let url = `${this.SERVICE_URL}/${modelId}/pml/${version}`;\n\n if (version) {\n url += `/versions/${version}`;\n }\n\n return this.httpService.api({\n url,\n responseType: 'text',\n });\n }\n\n savePML(modelId: string, pml: string, comment: string): Observable<any> {\n return this.httpService\n .api({\n method: 'put',\n url: `${this.SERVICE_URL}/${modelId}/pml`,\n body: {\n id: modelId,\n pml: pml,\n comment: comment,\n },\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n catchError(this.httpService.handleValidationError),\n );\n }\n\n generateProducts(modelId: string): Observable<ProductModel> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${modelId}/generate-products`,\n });\n }\n\n saveModel(productModel: ProductModel, comment: string): Observable<string> {\n const model = EntityUtil.clone(productModel);\n model.comment = comment;\n ModelTranslatorUtils.toServerModel(model);\n\n return this.httpService\n .api({\n method: 'put',\n url: `${this.SERVICE_URL}/${model.id}`,\n body: model,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n catchError(this.httpService.handleValidationError),\n );\n }\n\n validateModel(productModel: ProductModel): Observable<string> {\n return this.httpService\n .api({\n method: 'post',\n url: `${this.SERVICE_URL}/validate`,\n body: productModel,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n );\n }\n\n renameModel(productModel: ProductModel, name: string): Observable<any> {\n const model = EntityUtil.clone(productModel);\n model.name = name;\n ModelTranslatorUtils.toServerModel(model);\n\n return this.httpService\n .api({\n method: 'patch',\n url: `${this.SERVICE_URL}/${model.id}`,\n body: model,\n })\n .pipe(catchError(this.httpService.handleValidationError));\n }\n\n uploadPmlFile(file: File, modelId: string): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', file, file.name);\n\n return this.httpService.upload({\n url: `${this.SERVICE_URL}/${modelId}/pml/upload`,\n body: formData,\n });\n }\n\n runPml(modelId: string, pml: string, rootType: string, configurationMode: PmlConfigurationMode): Observable<any> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/${modelId}/pml/run`,\n body: {\n pml,\n rootType,\n configurationMode,\n },\n responseType: 'text',\n });\n }\n\n evictAllCache(): Observable<{ result: string }> {\n return this.httpService.api({\n method: 'get',\n url: '/cache/evict/environment-variables',\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, PriceSummary } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { NextRampRequest } from '../types';\n\n@Injectable()\nexport class RampApiService {\n private readonly SERVICE_URL = '/ramp';\n\n constructor(private httpService: BaseHttpService) {}\n\n next(request: NextRampRequest): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/next`,\n body: request,\n });\n }\n\n renew(request: any): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/renew`,\n body: request,\n });\n // TODO: move out of API service\n // .pipe(\n // map(data => {\n // if (data.context) {\n // const context = this.contextService.resolveOrCreate();\n\n // Object.keys(data.context.properties).forEach(function (key) {\n // context.properties[key] = data.context.properties[key];\n // });\n\n // this.contextService.update(context);\n // }\n\n // return data;\n // }),\n // );\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewRuleGroup, RuleGroup } from '@veloce/core';\nimport { map, Observable } from 'rxjs';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class RuleGroupsApiService {\n private readonly serviceUrl: string = '/admin/rule-groups';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchRuleGroups$ = (): Observable<RuleGroup[]> => {\n return this.searchRuleGroups$(new Expression(), 0, 100);\n };\n\n searchRuleGroups$ = (expression: Expression, skip: number, count: number): Observable<RuleGroup[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n createRuleGroup$ = (ruleGroup: NewRuleGroup): Observable<RuleGroup> => {\n return this.baseHttpService.api<RuleGroup>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: ruleGroup,\n });\n };\n\n updateRuleGroup$ = (ruleGroup: RuleGroup): Observable<RuleGroup> => {\n return this.baseHttpService.api<RuleGroup>({\n url: `${this.serviceUrl}/${ruleGroup.id}`,\n method: 'post',\n body: ruleGroup,\n });\n };\n\n duplicateRuleGroup$ = (body: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${body.id}/clone`,\n method: 'post',\n body,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeRuleGroup$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreRuleGroup$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, HeaderField, NewRule, Rule, RuleExecuteRequest } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class RulesApiService {\n private readonly serviceUrl: string = '/admin/rules';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchRules$ = (): Observable<Rule[]> => {\n return this.searchRules$(new Expression(), 0, 100);\n };\n\n searchRules$ = (expression: Expression, skip: number, count: number): Observable<Rule[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n createRule$ = (rule: NewRule): Observable<Rule> => {\n return this.baseHttpService.api<Rule>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: rule,\n });\n };\n\n updateRule$ = (rule: Rule): Observable<Rule> => {\n return this.baseHttpService.api<Rule>({\n url: `${this.serviceUrl}/${rule.id}`,\n method: 'put',\n body: rule,\n });\n };\n\n duplicateRule$ = (body: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${body.id}/clone`,\n method: 'post',\n body,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeRule$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreRule$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n\n fetchRule$(id: string) {\n return this.baseHttpService.api<Rule>({\n url: `${this.serviceUrl}/${id}`,\n method: 'get',\n });\n }\n\n fetchHeaderFields$() {\n return this.baseHttpService.api<HeaderField[]>({\n url: `${this.serviceUrl}/describe/Header`,\n method: 'get',\n });\n }\n\n execute$(body: RuleExecuteRequest) {\n return this.baseHttpService.api<string[]>({\n url: `/rules/execute`,\n method: 'post',\n body,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewScript, Script, ScriptDetails, ScriptExecuteRequest } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { HttpParams } from '@angular/common/http';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class ScriptsApiService {\n private readonly serviceUrl: string = '/admin/scripts';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchScripts$ = (): Observable<Script[]> => {\n return this.baseHttpService.api<Script[]>({ url: `${this.serviceUrl}` });\n };\n\n searchScripts$ = (expression: Expression, skip: number, count: number): Observable<Script[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n fetchScript$ = (id: string): Observable<ScriptDetails> => {\n return this.baseHttpService.api<ScriptDetails>({ url: `${this.serviceUrl}/${id}` });\n };\n\n createScript$ = (script: NewScript): Observable<Script> => {\n return this.baseHttpService.api<Script>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: script,\n });\n };\n\n updateScriptMeta$ = (script: Script): Observable<Script> => {\n return this.baseHttpService.api<Script>({\n url: `${this.serviceUrl}/${script.id}`,\n method: 'put',\n body: script,\n });\n };\n\n updateScriptDetails$ = (script: ScriptDetails): Observable<ScriptDetails> => {\n return this.baseHttpService.api<ScriptDetails>({\n url: `${this.serviceUrl}/${script.id}`,\n method: 'put',\n body: script,\n });\n };\n\n cloneScript$ = (cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${cloneRequest.id}/clone`,\n method: 'post',\n body: cloneRequest\n });\n };\n\n removeScript$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreScript$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n\n execute$ = (body: ScriptExecuteRequest): Observable<any> => {\n return this.baseHttpService.api({\n url: `/scripts/execute`,\n method: 'post',\n body,\n errorHandler: () => null\n });\n };\n}\n","import { ComponentStory, ComponentStoryAttachments } from '@veloce/core';\nimport { UIComponentStoryDTO } from '../types/dto/ui-template-dto.types';\n\nexport const fromUIComponentStoryDTO = (\n dto: UIComponentStoryDTO,\n attachments: ComponentStoryAttachments,\n): ComponentStory => {\n return {\n id: dto.id,\n name: dto.name,\n uiComponentId: dto.uiComponentId,\n description: dto.description,\n section: attachments.json,\n template: attachments.html,\n script: attachments.js,\n styles: attachments.css,\n };\n};\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n ComponentAttachments,\n ComponentStory,\n ComponentStoryAttachments,\n Expression,\n NewComponentStory,\n NewTemplateComponent,\n NewUITemplate,\n TemplateAttachmentType,\n TemplateComponent,\n UITemplate,\n} from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { catchError, forkJoin, map, noop, Observable, of, switchMap } from 'rxjs';\nimport { CloneRequest } from '../types/clone-request.types';\nimport { UIComponentStoryDTO } from '../types/dto/ui-template-dto.types';\nimport { fromUIComponentStoryDTO } from '../utils/ui-template.utils';\n\n@Injectable()\nexport class UITemplatesApiService {\n private readonly serviceUrl: string = '/uitemplates';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchTemplates$ = (name?: string): Observable<UITemplate[]> => {\n let params = new HttpParams();\n if (name) {\n params = params.append('name', name);\n }\n\n return this.baseHttpService.api<UITemplate[]>({ url: `${this.serviceUrl}`, params });\n };\n\n createTemplate$ = (template: NewUITemplate): Observable<UITemplate> => {\n return this.baseHttpService.api<UITemplate>({\n method: 'post',\n url: `${this.serviceUrl}`,\n body: template,\n });\n };\n\n updateTemplate$ = (template: UITemplate): Observable<UITemplate> => {\n return this.baseHttpService.api<UITemplate>({\n method: 'put',\n url: `${this.serviceUrl}/${template.id}`,\n body: template,\n });\n };\n\n duplicateTemplate$ = (template: UITemplate, cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${template.id}/clone`,\n method: 'post',\n body: cloneRequest,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeTemplate$ = (id: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${id}`,\n });\n };\n\n restoreTemplate$ = (id: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'patch',\n url: `${this.serviceUrl}/${id}`,\n });\n };\n\n searchTemplates$ = (data: { params?: Dictionary<string>; expression?: Expression }): Observable<UITemplate[]> => {\n return this.baseHttpService.api({\n method: 'post',\n url: `${this.serviceUrl}/search`,\n params: data.params,\n body: data.expression,\n });\n };\n\n fetchComponents$ = (templateId: string, name?: string): Observable<TemplateComponent[]> => {\n let params = new HttpParams();\n if (name) {\n params = params.append('name', name);\n }\n\n return this.baseHttpService.api<TemplateComponent[]>({\n url: `${this.serviceUrl}/${templateId}/components`,\n params,\n });\n };\n\n fetchComponent$ = (templateId: string, componentId: string): Observable<TemplateComponent> => {\n return this.baseHttpService.api<TemplateComponent>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}`,\n });\n };\n\n createComponent$ = (component: NewTemplateComponent): Observable<TemplateComponent> => {\n return this.baseHttpService.api<TemplateComponent>({\n method: 'post',\n url: `${this.serviceUrl}/${component.uiTemplateId}/components`,\n body: component,\n });\n };\n\n updateComponent$ = (component: TemplateComponent): Observable<TemplateComponent> => {\n return this.baseHttpService.api<TemplateComponent>({\n method: 'put',\n url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}`,\n body: component,\n });\n };\n\n duplicateComponent$ = (component: TemplateComponent, cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}/clone`,\n method: 'post',\n body: cloneRequest,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeComponent$ = (templateId: string, componentId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}`,\n });\n };\n\n restoreComponent$ = (templateId: string, componentId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'patch',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}`,\n });\n };\n\n searchComponents$ = (\n templateId: string,\n data: { params?: Dictionary<string>; expression?: Expression },\n ): Observable<TemplateComponent[]> => {\n return this.baseHttpService.api({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/search`,\n params: data.params,\n body: data.expression,\n });\n };\n\n fetchStoryAttachment = (\n templateId: string,\n componentId: string,\n storyId: string,\n type: TemplateAttachmentType,\n ): Observable<string> => {\n return this.baseHttpService\n .api<string>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments/${type}/file`,\n responseType: 'text',\n errorHandler: noop,\n })\n .pipe(catchError(() => of('')));\n };\n\n private convertToComponentStory$ = (\n templateId: string,\n componentId: string,\n storyDto: UIComponentStoryDTO,\n ): Observable<ComponentStory> => {\n return forkJoin([\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'html'),\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'js'),\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'css'),\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'json'),\n ]).pipe(\n map(([html, js, css, json]) => ({ html, js, css, json })),\n map(attachments => fromUIComponentStoryDTO(storyDto, attachments)),\n );\n };\n\n fetchStories$ = (templateId: string, componentId: string, name?: string): Observable<ComponentStory[]> => {\n let params = new HttpParams();\n if (name) {\n params = params.append('name', name);\n }\n\n return this.baseHttpService\n .api<UIComponentStoryDTO[]>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories`,\n params,\n })\n .pipe(\n switchMap(dtos => {\n if (!dtos.length) {\n return of([]);\n }\n return forkJoin(dtos.map(dto => this.convertToComponentStory$(templateId, componentId, dto)));\n }),\n );\n };\n\n fetchStory$ = (templateId: string, componentId: string, storyId: string): Observable<ComponentStory> => {\n return this.baseHttpService\n .api<UIComponentStoryDTO>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,\n })\n .pipe(switchMap(dto => this.convertToComponentStory$(templateId, componentId, dto)));\n };\n\n createComponentStory$ = (templateId: string, story: NewComponentStory): Observable<ComponentStory> => {\n return this.baseHttpService.api<ComponentStory>({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories`,\n body: story,\n });\n };\n\n updateComponentStory$ = (templateId: string, story: ComponentStory): Observable<ComponentStory> => {\n const { script, template, styles, section, ...rest } = story;\n\n return this.baseHttpService\n .api<UIComponentStoryDTO>({\n method: 'put',\n url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories/${story.id}`,\n body: rest,\n })\n .pipe(map(dto => fromUIComponentStoryDTO(dto, { html: template, js: script, css: styles, json: section })));\n };\n\n duplicateComponentStory$ = (story: ComponentStory, cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${story.template}/components/${story.uiComponentId}/stories/${story.id}/clone`,\n method: 'post',\n body: cloneRequest,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n deleteComponentStory$ = (templateId: string, componentId: string, storyId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,\n });\n };\n\n restoreComponentStory$ = (templateId: string, componentId: string, storyId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'patch',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,\n });\n };\n\n uploadStoryAttachments$ = (\n templateId: string,\n componentId: string,\n storyId: string,\n attachments: ComponentStoryAttachments,\n ): Observable<void> => {\n const formData = new FormData();\n if (attachments.html != null) {\n formData.append('html', new Blob([attachments.html]), 'story-template.html');\n }\n if (attachments.css != null) {\n formData.append('css', new Blob([attachments.css]), 'story-styles.css');\n }\n if (attachments.js != null) {\n formData.append('js', new Blob([attachments.js]), 'story-script.js');\n }\n if (attachments.json != null) {\n formData.append('json', new Blob([attachments.json]), 'story-section.json');\n }\n\n return this.baseHttpService.upload({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments`,\n body: formData,\n });\n };\n\n getTemplateThumbnailUrl(templateId: string) {\n return `${this.serviceUrl}/${templateId}/thumbnail/file`;\n }\n\n attachTemplateThumbnail$(templateId: string, file: File) {\n const data = new FormData();\n data.append('thumb', file);\n\n return this.baseHttpService.upload({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/thumbnail`,\n body: data,\n });\n }\n\n removeTemplateThumbnail$(templateId: string) {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${templateId}/thumbnail`,\n });\n }\n\n fetchComponentAttachments$ = (templateId: string, component: TemplateComponent): Observable<ComponentAttachments> => {\n return forkJoin([\n this.fetchComponentAttachmentFile$(templateId, component.id, 'html'),\n this.fetchComponentAttachmentFile$(templateId, component.id, 'js'),\n this.fetchComponentAttachmentFile$(templateId, component.id, 'css'),\n this.fetchComponentAttachmentFile$(templateId, component.id, 'json'),\n ]).pipe(map(([html, js, css, json]) => ({ html, js, css, json })));\n };\n\n private fetchComponentAttachmentFile$ = (\n templateId: string,\n componentId: string,\n attachmentType: TemplateAttachmentType,\n ): Observable<string> => {\n return this.baseHttpService\n .api({\n method: 'get',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments/${attachmentType}/file`,\n responseType: 'text',\n errorHandler: noop,\n })\n .pipe(catchError(() => of('')));\n };\n\n uploadComponentAttachments$ = (\n templateId: string,\n componentId: string,\n attachments: ComponentAttachments,\n ): Observable<void> => {\n const formData = new FormData();\n if (attachments.html != null) {\n formData.append('html', new Blob([attachments.html]), 'template.html');\n }\n if (attachments.css != null) {\n formData.append('css', new Blob([attachments.css]), 'styles.css');\n }\n if (attachments.js != null) {\n formData.append('js', new Blob([attachments.js]), 'script.js');\n }\n if (attachments.json != null) {\n formData.append('json', new Blob([attachments.json]), 'section.json');\n }\n\n return this.baseHttpService.upload({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments`,\n body: formData,\n });\n };\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { BaseHttpService, XrayService } from '@veloce/core';\nimport { ConfigurationApiService } from './services/configuration-api.service';\nimport { ConfigurationSettingsApiService } from './services/configuration-settings-api.service';\nimport { ContextApiService } from './services/context-api.service';\nimport { DocumentAttachmentApiService } from './services/document-attachment-api.service';\nimport { DocumentTemplatesApiService } from './services/document-templates-api.service';\nimport { FlowsApiService } from './services/flows-api.service';\nimport { PriceApiService } from './services/price-api.service';\nimport { ProceduresApiService } from './services/procedures-api.service';\nimport { ProductModelApiService } from './services/product-model-api.service';\nimport { QuoteApiService } from './services/quote-api.service';\nimport { RampApiService } from './services/ramp-api.service';\nimport { RuleGroupsApiService } from './services/rule-groups-api.service';\nimport { RulesApiService } from './services/rules-api.service';\nimport { SalesforceApiService } from './services/salesforce-api.service';\nimport { ScriptsApiService } from './services/scripts-api.service';\nimport { UITemplatesApiService } from './services/ui-templates-api.service';\n\n@NgModule({\n imports: [HttpClientModule],\n providers: [\n BaseHttpService,\n XrayService,\n ConfigurationApiService,\n ConfigurationSettingsApiService,\n ContextApiService,\n DocumentAttachmentApiService,\n PriceApiService,\n ProductModelApiService,\n ProceduresApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n RampApiService,\n SalesforceApiService,\n UITemplatesApiService,\n ScriptsApiService,\n RulesApiService,\n RuleGroupsApiService,\n FlowsApiService,\n ],\n})\nexport class ApiModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","catchError","switchMap"],"mappings":"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"}
1
+ {"version":3,"file":"veloce-api.js","sources":["../../../../libs/api/src/lib/types/dto/attribute-dto.types.ts","../../../../libs/api/src/lib/types/dto/price-adjustment-dto.types.ts","../../../../libs/api/src/lib/types/dto/charge-group-item-dto.types.ts","../../../../libs/api/src/lib/types/dto/charge-item-dto.types.ts","../../../../libs/api/src/lib/types/dto/recommended-price-dto.types.ts","../../../../libs/api/src/lib/types/dto/domain-type-dto.types.ts","../../../../libs/api/src/lib/types/dto/port-domain-dto.types.ts","../../../../libs/api/src/lib/types/dto/price-dto.types.ts","../../../../libs/api/src/lib/types/dto/line-item-dto.types.ts","../../../../libs/api/src/lib/types/dto/configuration-dto.types.ts","../../../../libs/api/src/lib/services/configuration-api.service.ts","../../../../libs/api/src/lib/types/dto/configuration-settings-dto.types.ts","../../../../libs/api/src/lib/services/configuration-settings-api.service.ts","../../../../libs/api/src/lib/services/context-api.service.ts","../../../../libs/api/src/lib/services/document-attachment-api.service.ts","../../../../libs/api/src/lib/services/salesforce-api.service.ts","../../../../libs/api/src/lib/services/quote-api.service.ts","../../../../libs/api/src/lib/services/document-templates-api.service.ts","../../../../libs/api/src/lib/services/flows-api.service.ts","../../../../libs/api/src/lib/services/price-api.service.ts","../../../../libs/api/src/lib/services/procedures-api.service.ts","../../../../libs/api/src/lib/services/product-model-api.service.ts","../../../../libs/api/src/lib/services/ramp-api.service.ts","../../../../libs/api/src/lib/services/rule-groups-api.service.ts","../../../../libs/api/src/lib/services/rules-api.service.ts","../../../../libs/api/src/lib/services/scripts-api.service.ts","../../../../libs/api/src/lib/utils/ui-template.utils.ts","../../../../libs/api/src/lib/services/ui-templates-api.service.ts","../../../../libs/api/src/lib/api.module.ts","../../../../libs/api/src/veloce-api.ts"],"sourcesContent":["import { Attribute, CfgStatus } from '@veloce/core';\n\nexport class AttributeDTO {\n static fromDTO(dto: AttributeDTO): Attribute {\n return {\n id: dto.id,\n name: dto.name,\n type: dto.type,\n scale: dto.scale,\n value: dto.value,\n cfgStatus: dto.cfgStatus as CfgStatus,\n };\n }\n\n constructor(\n public name: string,\n public type: string,\n public value: any,\n public cfgStatus: string,\n\n public id?: string,\n public scale?: number,\n ) {}\n}\n","import { AdjustmentType, PriceAdjustment } from '@veloce/core';\n\nexport class PriceAdjustmentDTO {\n static fromDTO(dto: PriceAdjustmentDTO): PriceAdjustment {\n return {\n amount: dto.amount,\n explanation: dto.explanation,\n type: dto.type as AdjustmentType,\n };\n }\n\n constructor(public amount: number, public explanation: string, public type: string) {}\n}\n","import { ChargeGroupItem, ChargeMethod, FrequencyUnit } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { PriceAdjustmentDTO } from './price-adjustment-dto.types';\n\nexport class ChargeGroupItemDTO {\n static fromDTO(dto: ChargeGroupItemDTO): ChargeGroupItem {\n return {\n id: dto.id,\n chargeType: dto.chargeType,\n chargeTypeDisplayValue: dto.chargeTypeDisplayValue,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n currency: dto.currency,\n sellingTerm: dto.sellingTerm,\n netPrice: dto.netPrice,\n listPrice: dto.listPrice,\n netUnitPrice: dto.netUnitPrice,\n listUnitPrice: dto.listUnitPrice,\n cost: dto.cost,\n priceAdjustment: dto.priceAdjustment && PriceAdjustmentDTO.fromDTO(dto.priceAdjustment),\n priceWaterfalls: dto.priceWaterfalls?.map(PriceAdjustmentDTO.fromDTO),\n enablePriceAdjustment: dto.enablePriceAdjustment,\n properties: dto.properties,\n };\n }\n\n constructor(\n public chargeType: string,\n public chargeMethod: string,\n public properties: Dictionary<string>,\n\n public id?: string,\n public chargeTypeDisplayValue?: string,\n\n public frequencyUnit?: string,\n public frequencyDuration?: number,\n\n public currency?: string,\n public sellingTerm?: number,\n public netPrice?: number,\n public listPrice?: number,\n public netUnitPrice?: number,\n public listUnitPrice?: number,\n public cost?: number,\n\n public priceAdjustment?: PriceAdjustmentDTO,\n public priceWaterfalls?: PriceAdjustmentDTO[],\n\n public enablePriceAdjustment?: boolean,\n ) {}\n}\n","import { ChargeItem, ChargeMethod, FrequencyUnit, RequiresApproval } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { PriceAdjustmentDTO } from './price-adjustment-dto.types';\n\nexport class ChargeItemDTO {\n static fromDTO(dto: ChargeItemDTO): ChargeItem {\n return {\n id: dto.id,\n price: dto.price,\n unitPrice: dto.unitPrice,\n baseListPrice: dto.baseListPrice,\n baseListUnitPrice: dto.baseListUnitPrice,\n listPrice: dto.listPrice,\n listUnitPrice: dto.listUnitPrice,\n netPrice: dto.netPrice,\n netUnitPrice: dto.netUnitPrice,\n chargeId: dto.chargeId,\n chargeType: dto.chargeType,\n chargeTypeDisplayValue: dto.chargeTypeDisplayValue,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n priceItemId: dto.priceItemId,\n startDate: dto.startDate,\n endDate: dto.endDate,\n priceWaterfalls: dto.priceWaterfalls.map(PriceAdjustmentDTO.fromDTO),\n quantity: dto.quantity,\n properties: dto.properties,\n arr: dto.arr,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n sellingTerm: dto.sellingTerm,\n currency: dto.currency,\n unitCost: dto.unitCost,\n cost: dto.cost,\n minUnitPrice: dto.minUnitPrice,\n minPrice: dto.minPrice,\n enablePriceAdjustment: dto.enablePriceAdjustment,\n enableListPriceAdjustment: dto.enableListPriceAdjustment,\n listPriceAdjustment: dto.listPriceAdjustment && PriceAdjustmentDTO.fromDTO(dto.listPriceAdjustment),\n priceAdjustment: dto.priceAdjustment && PriceAdjustmentDTO.fromDTO(dto.priceAdjustment),\n requiresApprovals: dto.requiresApprovals,\n };\n }\n\n constructor(\n public id: string,\n\n public price: number,\n public unitPrice: number,\n public baseListPrice: number,\n public baseListUnitPrice: number,\n public listPrice: number,\n public listUnitPrice: number,\n public netPrice: number,\n public netUnitPrice: number,\n\n public chargeId: string,\n public chargeType: string,\n public chargeMethod: string,\n\n public priceItemId: string,\n public startDate: string,\n public priceWaterfalls: PriceAdjustmentDTO[],\n public quantity: number,\n public properties: Dictionary<string>,\n\n public chargeTypeDisplayValue?: string,\n public arr?: number,\n\n public frequencyUnit?: string,\n public frequencyDuration?: number,\n public endDate?: string,\n\n public sellingTerm?: number,\n public currency?: string,\n public unitCost?: number,\n public cost?: number,\n\n public minUnitPrice?: number,\n public minPrice?: number,\n\n public enablePriceAdjustment?: boolean,\n public enableListPriceAdjustment?: boolean,\n public listPriceAdjustment?: PriceAdjustmentDTO,\n public priceAdjustment?: PriceAdjustmentDTO,\n\n public requiresApprovals?: RequiresApproval[],\n ) {}\n}\n","import { ChargeMethod, FrequencyUnit, RecommendedPrice } from '@veloce/core';\n\nexport class RecommendedPriceDTO {\n static fromDTO(dto: RecommendedPriceDTO): RecommendedPrice {\n return {\n netPrice: dto.netPrice,\n listPrice: dto.listPrice,\n chargeType: dto.chargeType,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n explanation: dto.explanation,\n };\n }\n\n constructor(\n public netPrice: number,\n public listPrice: number,\n public chargeType: string,\n public chargeMethod: string,\n public explanation?: string,\n public frequencyDuration?: number,\n public frequencyUnit?: string,\n ) {}\n}\n","import { DomainType } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { RecommendedPriceDTO } from './recommended-price-dto.types';\n\nexport class DomainTypeDTO {\n static fromDTO(dto: DomainTypeDTO): DomainType {\n return {\n name: dto.name,\n displayName: dto.displayName,\n minCard: dto.minCard,\n maxCard: dto.maxCard,\n recommendedPrices: dto.recommendedPrices?.map(RecommendedPriceDTO.fromDTO),\n properties: dto.properties,\n status: dto.status,\n cardinality: dto.cardinality,\n };\n }\n\n constructor(\n public name: string,\n public displayName: string,\n public minCard: number,\n public maxCard: number,\n public recommendedPrices?: RecommendedPriceDTO[],\n public properties?: Dictionary<string>,\n public status?: string,\n public cardinality?: number,\n ) {}\n}\n","import { PortDomain } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { DomainTypeDTO } from './domain-type-dto.types';\n\nexport class PortDomainDTO {\n static fromDTO(dto: PortDomainDTO): PortDomain {\n return {\n name: dto.name,\n type: dto.type,\n minCard: dto.minCard,\n maxCard: dto.maxCard,\n domainTypes: dto.domainTypes.map(DomainTypeDTO.fromDTO),\n properties: dto.properties,\n };\n }\n\n constructor(\n public name: string,\n public type: string,\n public minCard: number,\n public maxCard: number,\n public domainTypes: DomainTypeDTO[],\n public properties: Dictionary<string>,\n ) {}\n}\n","import { ChargeMethod, FrequencyUnit, Price } from '@veloce/core';\n\nexport class PriceDTO {\n static fromDTO(dto: PriceDTO): Price {\n return {\n netPrice: dto.netPrice,\n listPrice: dto.listPrice,\n chargeType: dto.chargeType,\n chargeTypeDisplayValue: dto.chargeTypeDisplayValue,\n chargeMethod: dto.chargeMethod as ChargeMethod,\n frequencyUnit: dto.frequencyUnit as FrequencyUnit,\n frequencyDuration: dto.frequencyDuration,\n sellingTerm: dto.sellingTerm,\n };\n }\n\n constructor(\n public netPrice: number,\n public listPrice: number,\n public chargeType: string,\n public chargeTypeDisplayValue: string,\n public chargeMethod: string,\n public frequencyUnit: string,\n public frequencyDuration: number,\n public sellingTerm: number,\n ) {}\n}\n","import { CfgStatus, FrequencyUnit, LineItem, RequiresApproval } from '@veloce/core';\nimport { Dictionary, transform } from 'lodash';\nimport { AttributeDTO } from './attribute-dto.types';\nimport { ChargeGroupItemDTO } from './charge-group-item-dto.types';\nimport { ChargeItemDTO } from './charge-item-dto.types';\nimport { PortDomainDTO } from './port-domain-dto.types';\nimport { PriceDTO } from './price-dto.types';\n\nexport class LineItemDTO {\n static fromDTO(dto: LineItemDTO): LineItem {\n return {\n id: dto.id,\n activated: dto.activated,\n attributes: dto.attributes.map(AttributeDTO.fromDTO),\n attributeDomains: dto.attributeDomains,\n cfgStatus: dto.cfgStatus as CfgStatus,\n chargeGroupItems: dto.chargeGroupItems.map(ChargeGroupItemDTO.fromDTO),\n chargeItems: dto.chargeItems.map(ChargeItemDTO.fromDTO),\n domainComputations: dto.domainComputations,\n lineItems: dto.lineItems.map(LineItemDTO.fromDTO),\n messages: dto.messages,\n name: dto.name,\n optionalCharges: dto.optionalCharges,\n pending: dto.pending,\n portDomains: transform(dto.portDomains, (result, value, key) => (result[key] = PortDomainDTO.fromDTO(value))),\n properties: dto.properties,\n qty: dto.qty,\n totalPrices: transform(dto.totalPrices, (result, value, key) => (result[key] = PriceDTO.fromDTO(value))),\n type: dto.type,\n productId: dto.productId,\n port: dto.port,\n parentId: dto.parentId,\n assetId: dto.assetId,\n openOrderLineItemId: dto.openOrderLineItemId,\n productName: dto.productName,\n rootId: dto.rootId,\n actionCode: dto.actionCode,\n serviceStartDate: dto.serviceStartDate,\n effectiveDate: dto.effectiveDate,\n effectiveStartDate: dto.effectiveStartDate,\n startDate: dto.startDate,\n endDate: dto.endDate,\n planId: dto.planId,\n sellingFrequencyUnit: dto.sellingFrequencyUnit as FrequencyUnit,\n sellingFrequencyDuration: dto.sellingFrequencyDuration,\n offeringId: dto.offeringId,\n offeringItemId: dto.offeringItemId,\n offeringInstanceId: dto.offeringInstanceId,\n rampInstanceId: dto.rampInstanceId,\n enableRamp: dto.enableRamp,\n configurable: dto.configurable,\n requiresApprovals: dto.requiresApprovals,\n };\n }\n\n constructor(\n public id: string,\n public activated: boolean,\n public attributes: AttributeDTO[],\n public attributeDomains: Dictionary<any[]>,\n public cfgStatus: string,\n public chargeGroupItems: ChargeGroupItemDTO[],\n public chargeItems: ChargeItemDTO[],\n public domainComputations: Dictionary<boolean>,\n public lineItems: LineItem[],\n public messages: string[],\n public name: string,\n public optionalCharges: any[],\n public pending: boolean,\n public portDomains: Dictionary<PortDomainDTO>,\n public properties: Dictionary<string>,\n public qty: number,\n public totalPrices: Dictionary<PriceDTO>,\n public type: string,\n\n public productId?: string,\n public port?: string,\n public parentId?: string,\n public assetId?: string,\n public openOrderLineItemId?: string,\n\n public productName?: string,\n public rootId?: string,\n public actionCode?: string,\n public serviceStartDate?: string,\n public effectiveDate?: string,\n public effectiveStartDate?: string,\n public startDate?: string,\n public endDate?: string,\n\n public planId?: string,\n public sellingFrequencyUnit?: string,\n public sellingFrequencyDuration?: string,\n\n public offeringId?: string,\n public offeringItemId?: string,\n public offeringInstanceId?: string,\n public rampInstanceId?: string,\n public enableRamp?: boolean,\n public configurable?: boolean,\n\n public requiresApprovals?: RequiresApproval[],\n ) {}\n}\n","import { ConfigurationContext, ConfigurePrice, PricePlanCharge } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { LineItemDTO } from './line-item-dto.types';\n\nexport interface ConfigurePriceDTO {\n lineItem: LineItemDTO;\n context: ConfigurationContext;\n charges: Dictionary<PricePlanCharge>;\n deletedLineItems: LineItemDTO[];\n}\n\nexport class ConfigurePriceDTO {\n static fromDTO(dto: ConfigurePriceDTO): ConfigurePrice {\n return {\n lineItem: LineItemDTO.fromDTO(dto.lineItem),\n charges: dto.charges,\n context: dto.context,\n deletedLineItems: dto.deletedLineItems.map(deletedLineItem => LineItemDTO.fromDTO(deletedLineItem)),\n };\n }\n\n constructor(\n public lineItem: LineItemDTO,\n public context: ConfigurationContext,\n public charges: Dictionary<PricePlanCharge>,\n ) {}\n}\n","import { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n ConfigurationRequest,\n ConfigurePrice,\n DomainType,\n LineItem,\n ModelTranslatorUtils,\n RuntimeData,\n RuntimeModel,\n} from '@veloce/core';\nimport { Observable, throwError } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfigurePriceDTO } from '../types/dto/configuration-dto.types';\n\n@Injectable()\nexport class ConfigurationApiService {\n private readonly SERVICE_URL = '/configuration';\n\n constructor(private httpService: BaseHttpService) {}\n\n configureLineItem({\n configurationRequest,\n runtimeModel,\n pricingEnabled,\n }: {\n configurationRequest: ConfigurationRequest;\n runtimeModel?: RuntimeModel;\n pricingEnabled?: boolean;\n }): Observable<ConfigurePrice> {\n return this.httpService\n .api<ConfigurePrice>({\n method: 'post',\n url: `${this.SERVICE_URL}${pricingEnabled ? '/price' : ''}`,\n body: configurationRequest,\n errorHandler: e => throwError(e),\n })\n .pipe(\n map(response => ConfigurePriceDTO.fromDTO(response)),\n map(configurePrice => {\n if (runtimeModel) {\n return {\n ...configurePrice,\n lineItem: this.updatePortDomains(configurePrice.lineItem, runtimeModel),\n };\n } else {\n return configurePrice;\n }\n }),\n );\n }\n\n public getRuntimeDataByProductId(productId: string, offeringId?: string): Observable<RuntimeData> {\n return this.httpService\n .api<RuntimeData>({\n method: 'get',\n url: `${this.SERVICE_URL}/${productId}/model` + ((offeringId && `/${offeringId}`) || ''),\n })\n .pipe(\n map(runtimeData => {\n runtimeData.uiDefinitions = JSON.parse(runtimeData.uiDefinitionsSource);\n runtimeData.uiDefinitions.forEach(uiDefinition => {\n ModelTranslatorUtils.toLocalUIDefinition(uiDefinition);\n });\n return runtimeData;\n }),\n );\n }\n\n public getRuntimeDataByModelId(modelId: string): Observable<RuntimeData> {\n return this.httpService\n .api({\n method: 'get',\n url: `${this.SERVICE_URL}/${modelId}/model-test`,\n })\n .pipe(\n map((runtimeData: RuntimeData) => {\n runtimeData.uiDefinitions = [];\n return runtimeData;\n }),\n );\n }\n\n private updatePortDomains(lineItem: LineItem, runtimeModel: RuntimeModel): LineItem {\n const type = runtimeModel.components.get(lineItem.type);\n const portDomains = { ...lineItem.portDomains };\n for (const port of type?.ports ?? []) {\n const portDomain = portDomains[port.name];\n if (portDomain?.properties?.domainComputation === 'false') {\n portDomain.domainTypes = port.domainTypes as DomainType[];\n }\n }\n return {\n ...lineItem,\n lineItems: lineItem.lineItems?.map(i => this.updatePortDomains(i, runtimeModel)),\n portDomains,\n };\n }\n}\n","import { ConfigurationSettings } from '@veloce/core';\n\nexport class ConfigurationSettingsDTO {\n static fromDTO(dto: ConfigurationSettingsDTO, key?: string): ConfigurationSettings {\n return {\n id: dto?.id,\n key: dto?.key || key || '',\n value: dto?.value,\n };\n }\n\n static toDTO(data: ConfigurationSettings): ConfigurationSettingsDTO {\n return {\n id: data.id,\n key: data.key,\n value: data.value,\n };\n }\n\n constructor(public id: string, public key: string, public value: string) {}\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, ConfigurationSettings, DataAdministrationField } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfigurationSettingsDTO } from '../types/dto/configuration-settings-dto.types';\n\n@Injectable()\nexport class ConfigurationSettingsApiService {\n private readonly SERVICE_URL = '/configuration-settings';\n\n constructor(private httpService: BaseHttpService) {}\n\n fetchSettings(): Observable<ConfigurationSettings[]> {\n return this.httpService\n .api<ConfigurationSettingsDTO[]>({\n url: `${this.SERVICE_URL}`,\n method: 'get',\n })\n .pipe(\n map((settings: ConfigurationSettingsDTO[]) =>\n settings.map(setting => ConfigurationSettingsDTO.fromDTO(setting)),\n ),\n );\n }\n\n fetchSetting(settingsKey: string): Observable<ConfigurationSettings> {\n return this.httpService\n .api<ConfigurationSettingsDTO>({\n url: `${this.SERVICE_URL}/byKey/${settingsKey}`,\n method: 'get',\n })\n .pipe(map((setting: ConfigurationSettingsDTO) => ConfigurationSettingsDTO.fromDTO(setting, settingsKey)));\n }\n\n createSetting(setting: ConfigurationSettings): Observable<ConfigurationSettings> {\n const request = ConfigurationSettingsDTO.toDTO(setting);\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}`,\n method: 'post',\n body: {\n ...request,\n },\n });\n }\n\n updateSetting(setting: ConfigurationSettings): Observable<ConfigurationSettings> {\n const request = ConfigurationSettingsDTO.toDTO(setting);\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${request.id}`,\n method: 'put',\n body: {\n ...request,\n },\n });\n }\n\n removeSetting(setting: ConfigurationSettings): Observable<ConfigurationSettings> {\n const request = ConfigurationSettingsDTO.toDTO(setting);\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${request.id}`,\n method: 'delete',\n });\n }\n\n restoreSetting(settingId: string) {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${settingId}/restore`,\n method: 'patch',\n });\n }\n\n clear(name: DataAdministrationField): Observable<void> {\n return this.httpService.api({\n method: 'get',\n url: '/cache/evict/' + name,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, ConfigurationContext, ConfigurationContextMode } from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class ContextApiService {\n private readonly SERVICE_URL = '/context';\n\n constructor(private httpService: BaseHttpService) {}\n\n getContext(headerId: string, mode: ConfigurationContextMode): Observable<ConfigurationContext> {\n return this.httpService.api({\n method: 'post',\n body: {\n headerId: headerId,\n contextMode: ConfigurationContextMode[mode],\n },\n url: `${this.SERVICE_URL}`,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n FileDownloadService,\n TemplateAttachment,\n TemplateAttachmentSearchRequest,\n} from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map, tap } from 'rxjs/operators';\n\n@Injectable()\nexport class DocumentAttachmentApiService {\n private readonly SERVICE_URL = '/attachments';\n\n constructor(private httpService: BaseHttpService, private fileDownloadService: FileDownloadService) {}\n\n getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/search`,\n method: 'post',\n body: searchRequest,\n });\n }\n\n createAttachment(\n attachment: TemplateAttachment,\n file?: File,\n reportProgress?: boolean,\n ): Observable<TemplateAttachment> {\n const formData: FormData = new FormData();\n\n if (file) {\n formData.append('file', file, file.name);\n }\n\n formData.append(\n 'attachment',\n new Blob([JSON.stringify(attachment)], {\n type: 'application/json',\n }),\n );\n\n return this.httpService.upload({\n url: `${this.SERVICE_URL}`,\n body: formData,\n method: 'post',\n observe: reportProgress ? 'events' : undefined,\n reportProgress,\n });\n }\n\n updateAttachment(id: string, attachment: TemplateAttachment): Observable<TemplateAttachment> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${id}`,\n body: attachment,\n method: 'put',\n });\n }\n\n getAttachmentFile(id: string, isPreventDownload?: boolean): Observable<any> {\n return this.httpService\n .api({\n url: `${this.SERVICE_URL}/${id}/file`,\n responseType: isPreventDownload ? 'arraybuffer' : 'blob',\n observe: isPreventDownload ? 'body' : 'response',\n })\n .pipe(\n tap(response => {\n if (!isPreventDownload) {\n this.fileDownloadService.processDownload(response);\n }\n }),\n map(response => (isPreventDownload ? new Blob([response.body || response]) : response.body || response)),\n );\n }\n\n removeAttachment(id: string): Observable<unknown> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${id}`,\n method: 'delete',\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n HttpRequestConfigurableOptions,\n SalesforceField,\n SalesforceObject,\n SearchRequest,\n} from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class SalesforceApiService {\n private readonly SERVICE_URL = '/proxy';\n\n constructor(private httpService: BaseHttpService) {}\n\n query<T>(\n searchRequest: SearchRequest,\n objectName: string,\n options?: HttpRequestConfigurableOptions,\n ): Observable<T[]> {\n return this.httpService.api({\n method: 'post',\n body: { ...searchRequest, count: searchRequest.count || 100 },\n url: `${this.SERVICE_URL}/query/${objectName}`,\n ...options,\n });\n }\n\n queryObjects(search?: string, options?: HttpRequestConfigurableOptions): Observable<SalesforceObject[]> {\n const params = new HttpParams();\n if (search) {\n params.append('search', search);\n }\n\n return this.httpService.api({\n url: `${this.SERVICE_URL}/query`,\n params,\n ...options,\n });\n }\n\n describe(\n objectName: string,\n fieldName?: string,\n options?: HttpRequestConfigurableOptions,\n ): Observable<SalesforceField[]> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields` + (fieldName ? `/${fieldName}` : '');\n\n return this.httpService.api({ url: methodUrl, ...options });\n }\n\n describe2<T>(objectName: string, fields: string[], options?: HttpRequestConfigurableOptions): Observable<T> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields`;\n\n return this.httpService.api({ method: 'post', url: methodUrl, body: fields, ...options });\n }\n\n apexGetRequest<T>(path: string, params: HttpParams, options?: HttpRequestConfigurableOptions): Observable<T> {\n return this.httpService.api({ url: `${this.SERVICE_URL}/apex${path}`, params, ...options });\n }\n\n apexPostRequest<T, S>(path: string, body: S, options?: HttpRequestConfigurableOptions): Observable<T> {\n return this.httpService.api({\n method: 'post',\n body,\n url: `${this.SERVICE_URL}/apex${path}`,\n ...options,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, HttpRequestConfigurableOptions, QuoteDraft } from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class QuoteApiService {\n private readonly SERVICE_URL = '/quotes';\n\n constructor(private httpService: BaseHttpService) {}\n\n // request quoteId | accountId | opportunityId | orderId\n getQuoteDraft(\n objectId: string,\n params?: Dictionary<string>,\n errorHandler?: (error: any) => void,\n ): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'get',\n url: `${this.SERVICE_URL}/${objectId}`,\n params,\n errorHandler,\n });\n }\n\n /**\n * @deprecated\n * Will be removed in next major release\n * Use `getQuoteDraft` instead\n */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n getQuote = this.getQuoteDraft;\n\n upsertQuote(request: QuoteDraft, options?: HttpRequestConfigurableOptions): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}`,\n body: request,\n ...options,\n });\n }\n\n submitQuote(request: QuoteDraft, options?: HttpRequestConfigurableOptions): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/submit`,\n body: request,\n ...options,\n });\n }\n\n attachDocument(id: string, documentName: string, data: any): Observable<void> {\n const formData: FormData = new FormData();\n const blob = new Blob([data]);\n formData.append('file', blob, documentName);\n\n return this.httpService.upload({\n url: `${this.SERVICE_URL}/${id}/attach-document`,\n responseType: 'arraybuffer',\n method: 'post',\n body: formData,\n });\n }\n}\n","import { CurrencyPipe } from '@angular/common';\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n AnyWithProperties,\n BaseHttpService,\n DocumentTemplate,\n DocxTemplater,\n FileDownloadService,\n isLegacyDocumentTemplate,\n QuoteDraft,\n SearchRequest,\n StringUtils,\n TemplateAttachment,\n TemplateAttachmentSearchRequest,\n TemplateQuery,\n VlWindow,\n} from '@veloce/core';\nimport * as _ from 'lodash';\nimport * as moment_ from 'moment';\nimport { forkJoin, Observable, of, zip } from 'rxjs';\nimport { defaultIfEmpty, map, switchMap, tap } from 'rxjs/operators';\nimport { DocumentAttachmentApiService } from './document-attachment-api.service';\nimport { QuoteApiService } from './quote-api.service';\nimport { SalesforceApiService } from './salesforce-api.service';\n\nconst moment = moment_;\ndeclare const window: VlWindow;\n\nexport interface DocumentGenerationParams {\n attachToQuote?: boolean;\n documentFormat?: 'DOCX';\n shouldPreventDownload?: boolean;\n}\n\n@Injectable()\nexport class DocumentTemplatesApiService {\n private readonly SERVICE_URL = '/templates';\n private readonly DOC_GEN_URL_FALLBACK = 'https://dev-dp1.velocpq.com/docgen';\n private readonly DOC_GEN_URL;\n\n constructor(\n private service: BaseHttpService,\n private salesforceApiService: SalesforceApiService,\n private fileDownloadService: FileDownloadService,\n private documentAttachmentService: DocumentAttachmentApiService,\n private quoteApiService: QuoteApiService,\n private http: HttpClient,\n ) {\n if (window.VELO_DOCGEN_API) {\n this.DOC_GEN_URL = window.VELO_DOCGEN_API;\n } else {\n console.log(`window.VELO_DOCGEN_API not set, will use fallback \"${this.DOC_GEN_URL_FALLBACK}\"`);\n this.DOC_GEN_URL = this.DOC_GEN_URL_FALLBACK;\n }\n }\n\n public getTemplates(tag?: string): Observable<DocumentTemplate[]> {\n return this.service.api({\n url: `${this.SERVICE_URL}`,\n method: 'get',\n params: {\n ...(tag && { tag }),\n },\n });\n }\n\n public getTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: `${this.SERVICE_URL}/${id}`,\n method: 'get',\n });\n }\n\n public upsertTemplate(\n template: DocumentTemplate,\n file?: File,\n reportProgress?: boolean,\n ): Observable<DocumentTemplate> {\n const formData: FormData = new FormData();\n\n if (file) {\n formData.append('file', file, file.name);\n }\n formData.append(\n 'template',\n new Blob([JSON.stringify(template)], {\n type: 'application/json',\n }),\n );\n\n let url = `${this.SERVICE_URL}`;\n if (template.id) {\n url += `/${template.id}`;\n }\n\n return this.service.upload({\n url,\n body: formData,\n method: template.id ? 'put' : 'post',\n reportProgress,\n });\n }\n\n public removeTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: `${this.SERVICE_URL}/${id}`,\n method: 'delete',\n });\n }\n\n public restoreTemplate(id: string): Observable<void> {\n return this.service.api({\n url: `${this.SERVICE_URL}/${id}/restore`,\n method: 'patch',\n });\n }\n\n public cloneTemplate(\n id: string,\n propertiesToOverride: Partial<DocumentTemplate> = {},\n ): Observable<{ clonedRecordId: string }> {\n return this.service.api({\n url: `${this.SERVICE_URL}/clone/${id}`,\n method: 'post',\n body: {\n id,\n propertiesToOverride,\n },\n });\n }\n\n public getTemplateFile(id: string): Observable<ArrayBuffer> {\n return this.service.api({\n method: 'get',\n url: `${this.SERVICE_URL}/${id}/file`,\n responseType: 'arraybuffer',\n });\n }\n\n public downloadTemplateFile(id: string): Observable<Blob> {\n return this.service\n .api({\n url: `${this.SERVICE_URL}/${id}/file`,\n responseType: 'blob',\n observe: 'response',\n })\n .pipe(\n tap(response => {\n this.fileDownloadService.processDownload(response);\n }),\n map(response => response.body || response),\n );\n }\n\n public mergeDocuments(document: Blob, attachments: ArrayBuffer[]): Observable<ArrayBuffer> {\n const body = new FormData();\n\n attachments.forEach(attachment => {\n body.append('attachments', new Blob([attachment]));\n });\n\n body.append('orderform', document);\n\n return this.http.post(`${this.DOC_GEN_URL}/documents/merge`, body, {\n responseType: 'arraybuffer',\n });\n }\n\n public getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.documentAttachmentService.getAttachments(searchRequest);\n }\n\n public getAttachmentFile(id: string): any {\n return this.documentAttachmentService.getAttachmentFile(id);\n }\n\n public createAttachment(\n attachment: TemplateAttachment,\n file?: File,\n reportProgress?: boolean,\n ): Observable<TemplateAttachment> {\n return this.documentAttachmentService.createAttachment(attachment, file, reportProgress);\n }\n\n public removeAttachment(id: string): Observable<unknown> {\n return this.documentAttachmentService.removeAttachment(id);\n }\n\n public generateDocumentData(\n template: DocumentTemplate,\n object: any,\n params: DocumentGenerationParams = {},\n ): Observable<any> {\n if (isLegacyDocumentTemplate(template)) {\n return this.generateDocumentDataLegacy(template, object, params);\n }\n\n const templateProperties = template.properties?.reduce(\n (acc, { name, value }) => ({ ...acc, [name]: this.mapBooleanIfAplicable(value) }),\n {},\n );\n\n /*\n Resolve quote and template properties for now\n When procedures are ready, whey will replace template scripts.\n\n TODO: run procedure to resolve document data\n */\n return of({\n ...(typeof object === 'object' ? object : { object }),\n ...templateProperties,\n });\n }\n\n public generateDocument(\n template: DocumentTemplate,\n object: any,\n params: DocumentGenerationParams = {},\n ): Observable<Blob> {\n const documentData$ = this.generateDocumentData(template, object, { ...params, shouldPreventDownload: true });\n\n return zip(this.getTemplateFile(template.id), documentData$, this.resolveAttachments$(template)).pipe(\n switchMap(([templateFile, data, attachments]) => {\n const document = DocxTemplater.generate(templateFile, data);\n const properties: _.Dictionary<string> = object?.context?.properties ?? object?.properties ?? {};\n const documentName = properties.Name || template.name;\n\n const documentFormat =\n params.documentFormat ?? template.properties?.find(p => p.name === 'documentFormat')?.value;\n if (documentFormat === 'DOCX') {\n this.fileDownloadService.processDownload(document, documentName);\n\n return of(document);\n }\n\n return this.mergeDocuments(document, attachments).pipe(\n switchMap(pdf => {\n if (params.attachToQuote && QuoteDraft.isQuote(object)) {\n return this.quoteApiService\n .attachDocument(object.quoteId, `${documentName}.pdf`, pdf)\n .pipe(map(() => pdf));\n }\n\n return of(pdf);\n }),\n map(pdf => {\n const blob = new Blob([pdf]);\n\n if (!params.shouldPreventDownload) {\n this.fileDownloadService.processDownload(blob, `${documentName}.pdf`);\n }\n\n return blob;\n }),\n );\n }),\n );\n }\n\n private generateDocumentDataLegacy(\n template: DocumentTemplate,\n object: any,\n params: DocumentGenerationParams = {},\n ): Observable<any> {\n const shouldPreventDownload = params.shouldPreventDownload;\n const allQueries: TemplateQuery[] = [...(template?.queries ?? [])];\n const properties: _.Dictionary<string> = object?.context?.properties ?? object?.properties ?? {};\n const accountId = properties?.AccountId;\n const userId = properties?.UserId;\n\n if (accountId) {\n allQueries.push({\n queryName: 'QuoteAccountQuery',\n objectName: 'Account',\n resultObjectName: 'account',\n statement: `Id ='${accountId}'`,\n fields: [],\n });\n }\n if (userId) {\n allQueries.push({\n queryName: 'QuoteUserQuery',\n objectName: 'User',\n resultObjectName: 'agent',\n statement: `Id ='${userId}'`,\n fields: [],\n });\n }\n\n const queries = allQueries.map(query => this.queryObject(query, { properties })) || [];\n\n return forkJoin([...queries]).pipe(\n defaultIfEmpty([] as any[]),\n map(results => {\n const queriesResult = _.chain(results)\n .reduce((acc, r) => {\n if (r) {\n return { ...acc, ...r };\n }\n\n return acc;\n }, {})\n .value();\n\n const templateProperties = (template?.properties || []).reduce((trunk, { name, value }) => {\n return {\n ...trunk,\n [name as string]: this.mapBooleanIfAplicable(value as any),\n };\n }, {});\n\n const data = {\n ...(typeof object === 'object' ? object : { object }),\n ...queriesResult,\n ...templateProperties,\n };\n\n if (template.script && template.script.trim().length) {\n const currencyFormat = template.properties?.find(({ name }) => name === 'currencyFormat')?.value || '1.2-2';\n const dateFormat = template.properties?.find(({ name }) => name === 'dateFormat')?.value || 'D/MMM/YYYY';\n const formatDate = (value: string) => {\n return value ? moment(value).format(dateFormat) : value;\n };\n const transform = new Function(`return ${template.script}`)();\n const transformedData = transform({\n ...data,\n utils: {\n lodash: _,\n currency: (value: any) => new CurrencyPipe('en-US').transform(value, 'USD', 'symbol', currencyFormat),\n date: formatDate,\n },\n ToDay: formatDate(Date.now() as any),\n });\n if (!shouldPreventDownload) {\n const blob = new Blob([JSON.stringify(transformedData)]);\n this.fileDownloadService.processDownload(blob, 'data.json');\n }\n return transformedData;\n }\n return data;\n }),\n );\n }\n\n private resolveAttachments$(template: DocumentTemplate): Observable<ArrayBuffer[]> {\n const attachmentIds = (template.attachments?.map(({ id }) => id).filter(Boolean) as string[]) ?? [];\n\n if (!attachmentIds.length) {\n return of([]);\n }\n\n return forkJoin(attachmentIds.map(id => this.documentAttachmentService.getAttachmentFile(id, true)));\n }\n\n private mapSfQueryResult = <T>(limit: number) =>\n map((records: T[]) => {\n if (!records.length) {\n return { _result: 'No Records Found' };\n }\n\n if (limit === 1) {\n return records[0];\n }\n\n return records;\n });\n\n private mapBooleanIfAplicable = (value: string) => {\n if (value === 'true') {\n return true;\n }\n\n if (value === 'false') {\n return false;\n }\n\n return value;\n };\n\n private queryObject(\n { objectName, resultObjectName, fields, statement }: TemplateQuery,\n { properties }: AnyWithProperties,\n ): Observable<any> {\n const patternLimit = /(\\s*limit\\s\\d*)/i;\n let limit = 1;\n if (statement && patternLimit.test(statement)) {\n const limitStr = statement?.match(patternLimit)?.[1].trim().substring(5).trim();\n if (limitStr) {\n limit = Number.parseInt(limitStr, 10);\n }\n statement = statement.replace(patternLimit, '');\n }\n\n const resolvedStatement = statement\n ? StringUtils.fillPlaceholders(statement, properties, /:\\s*(\\w[\\w\\d_.]+)/i)\n : undefined;\n\n const searchRequest = {\n skip: 0,\n count: limit,\n rawCondition: resolvedStatement,\n ...(fields?.length && !!fields[0] && { fields }),\n } as SearchRequest;\n\n return this.salesforceApiService.query(searchRequest, objectName).pipe(\n this.mapSfQueryResult(limit),\n map(value => ({ [resultObjectName]: value })),\n );\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Flow } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { ConfigurationSettingsApiService } from './configuration-settings-api.service';\n\n@Injectable()\nexport class FlowsApiService {\n private readonly flowsKey = 'flows';\n\n constructor(private configurationSettingsApiService: ConfigurationSettingsApiService) {}\n\n public getFlow(id: string): Observable<Flow | undefined> {\n return this.fetchFlows().pipe(map(flows => flows.find(flow => flow.id == id)));\n }\n\n public fetchFlows(): Observable<Flow[]> {\n return this.configurationSettingsApiService\n .fetchSetting(this.flowsKey)\n .pipe(map(({ value }): Flow[] => (value ? JSON.parse(value) : [])));\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, PriceList, PriceSummary } from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class PriceApiService {\n private readonly SERVICE_URL = '/price';\n\n constructor(private httpService: BaseHttpService) {}\n\n calculateRuntime(request: any): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/calculate-runtime`,\n body: request,\n });\n }\n\n calculate(request: any): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/calculate`,\n body: request,\n });\n // TODO: move outside API service\n // .pipe(\n // map(data => {\n // if (data.context) {\n // const context = this.contextService.resolveOrCreate();\n // const patchedContext = {\n // ...context,\n // properties: {\n // ...context.properties,\n // ...data.context.properties,\n // },\n // };\n\n // this.contextService.update(patchedContext);\n // }\n\n // return data;\n // }),\n // );\n }\n\n getPriceLists(): Observable<PriceList[]> {\n return this.httpService.api({\n method: 'get',\n url: '/price-lists',\n });\n }\n\n getPriceList(id: string): Observable<PriceList> {\n return this.httpService.api({\n method: 'get',\n url: `/price-lists/${id}`,\n });\n }\n\n getSellingTermByEndDate(\n planId?: string,\n offeringId?: string,\n startDate?: string,\n endDate?: string,\n frequencyUnit?: string,\n frequencyDuration?: string,\n ): Observable<any> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/selling-term-by-end-date`,\n body: {\n planId: planId,\n offeringId: offeringId,\n startDate: startDate,\n endDate: endDate,\n frequencyUnit: frequencyUnit,\n frequencyDuration: frequencyDuration,\n },\n });\n }\n\n getSellingTermByTerm(\n planId?: string,\n offeringId?: string,\n startDate?: string,\n term?: number,\n frequencyUnit?: string,\n frequencyDuration?: string,\n ): Observable<any> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/selling-term-by-term`,\n body: {\n planId: planId,\n offeringId: offeringId,\n startDate: startDate,\n term: term,\n frequencyUnit: frequencyUnit,\n frequencyDuration: frequencyDuration,\n },\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewProcedure, Procedure, ProcedureExecuteRequest } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class ProceduresApiService {\n private readonly serviceUrl: string = '/admin/procedures';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchProcedures$ = (): Observable<Procedure[]> => {\n return this.searchProcedures$(new Expression(), 0, 100);\n };\n\n searchProcedures$ = (expression: Expression, skip: number, count: number): Observable<Procedure[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n createProcedure$ = (newProcedure: NewProcedure): Observable<Procedure> => {\n return this.baseHttpService.api<Procedure>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: newProcedure,\n });\n };\n\n updateProcedure$ = (procedure: Procedure): Observable<Procedure> => {\n return this.baseHttpService.api<Procedure>({\n url: `${this.serviceUrl}/${procedure.id}`,\n method: 'put',\n body: procedure,\n });\n };\n\n duplicateProcedure$ = (body: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${body.id}/clone`,\n method: 'post',\n body,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeProcedure$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreProcedure$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n\n fetchProcedure$(id: string): Observable<Procedure> {\n return this.baseHttpService.api<Procedure>({\n url: `${this.serviceUrl}/${id}`,\n method: 'get',\n });\n }\n\n execute$(body: ProcedureExecuteRequest) {\n return this.baseHttpService.api<string[]>({\n url: `/procedures/execute`,\n method: 'post',\n body,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n EntityUtil,\n ModelReleaseRequest,\n ModelTranslatorUtils,\n ModelUtils,\n PmlConfigurationMode,\n ProductModel,\n ProductModelsContainer,\n ProductModelVersion,\n} from '@veloce/core';\nimport { forkJoin, Observable } from 'rxjs';\nimport { catchError, map } from 'rxjs/operators';\n\n@Injectable()\nexport class ProductModelApiService {\n public static MAX_RESULTS = 200;\n\n private readonly SERVICE_URL = '/models';\n\n constructor(private httpService: BaseHttpService) {}\n\n addModel(model: ProductModel): Observable<any> {\n return this.httpService\n .api({\n method: 'post',\n url: this.SERVICE_URL,\n body: model,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return result;\n } else {\n throw new Error(result.message);\n }\n }),\n );\n }\n\n releaseModel(model: ModelReleaseRequest): Observable<any> {\n return this.httpService\n .api({\n method: 'put',\n url: `${this.SERVICE_URL}/${model.id}/release`,\n body: model,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n );\n }\n\n removeModel(modelId: string, successFn?: any, failureFn?: any): void {\n const observable = this.httpService\n .api({\n method: 'delete',\n url: `${this.SERVICE_URL}/${modelId}`,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n );\n\n observable.subscribe(\n () => {\n successFn && successFn.apply();\n },\n () => {\n failureFn && failureFn.apply();\n },\n );\n }\n\n getModelVersions(modelId: string, count: number = 100, skip: number = 0): Observable<ProductModelVersion[]> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/${modelId}/versions`,\n body: {\n skipCount: skip,\n count: count,\n },\n });\n }\n\n getModel(id: string, version?: string): Observable<ProductModel> {\n let url = `${this.SERVICE_URL}/${id}`;\n\n if (version) {\n url += `/versions/${version}`;\n }\n\n return this.httpService.api({ url });\n }\n\n getModels(skipCount: number, searchText: string): Observable<ProductModel[]> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/search`,\n body: {\n nameRegex: searchText,\n skipCount: skipCount.toString(),\n count: ProductModelApiService.MAX_RESULTS,\n },\n });\n }\n\n getLinkedModels(id: string, version?: string): Observable<ProductModel[]> {\n let url = `${this.SERVICE_URL}/${id}`;\n\n if (version) {\n url += `/versions/${version}`;\n }\n\n url += '/linked';\n\n return this.httpService.api({ url }).pipe(\n map((linkedModels: ProductModel[]) => {\n if (linkedModels) {\n linkedModels.forEach(model => ModelTranslatorUtils.toLocalModel(model));\n }\n return linkedModels;\n }),\n );\n }\n\n load(id: string, version?: string): Observable<ProductModelsContainer> {\n return forkJoin([this.getModel(id, version), this.getLinkedModels(id, version)]).pipe(\n map(([model, linkedModels]) => {\n const container = new ProductModelsContainer(model, linkedModels ?? []);\n\n ModelUtils.override(container.main, container.linked);\n ModelTranslatorUtils.toLocalModel(container.main, container.linked);\n\n return container;\n }),\n );\n }\n\n getPML(modelId: string, version?: string): Observable<any> {\n let url = `${this.SERVICE_URL}/${modelId}/pml/${version}`;\n\n if (version) {\n url += `/versions/${version}`;\n }\n\n return this.httpService.api({\n url,\n responseType: 'text',\n });\n }\n\n savePML(modelId: string, pml: string, comment: string): Observable<any> {\n return this.httpService\n .api({\n method: 'put',\n url: `${this.SERVICE_URL}/${modelId}/pml`,\n body: {\n id: modelId,\n pml: pml,\n comment: comment,\n },\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n catchError(this.httpService.handleValidationError),\n );\n }\n\n generateProducts(modelId: string): Observable<ProductModel> {\n return this.httpService.api({\n url: `${this.SERVICE_URL}/${modelId}/generate-products`,\n });\n }\n\n saveModel(productModel: ProductModel, comment: string): Observable<string> {\n const model = EntityUtil.clone(productModel);\n model.comment = comment;\n ModelTranslatorUtils.toServerModel(model);\n\n return this.httpService\n .api({\n method: 'put',\n url: `${this.SERVICE_URL}/${model.id}`,\n body: model,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n catchError(this.httpService.handleValidationError),\n );\n }\n\n validateModel(productModel: ProductModel): Observable<string> {\n return this.httpService\n .api({\n method: 'post',\n url: `${this.SERVICE_URL}/validate`,\n body: productModel,\n errorHandler: this.httpService.handleValidationError,\n })\n .pipe(\n map(result => {\n if (result.successful) {\n return '';\n } else {\n throw new Error(result.message);\n }\n }),\n );\n }\n\n renameModel(productModel: ProductModel, name: string): Observable<any> {\n const model = EntityUtil.clone(productModel);\n model.name = name;\n ModelTranslatorUtils.toServerModel(model);\n\n return this.httpService\n .api({\n method: 'patch',\n url: `${this.SERVICE_URL}/${model.id}`,\n body: model,\n })\n .pipe(catchError(this.httpService.handleValidationError));\n }\n\n uploadPmlFile(file: File, modelId: string): Observable<any> {\n const formData: FormData = new FormData();\n formData.append('file', file, file.name);\n\n return this.httpService.upload({\n url: `${this.SERVICE_URL}/${modelId}/pml/upload`,\n body: formData,\n });\n }\n\n runPml(modelId: string, pml: string, rootType: string, configurationMode: PmlConfigurationMode): Observable<any> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/${modelId}/pml/run`,\n body: {\n pml,\n rootType,\n configurationMode,\n },\n responseType: 'text',\n });\n }\n\n evictAllCache(): Observable<{ result: string }> {\n return this.httpService.api({\n method: 'get',\n url: '/cache/evict/environment-variables',\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, PriceSummary } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { NextRampRequest } from '../types';\n\n@Injectable()\nexport class RampApiService {\n private readonly SERVICE_URL = '/ramp';\n\n constructor(private httpService: BaseHttpService) {}\n\n next(request: NextRampRequest): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/next`,\n body: request,\n });\n }\n\n renew(request: any): Observable<PriceSummary> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/renew`,\n body: request,\n });\n // TODO: move out of API service\n // .pipe(\n // map(data => {\n // if (data.context) {\n // const context = this.contextService.resolveOrCreate();\n\n // Object.keys(data.context.properties).forEach(function (key) {\n // context.properties[key] = data.context.properties[key];\n // });\n\n // this.contextService.update(context);\n // }\n\n // return data;\n // }),\n // );\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewRuleGroup, RuleGroup } from '@veloce/core';\nimport { map, Observable } from 'rxjs';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class RuleGroupsApiService {\n private readonly serviceUrl: string = '/admin/rule-groups';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchRuleGroups$ = (): Observable<RuleGroup[]> => {\n return this.searchRuleGroups$(new Expression(), 0, 100);\n };\n\n searchRuleGroups$ = (expression: Expression, skip: number, count: number): Observable<RuleGroup[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n createRuleGroup$ = (ruleGroup: NewRuleGroup): Observable<RuleGroup> => {\n return this.baseHttpService.api<RuleGroup>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: ruleGroup,\n });\n };\n\n updateRuleGroup$ = (ruleGroup: RuleGroup): Observable<RuleGroup> => {\n return this.baseHttpService.api<RuleGroup>({\n url: `${this.serviceUrl}/${ruleGroup.id}`,\n method: 'post',\n body: ruleGroup,\n });\n };\n\n duplicateRuleGroup$ = (body: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${body.id}/clone`,\n method: 'post',\n body,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeRuleGroup$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreRuleGroup$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, HeaderField, NewRule, Rule, RuleExecuteRequest } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class RulesApiService {\n private readonly serviceUrl: string = '/admin/rules';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchRules$ = (): Observable<Rule[]> => {\n return this.searchRules$(new Expression(), 0, 100);\n };\n\n searchRules$ = (expression: Expression, skip: number, count: number): Observable<Rule[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n createRule$ = (rule: NewRule): Observable<Rule> => {\n return this.baseHttpService.api<Rule>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: rule,\n });\n };\n\n updateRule$ = (rule: Rule): Observable<Rule> => {\n return this.baseHttpService.api<Rule>({\n url: `${this.serviceUrl}/${rule.id}`,\n method: 'put',\n body: rule,\n });\n };\n\n duplicateRule$ = (body: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${body.id}/clone`,\n method: 'post',\n body,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeRule$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreRule$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n\n fetchRule$(id: string) {\n return this.baseHttpService.api<Rule>({\n url: `${this.serviceUrl}/${id}`,\n method: 'get',\n });\n }\n\n fetchHeaderFields$() {\n return this.baseHttpService.api<HeaderField[]>({\n url: `${this.serviceUrl}/describe/Header`,\n method: 'get',\n });\n }\n\n execute$(body: RuleExecuteRequest) {\n return this.baseHttpService.api<string[]>({\n url: `/rules/execute`,\n method: 'post',\n body,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewScript, Script, ScriptDetails, ScriptExecuteRequest } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { HttpParams } from '@angular/common/http';\nimport { CloneRequest } from '../types/clone-request.types';\n\n@Injectable()\nexport class ScriptsApiService {\n private readonly serviceUrl: string = '/admin/scripts';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchScripts$ = (): Observable<Script[]> => {\n return this.baseHttpService.api<Script[]>({ url: `${this.serviceUrl}` });\n };\n\n searchScripts$ = (expression: Expression, skip: number, count: number): Observable<Script[]> => {\n let params = new HttpParams();\n params = params.set('skip', '' + skip);\n params = params.set('count', '' + count);\n return this.baseHttpService.api({ method: 'post', url: `${this.serviceUrl}/search`, params, body: expression });\n };\n\n fetchScript$ = (id: string): Observable<ScriptDetails> => {\n return this.baseHttpService.api<ScriptDetails>({ url: `${this.serviceUrl}/${id}` });\n };\n\n createScript$ = (script: NewScript): Observable<Script> => {\n return this.baseHttpService.api<Script>({\n url: `${this.serviceUrl}`,\n method: 'post',\n body: script,\n });\n };\n\n updateScriptMeta$ = (script: Script): Observable<Script> => {\n return this.baseHttpService.api<Script>({\n url: `${this.serviceUrl}/${script.id}`,\n method: 'put',\n body: script,\n });\n };\n\n updateScriptDetails$ = (script: ScriptDetails): Observable<ScriptDetails> => {\n return this.baseHttpService.api<ScriptDetails>({\n url: `${this.serviceUrl}/${script.id}`,\n method: 'put',\n body: script,\n });\n };\n\n cloneScript$ = (cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${cloneRequest.id}/clone`,\n method: 'post',\n body: cloneRequest\n });\n };\n\n removeScript$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}`,\n method: 'delete',\n });\n };\n\n restoreScript$ = (id: string): Observable<string> => {\n return this.baseHttpService.api<string>({\n url: `${this.serviceUrl}/${id}/restore`,\n method: 'patch',\n });\n };\n\n execute$ = (body: ScriptExecuteRequest): Observable<any> => {\n return this.baseHttpService.api({\n url: `/scripts/execute`,\n method: 'post',\n body,\n errorHandler: () => null\n });\n };\n}\n","import { ComponentStory, ComponentStoryAttachments } from '@veloce/core';\nimport { UIComponentStoryDTO } from '../types/dto/ui-template-dto.types';\n\nexport const fromUIComponentStoryDTO = (\n dto: UIComponentStoryDTO,\n attachments: ComponentStoryAttachments,\n): ComponentStory => {\n return {\n id: dto.id,\n name: dto.name,\n uiComponentId: dto.uiComponentId,\n description: dto.description,\n section: attachments.json,\n template: attachments.html,\n script: attachments.js,\n styles: attachments.css,\n };\n};\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n ComponentAttachments,\n ComponentStory,\n ComponentStoryAttachments,\n Expression,\n NewComponentStory,\n NewTemplateComponent,\n NewUITemplate,\n TemplateAttachmentType,\n TemplateComponent,\n UITemplate,\n} from '@veloce/core';\nimport { Dictionary } from 'lodash';\nimport { catchError, forkJoin, map, noop, Observable, of, switchMap } from 'rxjs';\nimport { CloneRequest } from '../types/clone-request.types';\nimport { UIComponentStoryDTO } from '../types/dto/ui-template-dto.types';\nimport { fromUIComponentStoryDTO } from '../utils/ui-template.utils';\n\n@Injectable()\nexport class UITemplatesApiService {\n private readonly serviceUrl: string = '/uitemplates';\n\n constructor(private baseHttpService: BaseHttpService) {}\n\n fetchTemplates$ = (name?: string): Observable<UITemplate[]> => {\n let params = new HttpParams();\n if (name) {\n params = params.append('name', name);\n }\n\n return this.baseHttpService.api<UITemplate[]>({ url: `${this.serviceUrl}`, params });\n };\n\n createTemplate$ = (template: NewUITemplate): Observable<UITemplate> => {\n return this.baseHttpService.api<UITemplate>({\n method: 'post',\n url: `${this.serviceUrl}`,\n body: template,\n });\n };\n\n updateTemplate$ = (template: UITemplate): Observable<UITemplate> => {\n return this.baseHttpService.api<UITemplate>({\n method: 'put',\n url: `${this.serviceUrl}/${template.id}`,\n body: template,\n });\n };\n\n duplicateTemplate$ = (template: UITemplate, cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${template.id}/clone`,\n method: 'post',\n body: cloneRequest,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeTemplate$ = (id: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${id}`,\n });\n };\n\n restoreTemplate$ = (id: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'patch',\n url: `${this.serviceUrl}/${id}`,\n });\n };\n\n searchTemplates$ = (data: { params?: Dictionary<string>; expression?: Expression }): Observable<UITemplate[]> => {\n return this.baseHttpService.api({\n method: 'post',\n url: `${this.serviceUrl}/search`,\n params: data.params,\n body: data.expression,\n });\n };\n\n fetchComponents$ = (templateId: string, name?: string): Observable<TemplateComponent[]> => {\n let params = new HttpParams();\n if (name) {\n params = params.append('name', name);\n }\n\n return this.baseHttpService.api<TemplateComponent[]>({\n url: `${this.serviceUrl}/${templateId}/components`,\n params,\n });\n };\n\n fetchComponent$ = (templateId: string, componentId: string): Observable<TemplateComponent> => {\n return this.baseHttpService.api<TemplateComponent>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}`,\n });\n };\n\n createComponent$ = (component: NewTemplateComponent): Observable<TemplateComponent> => {\n return this.baseHttpService.api<TemplateComponent>({\n method: 'post',\n url: `${this.serviceUrl}/${component.uiTemplateId}/components`,\n body: component,\n });\n };\n\n updateComponent$ = (component: TemplateComponent): Observable<TemplateComponent> => {\n return this.baseHttpService.api<TemplateComponent>({\n method: 'put',\n url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}`,\n body: component,\n });\n };\n\n duplicateComponent$ = (component: TemplateComponent, cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${component.uiTemplateId}/components/${component.id}/clone`,\n method: 'post',\n body: cloneRequest,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n removeComponent$ = (templateId: string, componentId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}`,\n });\n };\n\n restoreComponent$ = (templateId: string, componentId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'patch',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}`,\n });\n };\n\n searchComponents$ = (\n templateId: string,\n data: { params?: Dictionary<string>; expression?: Expression },\n ): Observable<TemplateComponent[]> => {\n return this.baseHttpService.api({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/search`,\n params: data.params,\n body: data.expression,\n });\n };\n\n fetchStoryAttachment = (\n templateId: string,\n componentId: string,\n storyId: string,\n type: TemplateAttachmentType,\n ): Observable<string> => {\n return this.baseHttpService\n .api<string>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments/${type}/file`,\n responseType: 'text',\n errorHandler: noop,\n })\n .pipe(catchError(() => of('')));\n };\n\n private convertToComponentStory$ = (\n templateId: string,\n componentId: string,\n storyDto: UIComponentStoryDTO,\n ): Observable<ComponentStory> => {\n return forkJoin([\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'html'),\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'js'),\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'css'),\n this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'json'),\n ]).pipe(\n map(([html, js, css, json]) => ({ html, js, css, json })),\n map(attachments => fromUIComponentStoryDTO(storyDto, attachments)),\n );\n };\n\n fetchStories$ = (templateId: string, componentId: string, name?: string): Observable<ComponentStory[]> => {\n let params = new HttpParams();\n if (name) {\n params = params.append('name', name);\n }\n\n return this.baseHttpService\n .api<UIComponentStoryDTO[]>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories`,\n params,\n })\n .pipe(\n switchMap(dtos => {\n if (!dtos.length) {\n return of([]);\n }\n return forkJoin(dtos.map(dto => this.convertToComponentStory$(templateId, componentId, dto)));\n }),\n );\n };\n\n fetchStory$ = (templateId: string, componentId: string, storyId: string): Observable<ComponentStory> => {\n return this.baseHttpService\n .api<UIComponentStoryDTO>({\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,\n })\n .pipe(switchMap(dto => this.convertToComponentStory$(templateId, componentId, dto)));\n };\n\n createComponentStory$ = (templateId: string, story: NewComponentStory): Observable<ComponentStory> => {\n return this.baseHttpService.api<ComponentStory>({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories`,\n body: story,\n });\n };\n\n updateComponentStory$ = (templateId: string, story: ComponentStory): Observable<ComponentStory> => {\n const { script, template, styles, section, ...rest } = story;\n\n return this.baseHttpService\n .api<UIComponentStoryDTO>({\n method: 'put',\n url: `${this.serviceUrl}/${templateId}/components/${story.uiComponentId}/stories/${story.id}`,\n body: rest,\n })\n .pipe(map(dto => fromUIComponentStoryDTO(dto, { html: template, js: script, css: styles, json: section })));\n };\n\n duplicateComponentStory$ = (story: ComponentStory, cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService\n .api({\n url: `${this.serviceUrl}/${story.template}/components/${story.uiComponentId}/stories/${story.id}/clone`,\n method: 'post',\n body: cloneRequest,\n })\n .pipe(map(response => response.clonedRecordId));\n };\n\n deleteComponentStory$ = (templateId: string, componentId: string, storyId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,\n });\n };\n\n restoreComponentStory$ = (templateId: string, componentId: string, storyId: string): Observable<void> => {\n return this.baseHttpService.api({\n method: 'patch',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}`,\n });\n };\n\n uploadStoryAttachments$ = (\n templateId: string,\n componentId: string,\n storyId: string,\n attachments: ComponentStoryAttachments,\n ): Observable<void> => {\n const formData = new FormData();\n if (attachments.html != null) {\n formData.append('html', new Blob([attachments.html]), 'story-template.html');\n }\n if (attachments.css != null) {\n formData.append('css', new Blob([attachments.css]), 'story-styles.css');\n }\n if (attachments.js != null) {\n formData.append('js', new Blob([attachments.js]), 'story-script.js');\n }\n if (attachments.json != null) {\n formData.append('json', new Blob([attachments.json]), 'story-section.json');\n }\n\n return this.baseHttpService.upload({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/stories/${storyId}/attachments`,\n body: formData,\n });\n };\n\n getTemplateThumbnailUrl(templateId: string) {\n return `${this.serviceUrl}/${templateId}/thumbnail/file`;\n }\n\n attachTemplateThumbnail$(templateId: string, file: File) {\n const data = new FormData();\n data.append('thumb', file);\n\n return this.baseHttpService.upload({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/thumbnail`,\n body: data,\n });\n }\n\n removeTemplateThumbnail$(templateId: string) {\n return this.baseHttpService.api({\n method: 'delete',\n url: `${this.serviceUrl}/${templateId}/thumbnail`,\n });\n }\n\n fetchComponentAttachments$ = (templateId: string, component: TemplateComponent): Observable<ComponentAttachments> => {\n return forkJoin([\n this.fetchComponentAttachmentFile$(templateId, component.id, 'html'),\n this.fetchComponentAttachmentFile$(templateId, component.id, 'js'),\n this.fetchComponentAttachmentFile$(templateId, component.id, 'css'),\n this.fetchComponentAttachmentFile$(templateId, component.id, 'json'),\n ]).pipe(map(([html, js, css, json]) => ({ html, js, css, json })));\n };\n\n private fetchComponentAttachmentFile$ = (\n templateId: string,\n componentId: string,\n attachmentType: TemplateAttachmentType,\n ): Observable<string> => {\n return this.baseHttpService\n .api({\n method: 'get',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments/${attachmentType}/file`,\n responseType: 'text',\n errorHandler: noop,\n })\n .pipe(catchError(() => of('')));\n };\n\n uploadComponentAttachments$ = (\n templateId: string,\n componentId: string,\n attachments: ComponentAttachments,\n ): Observable<void> => {\n const formData = new FormData();\n if (attachments.html != null) {\n formData.append('html', new Blob([attachments.html]), 'template.html');\n }\n if (attachments.css != null) {\n formData.append('css', new Blob([attachments.css]), 'styles.css');\n }\n if (attachments.js != null) {\n formData.append('js', new Blob([attachments.js]), 'script.js');\n }\n if (attachments.json != null) {\n formData.append('json', new Blob([attachments.json]), 'section.json');\n }\n\n return this.baseHttpService.upload({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/${componentId}/attachments`,\n body: formData,\n });\n };\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { BaseHttpService, XrayService } from '@veloce/core';\nimport { ConfigurationApiService } from './services/configuration-api.service';\nimport { ConfigurationSettingsApiService } from './services/configuration-settings-api.service';\nimport { ContextApiService } from './services/context-api.service';\nimport { DocumentAttachmentApiService } from './services/document-attachment-api.service';\nimport { DocumentTemplatesApiService } from './services/document-templates-api.service';\nimport { FlowsApiService } from './services/flows-api.service';\nimport { PriceApiService } from './services/price-api.service';\nimport { ProceduresApiService } from './services/procedures-api.service';\nimport { ProductModelApiService } from './services/product-model-api.service';\nimport { QuoteApiService } from './services/quote-api.service';\nimport { RampApiService } from './services/ramp-api.service';\nimport { RuleGroupsApiService } from './services/rule-groups-api.service';\nimport { RulesApiService } from './services/rules-api.service';\nimport { SalesforceApiService } from './services/salesforce-api.service';\nimport { ScriptsApiService } from './services/scripts-api.service';\nimport { UITemplatesApiService } from './services/ui-templates-api.service';\n\n@NgModule({\n imports: [HttpClientModule],\n providers: [\n BaseHttpService,\n XrayService,\n ConfigurationApiService,\n ConfigurationSettingsApiService,\n ContextApiService,\n DocumentAttachmentApiService,\n PriceApiService,\n ProductModelApiService,\n ProceduresApiService,\n QuoteApiService,\n DocumentTemplatesApiService,\n RampApiService,\n SalesforceApiService,\n UITemplatesApiService,\n ScriptsApiService,\n RulesApiService,\n RuleGroupsApiService,\n FlowsApiService,\n ],\n})\nexport class ApiModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["map","catchError","switchMap"],"mappings":"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"}