@veloceapps/api 1.0.2 → 2.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/veloce-api.umd.js +149 -60
- package/bundles/veloce-api.umd.js.map +1 -1
- package/esm2015/index.js +3 -1
- package/esm2015/lib/api.module.js +11 -5
- package/esm2015/lib/services/configuration-api.service.js +3 -3
- package/esm2015/lib/services/configuration-settings-api.service.js +3 -3
- package/esm2015/lib/services/context-api.service.js +3 -3
- package/esm2015/lib/services/document-attachment-api.service.js +3 -3
- package/esm2015/lib/services/document-templates-api.service.js +3 -3
- package/esm2015/lib/services/price-api.service.js +3 -3
- package/esm2015/lib/services/product-model-api.service.js +3 -3
- package/esm2015/lib/services/quote-api.service.js +3 -3
- package/esm2015/lib/services/ramp-api.service.js +3 -3
- package/esm2015/lib/services/rule-groups-api.service.js +33 -0
- package/esm2015/lib/services/rules-api.service.js +45 -0
- package/esm2015/lib/services/salesforce-api.service.js +3 -3
- package/esm2015/lib/services/scripts-api.service.js +3 -3
- package/esm2015/lib/services/ui-templates-api.service.js +36 -21
- package/esm2015/lib/types/ui-template-dto.types.js +1 -1
- package/esm2015/lib/utils/ui-template.utils.js +1 -5
- package/fesm2015/veloce-api.js +146 -63
- package/fesm2015/veloce-api.js.map +1 -1
- package/index.d.ts +2 -0
- package/lib/services/rule-groups-api.service.d.ts +13 -0
- package/lib/services/rules-api.service.d.ts +15 -0
- package/lib/services/ui-templates-api.service.d.ts +3 -2
- package/lib/types/ui-template-dto.types.d.ts +0 -4
- package/package.json +2 -2
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"veloce-api.js","sources":["../../../../libs/api/src/lib/types/attribute-dto.types.ts","../../../../libs/api/src/lib/types/price-adjustment-dto.types.ts","../../../../libs/api/src/lib/types/charge-group-item-dto.types.ts","../../../../libs/api/src/lib/types/charge-item-dto.types.ts","../../../../libs/api/src/lib/types/recommended-price-dto.types.ts","../../../../libs/api/src/lib/types/domain-type-dto.types.ts","../../../../libs/api/src/lib/types/port-domain-dto.types.ts","../../../../libs/api/src/lib/types/price-dto.types.ts","../../../../libs/api/src/lib/types/line-item-dto.types.ts","../../../../libs/api/src/lib/services/configuration-api.service.ts","../../../../libs/api/src/lib/types/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/document-templates-api.service.ts","../../../../libs/api/src/lib/services/price-api.service.ts","../../../../libs/api/src/lib/services/product-model-api.service.ts","../../../../libs/api/src/lib/services/quote-api.service.ts","../../../../libs/api/src/lib/services/ramp-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/services/scripts-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 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?: Date,\n public effectiveDate?: Date,\n public startDate?: Date,\n public endDate?: Date,\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 { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n ConfigurationContext,\n ConfigurationRequest,\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 { LineItemDTO } from '../types/line-item-dto.types';\n\n@Injectable()\nexport class ConfigurationApiService {\n private readonly SERVICE_URL = '/configuration';\n\n constructor(private httpService: BaseHttpService) {}\n\n configureLineItem(configurationRequest: ConfigurationRequest, runtimeModel?: RuntimeModel): Observable<LineItem> {\n return this.httpService\n .api<LineItemDTO>({\n method: 'post',\n url: `${this.SERVICE_URL}`,\n body: configurationRequest,\n errorHandler: e => throwError(e),\n })\n .pipe(\n map(response => {\n const lineItem = LineItemDTO.fromDTO(response);\n if (runtimeModel) {\n return this.updatePortDomains(lineItem, runtimeModel);\n } else {\n return lineItem;\n }\n }),\n );\n }\n\n configureAndPriceLineItem(\n configurationRequest: ConfigurationRequest,\n runtimeModel: RuntimeModel,\n ): Observable<{ lineItem: LineItem; context: ConfigurationContext }> {\n return this.httpService\n .api<{ lineItem: LineItemDTO; context: ConfigurationContext }>({\n method: 'post',\n url: `${this.SERVICE_URL}/price`,\n body: configurationRequest,\n errorHandler: e => throwError(e),\n })\n .pipe(\n map(response => {\n const lineItem = LineItemDTO.fromDTO(response.lineItem);\n\n return {\n lineItem: this.updatePortDomains(lineItem, runtimeModel),\n context: response.context,\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/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\n .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 constructor(private httpService: BaseHttpService, private fileDownloadService: FileDownloadService) {}\n\n getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.httpService.api({\n url: '/attachments/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: `/attachments`,\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: `/attachments/${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: `/attachments/${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: `/attachments/${id}`,\n method: 'delete',\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, SalesforceField, SalesforceObject, SearchRequest } 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>(searchRequest: SearchRequest, objectName: string): 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 });\n }\n\n queryObjects(search?: string): 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 });\n }\n\n describe(objectName: string, fieldName?: string): Observable<SalesforceField[]> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields` + (fieldName ? `/${fieldName}` : '');\n\n return this.httpService.api({ url: methodUrl });\n }\n\n describe2<T>(objectName: string, fields: string[]): Observable<T> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields`;\n\n return this.httpService.api({ method: 'post', url: methodUrl, body: fields });\n }\n\n apexGetRequest<T>(path: string, params: HttpParams): Observable<T> {\n return this.httpService.api({ url: `${this.SERVICE_URL}/apex${path}`, params });\n }\n\n apexPostRequest<T, S>(path: string, body: S): Observable<T> {\n return this.httpService.api({\n method: 'post',\n body,\n url: `${this.SERVICE_URL}/apex${path}`,\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 HttpRequestOptions,\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 { SalesforceApiService } from './salesforce-api.service';\n\nconst moment = moment_;\ndeclare const window: VlWindow;\n\nconst 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\nconst 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@Injectable()\nexport class DocumentTemplatesApiService {\n private readonly fallbackDocGenHost = 'https://dev-dp1.velocpq.com/docgen';\n private readonly docGenHost;\n constructor(\n private service: BaseHttpService,\n private sfRepo: SalesforceApiService,\n private fileDownloadService: FileDownloadService,\n private documentAttachmentService: DocumentAttachmentApiService,\n private http: HttpClient,\n ) {\n if (window.VELO_DOCGEN_API) {\n this.docGenHost = window.VELO_DOCGEN_API;\n } else {\n console.log(`window.VELO_DOCGEN_API not set, will use fallback \"${this.fallbackDocGenHost}\"`);\n this.docGenHost = this.fallbackDocGenHost;\n }\n }\n\n getTemplates(tag?: string): Observable<DocumentTemplate[]> {\n return this.service.api({\n url: '/templates',\n method: 'get',\n params: {\n ...(tag && { tag }),\n },\n });\n }\n\n upsertTemplate(template: DocumentTemplate, file?: File, reportProgress?: boolean): 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 return this.service.upload({\n url: `/templates` + ((template.id && `/${template.id}`) || ''),\n body: formData,\n method: template.id ? 'put' : 'post',\n reportProgress,\n });\n }\n\n removeTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: '/templates' + id,\n method: 'delete',\n });\n }\n\n cloneTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: '/templates/clone/' + id,\n method: 'post',\n });\n }\n\n generateDocumentData(\n template: DocumentTemplate,\n object: any,\n params?: { [param: string]: string | boolean },\n ): Observable<any> {\n const shouldPreventDownload = params?.shouldPreventDownload;\n const useLocalDataGeneration = template.properties?.find(({ name }) => name === 'useLocalDataGeneration')?.value;\n\n if (!useLocalDataGeneration && object instanceof QuoteDraft) {\n return this.generate(\n '/templates/generate-data',\n { template, quote: object },\n shouldPreventDownload as boolean,\n shouldPreventDownload ? 'json' : 'blob',\n );\n }\n\n const allQueries = [...(template?.queries ?? [])];\n const properties = object?.context?.properties || object?.properties || {};\n\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 as TemplateQuery, { properties })) || [];\n\n return forkJoin([...queries])\n .pipe(defaultIfEmpty([] as any[]))\n .pipe(\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]: 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 generateDocument(\n template: DocumentTemplate,\n object: any,\n params: { [param: string]: string | boolean } = {},\n ): Observable<any> {\n const attachmentIds = (template.attachments || []).map(({ id }) => id).filter(Boolean) as string[];\n const { shouldUseLocalDocxTemplater } = params;\n\n return shouldUseLocalDocxTemplater && !(object instanceof QuoteDraft)\n ? this.generateDocumentNew(template, object, params)\n : this.generateWithBackendDocxTemplater({ template, quote: object as QuoteDraft, attachmentIds, params });\n }\n\n generateDocumentNew(\n template: DocumentTemplate,\n object: any,\n params: { [param: string]: string | boolean } = {},\n ): Observable<any> {\n const { attachToQuote, documentFormat, shouldPreventDownload } = params;\n const file$ = this.service.api({\n method: 'get',\n url: `/templates/${template.id}/file`,\n responseType: 'arraybuffer',\n });\n const attachmentIds = (template.attachments || []).map(({ id }) => id);\n const attachments$ = attachmentIds.length\n ? attachmentIds.map(attachmentId => {\n return this.documentAttachmentService.getAttachmentFile(attachmentId as string, true);\n })\n : [];\n\n const data$ = this.generateDocumentData(template, object, { ...params, shouldPreventDownload: true });\n\n return zip(file$, data$, ...attachments$).pipe(\n switchMap(([file, data, ...attachments]) => {\n const d = DocxTemplater.generate(file, data);\n const body = new FormData();\n const properties = object?.context?.properties || object?.properties || {};\n const documentName = properties?.Name || template.name;\n\n // TODO: special CATO case. Refactor for a more generic approach\n if (documentFormat === 'DOCX') {\n this.fileDownloadService.processDownload(d, documentName);\n\n return of(d);\n }\n\n attachments.forEach((attachment: ArrayBuffer) => {\n body.append('attachments', new Blob([attachment]));\n });\n\n body.append('orderform', d);\n\n return this.http\n .post(`${this.docGenHost}/documents/merge`, body, {\n responseType: 'arraybuffer',\n })\n .pipe(\n switchMap((pdf: any) => {\n const blob = new Blob([pdf]);\n\n if (!shouldPreventDownload) {\n this.fileDownloadService.processDownload(blob, `${documentName}.pdf`);\n }\n\n if (attachToQuote && object instanceof QuoteDraft) {\n const formData: FormData = new FormData();\n\n formData.append('file', blob, `${documentName}.pdf`);\n\n return this.http.post(\n `${window['VELO_API']}/services/quotes/${object.quoteId}/attach-document`,\n formData,\n {\n responseType: 'arraybuffer' as any,\n headers: {\n Authorization: window['VELO_KEY'] as string,\n },\n },\n );\n }\n\n return of(blob);\n }),\n );\n }),\n );\n }\n\n getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.documentAttachmentService.getAttachments(searchRequest);\n }\n\n getAttachmentFile(id: string): any {\n return this.documentAttachmentService.getAttachmentFile(id);\n }\n\n createAttachment(\n attachment: TemplateAttachment,\n file?: File,\n reportProgress?: boolean,\n ): Observable<TemplateAttachment> {\n return this.documentAttachmentService.createAttachment(attachment, file, reportProgress);\n }\n\n removeAttachment(id: string): Observable<unknown> {\n return this.documentAttachmentService.removeAttachment(id);\n }\n\n downloadTemplateFile(id: string): Observable<Blob> {\n return this.service\n .api({\n url: `/templates/${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 private generateWithBackendDocxTemplater({\n template,\n quote,\n attachmentIds,\n params,\n }: {\n template: DocumentTemplate;\n quote: QuoteDraft;\n attachmentIds: string[];\n params: { [param: string]: string | boolean };\n }): Observable<any> {\n const { shouldPreventDownload } = params;\n const nonEmptyParams = Object.keys(params || {})\n .filter(k => params[k] !== undefined)\n .reduce((obj, key) => {\n (obj as any)[key] = params[key];\n return obj;\n }, {});\n return this.generate(\n `/templates/${template.id}/generate`,\n { quote, attachments: attachmentIds },\n Boolean(shouldPreventDownload),\n 'blob',\n nonEmptyParams,\n false,\n );\n }\n\n private generate(\n url: string,\n body: any,\n shouldPreventDownload: boolean,\n responseType: 'arraybuffer' | 'blob' | 'json' | 'text',\n params?: { [param: string]: string },\n isUpload?: boolean,\n reportProgress?: boolean,\n ): Observable<any> {\n const requestOptions: HttpRequestOptions = {\n method: 'post',\n url,\n body,\n reportProgress,\n responseType,\n observe: shouldPreventDownload ? ('body' as const) : ('response' as const),\n params,\n };\n return (isUpload ? this.service.upload(requestOptions) : this.service.api(requestOptions)).pipe(\n tap(response => {\n if (!shouldPreventDownload) {\n this.fileDownloadService.processDownload(response);\n }\n }),\n );\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 (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 = StringUtils.fillPlaceholders(statement, properties, /:\\s*(\\w[\\w\\d_.]+)/i);\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.sfRepo.query(searchRequest, objectName).pipe(\n mapSfQueryResult(limit),\n map(value => ({ [resultObjectName]: value })),\n );\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?: Date,\n endDate?: Date,\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?: Date,\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 { 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, 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 getQuote(quoteId: string, params?: Dictionary<string>): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'get',\n url: `${this.SERVICE_URL}/${quoteId}`,\n params,\n });\n }\n\n upsertQuote(request: QuoteDraft): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}`,\n body: request,\n });\n }\n\n submitQuote(request: QuoteDraft): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/submit`,\n body: request,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, PriceSummary } from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class RampApiService {\n private readonly SERVICE_URL = '/ramp';\n\n constructor(private httpService: BaseHttpService) {}\n\n next(request: any): 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 { ComponentStory, ComponentStoryAttachments } from '@veloce/core';\nimport { UIComponentStoryDTO } from '../types/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 templateHtmlId: dto.templateHtmlId,\n scriptJsId: dto.scriptJsId,\n styleCssId: dto.styleCssId,\n sectionJsonId: dto.sectionJsonId,\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, Observable, of, switchMap } from 'rxjs';\nimport { CloneRequest } from '../types/clone-request.types';\nimport { UIComponentStoryDTO } from '../types/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$ = (cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService.api<string>({\n method: 'post',\n url: `${this.serviceUrl}/${cloneRequest.id}/clone`,\n body: cloneRequest,\n });\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$ = (templateId: string, cloneRequest: CloneRequest): Observable<string> => {\n return this.baseHttpService.api<string>({\n method: 'post',\n url: `${this.serviceUrl}/${templateId}/components/${cloneRequest.id}/clone`,\n body: cloneRequest,\n });\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 })\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 storyDto.templateHtmlId ? this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'html') : of(undefined),\n storyDto.scriptJsId ? this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'js') : of(undefined),\n storyDto.styleCssId ? this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'css') : of(undefined),\n storyDto.sectionJsonId ? this.fetchStoryAttachment(templateId, componentId, storyDto.id, 'json') : of(undefined),\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 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 component.templateHtmlId ? this.fetchComponentAttachmentFile$(templateId, component.id, 'html') : of(undefined),\n component.scriptJsId ? this.fetchComponentAttachmentFile$(templateId, component.id, 'js') : of(undefined),\n component.styleCssId ? this.fetchComponentAttachmentFile$(templateId, component.id, 'css') : of(undefined),\n component.propertiesJsonId ? this.fetchComponentAttachmentFile$(templateId, component.id, 'json') : of(undefined),\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 })\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 { 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: 'post',\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 { 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 { PriceApiService } from './services/price-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 { SalesforceApiService } from './services/salesforce-api.service';\nimport { UITemplatesApiService } from './services/ui-templates-api.service';\nimport { ScriptsApiService } from './services/scripts-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 QuoteApiService,\n DocumentTemplatesApiService,\n RampApiService,\n SalesforceApiService,\n UITemplatesApiService,\n ScriptsApiService,\n ],\n})\nexport class ApiModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["catchError","map","switchMap"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"veloce-api.js","sources":["../../../../libs/api/src/lib/types/attribute-dto.types.ts","../../../../libs/api/src/lib/types/price-adjustment-dto.types.ts","../../../../libs/api/src/lib/types/charge-group-item-dto.types.ts","../../../../libs/api/src/lib/types/charge-item-dto.types.ts","../../../../libs/api/src/lib/types/recommended-price-dto.types.ts","../../../../libs/api/src/lib/types/domain-type-dto.types.ts","../../../../libs/api/src/lib/types/port-domain-dto.types.ts","../../../../libs/api/src/lib/types/price-dto.types.ts","../../../../libs/api/src/lib/types/line-item-dto.types.ts","../../../../libs/api/src/lib/services/configuration-api.service.ts","../../../../libs/api/src/lib/types/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/document-templates-api.service.ts","../../../../libs/api/src/lib/services/price-api.service.ts","../../../../libs/api/src/lib/services/product-model-api.service.ts","../../../../libs/api/src/lib/services/quote-api.service.ts","../../../../libs/api/src/lib/services/ramp-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/services/scripts-api.service.ts","../../../../libs/api/src/lib/services/rules-api.service.ts","../../../../libs/api/src/lib/services/rule-groups-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 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?: Date,\n public effectiveDate?: Date,\n public startDate?: Date,\n public endDate?: Date,\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 { Injectable } from '@angular/core';\nimport {\n BaseHttpService,\n ConfigurationContext,\n ConfigurationRequest,\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 { LineItemDTO } from '../types/line-item-dto.types';\n\n@Injectable()\nexport class ConfigurationApiService {\n private readonly SERVICE_URL = '/configuration';\n\n constructor(private httpService: BaseHttpService) {}\n\n configureLineItem(configurationRequest: ConfigurationRequest, runtimeModel?: RuntimeModel): Observable<LineItem> {\n return this.httpService\n .api<LineItemDTO>({\n method: 'post',\n url: `${this.SERVICE_URL}`,\n body: configurationRequest,\n errorHandler: e => throwError(e),\n })\n .pipe(\n map(response => {\n const lineItem = LineItemDTO.fromDTO(response);\n if (runtimeModel) {\n return this.updatePortDomains(lineItem, runtimeModel);\n } else {\n return lineItem;\n }\n }),\n );\n }\n\n configureAndPriceLineItem(\n configurationRequest: ConfigurationRequest,\n runtimeModel: RuntimeModel,\n ): Observable<{ lineItem: LineItem; context: ConfigurationContext }> {\n return this.httpService\n .api<{ lineItem: LineItemDTO; context: ConfigurationContext }>({\n method: 'post',\n url: `${this.SERVICE_URL}/price`,\n body: configurationRequest,\n errorHandler: e => throwError(e),\n })\n .pipe(\n map(response => {\n const lineItem = LineItemDTO.fromDTO(response.lineItem);\n\n return {\n lineItem: this.updatePortDomains(lineItem, runtimeModel),\n context: response.context,\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/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\n .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 constructor(private httpService: BaseHttpService, private fileDownloadService: FileDownloadService) {}\n\n getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.httpService.api({\n url: '/attachments/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: `/attachments`,\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: `/attachments/${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: `/attachments/${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: `/attachments/${id}`,\n method: 'delete',\n });\n }\n}\n","import { HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { BaseHttpService, SalesforceField, SalesforceObject, SearchRequest } 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>(searchRequest: SearchRequest, objectName: string): 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 });\n }\n\n queryObjects(search?: string): 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 });\n }\n\n describe(objectName: string, fieldName?: string): Observable<SalesforceField[]> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields` + (fieldName ? `/${fieldName}` : '');\n\n return this.httpService.api({ url: methodUrl });\n }\n\n describe2<T>(objectName: string, fields: string[]): Observable<T> {\n const methodUrl = `${this.SERVICE_URL}/describe/${objectName}/fields`;\n\n return this.httpService.api({ method: 'post', url: methodUrl, body: fields });\n }\n\n apexGetRequest<T>(path: string, params: HttpParams): Observable<T> {\n return this.httpService.api({ url: `${this.SERVICE_URL}/apex${path}`, params });\n }\n\n apexPostRequest<T, S>(path: string, body: S): Observable<T> {\n return this.httpService.api({\n method: 'post',\n body,\n url: `${this.SERVICE_URL}/apex${path}`,\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 HttpRequestOptions,\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 { SalesforceApiService } from './salesforce-api.service';\n\nconst moment = moment_;\ndeclare const window: VlWindow;\n\nconst 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\nconst 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@Injectable()\nexport class DocumentTemplatesApiService {\n private readonly fallbackDocGenHost = 'https://dev-dp1.velocpq.com/docgen';\n private readonly docGenHost;\n constructor(\n private service: BaseHttpService,\n private sfRepo: SalesforceApiService,\n private fileDownloadService: FileDownloadService,\n private documentAttachmentService: DocumentAttachmentApiService,\n private http: HttpClient,\n ) {\n if (window.VELO_DOCGEN_API) {\n this.docGenHost = window.VELO_DOCGEN_API;\n } else {\n console.log(`window.VELO_DOCGEN_API not set, will use fallback \"${this.fallbackDocGenHost}\"`);\n this.docGenHost = this.fallbackDocGenHost;\n }\n }\n\n getTemplates(tag?: string): Observable<DocumentTemplate[]> {\n return this.service.api({\n url: '/templates',\n method: 'get',\n params: {\n ...(tag && { tag }),\n },\n });\n }\n\n upsertTemplate(template: DocumentTemplate, file?: File, reportProgress?: boolean): 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 return this.service.upload({\n url: `/templates` + ((template.id && `/${template.id}`) || ''),\n body: formData,\n method: template.id ? 'put' : 'post',\n reportProgress,\n });\n }\n\n removeTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: '/templates' + id,\n method: 'delete',\n });\n }\n\n cloneTemplate(id: string): Observable<DocumentTemplate> {\n return this.service.api({\n url: '/templates/clone/' + id,\n method: 'post',\n });\n }\n\n generateDocumentData(\n template: DocumentTemplate,\n object: any,\n params?: { [param: string]: string | boolean },\n ): Observable<any> {\n const shouldPreventDownload = params?.shouldPreventDownload;\n const useLocalDataGeneration = template.properties?.find(({ name }) => name === 'useLocalDataGeneration')?.value;\n\n if (!useLocalDataGeneration && object instanceof QuoteDraft) {\n return this.generate(\n '/templates/generate-data',\n { template, quote: object },\n shouldPreventDownload as boolean,\n shouldPreventDownload ? 'json' : 'blob',\n );\n }\n\n const allQueries = [...(template?.queries ?? [])];\n const properties = object?.context?.properties || object?.properties || {};\n\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 as TemplateQuery, { properties })) || [];\n\n return forkJoin([...queries])\n .pipe(defaultIfEmpty([] as any[]))\n .pipe(\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]: 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 generateDocument(\n template: DocumentTemplate,\n object: any,\n params: { [param: string]: string | boolean } = {},\n ): Observable<any> {\n const attachmentIds = (template.attachments || []).map(({ id }) => id).filter(Boolean) as string[];\n const { shouldUseLocalDocxTemplater } = params;\n\n return shouldUseLocalDocxTemplater && !(object instanceof QuoteDraft)\n ? this.generateDocumentNew(template, object, params)\n : this.generateWithBackendDocxTemplater({ template, quote: object as QuoteDraft, attachmentIds, params });\n }\n\n generateDocumentNew(\n template: DocumentTemplate,\n object: any,\n params: { [param: string]: string | boolean } = {},\n ): Observable<any> {\n const { attachToQuote, documentFormat, shouldPreventDownload } = params;\n const file$ = this.service.api({\n method: 'get',\n url: `/templates/${template.id}/file`,\n responseType: 'arraybuffer',\n });\n const attachmentIds = (template.attachments || []).map(({ id }) => id);\n const attachments$ = attachmentIds.length\n ? attachmentIds.map(attachmentId => {\n return this.documentAttachmentService.getAttachmentFile(attachmentId as string, true);\n })\n : [];\n\n const data$ = this.generateDocumentData(template, object, { ...params, shouldPreventDownload: true });\n\n return zip(file$, data$, ...attachments$).pipe(\n switchMap(([file, data, ...attachments]) => {\n const d = DocxTemplater.generate(file, data);\n const body = new FormData();\n const properties = object?.context?.properties || object?.properties || {};\n const documentName = properties?.Name || template.name;\n\n // TODO: special CATO case. Refactor for a more generic approach\n if (documentFormat === 'DOCX') {\n this.fileDownloadService.processDownload(d, documentName);\n\n return of(d);\n }\n\n attachments.forEach((attachment: ArrayBuffer) => {\n body.append('attachments', new Blob([attachment]));\n });\n\n body.append('orderform', d);\n\n return this.http\n .post(`${this.docGenHost}/documents/merge`, body, {\n responseType: 'arraybuffer',\n })\n .pipe(\n switchMap((pdf: any) => {\n const blob = new Blob([pdf]);\n\n if (!shouldPreventDownload) {\n this.fileDownloadService.processDownload(blob, `${documentName}.pdf`);\n }\n\n if (attachToQuote && object instanceof QuoteDraft) {\n const formData: FormData = new FormData();\n\n formData.append('file', blob, `${documentName}.pdf`);\n\n return this.http.post(\n `${window['VELO_API']}/services/quotes/${object.quoteId}/attach-document`,\n formData,\n {\n responseType: 'arraybuffer' as any,\n headers: {\n Authorization: window['VELO_KEY'] as string,\n },\n },\n );\n }\n\n return of(blob);\n }),\n );\n }),\n );\n }\n\n getAttachments(searchRequest: TemplateAttachmentSearchRequest): Observable<TemplateAttachment[]> {\n return this.documentAttachmentService.getAttachments(searchRequest);\n }\n\n getAttachmentFile(id: string): any {\n return this.documentAttachmentService.getAttachmentFile(id);\n }\n\n createAttachment(\n attachment: TemplateAttachment,\n file?: File,\n reportProgress?: boolean,\n ): Observable<TemplateAttachment> {\n return this.documentAttachmentService.createAttachment(attachment, file, reportProgress);\n }\n\n removeAttachment(id: string): Observable<unknown> {\n return this.documentAttachmentService.removeAttachment(id);\n }\n\n downloadTemplateFile(id: string): Observable<Blob> {\n return this.service\n .api({\n url: `/templates/${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 private generateWithBackendDocxTemplater({\n template,\n quote,\n attachmentIds,\n params,\n }: {\n template: DocumentTemplate;\n quote: QuoteDraft;\n attachmentIds: string[];\n params: { [param: string]: string | boolean };\n }): Observable<any> {\n const { shouldPreventDownload } = params;\n const nonEmptyParams = Object.keys(params || {})\n .filter(k => params[k] !== undefined)\n .reduce((obj, key) => {\n (obj as any)[key] = params[key];\n return obj;\n }, {});\n return this.generate(\n `/templates/${template.id}/generate`,\n { quote, attachments: attachmentIds },\n Boolean(shouldPreventDownload),\n 'blob',\n nonEmptyParams,\n false,\n );\n }\n\n private generate(\n url: string,\n body: any,\n shouldPreventDownload: boolean,\n responseType: 'arraybuffer' | 'blob' | 'json' | 'text',\n params?: { [param: string]: string },\n isUpload?: boolean,\n reportProgress?: boolean,\n ): Observable<any> {\n const requestOptions: HttpRequestOptions = {\n method: 'post',\n url,\n body,\n reportProgress,\n responseType,\n observe: shouldPreventDownload ? ('body' as const) : ('response' as const),\n params,\n };\n return (isUpload ? this.service.upload(requestOptions) : this.service.api(requestOptions)).pipe(\n tap(response => {\n if (!shouldPreventDownload) {\n this.fileDownloadService.processDownload(response);\n }\n }),\n );\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 (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 = StringUtils.fillPlaceholders(statement, properties, /:\\s*(\\w[\\w\\d_.]+)/i);\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.sfRepo.query(searchRequest, objectName).pipe(\n mapSfQueryResult(limit),\n map(value => ({ [resultObjectName]: value })),\n );\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?: Date,\n endDate?: Date,\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?: Date,\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 { 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, 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 getQuote(quoteId: string, params?: Dictionary<string>): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'get',\n url: `${this.SERVICE_URL}/${quoteId}`,\n params,\n });\n }\n\n upsertQuote(request: QuoteDraft): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}`,\n body: request,\n });\n }\n\n submitQuote(request: QuoteDraft): Observable<QuoteDraft> {\n return this.httpService.api({\n method: 'post',\n url: `${this.SERVICE_URL}/submit`,\n body: request,\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BaseHttpService, PriceSummary } from '@veloce/core';\nimport { Observable } from 'rxjs';\n\n@Injectable()\nexport class RampApiService {\n private readonly SERVICE_URL = '/ramp';\n\n constructor(private httpService: BaseHttpService) {}\n\n next(request: any): 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 { ComponentStory, ComponentStoryAttachments } from '@veloce/core';\nimport { UIComponentStoryDTO } from '../types/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 { UIComponentStoryDTO } from '../types/ui-template-dto.types';\nimport { fromUIComponentStoryDTO } from '../utils/ui-template.utils';\nimport { CloneRequest } from '../types/clone-request.types';\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 { 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: 'post',\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 { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewRule, Rule } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { HttpParams } from '@angular/common/http';\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 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","import { Injectable } from '@angular/core';\nimport { BaseHttpService, Expression, NewRuleGroup, RuleGroup } from '@veloce/core';\nimport { Observable } from 'rxjs';\nimport { HttpParams } from '@angular/common/http';\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","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 { PriceApiService } from './services/price-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 { SalesforceApiService } from './services/salesforce-api.service';\nimport { UITemplatesApiService } from './services/ui-templates-api.service';\nimport { ScriptsApiService } from './services/scripts-api.service';\nimport { RulesApiService } from './services/rules-api.service';\nimport { RuleGroupsApiService } from './services/rule-groups-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 QuoteApiService,\n DocumentTemplatesApiService,\n RampApiService,\n SalesforceApiService,\n UITemplatesApiService,\n ScriptsApiService,\n RulesApiService,\n RuleGroupsApiService,\n ],\n})\nexport class ApiModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.SalesforceApiService","i3.DocumentAttachmentApiService","map","catchError","switchMap"],"mappings":"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"}
|