{
  "version": 3,
  "sources": ["apps/business-center-client/src/app/orders/confirmation/util.ts", "apps/business-center-client/src/app/orders/conversion-utils.ts", "apps/business-center-client/src/app/orders/order.service.ts"],
  "sourcesContent": ["import { BillingFrequency, Currency, formatBillingFrequency, formatDisplayPrice } from '@vendasta/shared';\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { LineItem } from '@vendasta/sales-orders';\n\n@Pipe({\n  name: 'price',\n  standalone: false,\n})\nexport class PricePipe implements PipeTransform {\n  transform(\n    value: any,\n    currency: Currency,\n    billingFrequency?: BillingFrequency,\n    isCents = true,\n    translateZero = true,\n    displaySymbol = true,\n  ): any {\n    return formatDisplayPrice(value, currency, billingFrequency, isCents, translateZero, displaySymbol);\n  }\n}\n\n@Pipe({\n  name: 'formatBillingFrequency',\n  standalone: false,\n})\nexport class FormatBillingFrequencyPipe implements PipeTransform {\n  transform(value: string): string {\n    return formatBillingFrequency(value);\n  }\n}\n\nexport function getTotalPriceForLineItems(lineItems: LineItem[]): number {\n  return lineItems.reduce((total, lineItem) => {\n    const liTotal = lineItem.currentRevenue.revenueComponents.reduce((rcTotal, revenueComponent) => {\n      return rcTotal + (revenueComponent.value || 0);\n    }, 0);\n    return total + (liTotal || 0) * (lineItem.quantity || 1);\n  }, 0);\n}\n", "import {\n  AddonKey as SalesOrderAddonKey,\n  LineItem,\n  LineItemInterface,\n  Revenue,\n  RevenueComponent,\n  RevenuePeriod,\n} from '@vendasta/sales-orders';\nimport {\n  AddonKey as MarketplaceAddonKey,\n  Currency as MarketplaceCurrency,\n  Frequency,\n  Package as MarketplacePackage,\n  Price,\n  Pricing,\n} from '@vendasta/marketplace-packages';\nimport { AppKey } from '@galaxy/marketplace-apps';\nimport { ProductPricing, Currency as BillingCurrency, Frequency as BillingFrequency } from '@galaxy/billing';\n\nexport function convertMarketplacePricingToSalesOrderRevenue(pricing: Pricing): Revenue {\n  return pricing && pricing.prices\n    ? new Revenue({\n        revenueComponents: pricing.prices.map(\n          (price) =>\n            new RevenueComponent({\n              value: price.price > 0 ? price.price : 0,\n              period: convertMarketplaceFrequencyToSalesOrderRevenuePeriod(price.frequency),\n              isStartingRevenue: price.isStartingPrice || false,\n            }),\n        ),\n      })\n    : new Revenue();\n}\n\nexport function convertBillingRetailPriceToSalesOrderRevenue(productPricing: ProductPricing): Revenue {\n  return productPricing\n    ? new Revenue({\n        revenueComponents: [\n          new RevenueComponent({\n            value: productPricing.pricingRules?.length > 0 ? productPricing.pricingRules[0].price : 0,\n            period: convertBillingFrequencyToSalesOrderRevenuePeriod(productPricing.frequency),\n            isStartingRevenue: false,\n          }),\n        ],\n      })\n    : new Revenue();\n}\n\nexport function convertMarketplaceCurrencyToCurrencyCode(currency: MarketplaceCurrency): string {\n  if (MarketplaceCurrency[currency]) {\n    return MarketplaceCurrency[currency];\n  }\n  return 'USD';\n}\n\nexport function convertBillingCurrencyToCurrencyCode(currency: BillingCurrency): string {\n  if (BillingCurrency[currency]) {\n    return BillingCurrency[currency];\n  }\n  return 'USD';\n}\n\nexport function convertMarketplaceFrequencyToSalesOrderRevenuePeriod(freq: Frequency): RevenuePeriod {\n  switch (freq) {\n    case Frequency.ONCE:\n      return RevenuePeriod.ONETIME;\n    case Frequency.DAILY:\n      return RevenuePeriod.DAILY;\n    case Frequency.WEEKLY:\n      return RevenuePeriod.WEEKLY;\n    case Frequency.MONTHLY:\n      return RevenuePeriod.MONTHLY;\n    case Frequency.YEARLY:\n      return RevenuePeriod.YEARLY;\n    default:\n      // Default to monthly\n      // Frequency.OTHER and RevenuePeriod.BIWEEKLY don't have associated counterparts.\n      return RevenuePeriod.MONTHLY;\n  }\n}\n\nexport function convertBillingFrequencyToSalesOrderRevenuePeriod(freq: BillingFrequency): RevenuePeriod {\n  switch (freq) {\n    case BillingFrequency.OneTime:\n      return RevenuePeriod.ONETIME;\n    case BillingFrequency.Monthly:\n      return RevenuePeriod.MONTHLY;\n    case BillingFrequency.Yearly:\n      return RevenuePeriod.YEARLY;\n    default:\n      // Default to monthly\n      // Frequency.OTHER and RevenuePeriod.BIWEEKLY don't have associated counterparts.\n      return RevenuePeriod.MONTHLY;\n  }\n}\n\nexport function convertMarketplaceAddonKeyToSalesOrderAddonKey(addonKey: MarketplaceAddonKey): SalesOrderAddonKey {\n  return new SalesOrderAddonKey({\n    appId: addonKey.appId,\n    addonId: addonKey.addonId,\n  });\n}\n\nexport interface PackagedItem {\n  package: MarketplacePackage;\n  lineItem: LineItemInterface;\n}\n\nexport function packagesToLineItems(pckgdItems: PackagedItem[]): LineItem[] {\n  return pckgdItems.map((pkgdItem) => {\n    const pckg = pkgdItem.package;\n    const lineItem = pkgdItem.lineItem;\n    return new LineItem({\n      packageId: pckg.packageId,\n      currencyCode: pckg.pricing ? convertMarketplaceCurrencyToCurrencyCode(pckg.pricing.currency) : 'USD',\n      currentRevenue: convertMarketplacePricingToSalesOrderRevenue(pckg.pricing),\n      quantity: lineItem?.quantity > 0 ? lineItem.quantity : 1,\n    });\n  });\n}\n\nexport function addPricingToLineItems(\n  lineItems: LineItemInterface[],\n  priceByApp: { key: AppKey; pricing: ProductPricing }[],\n): LineItem[] {\n  return lineItems.map((li) => {\n    const price = priceByApp.find((p) => p.key.appId === li.appKey.appId && p.key.editionId === li.appKey.editionId);\n    const productPricing: ProductPricing = price ? price.pricing : null;\n    const revenue = convertBillingRetailPriceToSalesOrderRevenue(productPricing);\n    return new LineItem({\n      appKey: li.appKey,\n      currencyCode: convertBillingCurrencyToCurrencyCode(productPricing?.currency),\n      currentRevenue: revenue,\n      quantity: li.quantity > 0 ? li.quantity : 1,\n      isTrial: li.isTrial,\n    });\n  });\n}\n\nexport function convertCurrencyCodeToMPCurrency(currencyCode: string): MarketplaceCurrency {\n  if (MarketplaceCurrency[currencyCode]) {\n    return MarketplaceCurrency[currencyCode];\n  }\n  return MarketplaceCurrency.USD;\n}\n\nexport function convertOrderRevenuePeriodToMPFrequency(revenuePeriod: RevenuePeriod): Frequency {\n  // TODO: Unify Frequency between orders and packages\n  switch (revenuePeriod) {\n    case undefined: // proto doesn't transmit 0 enum, but the default should not be Onetime\n    case RevenuePeriod.ONETIME:\n      return Frequency.ONCE;\n    case RevenuePeriod.DAILY:\n      return Frequency.DAILY;\n    case RevenuePeriod.WEEKLY:\n      return Frequency.WEEKLY;\n    case RevenuePeriod.MONTHLY:\n      return Frequency.MONTHLY;\n    case RevenuePeriod.YEARLY:\n      return Frequency.YEARLY;\n    case RevenuePeriod.BIWEEKLY: // No MP equivalent...?\n    default:\n      return Frequency.OTHER;\n  }\n}\n\nexport function getPackagePricingFromLineItem(lineItem: LineItem): Pricing {\n  let prices: Price[] = [];\n  if (!!lineItem.currentRevenue && !!lineItem.currentRevenue.revenueComponents) {\n    prices = lineItem.currentRevenue.revenueComponents.map((c) => {\n      return new Price({\n        price: c.value,\n        frequency: convertOrderRevenuePeriodToMPFrequency(c.period),\n      });\n    });\n  }\n\n  return new Pricing({\n    currency: convertCurrencyCodeToMPCurrency(lineItem.currencyCode),\n    prices: prices,\n  });\n}\n", "import { Injectable } from '@angular/core';\nimport { BillingService, ProductPricing } from '@galaxy/billing';\nimport { App, AppKey, AppPartnerService } from '@galaxy/marketplace-apps';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Package, PricingDisplayOption } from '@vendasta/marketplace-packages';\nimport {\n  CommonField,\n  ConfigInterface,\n  CustomField,\n  CustomerSalesOrdersService,\n  Field,\n  FieldInterface,\n  LineItem,\n  LineItemInterface,\n  Order,\n  RevenueComponent,\n  RevenuePeriod,\n  SalesOrdersService,\n  Status,\n  UserInterface,\n} from '@vendasta/sales-orders';\nimport { SalesOrderStoreService } from '@vendasta/sales-ui';\nimport { BehaviorSubject, Observable, Subject, combineLatest, of } from 'rxjs';\nimport {\n  catchError,\n  distinctUntilChanged,\n  filter,\n  map,\n  publishReplay,\n  refCount,\n  shareReplay,\n  startWith,\n  switchMap,\n  switchMapTo,\n  tap,\n  withLatestFrom,\n} from 'rxjs/operators';\nimport { AccountGroup, AccountGroupService } from '../account-group';\nimport { PackageService } from '../core/package.service';\nimport { getTotalPriceForLineItems } from './confirmation/util';\nimport { addPricingToLineItems, getPackagePricingFromLineItem, packagesToLineItems } from './conversion-utils';\n\n@Injectable()\nexport class OrderService {\n  static readonly fileUploadUrl = '/ajax/v1/marketplace/file/upload/';\n\n  private orderId$$: BehaviorSubject<string> = new BehaviorSubject(null);\n  private specifiedLineItems$$: BehaviorSubject<LineItemInterface[]> = new BehaviorSubject(null);\n  private readonly orderPermissionDenied$$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n  private readonly orderId$: Observable<string>;\n  readonly specifiedLineItems$: Observable<LineItemInterface[]>;\n  readonly order$: Observable<Order | null>;\n  readonly readOnly$: Observable<boolean>;\n  readonly orderPermissionDenied$: Observable<boolean> = this.orderPermissionDenied$$.asObservable();\n  readonly allAppsInTheOrder$: Observable<App[]>;\n  readonly lineItems$: Observable<LineItem[]>;\n  readonly orderTotal$: Observable<number>;\n  readonly cannotBIYPackageWarning$: Observable<string>;\n  readonly commonFormSectionsSaved$$: Subject<void> = new Subject<void>(); // used to refresh saved order form values.\n  readonly customFieldsSaved$$: Subject<void> = new Subject<void>(); // used to refresh saved order form values.\n  readonly extraFieldsSaved$$: Subject<void> = new Subject<void>(); // used to refresh saved order form values.\n  readonly requiresPartnerInputSaved$$: Subject<void> = new Subject<void>(); // used to refresh saved order form values.\n  readonly orderConfig$: Observable<ConfigInterface>;\n  savedCommonFormFields$: Observable<CommonField[]>;\n  savedCustomFields$: Observable<CustomField[]>;\n  savedExtraFields$: Observable<FieldInterface[]>;\n  savedRequiresPartnerInput$: Observable<boolean>;\n  users$: Observable<{ [key: string]: UserInterface }>;\n\n  constructor(\n    private accountGroupService: AccountGroupService,\n    private packageService: PackageService,\n    private salesOrdersService: SalesOrdersService,\n    private orderStoreService: SalesOrderStoreService,\n    private customerSalesOrdersService: CustomerSalesOrdersService,\n    private appSdk: AppPartnerService,\n    private translateService: TranslateService,\n    private billingService: BillingService,\n  ) {\n    const agid$ = this.accountGroupService.currentAccountGroupId$.pipe(\n      filter((agid) => !!agid),\n      distinctUntilChanged(),\n    );\n    this.orderId$ = this.orderId$$.pipe(\n      filter((orderId) => !!orderId),\n      distinctUntilChanged(),\n    );\n\n    this.specifiedLineItems$ = this.specifiedLineItems$$.pipe(\n      filter((orderItems) => orderItems !== null),\n      distinctUntilChanged(),\n    );\n\n    this.order$ = combineLatest([agid$, this.orderId$]).pipe(\n      filter(([agid, orderId]) => !!orderId && !!agid),\n      switchMap(([agid, orderId]) => {\n        return this.customerSalesOrdersService.get(orderId, agid);\n      }),\n      tap(() => {\n        this.orderPermissionDenied$$.next(false);\n      }),\n      catchError(() => {\n        this.orderPermissionDenied$$.next(true);\n        return of(null);\n      }),\n      startWith(null),\n      publishReplay(1),\n      refCount(),\n    );\n\n    this.readOnly$ = this.order$.pipe(map((order) => calculateReadOnlyOrderform(order)));\n\n    this.users$ = this.order$.pipe(\n      filter((o) => !!o),\n      switchMap((o) => this.customerSalesOrdersService.getUsers(o.orderId, o.businessId)),\n      startWith({}),\n    );\n\n    this.orderConfig$ = this.accountGroupService.currentAccountGroup$.pipe(\n      switchMap((a) => {\n        return this.salesOrdersService.getConfig(a.partnerId, a.marketId);\n      }),\n      publishReplay(1),\n      refCount(),\n    );\n\n    const packageIds$ = combineLatest([this.specifiedLineItems$, this.order$]).pipe(\n      map(([orderItems, order]) => {\n        if (order) {\n          return order.lineItems.filter((li) => !!li.packageId).map((li) => li.packageId);\n        }\n        return orderItems.map((orderItem) => orderItem.packageId).filter((id) => !!id);\n      }),\n    );\n\n    const packages$: Observable<Package[]> = packageIds$.pipe(\n      switchMap((packageIds) => {\n        return packageIds.length > 0 ? this.packageService.getMulti(packageIds) : of([]);\n      }),\n      withLatestFrom(this.order$),\n      map(([packages, order]) => {\n        if (order) {\n          packages = order.lineItems\n            .map((li) => {\n              const orderPackage = packages.find((x) => x.packageId === li.packageId);\n\n              if (orderPackage) {\n                orderPackage.pricing = getPackagePricingFromLineItem(li);\n              }\n\n              return orderPackage;\n            })\n            .filter((li) => !!li);\n        }\n        return packages;\n      }),\n      publishReplay(1),\n      refCount(),\n      // TODO: prevent creating order with a package in other markets\n    );\n\n    this.cannotBIYPackageWarning$ = packages$.pipe(\n      map((packages) => {\n        const packagesNotUsingBillingPricing = packages.filter(\n          (pkg) =>\n            pkg.pricingDisplayOption === PricingDisplayOption.PRICING_DISPLAY_OPTION_CONTACT_SALES ||\n            pkg.pricingDisplayOption === PricingDisplayOption.PRICING_DISPLAY_OPTION_STARTING_AT,\n        );\n        if (packagesNotUsingBillingPricing.length > 0) {\n          return this.createCannotBIYPackageWarning(packagesNotUsingBillingPricing);\n        }\n        return '';\n      }),\n    );\n\n    this.allAppsInTheOrder$ = combineLatest([packages$, this.specifiedLineItems$]).pipe(\n      map(([packages, specifiedLineItems]) => {\n        let lineItems = [];\n        packages.map((p) => (lineItems = lineItems.concat(p.lineItems.lineItems || [])));\n        const appKeysFromPackages = lineItems.map((li) => new AppKey({ appId: li.id, editionId: li.editionId }));\n        return appKeysFromPackages.concat(\n          specifiedLineItems.filter((li) => !!li.appKey).map((li) => new AppKey(li.appKey)),\n        );\n      }),\n      withLatestFrom(this.accountGroupService.currentAccountGroup$),\n      switchMap(([keys, accountGroup]) => {\n        const filteredKeys = (keys || []).filter((k) => !!k);\n        if (filteredKeys.length === 0) {\n          return of([]);\n        }\n        return this.appSdk.getMulti(filteredKeys, accountGroup.partnerId, accountGroup.marketId, null, true);\n      }),\n      publishReplay(1),\n      refCount(),\n    );\n\n    const billingRetailPrices$: Observable<{ key: AppKey; pricing: ProductPricing }[]> = combineLatest([\n      this.specifiedLineItems$,\n      this.accountGroupService.currentAccountGroup$,\n      this.allAppsInTheOrder$,\n    ]).pipe(\n      switchMap(([specifiedLineItems, accountGroup, apps]: [LineItemInterface[], AccountGroup, App[]]) => {\n        const specifiedApps: LineItemInterface[] = specifiedLineItems.filter((l) => !!l.appKey);\n        if (specifiedApps.length === 0) {\n          return of([]);\n        }\n        const appKeysBySku: { [sku: string]: AppKey } = getAppKeysBySkus(specifiedApps, apps);\n        return this.billingService\n          .getMultiRetailPricing(accountGroup.partnerId, null, Object.keys(appKeysBySku), accountGroup.marketId)\n          .pipe(\n            map((pricings) => {\n              return Object.keys(pricings).map((sku) => {\n                const productPricing: ProductPricing = pricings[sku];\n                const appKey: AppKey = appKeysBySku[sku];\n                return { key: appKey, pricing: productPricing };\n              });\n            }),\n          );\n      }),\n      shareReplay({ refCount: true, bufferSize: 1 }),\n    );\n\n    this.lineItems$ = combineLatest([this.order$, billingRetailPrices$, this.specifiedLineItems$, packages$]).pipe(\n      map(([order, prices, specifiedLineItems, packages]) => {\n        if (order) {\n          return order.lineItems;\n        }\n        const orderConfItems = packagesToLineItems(\n          packages.map((pkg) => ({\n            package: pkg,\n            lineItem: specifiedLineItems.find((lineItem) => !!lineItem && lineItem.packageId === pkg.packageId),\n          })),\n        );\n        const appItems = addPricingToLineItems(\n          specifiedLineItems.filter((li) => !!li.appKey),\n          prices,\n        );\n        const concatOrderConfItems = orderConfItems.concat(appItems);\n        concatOrderConfItems.forEach((li) => {\n          li.currentRevenue.revenueComponents.sort(sortRevenuesByFrequency);\n        });\n        return concatOrderConfItems;\n      }),\n      publishReplay(1),\n      refCount(),\n    );\n\n    this.orderTotal$ = this.lineItems$.pipe(map((lineItems) => getTotalPriceForLineItems(lineItems)));\n\n    this.savedCommonFormFields$ = this.commonFormSectionsSaved$$.pipe(\n      startWith(undefined as void), // ensure we get the initial value\n      switchMapTo(agid$),\n      map((accountGroupId) => {\n        const key = buildCommonFieldsKey(accountGroupId);\n        const orderFormJson = window.sessionStorage.getItem(key);\n        if (orderFormJson) {\n          return JSON.parse(orderFormJson);\n        }\n      }),\n    );\n    this.savedCustomFields$ = this.customFieldsSaved$$.pipe(\n      startWith(undefined as void), // ensure we get the initial value\n      switchMapTo(agid$),\n      map((accountGroupId) => {\n        const key = buildCustomFieldsKey(accountGroupId);\n        const orderFormJson = window.sessionStorage.getItem(key);\n        let jsonFields: CustomField[];\n        if (orderFormJson) {\n          jsonFields = JSON.parse(orderFormJson);\n        }\n\n        return jsonFields\n          ? jsonFields.map((customField) => {\n              const returnField = new CustomField(customField);\n              returnField.fields = returnField.fields.map((field) => {\n                return new Field(field);\n              });\n              return returnField;\n            })\n          : [];\n      }),\n    );\n    this.savedExtraFields$ = this.extraFieldsSaved$$.pipe(\n      startWith(undefined as void),\n      switchMapTo(agid$),\n      map((accountGroupId) => {\n        const key = buildExtraFieldsKey(accountGroupId);\n        const orderFormJson = window.sessionStorage.getItem(key);\n        if (orderFormJson) {\n          return JSON.parse(orderFormJson);\n        } else {\n          return [];\n        }\n      }),\n    );\n\n    this.savedRequiresPartnerInput$ = this.requiresPartnerInputSaved$$.pipe(\n      startWith(undefined as void),\n      switchMapTo(agid$),\n      map((accountGroupId) => {\n        const key = buildRequiresPartnerInputKey(accountGroupId);\n        const requiresPartnerInputJson = window.sessionStorage.getItem(key);\n        if (requiresPartnerInputJson) {\n          return JSON.parse(requiresPartnerInputJson);\n        } else {\n          return false;\n        }\n      }),\n    );\n  }\n\n  // Different products can have order form fields with the same fieldID, which will cause problem.\n  // Please refer to https://github.com/vendasta/business-center-client/pull/1002\n  // We will prefix the fieldID with uuid, and take it off before we same the order form into session storage\n  static decodeCustomFieldId(fieldId: string): string {\n    return fieldId.replace(new RegExp('(.*#)'), '');\n  }\n\n  private createCannotBIYPackageWarning(packages: Package[]): string {\n    const namesOfPackages = packages.map((pkg) => pkg.name);\n    return this.translateService.instant('STORE.ORDER_CONFIRMATION.CANNOT_BIY_PACKAGE_WARNING', {\n      package_names: namesOfPackages.join('\\n    \\u2022 '),\n    });\n  }\n\n  initialize(orderId: string, specifiedLineItems: LineItemInterface[]): void {\n    this.orderId$$.next(orderId);\n    this.specifiedLineItems$$.next(specifiedLineItems);\n  }\n\n  saveCommonFields(commonFields: CommonField[], accountGroupId: string): void {\n    const key = buildCommonFieldsKey(accountGroupId);\n    const orderFormJson = JSON.stringify(commonFields);\n    window.sessionStorage.setItem(key, orderFormJson);\n    this.commonFormSectionsSaved$$.next();\n  }\n\n  saveCustomFields(fields: CustomField[], accountGroupId: string): void {\n    const key = buildCustomFieldsKey(accountGroupId);\n    const orderFormJson = JSON.stringify(fields);\n    window.sessionStorage.setItem(key, orderFormJson);\n    this.customFieldsSaved$$.next();\n  }\n\n  saveExtraFields(fields: FieldInterface[], accountGroupId: string): void {\n    const key = buildExtraFieldsKey(accountGroupId);\n    const orderFormJson = JSON.stringify(fields);\n    window.sessionStorage.setItem(key, orderFormJson);\n    this.extraFieldsSaved$$.next();\n  }\n\n  saveRequiresPartnerInput(requiresPartnerInput: boolean, accountGroupId: string): void {\n    const key = buildRequiresPartnerInputKey(accountGroupId);\n    const requiresPartnerInputJson = JSON.stringify(requiresPartnerInput);\n    window.sessionStorage.setItem(key, requiresPartnerInputJson);\n    this.requiresPartnerInputSaved$$.next();\n  }\n\n  refreshOrder(orderId: string, accountGroupId: string): void {\n    this.orderId$$.next(orderId);\n    this.orderStoreService.refreshOrder(orderId, accountGroupId);\n  }\n}\n\nfunction buildCustomFieldsKey(accountGroupId: string): string {\n  return `custom-${accountGroupId}`;\n}\n\nfunction buildCommonFieldsKey(accountGroupId: string): string {\n  return `common-${accountGroupId}`;\n}\n\nfunction buildExtraFieldsKey(accountGroupId: string): string {\n  return `extra-${accountGroupId}`;\n}\n\nfunction buildRequiresPartnerInputKey(accountGroupId: string): string {\n  return `req-partner-input-${accountGroupId}`;\n}\n\nfunction getAppKeysBySkus(specifiedApps: LineItemInterface[], apps: App[]): { [sku: string]: AppKey } {\n  const appKeysBySku: { [sku: string]: AppKey } = {};\n  specifiedApps.forEach((specifiedApp) => {\n    const app: App = apps.find((a) => a.key.appId === specifiedApp.appKey.appId);\n    if (specifiedApp.appKey.editionId && app?.editionInformation?.editions?.length > 0) {\n      const edition = app.editionInformation.editions.find((e) => e.appKey.editionId === specifiedApp.appKey.editionId);\n      if (edition?.billingId) {\n        appKeysBySku[edition.billingId] = new AppKey(specifiedApp.appKey);\n      }\n    } else {\n      appKeysBySku[app.externalIdentifiers.billingId] = new AppKey(specifiedApp.appKey);\n    }\n  });\n  return appKeysBySku;\n}\n\n// This function is used for sorting revenues by frequency into the order: Monthly, Yearly, Once\nexport function sortRevenuesByFrequency(revenueA: RevenueComponent, revenueB: RevenueComponent): number {\n  const revenueFrequencyComparisonMap: Map<RevenuePeriod, Map<RevenuePeriod, number>> = new Map<\n    RevenuePeriod,\n    Map<RevenuePeriod, number>\n  >([\n    [\n      RevenuePeriod.MONTHLY,\n      new Map([\n        [RevenuePeriod.MONTHLY, 0],\n        [RevenuePeriod.YEARLY, -1],\n        [RevenuePeriod.ONETIME, -1],\n      ]),\n    ],\n    [\n      RevenuePeriod.YEARLY,\n      new Map([\n        [RevenuePeriod.MONTHLY, 1],\n        [RevenuePeriod.YEARLY, 0],\n        [RevenuePeriod.ONETIME, -1],\n      ]),\n    ],\n    [\n      RevenuePeriod.ONETIME,\n      new Map([\n        [RevenuePeriod.MONTHLY, 1],\n        [RevenuePeriod.YEARLY, 1],\n        [RevenuePeriod.ONETIME, 0],\n      ]),\n    ],\n  ]);\n\n  if (revenueFrequencyComparisonMap.get(revenueA.period) === undefined) {\n    return 0;\n  }\n\n  const compareVal = revenueFrequencyComparisonMap.get(revenueA.period).get(revenueB.period);\n  return compareVal ? compareVal : 0;\n}\n\n// The specifiedAppKeys can have an empty edition. If this is the case and the actual app is our O&O then the default edition id is used\nexport function findAppFromOrderItems(specifiedAppKeys: AppKey[], apps: App[]): App[] {\n  return specifiedAppKeys\n    .map((key) => {\n      let app = apps.find((a) => a.key.appId === key.appId && a.key.editionId === key.editionId);\n      if (!app && key.editionId === '') {\n        app = apps.find((a) => a.key.appId === key.appId);\n      }\n      return app;\n    })\n    .filter((a) => !!a);\n}\n\n// an order can only be edited by an smb user if the status set to waiting for their approval\nexport function calculateReadOnlyOrderform(o: Order): boolean {\n  let readOnly = false;\n  if (o) {\n    readOnly = o.status !== Status.SUBMITTED_FOR_CUSTOMER_APPROVAL;\n  }\n  return readOnly;\n}\n"],
  "mappings": "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",
  "names": ["getTotalPriceForLineItems", "lineItems", "reduce", "total", "lineItem", "liTotal", "currentRevenue", "revenueComponents", "rcTotal", "revenueComponent", "value", "quantity", "init_util", "__esmMin", "convertMarketplacePricingToSalesOrderRevenue", "pricing", "prices", "Revenue", "revenueComponents", "map", "price", "RevenueComponent", "value", "period", "convertMarketplaceFrequencyToSalesOrderRevenuePeriod", "frequency", "isStartingRevenue", "isStartingPrice", "convertBillingRetailPriceToSalesOrderRevenue", "productPricing", "pricingRules", "length", "convertBillingFrequencyToSalesOrderRevenuePeriod", "convertMarketplaceCurrencyToCurrencyCode", "currency", "MarketplaceCurrency", "convertBillingCurrencyToCurrencyCode", "BillingCurrency", "freq", "Frequency", "ONCE", "RevenuePeriod", "ONETIME", "DAILY", "WEEKLY", "MONTHLY", "YEARLY", "BillingFrequency", "OneTime", "Monthly", "Yearly", "packagesToLineItems", "pckgdItems", "pkgdItem", "pckg", "package", "lineItem", "LineItem", "packageId", "currencyCode", "currentRevenue", "quantity", "addPricingToLineItems", "lineItems", "priceByApp", "li", "find", "p", "key", "appId", "appKey", "editionId", "revenue", "isTrial", "convertCurrencyCodeToMPCurrency", "USD", "convertOrderRevenuePeriodToMPFrequency", "revenuePeriod", "undefined", "BIWEEKLY", "OTHER", "getPackagePricingFromLineItem", "c", "Price", "Pricing", "init_conversion_utils", "__esmMin", "init_vendasta_sales_orders", "init_vendasta_marketplace_packages", "init_src", "buildCustomFieldsKey", "accountGroupId", "buildCommonFieldsKey", "buildExtraFieldsKey", "buildRequiresPartnerInputKey", "getAppKeysBySkus", "specifiedApps", "apps", "appKeysBySku", "forEach", "specifiedApp", "app", "find", "a", "key", "appId", "appKey", "editionId", "editionInformation", "editions", "length", "edition", "e", "billingId", "AppKey", "externalIdentifiers", "sortRevenuesByFrequency", "revenueA", "revenueB", "revenueFrequencyComparisonMap", "Map", "RevenuePeriod", "MONTHLY", "YEARLY", "ONETIME", "get", "period", "undefined", "compareVal", "calculateReadOnlyOrderform", "o", "readOnly", "status", "Status", "SUBMITTED_FOR_CUSTOMER_APPROVAL", "OrderService", "init_order_service", "__esmMin", "init_src", "init_vendasta_marketplace_packages", "init_vendasta_sales_orders", "init_esm", "init_operators", "init_util", "init_conversion_utils", "fileUploadUrl", "constructor", "accountGroupService", "packageService", "salesOrdersService", "orderStoreService", "customerSalesOrdersService", "appSdk", "translateService", "billingService", "orderId$$", "BehaviorSubject", "specifiedLineItems$$", "orderPermissionDenied$$", "orderPermissionDenied$", "asObservable", "commonFormSectionsSaved$$", "Subject", "customFieldsSaved$$", "extraFieldsSaved$$", "requiresPartnerInputSaved$$", "agid$", "currentAccountGroupId$", "pipe", "filter", "agid", "distinctUntilChanged", "orderId$", "orderId", "specifiedLineItems$", "orderItems", "order$", "combineLatest", "switchMap", "tap", "next", "catchError", "of", "startWith", "publishReplay", "refCount", "readOnly$", "map", "order", "users$", "getUsers", "businessId", "orderConfig$", "currentAccountGroup$", "getConfig", "partnerId", "marketId", "packages$", "lineItems", "li", "packageId", "orderItem", "id", "packageIds", "getMulti", "withLatestFrom", "packages", "orderPackage", "x", "pricing", "getPackagePricingFromLineItem", "cannotBIYPackageWarning$", "packagesNotUsingBillingPricing", "pkg", "pricingDisplayOption", "PricingDisplayOption", "PRICING_DISPLAY_OPTION_CONTACT_SALES", "PRICING_DISPLAY_OPTION_STARTING_AT", "createCannotBIYPackageWarning", "allAppsInTheOrder$", "specifiedLineItems", "p", "concat", "keys", "accountGroup", "filteredKeys", "k", "billingRetailPrices$", "l", "getMultiRetailPricing", "Object", "pricings", "sku", "productPricing", "shareReplay", "bufferSize", "lineItems$", "prices", "orderConfItems", "packagesToLineItems", "package", "lineItem", "appItems", "addPricingToLineItems", "concatOrderConfItems", "currentRevenue", "revenueComponents", "sort", "orderTotal$", "getTotalPriceForLineItems", "savedCommonFormFields$", "switchMapTo", "orderFormJson", "window", "sessionStorage", "getItem", "JSON", "parse", "savedCustomFields$", "jsonFields", "customField", "returnField", "CustomField", "fields", "field", "Field", "savedExtraFields$", "savedRequiresPartnerInput$", "requiresPartnerInputJson", "decodeCustomFieldId", "fieldId", "replace", "RegExp", "namesOfPackages", "name", "instant", "package_names", "join", "initialize", "saveCommonFields", "commonFields", "stringify", "setItem", "saveCustomFields", "saveExtraFields", "saveRequiresPartnerInput", "requiresPartnerInput", "refreshOrder", "\u0275\u0275inject", "AccountGroupService", "PackageService", "SalesOrdersService", "SalesOrderStoreService", "CustomerSalesOrdersService", "AppPartnerService", "TranslateService", "BillingService", "factory", "\u0275fac"]
}