{"version":3,"file":"680.56d72cae676b52b7.js","mappings":"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","names":["CvrEanLookupComponent","constructor","_notificationService","this","address","EventEmitter","vat","_companyClient","CompanyClient","window","location","origin","search","_this","_asyncToGenerator","id","FormData","CVR_GLN_LOOKUP","get","length","checkoutType","cvr","catch","errorMessage","next","title","text","position","color","backgroundColor","duration","vatNumber","emit","MarketSegment","mapAddress","gln","static","__ngFactoryType__","i0","NOTIFICATION","core","VBU","selectors","inputs","outputs","standalone","features","decls","vars","consts","template","rf","ctx","$event","preventDefault","TranslateModule","i1","MediaModule","CommonModule","i2","styles","changeDetection","StandardForms","Input","Forms","SumbmitFunctions","Mapper","UpdateForm","phoneRegex","reference","section","value","placeholder","translatePrefix","name","autocomplete","type","tag","firstName","lastName","email","organizationName","line1","line2","city","postalCode","regionCode","country","attributes","required","novalidate","options","countriesMock","filter","c","code","toLowerCase","document","body","parentElement","lang","split","map","label","phoneNumber","pattern","source","mobilePhoneNumber","Note","rows","GLN","CVR","Pickup","pickup","shipment","trimStart","trimEnd","checked","pickupPointId","ShippingMethod","method","data","price","salesPrice","amount","vatAmount","currency","ShippingMethodWithPickups","pickups","PaymentMethodIcons","PaymentMethod","_ref","payment","translateService","lastValueFrom","toUpperCase","pipe","_","take","selected","Math","max","description","icons","_x","_x2","_x3","apply","arguments","PaymentInvoiceOption","option","PaymentMethodWithInvoiceOptions","_ref2","invoiceOptions","_x4","_x5","_x6","_x7","Terms","_ref3","_x8","News","_ref4","_x9","BillingPrivateAddress","note","legend","DomUtils","mergeDeep","BillingBusinessAddress","addressBilling","BillingOrganizationAddress","Shipping","_ref5","basketService","methods","shippingMethods","shipments","basket","Promise","all","_ref6","pickupPointProvider","getPickupPoints","shippingAddress","find","s","shippingMethodId","_x11","_x10","Payment","_ref7","getPaymentMethods","payments","p","paymentMethodId","_x12","_x13","mapErrors","errors","message","mapNoteUpdateModel","form","mapAddressUpdateModel","billingAddress","shouldSendInvoiceDetails","some","formPart","has","trim","mapInvoiceDetails","invoiceEmail","referenceNumber","_submitPayment","notificationService","stepper","formData","checkValidity","setAcceptTerms","e","push","setNewsLetter","Origin","Purchase","_url","purchase","GA4","track","MapToGA4","setPayment","href","forEach","inputEvent","Event","bubbles","querySelectorAll","elm","dispatchEvent","_submitShipment","updateShippingModel","Object","fromEntries","entries","setShipment","newBasket","queueMicrotask","_submitAddressPrivate","updateCustomer","CustomerType","Private","updateAddresses","updateNote","checkoutStart","_submitAddressBusiness","Company","updateInvoiceDetails","updateCvr","mapCvr","_submitAddressOrganization","Public","updateGln","mapGln","submitPayment","_x14","_x15","_x16","_x17","submitShipment","_x18","_x19","_x20","_x21","submitAddressPrivate","_x22","_x23","_x24","_x25","submitAddressBusiness","_x26","_x27","_x28","_x29","submitAddressOrganization","_x30","_x31","_x32","_x33","contactAddress","invoiceDetail","emails","setAddress","key","querySelector","o","cvrOrGln","_r1","ctx_r1","target","option_r3","initial","ShoppingAsComponent","ngAfterContentInit","ShoppingAsComponent_For_1_Template","setVat","tmp_3_0","undefined","initialShoppingAs","input_r3","CheckoutPageComponent_Conditional_23_For_1_For_5_Conditional_1_Template","CheckoutPageComponent_Conditional_23_For_1_For_5_Conditional_2_Template","CheckoutPageComponent_Conditional_23_For_1_For_5_Conditional_3_Template","CheckoutPageComponent_Conditional_23_For_1_For_5_Template","fieldset_r4","CheckoutPageComponent_Conditional_23_For_1_Template","privateAddressForm","input_r5","CheckoutPageComponent_Conditional_24_For_1_For_5_Conditional_1_Template","CheckoutPageComponent_Conditional_24_For_1_For_5_Conditional_2_Template","CheckoutPageComponent_Conditional_24_For_1_For_5_Conditional_3_Template","CheckoutPageComponent_Conditional_24_For_1_For_5_Template","fieldset_r6","CheckoutPageComponent_Conditional_24_For_1_Template","businessAddressForm","input_r7","CheckoutPageComponent_Conditional_25_For_1_For_5_Conditional_1_Template","CheckoutPageComponent_Conditional_25_For_1_For_5_Conditional_2_Template","CheckoutPageComponent_Conditional_25_For_1_For_5_Conditional_3_Template","CheckoutPageComponent_Conditional_25_For_1_For_5_Template","fieldset_r8","CheckoutPageComponent_Conditional_25_For_1_Template","organizationAddressForm","usp_r9","CheckoutPageComponent_For_40_For_1_Conditional_5_For_2_Template","input_r10","usp","CheckoutPageComponent_For_40_For_1_Conditional_5_Template","CheckoutPageComponent_For_40_For_1_Template","CheckoutPageComponent_For_40_ForEmpty_2_Template","input_r13","option_r14","CheckoutPageComponent_For_56_For_1_Conditional_9_For_2_Template","CheckoutPageComponent_For_56_For_1_For_5_Template","CheckoutPageComponent_For_56_For_1_Conditional_8_Template","CheckoutPageComponent_For_56_For_1_Conditional_9_Template","CheckoutPageComponent_For_56_For_1_Template","CheckoutPageComponent_For_56_ForEmpty_2_Template","_r16","openTerms","termsInput_r17","termsLayout","newsInput_r18","CheckoutPageComponent","PageBase","_detector","route","super","paymentTranslateKey","shippingTranslateKey","checkout","ContentCacheUtils","customer","basketLink","StorageUtil","path","alias","currentLink","pathname","termsInput$","newsInput$","privateSubmit","businessSubmit","organizationSubmit","shipmentSubmit","paymentSubmit","markForCheck","updateAddress","setTimeout","updateShippingMethods","_this2","shippingForm","updatePaymentForm","_this3","paymentForm","_this4","showModal","resolve","reject","emptyResponse","settings","colorTheme","maxWidth","margin","size","colorThemePost","instant","textPost","checkoutData","termslink","termsLink","URL","searchParams","set","resp","fetch","console","error","json","layout","i3","viewQuery","StepperComponent","CheckoutPageComponent_Conditional_14_Template","CheckoutPageComponent_Conditional_23_Template","CheckoutPageComponent_Conditional_24_Template","CheckoutPageComponent_Conditional_25_Template","CheckoutPageComponent_For_40_Template","CheckoutPageComponent_ForEmpty_41_Template","CheckoutPageComponent_For_56_Template","CheckoutPageComponent_ForEmpty_57_Template","CheckoutPageComponent_Conditional_60_Template","CheckoutPageComponent_Conditional_62_Template","tmp_28_0","tmp_29_0","_c0","i4","CheckoutPageModule","i5","i6","i7","i8","i9","i10","i11","StepComponent","InputComponent","InputDirective"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/commerce/cvr-ean-lookup/cvr-ean-lookup.component.ts","./src/commerce/cvr-ean-lookup/cvr-ean-lookup.component.html","./src/commerce/forms/standard-inputs.ts","./src/app/checkout-page/components/shopping-as/shopping-as.component.html","./src/app/checkout-page/components/shopping-as/shopping-as.component.ts","./src/app/checkout-page/pages/checkout-page/checkout-page.component.html","./src/app/checkout-page/pages/checkout-page/checkout-page.component.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ReplaySubject } from 'rxjs';\nimport { NotificationModel } from 'src/app/notification/models/notification';\nimport { NOTIFICATION } from 'src/app/notification/tokens';\nimport { Address, CompanyClient } from 'src/business/services/client.generated';\nimport { MediaModule } from 'src/layout/media/media.module';\nimport { MarketSegment } from 'src/utils/market-segment.util';\n\n@Component({\n selector: 'app-cvr-ean-lookup',\n standalone: true,\n imports: [TranslateModule, MediaModule, CommonModule],\n templateUrl: './cvr-ean-lookup.component.html',\n styleUrl: './cvr-ean-lookup.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CvrEanLookupComponent {\n @Output()\n address: EventEmitter
= new EventEmitter
();\n @Output()\n vat: EventEmitter = new EventEmitter();\n @Input()\n checkoutType: string;\n private _companyClient: CompanyClient;\n\n constructor(\n @Inject(NOTIFICATION)\n private _notificationService: ReplaySubject,\n ) {\n this._companyClient = new CompanyClient(window.location.origin);\n\n }\n\n async search() {\n var id = new FormData(window['CVR_GLN_LOOKUP']).get('id') as string;\n if (id == null || id.length < 1)\n return false;\n if (this.checkoutType == 'business') {\n\n var address = await this._companyClient\n .cvr(id)\n .catch(errorMessage => {\n this._notificationService.next({\n title: '',\n text: errorMessage,\n position: 'top-mid',\n color: 'var(--error-color, white)',\n backgroundColor: 'var(--error-background-color, red)',\n duration: 2000\n });\n return {\n vatNumber: id,\n\n }\n }\n );\n\n this.address.emit(MarketSegment.mapAddress(address));\n this.vat.emit(address.vatNumber);\n } else {\n\n var address = await this._companyClient\n .gln(id)\n .catch(errorMessage => {\n this._notificationService.next({\n title: '',\n text: errorMessage,\n position: 'top-mid',\n color: 'var(--error-color, white)',\n backgroundColor: 'var(--error-background-color, red)',\n duration: 3000\n });\n return {\n vatNumber: id,\n\n }\n }\n );\n\n this.address.emit(MarketSegment.mapAddress(address));\n this.vat.emit(address.vatNumber);\n }\n return false;\n }\n}\n","
\n \n \n
\n","import { TranslateService } from '@ngx-translate/core';\nimport { filter, lastValueFrom, ReplaySubject, take } from 'rxjs';\nimport { BasketService } from 'src/app/checkout-page/services/basket.service';\nimport { NotificationModel } from 'src/app/notification/models/notification';\nimport { MapToGA4 } from 'src/business/Mapper/map-to-ga4-item';\nimport { Address, BasketReturnModel, CustomerType, InvoiceDetailRequestModel, Origin, PaymentMethod, PaymentReturnModel, PickupPoint, ShipmentReturnModel, ShippingMethodReturnModel, SwaggerException, UpdateBasketAddressModel } from 'src/business/services/client.generated';\nimport { GA4 } from 'src/externals/tag-manager/models/ga4.model';\nimport { StepperComponent } from 'src/layout/stepper/stepper.component';\nimport { DomUtils } from 'src/utils/dom.util';\nimport { countriesMock } from '../countries.mock';\n\nexport namespace StandardForms {\n export type InvoiceOption = {}\n export type FormModel = {\n legend: string,\n inputs: InputModel[]\n }\n export type InputModel = {\n label?: string;\n placeholder?: string;\n translatePrefix?: string;\n name: string;\n value?: string;\n tag?: string;\n options?: Array<{ id: string, label?: string, translateKey?: string, data?: { [key: string]: any } }>;\n datalist?: Array;\n attributes?: { [key: string]: string | boolean | number | RegExp }\n\n type?: 'button' |\n 'checkbox' |\n 'color' |\n 'date' |\n 'datetime-local' |\n 'email' |\n 'hidden' |\n 'image' |\n 'month' |\n 'number' |\n 'password' |\n 'radio' |\n 'range' |\n 'reset' |\n 'search' |\n 'submit' |\n 'tel' |\n 'text' |\n 'time' |\n 'url' |\n 'week';\n autocomplete?: 'on' |\n 'off' |\n 'name' |\n 'honorific-prefix' |\n 'given-name' |\n 'additional-name' |\n 'family-name' |\n 'honorific-suffix' |\n 'nickname' |\n 'email' |\n 'username' |\n 'new-password' |\n 'current-password' |\n 'one-time-code' |\n 'organization-title' |\n 'organization' |\n 'street-address' |\n 'address-line1' |\n 'address-line2' |\n 'address-line3' |\n 'address-level4' |\n 'address-level3' |\n 'address-level2' |\n 'address-level1' |\n 'country' |\n 'country-name' |\n 'postal-code' |\n\n 'shipping street-address' |\n 'shipping address-line1' |\n 'shipping address-line2' |\n 'shipping address-line3' |\n 'shipping address-level4' |\n 'shipping address-level3' |\n 'shipping address-level2' |\n 'shipping address-level1' |\n 'shipping country' |\n 'shipping country-name' |\n 'shipping postal-code' |\n\n 'billing street-address' |\n 'billing address-line1' |\n 'billing address-line2' |\n 'billing address-line3' |\n 'billing address-level4' |\n 'billing address-level3' |\n 'billing address-level2' |\n 'billing address-level1' |\n 'billing country' |\n 'billing country-name' |\n 'billing postal-code' |\n\n 'cc-name' |\n 'cc-given-name' |\n 'cc-additional-name' |\n 'cc-family-name' |\n 'cc-number' |\n 'cc-exp' |\n 'cc-exp-month' |\n 'cc-exp-year' |\n 'cc-csc' |\n 'cc-type' |\n\n 'transaction-currency' |\n 'transaction-amount' |\n\n 'language' |\n\n 'bday' |\n 'bday-day' |\n 'bday-month' |\n 'bday-year' |\n\n 'tel' |\n 'tel-country-code' |\n 'tel-national' |\n 'tel-area-code' |\n 'tel-local' |\n 'tel-extension' |\n\n 'impp' |\n 'url' |\n 'webauthn';\n data?: { [key: string]: any }\n }\n\n export namespace Input {\n const phoneRegex = /(\\+(9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1))*\\s*[\\d\\s]*/;\n export const reference = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.REFERENCE`,\n translatePrefix: `ADDRESS.REFERENCE`,\n name: 'reference',\n autocomplete: 'off',\n type: 'text',\n tag: 'input',\n\n } as InputModel)\n export const firstName = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.FIRST_NAME`,\n translatePrefix: `ADDRESS.FIRST_NAME`,\n name: 'firstName',\n autocomplete: section + ' given-name',\n type: 'text',\n tag: 'input',\n\n } as InputModel)\n export const lastName = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.LAST_NAME`,\n translatePrefix: `ADDRESS.LAST_NAME`,\n name: 'lastName',\n autocomplete: section + ' family-name',\n type: 'text',\n tag: 'input',\n\n } as InputModel)\n export const email = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.EMAIL`,\n translatePrefix: `ADDRESS.EMAIL`,\n name: 'email',\n autocomplete: section + ' email',\n type: 'email',\n tag: 'input',\n\n } as InputModel)\n export const organizationName = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.ORGANIZATION_NAME`,\n translatePrefix: `ADDRESS.ORGANIZATION_NAME`,\n name: 'organizationName',\n autocomplete: section + ' organization',\n type: 'text',\n tag: 'input',\n } as InputModel)\n export const line1 = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.LINE1`,\n translatePrefix: `ADDRESS.LINE1`,\n name: 'line1',\n autocomplete: section + ' address-line1',\n type: 'text',\n tag: 'input',\n\n } as InputModel)\n export const line2 = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.LINE2`,\n translatePrefix: `ADDRESS.LINE2`,\n name: 'line2',\n autocomplete: section + ' ',\n type: 'text',\n tag: 'input',\n } as InputModel)\n export const city = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.CITY`,\n translatePrefix: `ADDRESS.CITY`,\n name: 'city',\n autocomplete: section + ' address-level2',\n type: 'text',\n tag: 'input',\n\n } as InputModel)\n export const postalCode = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.POSTAL_CODE`,\n translatePrefix: `ADDRESS.POSTAL_CODE`,\n name: 'postalCode',\n autocomplete: section + ' postal_code',\n type: 'text',\n tag: 'input',\n\n } as InputModel)\n export const regionCode = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.REGION_CODE`,\n translatePrefix: `ADDRESS.REGION_CODE`,\n name: 'regionCode',\n autocomplete: section + ' ',\n type: 'text',\n tag: 'input',\n } as InputModel)\n export const country = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.COUNTRY`,\n translatePrefix: `ADDRESS.COUNTRY`,\n name: 'country',\n autocomplete: section + ' country',\n tag: 'select',\n attributes: {\n required: '', novalidate: '',\n },\n options: countriesMock.filter(c => c.code.toLowerCase() == document.body.parentElement.lang.split('-')[document.body.parentElement.lang.split('-').length - 1].toLowerCase()).map(country => ({ id: country.code, label: country.name }))\n } as InputModel)\n export const phoneNumber = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.PHONE_NUMBER`,\n translatePrefix: `ADDRESS.PHONE_NUMBER`,\n name: 'phoneNumber',\n autocomplete: section + ' tel',\n type: 'text',\n tag: 'input',\n attributes: {\n pattern: phoneRegex.source\n }\n } as InputModel)\n export const mobilePhoneNumber = (section: string, value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.${section}.MOBILE_PHONE_NUMBER`,\n translatePrefix: `ADDRESS.MOBILE_PHONE_NUMBER`,\n name: 'mobilePhoneNumber',\n autocomplete: section + ' tel',\n type: 'text',\n tag: 'input',\n attributes: {\n pattern: phoneRegex.source\n }\n\n } as InputModel)\n export const Note = (value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.NOTE`,\n name: 'note',\n autocomplete: 'off',\n tag: 'textarea',\n attributes: {\n rows: \"4\",\n }\n } as InputModel)\n\n export const GLN = (value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.GLN`,\n name: 'gln',\n autocomplete: 'on',\n type: 'text',\n tag: 'input',\n } as InputModel)\n\n export const CVR = (value?: string) => ({\n value,\n placeholder: `ADDRESS.PLACEHOLDER.CVR`,\n name: 'cvr',\n autocomplete: 'on',\n type: 'text',\n tag: 'input',\n } as InputModel)\n export const Pickup = (pickup: PickupPoint, shipment?: ShipmentReturnModel) => ({\n value: pickup.id,\n label: (pickup.address.firstName + ' ' + pickup.address.lastName + ' ' + pickup.address.organizationName).trimStart().trimEnd(),\n name: 'pickupPointId',\n type: 'radio',\n tag: 'input',\n attributes: { required: '', checked: shipment?.pickupPointId == pickup.id ? '' : null }\n })\n export const ShippingMethod = (method: ShippingMethodReturnModel, shipment?: ShipmentReturnModel) => ({\n value: method.id,\n label: method.name,\n name: 'shippingMethodId',\n type: 'radio',\n autocomplete: null,\n tag: 'input',\n attributes: { required: '', checked: shipment != null ? '' : null },\n data: { method: {...method, price: {...method.price, salesPrice: {amount:method.price.salesPrice.amount-method.price.vatAmount.amount, currency: method.price.salesPrice.currency}} } }\n } as InputModel)\n export const ShippingMethodWithPickups = (method: ShippingMethodReturnModel, shipment?: ShipmentReturnModel, pickups?: PickupPoint[]) => ({\n value: method.id,\n label: method.name,\n name: 'shippingMethodId',\n type: 'radio',\n autocomplete: null,\n tag: 'input',\n attributes: { required: '', checked: shipment != null ? '' : null },\n data: { method, pickups: pickups.map(pickup => Pickup(pickup, shipment)) }\n } as InputModel)\n const PaymentMethodIcons = (id: string) => {\n if (id == 'dankort')\n return ['/dist/assets/cards/DANKORT.svg'];\n if (id == 'mastercard')\n return ['/dist/assets/cards/MASTERCARD.svg'];\n if (id == 'visa')\n return ['/dist/assets/cards/VISA_ELECTRON.svg'];\n if (id == 'visa_mastercard')\n return ['/dist/assets/cards/VISA.svg', '/dist/assets/cards/MASTERCARD.svg'];\n if (id == 'creditcard')\n return ['/dist/assets/cards/DANKORT.svg', '/dist/assets/cards/VISA.svg', '/dist/assets/cards/MASTERCARD.svg'];\n if (id == 'mobilepay')\n return ['/dist/assets/cards/MOBILEPAY.svg'];\n return [];\n }\n export const PaymentMethod = async (method: PaymentMethod, payment: PaymentReturnModel | null, translateService: TranslateService) => {\n return {\n value: method.id,\n label: method?.name ?? await lastValueFrom(translateService.get('PAYMENT.' + method.id.toUpperCase() + '_LABEL').pipe(filter(_ => _ != null), take(1))),\n name: 'paymentMethodId',\n type: 'radio',\n autocomplete: null,\n tag: 'input',\n attributes: { required: '', selected: payment ? '' : null },\n data: {\n price: { amount: Math.max(0,(method?.amount?.amount??0) - (method?.vat?.amount??0)), currency: method?.amount?.currency },\n vat: method?.vat,\n description: method?.description ?? await lastValueFrom(translateService.get('PAYMENT.' + method.id.toUpperCase() + '_DESCRIPTION').pipe(filter(_ => _ != null), take(1))),\n icons: PaymentMethodIcons(method.id)\n }\n } as InputModel\n };\n export const PaymentInvoiceOption = (option: InvoiceOption, payment: PaymentReturnModel) => ({\n value: 'option.id',\n label: 'option.label',\n name: 'invoiceOptionId',\n type: 'radio',\n tag: 'input',\n attributes: { required: '', selected: false ? '' : null }\n })\n export const PaymentMethodWithInvoiceOptions = async (method: PaymentMethod, payment: PaymentReturnModel | null, translateService: TranslateService, invoiceOptions?: Array) => ({\n value: method.id,\n label: await lastValueFrom(translateService.get('PAYMENT.' + method.id.toUpperCase() + '_LABEL').pipe(filter(_ => _ != null), take(1))),\n name: 'paymentMethodId',\n type: 'radio',\n autocomplete: null,\n tag: 'input',\n attributes: { required: '', selected: payment ? '' : null, },\n data: { description: await lastValueFrom(translateService.get('PAYMENT.' + method.id.toUpperCase() + '_DESCRIPTION').pipe(filter(_ => _ != null), take(1))), icons: PaymentMethodIcons(method.id), options: (invoiceOptions ?? []).map(option => Input.PaymentInvoiceOption(option, payment)) }\n } as InputModel)\n\n export const Terms = async (translateService: TranslateService) => ({\n value: 'true',\n name: 'terms',\n type: 'checkbox',\n label: await lastValueFrom(translateService.get('CHECKOUT.TERMS_LABEL').pipe(filter(_ => _ != null), take(1))),\n attributes: {\n novalidate: '',\n required: '',\n }\n } as InputModel)\n export const News = async (translateService: TranslateService) => ({\n value: 'true',\n name: 'newsletter',\n type: 'checkbox',\n label: await lastValueFrom(translateService.get('CHECKOUT.NEWSLETTER_LABEL').pipe(filter(_ => _ != null), take(1))),\n attributes: {\n novalidate: '',\n }\n } as InputModel)\n }\n\n export namespace Forms {\n export const BillingPrivateAddress = (address?: Address, note?: string) => [\n {\n legend: 'ADDRESS.PRIVATE_ADDRESS_LEGEND',\n inputs: [\n DomUtils.mergeDeep(Input.firstName('BILLING', address?.firstName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.lastName('BILLING', address?.lastName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.email('BILLING', address?.email), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.phoneNumber('BILLING', address?.phoneNumber), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.line1('BILLING', address?.line1), { attributes: { required: '', novalidate: '' } }),\n Input.line2('BILLING', address?.line2),\n DomUtils.mergeDeep(Input.postalCode('BILLING', address?.postalCode), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.city('BILLING', address?.city), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.country('BILLING', address?.country), { attributes: { required: '', novalidate: '' } }),\n ]\n },\n {\n legend: 'ADDRESS.NOTE_LEGEND',\n inputs: [Input.Note(note)]\n }\n ];\n export const BillingBusinessAddress = (address?: Address, note?: string, cvr?: string, addressBilling?: { email: string, reference: string }) => [\n {\n legend: 'ADDRESS.BUSINESS_ADDRESS_LEGEND',\n inputs: [\n DomUtils.mergeDeep(Input.organizationName('BILLING', address?.organizationName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.CVR(cvr), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.line1('BILLING', address?.line1), { attributes: { required: '', novalidate: '' } }),\n Input.line2('BILLING', address?.line2),\n DomUtils.mergeDeep(Input.postalCode('BILLING', address?.postalCode), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.city('BILLING', address?.city), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.country('BILLING', address?.country), { attributes: { required: '', novalidate: '' } }),\n ]\n },\n {\n legend: 'ADDRESS.BUSINESS_CONTACT_LEGEND',\n inputs: [\n DomUtils.mergeDeep(Input.firstName('BILLING', address?.firstName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.lastName('BILLING', address?.lastName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.email('BILLING', address?.email), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.phoneNumber('BILLING', address?.phoneNumber), { attributes: { required: '', novalidate: '' } }),\n ]\n },\n {\n legend: 'ADDRESS.BUSINESS_BILLING_LEGEND',\n inputs: [\n DomUtils.mergeDeep(Input.email('BILLING', addressBilling?.email), { name: 'contact_email', placeholder: 'ADDRESS.BUSINESS_BILLING_EMAIL_PLACEHOLDER', autocomplete: 'off' }),\n DomUtils.mergeDeep(Input.reference('BILLING', addressBilling?.reference), { name: 'contact_reference', autocomplete: 'off' }),\n ]\n },\n {\n legend: 'ADDRESS.NOTE_LEGEND',\n inputs: [Input.Note(note)]\n }\n ];\n export const BillingOrganizationAddress = (address?: Address, note?: string, gln?: string, addressBilling?: { email: string, reference: string }) => [\n {\n legend: 'ADDRESS.ORGANIZATION_ADDRESS_LEGEND',\n inputs: [\n DomUtils.mergeDeep(Input.organizationName('BILLING', address?.organizationName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.GLN(gln), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.line1('BILLING', address?.line1), { attributes: { required: '', novalidate: '' } }),\n Input.line2('BILLING', address?.line2),\n DomUtils.mergeDeep(Input.postalCode('BILLING', address?.postalCode), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.city('BILLING', address?.city), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.country('BILLING', address?.country), { attributes: { required: '', novalidate: '' } }),\n ]\n },\n {\n legend: 'ADDRESS.ORGANIZATION_CONTACT_LEGEND',\n inputs: [\n DomUtils.mergeDeep(Input.firstName('BILLING', address?.firstName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.lastName('BILLING', address?.lastName), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.email('BILLING', address?.email), { attributes: { required: '', novalidate: '' } }),\n DomUtils.mergeDeep(Input.phoneNumber('BILLING', address?.phoneNumber), { attributes: { required: '', novalidate: '' } }),\n ]\n },\n {\n legend: 'ADDRESS.ORGANIZATION_BILLING_LEGEND',\n inputs: [\n DomUtils.mergeDeep(Input.email('BILLING', addressBilling?.email), { name: 'contact_email', autocomplete: 'off' }),\n DomUtils.mergeDeep(Input.reference('BILLING', addressBilling?.reference), { name: 'contact_reference', autocomplete: 'off' }),\n ]\n },\n {\n legend: 'ADDRESS.NOTE_LEGEND',\n inputs: [Input.Note(note)]\n }\n ];\n\n export const Shipping = async (basketService: BasketService) => {\n let methods: ShippingMethodReturnModel[] = basketService?.shippingMethods ?? [];\n let shipments: ShipmentReturnModel[] = basketService?.basket?.shipments ?? [];\n if(methods.length==0)\n methods = (await basketService.get()).shippingMethods;\n let inputs = await Promise.all((methods ?? [])\n ?.filter(_ => _ != null)\n ?.map(async (method: ShippingMethodReturnModel) => {\n if (method?.pickupPointProvider != null && method?.pickupPointProvider?.length > 0) {\n let pickups: PickupPoint[] = await (method.pickupPointProvider?.length > 0 ? basketService.getPickupPoints(method.pickupPointProvider, basketService.basket.shippingAddress.postalCode) : []);\n return Input.ShippingMethodWithPickups(method, shipments.find(s => s.shippingMethodId == method.id), pickups);\n } else if (method != null)\n return Input.ShippingMethod(method, shipments.find(s => s.shippingMethodId == method.id));\n return;\n }))\n return [\n {\n legend: 'SHIPPING.LEGEND',\n inputs,\n }\n ]\n }\n export const Payment = async (basketService: BasketService, translateService: TranslateService): Promise<{ legend: string; inputs: InputModel[]; }[]> => {\n let methods = await basketService.getPaymentMethods();\n let payments = basketService.basket.payments;\n let inputs = await Promise.all((methods ?? [])\n ?.filter(_ => _ != null)\n ?.map((method: PaymentMethod) => Input\n .PaymentMethod(method, payments.find(p => p.paymentMethodId == method.id), translateService)\n ));\n return [\n {\n legend: 'PAYMENT.LEGEND',\n inputs\n }\n ]\n }\n\n }\n\n export namespace SumbmitFunctions {\n function mapErrors(errors: SwaggerException) {\n return {\n title: '',\n text: errors.message,\n color: 'var(--error-color, white)',\n backgroundColor: 'var(--error-background-color, red)',\n position: 'top-mid'\n } as NotificationModel;\n }\n function mapNoteUpdateModel(form: FormData): string {\n return form.get('note') as string;\n }\n function mapAddressUpdateModel(form: FormData, basketService: BasketService): UpdateBasketAddressModel {\n var shippingAddress = basketService.basket.shippingAddress;\n var billingAddress = {\n firstName: form.get('firstName') as string,\n lastName: form.get('lastName') as string,\n organizationName: form.get('organizationName') as string,\n line1: form.get('line1') as string,\n line2: form.get('line2') as string,\n city: form.get('city') as string,\n postalCode: form.get('postalCode') as string,\n regionCode: form.get('regionCode') as string,\n country: form.get('country') as string,\n phoneNumber: form.get('phoneNumber') as string,\n mobilePhoneNumber: form.get('mobilePhoneNumber') as string,\n email: form.get('email') as string,\n };\n return { billingAddress, shippingAddress, };\n }\n\n function shouldSendInvoiceDetails(form: FormData): boolean {\n return [\n 'contact_email',\n 'contact_reference'\n ]\n .some(formPart =>\n form.has(formPart) &&\n (form.get(formPart) as string)?.trim()?.length > 0\n )\n }\n function mapInvoiceDetails(form: FormData): InvoiceDetailRequestModel {\n return {\n invoiceEmail: form.get('contact_email') as string,\n referenceNumber: form.get('contact_reference') as string\n }\n }\n function mapCvr(form: FormData): string {\n return form.get('cvr') as string;\n }\n function mapGln(form: FormData): string {\n return form.get('gln') as string;\n }\n export async function submitPayment(\n form: HTMLFormElement,\n basketService: BasketService,\n notificationService: ReplaySubject,\n stepper: StepperComponent,\n ) {\n var formData = new FormData(form);\n if (form.checkValidity() && formData.get('terms') as string == 'true') {\n var errors = [];\n await basketService\n .setAcceptTerms(true)\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (formData.get('newsletter') as string == 'true') {\n let billingAddress = basketService.basket.billingAddress;\n await basketService\n .setNewsLetter(true, Origin.Purchase, billingAddress.firstName, billingAddress.lastName, billingAddress.email, billingAddress.phoneNumber)\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n }\n let paymentMethodId = formData.get('paymentMethodId') as string;\n let _url = await basketService\n .purchase(paymentMethodId)\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (errors.length === 0 && typeof _url == 'string') {\n let newBasket = basketService.basket;\n GA4.track(MapToGA4.setPayment(newBasket, paymentMethodId))\n window.location.href = _url\n }\n else\n errors.forEach(e => notificationService.next(e));\n } else {\n // Fake input event for triggering validation\n var inputEvent = new Event('input', {\n bubbles: true,\n });\n form\n .querySelectorAll('input,textarea,select')\n .forEach((elm: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => elm.dispatchEvent(inputEvent));\n }\n }\n export async function submitShipment(\n form: HTMLFormElement,\n basketService: BasketService,\n notificationService: ReplaySubject,\n stepper: StepperComponent,\n ) {\n if (form.checkValidity()) {\n var formData = new FormData(form);\n var errors = [];\n let updateShippingModel = Object.fromEntries(formData.entries());\n await basketService\n .setShipment(updateShippingModel)\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (errors.length === 0) {\n let newBasket = basketService.basket;\n queueMicrotask(() =>\n GA4.track(MapToGA4.setShipment(newBasket, updateShippingModel))\n )\n stepper?.next();\n }\n else\n errors.forEach(e => notificationService.next(e));\n } else {\n // Fake input event for triggering validation\n var inputEvent = new Event('input', {\n bubbles: true,\n });\n form\n .querySelectorAll('input,textarea,select')\n .forEach((elm: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => elm.dispatchEvent(inputEvent));\n }\n }\n export async function submitAddressPrivate(\n form: HTMLFormElement,\n basketService: BasketService,\n notificationService: ReplaySubject,\n stepper: StepperComponent,\n ) {\n\n if (form.checkValidity()) {\n var formData = new FormData(form);\n var errors = [];\n await basketService\n .updateCustomer({ type: CustomerType.Private })\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateAddresses(mapAddressUpdateModel(formData, basketService))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateNote(mapNoteUpdateModel(formData))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (errors.length === 0) {\n\n let newBasket = basketService.basket;\n queueMicrotask(() =>\n GA4.track(MapToGA4.checkoutStart(newBasket))\n )\n stepper?.next();\n }\n else\n errors.forEach(e => notificationService.next(e));\n } else {\n // Fake input event for triggering validation\n var inputEvent = new Event('input', {\n bubbles: true,\n });\n form\n .querySelectorAll('input,textarea,select')\n .forEach((elm: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => elm.dispatchEvent(inputEvent));\n }\n }\n\n export async function submitAddressBusiness(\n form: HTMLFormElement,\n basketService: BasketService,\n notificationService: ReplaySubject,\n stepper: StepperComponent,\n ) {\n if (form.checkValidity()) {\n var formData = new FormData(form);\n var errors = [];\n await basketService\n .updateCustomer({ type: CustomerType.Company })\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateAddresses(mapAddressUpdateModel(formData, basketService))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateNote(mapNoteUpdateModel(formData))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (shouldSendInvoiceDetails(formData))\n await basketService\n .updateInvoiceDetails(mapInvoiceDetails(formData))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateCvr(mapCvr(formData))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (errors.length === 0) {\n\n let newBasket = basketService.basket;\n queueMicrotask(() =>\n GA4.track(MapToGA4.checkoutStart(newBasket))\n )\n stepper?.next();\n }\n else\n errors.forEach(e => notificationService.next(e));\n } else {\n // Fake input event for triggering validation\n var inputEvent = new Event('input', {\n bubbles: true,\n });\n form\n .querySelectorAll('input,textarea,select')\n .forEach((elm: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => elm.dispatchEvent(inputEvent));\n }\n }\n export async function submitAddressOrganization(\n form: HTMLFormElement,\n basketService: BasketService,\n notificationService: ReplaySubject,\n stepper: StepperComponent,\n ) {\n if (form.checkValidity()) {\n var formData = new FormData(form);\n var errors = [];\n await basketService\n .updateCustomer({ type: CustomerType.Public })\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateAddresses(mapAddressUpdateModel(formData, basketService))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateNote(mapNoteUpdateModel(formData))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (shouldSendInvoiceDetails(formData))\n await basketService\n .updateInvoiceDetails(mapInvoiceDetails(formData))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n await basketService\n .updateGln(mapGln(formData))\n .catch((e: SwaggerException) => errors.push(mapErrors(e)));\n if (errors.length === 0) {\n\n let newBasket = basketService.basket;\n queueMicrotask(() =>\n GA4.track(MapToGA4.checkoutStart(newBasket))\n )\n stepper?.next();\n }\n else\n errors.forEach(e => notificationService.next(e));\n } else {\n // Fake input event for triggering validation\n var inputEvent = new Event('input', {\n bubbles: true,\n });\n form\n .querySelectorAll('input,textarea,select')\n .forEach((elm: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement) => elm.dispatchEvent(inputEvent));\n }\n }\n }\n\n export namespace Mapper {\n export function cvr(basket: BasketReturnModel): string {\n return basket?.cvr ?? '';\n }\n export function gln(basket: BasketReturnModel): string {\n return basket?.gln ?? '';\n }\n export function contactAddress(basket: BasketReturnModel): { email: string, reference: string } {\n return { email: basket?.invoiceDetail?.emails?.find(() => true) ?? '', reference: basket?.invoiceDetail?.referenceNumber };\n }\n }\n\n export namespace UpdateForm {\n export function setAddress(form: HTMLFormElement, address: Address) {\n Object\n .entries(address)\n .filter(([key, value]) => value != null)\n .forEach(([key, value]) => {\n var elm: HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement = (form.querySelector(`input[name=\"${key}\"],textarea[name=\"${key}\"]`) as HTMLInputElement | HTMLTextAreaElement);\n if (elm != null)\n elm.value = value;\n else {\n elm = (form.querySelector(`select[name=\"${key}\"]`) as HTMLSelectElement);\n elm\n .querySelectorAll('option')\n .forEach(o => o.selected = o.value === value);\n }\n }\n )\n }\n export function cvrOrGln(form: HTMLFormElement, vat: string) {\n var elm = form.querySelector(`input[name=\"cvr\"],input[name=\"gln\"]`) as HTMLInputElement;\n elm.value = vat;\n }\n }\n}\n","@for(option of options; track option) {\n \n}\n","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@Component({\n selector: 'app-shopping-as',\n standalone: true,\n imports: [CommonModule, TranslateModule],\n templateUrl: './shopping-as.component.html',\n styleUrl: './shopping-as.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ShoppingAsComponent implements AfterContentInit {\n @Output()\n type: EventEmitter = new EventEmitter();\n options = [\n 'business',\n 'organization',\n 'private',\n ];\n @Input()\n initial = 'private';\n\n ngAfterContentInit(): void {\n this.type.emit(this.initial);\n }\n\n}\n","\n \n
\n

{{ 'SHOPPING_AS.TITLE' | translate }}

\n

{{ 'SHOPPING_AS.DESCRIPTION' | translate }}

\n \n
\n @if(checkoutType !== 'private') {\n
\n

{{ 'CVR_EAN_LOOKUP.'+checkoutType+'.TITLE' | uppercase | translate }}

\n

{{ 'CVR_EAN_LOOKUP.'+checkoutType+'.DESCRIPTION' | uppercase | translate }}

\n \n
\n }\n
\n

{{ 'BILLING_INFO.TITLE' | translate }}

\n

{{ 'BILLING_INFO.DESCRIPTION' | translate }}

\n
\n @if(checkoutType === 'private') {\n @for (fieldset of privateAddressForm; track $index) {\n
\n {{ fieldset.legend | translate }}\n\n @for (input of fieldset.inputs; track $index) {\n \n @if(input?.tag == 'textarea') {\n \n } @else if(input?.tag == 'select') {\n \n } @else {\n \n }\n \n }\n
\n }\n } @else if (checkoutType === 'business') {\n @for (fieldset of businessAddressForm; track $index) {\n
\n {{ fieldset.legend | translate }}\n\n @for (input of fieldset.inputs; track $index) {\n \n @if(input?.tag == 'textarea') {\n \n } @else if(input?.tag == 'select') {\n \n } @else {\n \n }\n \n }\n
\n }\n } @else if (checkoutType === 'organization') {\n @for (fieldset of organizationAddressForm; track $index) {\n
\n {{ fieldset.legend | translate }}\n\n @for (input of fieldset.inputs; track $index) {\n \n @if(input?.tag == 'textarea') {\n \n } @else if(input?.tag == 'select') {\n \n } @else {\n \n }\n \n }\n
\n }\n }\n
\n
\n
\n \n
\n

{{ 'SHIPPING.TITLE' | translate }}

\n

{{ 'SHIPPING.DESCRIPTION' | translate }}

\n
\n @for (fieldset of shippingForm; track $index) {\n @for (input of fieldset.inputs; track $index) {\n
\n \n \n

{{ input?.data?.method?.description }}

\n\n @if(input?.data?.method?.usp != null) {\n
    \n @for (usp of input?.data?.method?.usp; track $index) {\n
  • {{usp}}
  • \n }\n
\n }\n {{ input?.data?.method?.price?.salesPrice | price }}\n
\n
\n } @empty {\n

{{ 'SHIPPING.NO_VALID_METHODS' | translate }}

\n }\n } @empty {\n

{{ 'SHIPPING.NO_VALID_METHODS' | translate }}

\n }\n\n
\n
\n
\n \n
\n

{{ 'PAYMENT.TITLE' | translate }}

\n

{{ 'PAYMENT.DESCRIPTION' | translate }}

\n
\n\n @for (fieldset of paymentForm; track $index) {\n @for (input of fieldset.inputs; track $index) {\n
\n \n \n
\n @for (icon of input?.data?.icons; track $index) {\n \n }\n
\n

{{ input?.data?.description }}

\n @if(input?.data?.price?.amount > 0) {\n

{{ input?.data?.price | price }} {{ 'PAYMENT.TRANSACTION_FEE_EXCLUDING_VAT' | translate }}

\n }\n @if(input?.data?.options?.length > 0) {\n
\n @for (option of input?.data?.options; track $index) {\n \n \n \n }\n
\n }\n {{ input?.data?.method?.price?.salesPrice | price }}\n
\n
\n } @empty {\n

{{ 'PAYMENT.NO_VALID_METHODS' | translate }}

\n }\n } @empty {\n

{{ 'PAYMENT.NO_VALID_METHODS' | translate }}

\n }\n
\n
\n @if(termsInput$ | async; as termsInput) {\n \n \n \n \n \n \n
\n \n
\n
\n }\n @if(newsInput$ | async; as newsInput) {\n \n \n \n }\n
\n
\n
\n
\n \n \n
\n
\n \n
\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { rejects } from 'assert';\nimport { ReplaySubject } from 'rxjs';\nimport { NotificationModel } from 'src/app/notification/models/notification';\nimport { NOTIFICATION } from 'src/app/notification/tokens';\nimport { CheckoutConfiguration } from 'src/business/models/main-configuration.model';\nimport { Address, CustomerType } from 'src/business/services/client.generated';\nimport { CvrEanLookupComponent } from 'src/commerce/cvr-ean-lookup/cvr-ean-lookup.component';\nimport { InputDirective } from 'src/commerce/forms/input.directive';\nimport { InputComponent } from 'src/commerce/forms/input/input.component';\nimport { StandardForms } from 'src/commerce/forms/standard-inputs';\nimport { PageBase } from 'src/core-lib/navigation/base-page';\nimport { ComponentPage } from 'src/core-lib/navigation/models/component-page.model';\nimport { Page } from 'src/core-lib/navigation/models/page.interface';\nimport { UmbracoGrid } from 'src/layout/grid/models/umbraco-grid.type';\nimport { StepComponent } from 'src/layout/step/step.component';\nimport { StepperComponent } from 'src/layout/stepper/stepper.component';\nimport { MarketSegment } from 'src/utils/market-segment.util';\nimport { ContentCacheUtils, StorageUtil } from 'src/utils/storage.util';\nimport { CheckoutPageModule } from '../../checkout-page.module';\nimport { BillingAddressComponent } from '../../components/billing-address/billing-address.component';\nimport { MarketSegmentComponent } from '../../components/market-segment/market-segment.component';\nimport { ShoppingAsComponent } from '../../components/shopping-as/shopping-as.component';\nimport { BasketService, PaymentMethods } from '../../services/basket.service';\n\n\n\n\n\n\ninterface CheckoutPage extends Page {\n basketLink: string;\n}\n\n@Component({\n selector: 'app-checkout-page',\n standalone: true,\n imports: [\n CommonModule,\n CheckoutPageModule,\n StepperComponent,\n StepComponent,\n MarketSegmentComponent,\n CvrEanLookupComponent,\n BillingAddressComponent,\n InputComponent,\n InputDirective,\n ShoppingAsComponent,\n ],\n templateUrl: './checkout-page.component.html',\n styleUrls: ['./checkout-page.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CheckoutPageComponent extends PageBase implements ComponentPage {\n nextLink?: URL;\n currentStep?: StepComponent;\n page: CheckoutPage;\n checkoutType: string;\n\n checkout: Partial;\n customerInfo: () => Promise;\n @ViewChild(StepperComponent, { static: true })\n private stepper: StepperComponent;\n\n privateSubmit: () => false;\n privateAddressForm: StandardForms.FormModel[];\n businessSubmit: () => false;\n businessAddressForm: StandardForms.FormModel[];\n organizationSubmit: () => false;\n organizationAddressForm: StandardForms.FormModel[];\n initialShoppingAs: string;\n shipmentSubmit: () => false;\n shippingForm: { legend: string; inputs: StandardForms.InputModel[]; }[];\n paymentSubmit: () => false;\n paymentForm: { legend: string; inputs: StandardForms.InputModel[]; }[];\n\n\n paymentTranslateKey = 'PAYMENT.EX_VAT';\n shippingTranslateKey = 'SHIPPING.EX_VAT';\n basketLink: string;\n currentLink: string;\n termsInput$: Promise;\n newsInput$: Promise;\n termsLayout: UmbracoGrid;\n\n constructor(\n @Inject(NOTIFICATION)\n private notificationService: ReplaySubject,\n private basketService: BasketService,\n private translateService: TranslateService,\n private _detector: ChangeDetectorRef,\n route: ActivatedRoute,\n ) {\n super(route);\n this.checkout = ContentCacheUtils.checkout();\n var basket = this.basketService.basket;\n if (basket?.customer === CustomerType.Public)\n this.initialShoppingAs = 'organization';\n else if (basket?.customer === CustomerType.Company)\n this.initialShoppingAs = 'business';\n else\n this.initialShoppingAs = 'private';\n\n this.checkoutType = this.initialShoppingAs;\n this.basketLink = Object.entries(StorageUtil.get<{ [key: string]: string }>('routing') ?? {}).find(([path, alias]) => alias == 'basketPage')[0];\n this.currentLink = window.location.pathname;\n this.termsInput$ = StandardForms.Input.Terms(this.translateService);\n this.newsInput$ = StandardForms.Input.News(this.translateService);\n\n this.privateSubmit = () => {\n StandardForms.SumbmitFunctions.submitAddressPrivate(\n window['address-form'],\n this.basketService,\n this.notificationService,\n this.stepper,\n );\n return false;\n };\n\n\n this.businessSubmit = () => {\n StandardForms.SumbmitFunctions.submitAddressBusiness(\n window['address-form'],\n this.basketService,\n this.notificationService,\n this.stepper,\n );\n return false;\n };\n\n\n this.organizationSubmit = () => {\n StandardForms.SumbmitFunctions.submitAddressOrganization(\n window['address-form'],\n this.basketService,\n this.notificationService,\n this.stepper,\n );\n return false;\n };\n\n this.shipmentSubmit = () => {\n StandardForms.SumbmitFunctions.submitShipment(\n window['shipment-form'],\n this.basketService,\n this.notificationService,\n this.stepper,\n )\n return false;\n }\n\n this.paymentSubmit = () => {\n StandardForms.SumbmitFunctions.submitPayment(\n window['payment-form'],\n this.basketService,\n this.notificationService,\n this.stepper,\n )\n return false;\n }\n this._detector.markForCheck();\n }\n\n async updateAddress() {\n var basket = this.basketService.basket;\n if (basket == null)\n return setTimeout(() => this.updateAddress(), 200);\n this.privateAddressForm = StandardForms.Forms.BillingPrivateAddress(\n basket.billingAddress,\n basket.note\n );\n this.businessAddressForm = StandardForms.Forms.BillingBusinessAddress(\n basket.billingAddress,\n basket.note,\n StandardForms.Mapper.cvr(basket),\n StandardForms.Mapper.contactAddress(basket),\n\n );\n this.organizationAddressForm = StandardForms.Forms.BillingOrganizationAddress(\n basket.billingAddress,\n basket.note,\n StandardForms.Mapper.cvr(basket),\n StandardForms.Mapper.contactAddress(basket),\n\n );\n this._detector.markForCheck();\n }\n\n async updateShippingMethods() {\n this.shippingForm = await StandardForms\n .Forms\n .Shipping(this.basketService);\n this._detector.markForCheck();\n }\n async updatePaymentForm() {\n this.paymentForm = await StandardForms\n .Forms\n .Payment(this.basketService, this.translateService);\n this._detector.markForCheck();\n }\n\n setAddress(address: Address) {\n StandardForms.UpdateForm.setAddress(window['address-form'], address);\n this._detector.markForCheck();\n }\n\n setVat(vat: string) {\n StandardForms.UpdateForm.cvrOrGln(window['address-form'], vat);\n this._detector.markForCheck();\n }\n async openTerms() {\n window['terms-modal'].showModal();\n this.termsLayout = await new Promise(async (resolve, reject) => {\n var emptyResponse = [\n {\n \"settings\": {\n \"colorTheme\": {\n \"color\": \"#000000\",\n \"backgroundColor\": \"\"\n },\n \"maxWidth\": \"1260\",\n \"margin\": \"0\",\n \"size\": \"size-60\",\n \"tag\": \"H2\",\n \"colorThemePost\": {\n \"color\": \"#cc0000\",\n \"backgroundColor\": \"\"\n },\n \"alias\": \"headlineSettings\"\n },\n \"text\": this.translateService.instant(\"CHECKOUT.EMPTY_TERMS1\"),\n \"textPost\": this.translateService.instant(\"CHECKOUT.EMPTY_TERMS2\"),\n \"alias\": \"headlineElement\"\n }\n ] as UmbracoGrid;\n var checkoutData = StorageUtil.get<{ termslink: string }>('checkout');\n if (checkoutData == null || checkoutData.termslink == null)\n resolve(emptyResponse);\n let termsLink = new URL(checkoutData.termslink, window.location.origin);\n termsLink.searchParams.set('type', 'json');\n let resp = await fetch(termsLink.href).catch(e => {\n console.error(e);\n resolve(emptyResponse)\n });\n if (resp == null)\n resolve(emptyResponse);\n let data = await (resp as Response).json().catch(e => {\n console.error(e);\n resolve(emptyResponse)\n });\n if (data == null || data?.layout == null)\n resolve(emptyResponse);\n queueMicrotask(() => this._detector.markForCheck());\n resolve(data.layout as UmbracoGrid)\n })\n }\n}\n\n\n\n\n\n"],"x_google_ignoreList":[]}