{"version":3,"file":"index-4bba4777.js","sources":["../../../ClientApp/src/scripts/utils/double-dollar.ts","../../../ClientApp/src/scripts/http/set-axios-defaults.ts","../../../ClientApp/src/scripts/models/enums.ts","../../../ClientApp/src/scripts/utils/action-urls.ts","../../../ClientApp/src/scripts/utils/multilang.ts","../../../ClientApp/src/scripts/utils/custom-helper.ts","../../../ClientApp/src/scripts/utils/validators.ts","../../../ClientApp/src/scripts/models/anonymous-basket-data.ts","../../../ClientApp/src/scripts/models/mini-basket-data.ts","../../../ClientApp/src/scripts/components/toaster.ts","../../../ClientApp/src/scripts/utils/datalayer-helper.ts","../../../ClientApp/src/scripts/components/anonymous-baskets.ts","../../../ClientApp/src/scripts/components/async-prices.ts","../../../ClientApp/src/scripts/components/autocomplete2.ts","../../../ClientApp/src/scripts/components/basket-attachment.ts","../../../ClientApp/src/scripts/components/cms-configurator-launcher.ts","../../../ClientApp/src/scripts/components/custom-date-picker.ts","../../../ClientApp/src/scripts/components/custom-menu-aim.ts","../../../ClientApp/src/scripts/components/custom-swiper.ts","../../../ClientApp/src/scripts/components/favorite.ts","../../../ClientApp/src/scripts/components/list-selector.ts","../../../ClientApp/src/scripts/pages/checkout.ts","../../../ClientApp/src/scripts/extensions/string-extensions.ts","../../../ClientApp/src/scripts/components/upgrade-overpack.ts","../../../ClientApp/src/scripts/components/product-suggestions.ts","../../../ClientApp/src/scripts/components/product-volume-discount.ts","../../../ClientApp/src/scripts/components/product-order-box.ts","../../../ClientApp/src/scripts/components/pwa-helper.ts","../../../ClientApp/src/scripts/components/quick-order.ts","../../../ClientApp/src/scripts/components/sso.ts","../../../ClientApp/src/scripts/components/stock-in-warehouse.ts","../../../ClientApp/src/scripts/pages/approvals.ts","../../../ClientApp/src/scripts/pages/blanket-order.ts","../../../ClientApp/src/scripts/pages/documents.ts","../../../ClientApp/src/scripts/pages/hauraton.ts","../../../ClientApp/src/scripts/pages/lists-upload.ts","../../../ClientApp/src/scripts/pages/login-request.ts","../../../ClientApp/src/scripts/pages/price-lists.ts","../../../ClientApp/src/scripts/pages/pricelist-request.ts","../../../ClientApp/src/scripts/pages/products.ts","../../../ClientApp/src/scripts/pages/product-search.ts","../../../ClientApp/src/scripts/pages/skylux.ts","../../../ClientApp/src/components/CmsConfigurator.vue","../../../ClientApp/src/components/CmsConfigurator.vue","../../../ClientApp/src/scripts/models/mini-basket-options.ts","../../../ClientApp/src/components/MiniBasket.vue","../../../ClientApp/src/components/MiniBasket.vue","../../../ClientApp/src/components/LeadsForm.vue","../../../ClientApp/src/components/LeadsForm.vue","../../../ClientApp/src/components/ListProducts.vue","../../../ClientApp/src/components/ListProducts.vue","../../../ClientApp/src/components/PrintForm.vue","../../../ClientApp/src/components/PrintForm.vue","../../../ClientApp/src/components/Lists.vue","../../../ClientApp/src/components/Lists.vue","../../../ClientApp/src/components/ListSelector.vue","../../../ClientApp/src/components/ListSelector.vue","../../../ClientApp/src/components/UserMgmtRights.vue","../../../ClientApp/src/components/UserMgmtRights.vue","../../../ClientApp/src/scripts/models/user-mgmt.ts","../../../ClientApp/src/components/UserMgmtEditor.vue","../../../ClientApp/src/components/UserMgmtEditor.vue","../../../ClientApp/src/components/UserMgmt.vue","../../../ClientApp/src/components/UserMgmt.vue","../../../ClientApp/src/scripts/vue-component-loader.ts","../../../ClientApp/src/index.ts"],"sourcesContent":["export default function $$(selector: string, fn: (value: Element) => any) {\r\n return [].slice.call(document.querySelectorAll(selector)).map(fn);\r\n}","import $ from \"jquery\";\r\nimport axios from \"axios\";\r\nimport NProgress from \"nprogress\";\r\n\r\n// make clear to server that axios requests are AJAX requests\r\naxios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\r\n\r\nconst urlsExemptFromOverlay = [\"/api/pricing/fetch\"];\r\n\r\n// add a request interceptor\r\naxios.interceptors.request.use(\r\n function (config) {\r\n // console.log(\"request interceptor:\", config);\r\n if (NProgress) NProgress.start();\r\n if (!urlsExemptFromOverlay.includes(config.url ?? \"\")) {\r\n $(\"body\").css(\"cursor\", \"progress\");\r\n }\r\n return config;\r\n },\r\n function (error) {\r\n if (NProgress) NProgress.done();\r\n $(\"body\").css(\"cursor\", \"default\"); // cursor doesn't revert until mouse is moved - in chrome\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\n// add a response interceptor\r\naxios.interceptors.response.use(\r\n function (response) {\r\n const config = response.config;\r\n // any status code that lies within the range of 2xx causes this function to trigger\r\n if (NProgress) NProgress.done();\r\n if (!urlsExemptFromOverlay.includes(config.url ?? \"\")) {\r\n $(\"body\").css(\"cursor\", \"default\"); // cursor doesn't revert until mouse is moved - in chrome\r\n }\r\n return response;\r\n },\r\n function (error) {\r\n // any status codes that falls outside the range of 2xx causes this function to trigger\r\n if (NProgress) NProgress.done();\r\n $(\"body\").css(\"cursor\", \"default\"); // cursor doesn't revert until mouse is moved - in chrome\r\n return Promise.reject(error);\r\n }\r\n);\r\n","export enum BootstrapBreakpoint { \r\n none = \"NONE\",\r\n xs = \"XS\", \r\n sm = \"SM\", \r\n md = \"MD\", \r\n lg = \"LG\", \r\n xl = \"XL\", \r\n xxl = \"XXL\"\r\n}","type ActionUrl = {\r\n name: string;\r\n value: string;\r\n};\r\n\r\nexport default class ActionUrls {\r\n private static UrlList: ActionUrl[] = [];\r\n\r\n static load() {\r\n const actionUrlJson = (document.querySelector(\".js-action-urls\") as HTMLInputElement).value;\r\n this.UrlList = JSON.parse(actionUrlJson);\r\n }\r\n\r\n static getUrl(name: string): string {\r\n const filteredUrlList = this.UrlList.filter((l) => l.name === name);\r\n if (filteredUrlList.length === 0) {\r\n return \"\";\r\n }\r\n\r\n return filteredUrlList[0].value;\r\n }\r\n}\r\n","type MultilangLabel = {\r\n name: string;\r\n value: string;\r\n};\r\n\r\nexport default class Multilang {\r\n private static LanguageCode: string;\r\n private static LongLanguageCode: string;\r\n private static Labels: MultilangLabel[] = [];\r\n\r\n static load() {\r\n const multilangJson = (document.querySelector(\".js-multilang\") as HTMLInputElement).value;\r\n const multilangObject = JSON.parse(multilangJson);\r\n\r\n this.LanguageCode = multilangObject.languageCode;\r\n this.LongLanguageCode = multilangObject.longLanguageCode;\r\n this.Labels = multilangObject.labels;\r\n }\r\n\r\n static getLanguageCode() {\r\n return this.LanguageCode;\r\n }\r\n\r\n static getLongLanguageCode() {\r\n return this.LongLanguageCode;\r\n }\r\n\r\n static getTranslation(labelName: string, defaultValue: string = \"\"): string {\r\n const filteredLabels = this.Labels.filter((l) => l.name === labelName);\r\n \r\n if (filteredLabels.length === 0) {\r\n console.warn(`Could not find multilang label '${labelName}', showing the default translation instead.`);\r\n return defaultValue;\r\n }\r\n\r\n return filteredLabels[0].value;\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport {BootstrapBreakpoint} from \"../models/enums\";\r\nimport Multilang from \"./multilang\";\r\n\r\nexport default class CustomHelper {\r\n static confirm(msg: string, func: () => void): void {\r\n bootbox.confirm({\r\n title: \"\",\r\n swapButtonOrder: true,\r\n message: msg,\r\n onEscape: true,\r\n buttons: {\r\n cancel: {\r\n label: Multilang.getTranslation(\"common.no\"),\r\n className: \"\"\r\n },\r\n confirm: {\r\n label: Multilang.getTranslation(\"common.yes\"),\r\n className: \"\"\r\n }\r\n },\r\n callback: function (result) {\r\n if (result) {\r\n func();\r\n }\r\n }\r\n });\r\n }\r\n\r\n static confirmWithCustomButtonLabels(msg: string, cancelButtonText: string, confirmButtonText: string, func: () => void): void {\r\n bootbox.confirm({\r\n title: \"\",\r\n swapButtonOrder: true,\r\n message: msg,\r\n onEscape: true,\r\n buttons: {\r\n cancel: {\r\n label: cancelButtonText,\r\n className: \"\"\r\n },\r\n confirm: {\r\n label: confirmButtonText,\r\n className: \"\"\r\n }\r\n },\r\n callback: function (result) {\r\n if (result) {\r\n func();\r\n }\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Gets the current Bootstrap v5 breakpoint.\r\n * The class list, per breakpoint, contains the classes for which the element will be hidden.\r\n */\r\n static getBootstrapBreakpoint(): BootstrapBreakpoint {\r\n const breakpointList = [\r\n {name: BootstrapBreakpoint.xs, classList: [\"d-none\", \"d-sm-block\"]},\r\n {name: BootstrapBreakpoint.sm, classList: [\"d-sm-none\", \"d-md-block\"]},\r\n {name: BootstrapBreakpoint.md, classList: [\"d-md-none\", \"d-lg-block\"]},\r\n {name: BootstrapBreakpoint.lg, classList: [\"d-lg-none\", \"d-xl-block\"]},\r\n {name: BootstrapBreakpoint.xl, classList: [\"d-xl-none\", \"d-xxl-block\"]},\r\n {name: BootstrapBreakpoint.xxl, classList: [\"d-xxl-none\"]}\r\n ];\r\n\r\n for (let breakpoint of breakpointList) {\r\n const divElement = window.document.createElement(\"div\");\r\n divElement.classList.add(...breakpoint.classList);\r\n\r\n window.document.body.appendChild(divElement);\r\n\r\n if (divElement.offsetParent === null) {\r\n window.document.body.removeChild(divElement);\r\n\r\n console.log(\"Bootstrap Breakpoint\", breakpoint.name.toString());\r\n return breakpoint.name;\r\n }\r\n\r\n window.document.body.removeChild(divElement);\r\n }\r\n\r\n return BootstrapBreakpoint.none;\r\n }\r\n\r\n static getDateFromString(value: any): Date {\r\n if (typeof value === \"undefined\") {\r\n return new Date();\r\n }\r\n\r\n const parts = value.split(/\\-|T/);\r\n return new Date(parts[0], parts[1] - 1, parts[2]);\r\n }\r\n\r\n static getPopoverContent(el: Element): string {\r\n const element = document.getElementById(el.getAttribute(\"data-bs-content-id\") as string);\r\n if (element === null) {\r\n return \"Missing or wrong data-bs-content-id.\"\r\n }\r\n\r\n return element.innerHTML;\r\n }\r\n\r\n static getStickyHeaderHeight(current: boolean): number {\r\n const stickyHeader = document.querySelector(\"header.sticky-top\") as HTMLElement;\r\n\r\n if (stickyHeader === null) {\r\n return 0;\r\n }\r\n\r\n let height: string;\r\n\r\n if (current) {\r\n height = stickyHeader.getBoundingClientRect().height.toString();\r\n } else {\r\n height = stickyHeader.hasAttribute(\"data-nt-height\")\r\n ? stickyHeader.getAttribute(\"data-nt-height\") as string\r\n : stickyHeader.getBoundingClientRect().height.toString();\r\n }\r\n\r\n // explicit parsing as it's seen as a string when checking its value via DevTools\r\n return parseFloat(height);\r\n }\r\n\r\n static smoothScrollTo(anchor: string, offset: number) {\r\n if (anchor === \"#top\") {\r\n $(\"html,body\").animate({scrollTop: 0}, 300);\r\n\r\n return true;\r\n }\r\n\r\n let $target = $(anchor);\r\n $target = ($target.length && $target) || $(\"[name=\" + anchor.slice(1) + \"]\");\r\n\r\n if ($target.length > 0) {\r\n const targetOffset: number = $target.offset()?.top ?? 0;\r\n $(\"html,body\").animate({scrollTop: targetOffset - offset}, 300);\r\n\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n static startLoad() {\r\n $(\"body\").css(\"cursor\", \"progress\");\r\n }\r\n\r\n static stopLoad() {\r\n $(\"body\").css(\"cursor\", \"default\"); // cursor doesn't revert until mouse is moved - in chrome\r\n }\r\n\r\n static submitForm($form: JQuery) {\r\n if ($form.length === 0) {\r\n return;\r\n }\r\n\r\n // $form[0] gets native DOM element\r\n if ($form[0].requestSubmit) {\r\n $form[0].requestSubmit();\r\n } else {\r\n $form[0].submit();\r\n }\r\n }\r\n}","import $ from \"jquery\";\r\nimport \"jquery-validation\";\r\nimport \"jquery-validation-unobtrusive\";\r\n\r\nexport default class Validators {\r\n static init() {\r\n Validators.initVatValidator();\r\n }\r\n \r\n static initVatValidator() {\r\n $.validator.addMethod(\"vat\", function (value, element, params) {\r\n // @ts-ignore\r\n if (!this.optional(element)) {\r\n const otherProperty = $(\"#\" + params.otherProperty);\r\n if (otherProperty.val() == params.otherValue) {\r\n return Validators.isBelgianVat(value) || Validators.isFrenchVat(value);\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n\r\n $.validator.unobtrusive.adapters.add(\"vat\", [\"otherproperty\", \"othervalue\"],\r\n function(options) {\r\n options.rules[\"vat\"] = {\r\n otherProperty: options.params.otherproperty,\r\n otherValue: options.params.othervalue\r\n };\r\n\r\n options.messages[\"vat\"] = options.message;\r\n }\r\n );\r\n }\r\n\r\n static isBelgianVat(input: string) {\r\n // remove spaces and dots\r\n let cleanVat = input.replace(/ /g, \"\");\r\n cleanVat = cleanVat.replace(/\\./g, \"\");\r\n \r\n let result = false;\r\n const pattern = /^BE[01]?[0-9]{9}$/i;\r\n const regex = new RegExp(pattern);\r\n\r\n if (regex.test(cleanVat)) {\r\n cleanVat = cleanVat.replace(/BE/gi, \"\");\r\n \r\n const vatNumber = parseInt(cleanVat, 10);\r\n result = (97 - (Math.floor(vatNumber / 100) % 97) == vatNumber % 100);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static isFrenchVat(input) {\r\n // remove spaces and dots\r\n let cleanVat = input.replace(/ /g, \"\");\r\n cleanVat = cleanVat.replace(/\\./g, \"\");\r\n \r\n let result = false;\r\n const pattern = /^FR[0-9]{11}$/i;\r\n const regex = new RegExp(pattern);\r\n\r\n if (regex.test(cleanVat)) {\r\n result = true;\r\n }\r\n\r\n return result;\r\n }\r\n}","class Message {\r\n level!: number;\r\n content!: string;\r\n}\r\n\r\nclass IdAndQuantity {\r\n id!: number;\r\n quantity!: number;\r\n}\r\n\r\nclass CurrentQuantities {\r\n success: boolean = false;\r\n messages!: Message[];\r\n quantities!: IdAndQuantity[];\r\n lineCount!: number;\r\n}\r\n\r\nclass AddResult {\r\n success: boolean = false;\r\n lineCount!: number;\r\n messages!: Message[];\r\n}\r\n\r\nclass UpdateResult {\r\n success: boolean = false;\r\n messages!: Message[];\r\n productId!: number;\r\n quantity!: number;\r\n}\r\n\r\nclass RemoveResult {\r\n success: boolean = false;\r\n messages!: Message[];\r\n productId!: number;\r\n lineCount!: number;\r\n}\r\n\r\nclass SendToResult {\r\n success: boolean = false;\r\n messages!: Message[];\r\n}\r\n\r\nclass AnonymousBasketFormData {\r\n firstName!: string;\r\n lastName!: string;\r\n emailAddress!: string;\r\n phone!: string;\r\n organizationLevel!: string;\r\n comment!: string;\r\n companyName!: string;\r\n sector!: string;\r\n vatNumber!: string;\r\n address!: string;\r\n zip!: string;\r\n city!: string;\r\n}\r\n\r\nexport { Message, IdAndQuantity, CurrentQuantities, AddResult, UpdateResult, RemoveResult, SendToResult, AnonymousBasketFormData }\r\n","import { ref } from \"vue\";\r\nimport { MiniBasketResponse } from \"./basket\";\r\n\r\nexport default class MiniBasketData {\r\n static lineCount = ref(0);\r\n\r\n static set(data: MiniBasketResponse) {\r\n this.lineCount.value = data.lineCount;\r\n }\r\n\r\n static setLineCount(lineCount: number) {\r\n this.lineCount.value = lineCount;\r\n }\r\n}\r\n\r\n","import { AxiosError } from \"axios\";\r\n\r\nexport default class Toaster {\r\n static showAxiosMessage(error: AxiosError, defaultMessage: string) {\r\n const errorMessage = error.response && error.response.data != null ? error.response.data as string : \"\";\r\n toastr.error(errorMessage.length > 0 ? errorMessage : defaultMessage);\r\n }\r\n \r\n static showFeedbackMessage(messageType: string, message: string) {\r\n toastr[messageType.toToastrMessageType()](message);\r\n }\r\n}","declare var dataLayer: any[];\r\n\r\nexport default class DatalayerHelper {\r\n static trackEvent(customEventName: string, parameterValue: string | null = null, callback: Function | null = null) {\r\n customEventName = customEventName.toLowerCase();\r\n if (!customEventName.startsWith(\"bm_\")) {\r\n customEventName = \"bm_\" + customEventName;\r\n }\r\n\r\n if (!dataLayer) {\r\n callback && callback();\r\n return;\r\n }\r\n\r\n console.debug(\"Pushing event to datalayer\", customEventName)\r\n dataLayer.push({\r\n event: customEventName,\r\n eventParameter: parameterValue,\r\n eventCallback: function () {\r\n // console.log(\"in the callback calling the callback\", callback);\r\n callback && callback();\r\n },\r\n eventTimeout: 2000\r\n });\r\n return;\r\n }\r\n};","import $ from \"jquery\";\r\nimport axios, {AxiosError} from \"axios\";\r\nimport {Modal} from \"bootstrap\";\r\nimport NProgress from \"nprogress\";\r\nimport ActionUrls from \"../utils/action-urls\";\r\nimport {ContactLeadData} from \"../models/contact-lead-data\";\r\nimport {\r\n AddResult,\r\n RemoveResult,\r\n UpdateResult,\r\n SendToResult,\r\n CurrentQuantities,\r\n Message,\r\n AnonymousBasketFormData\r\n} from \"../models/anonymous-basket-data\";\r\nimport MiniBasketData from \"../models/mini-basket-data\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\nimport Toaster from \"./toaster\";\r\nimport DatalayerHelper from \"../utils/datalayer-helper\";\r\n\r\ntype Options = {\r\n addToAnonymousBasketUrl: string;\r\n};\r\n\r\nexport default class AnonymousBaskets {\r\n static modalInstance: Modal;\r\n static options: Options;\r\n static addButtonSelector: string = \".js-anonymous-basket-add\";\r\n\r\n static quantityInputSelector: string = \".js-quantity-check\";\r\n static basketCheckoutContainer: string = \".js-anonymous-basket-checkout-form\";\r\n static basketInfoContainer: string = \".js-anonymous-basket-info-form\";\r\n static mailBasketMailToButton: string = \".js-anonymous-basket-mailto\";\r\n static mailBasketDownloadButton: string = \".js-anonymous-basket-download\";\r\n static mailBasketInitiateButton: string = \".js-anonymous-basket-mailto-initiate\";\r\n static mailBasketModalId: string = \"#anonymous-basket-mail-modal\";\r\n static mailBasketAddressInputId = \"#anonymous-basket-mail-input\";\r\n\r\n static changeQuantityTimerId: number | null = null;\r\n static ignoreUpdates: boolean = false;\r\n\r\n constructor() {\r\n }\r\n\r\n static defaults: Options = {\r\n addToAnonymousBasketUrl: \"\",\r\n };\r\n\r\n static init(options: object) {\r\n if ($(AnonymousBaskets.mailBasketModalId).length > 0) {\r\n AnonymousBaskets.modalInstance = new Modal(AnonymousBaskets.mailBasketModalId, {keyboard: false});\r\n }\r\n\r\n AnonymousBaskets.options = $.extend({}, AnonymousBaskets.defaults, options);\r\n\r\n // Product Pages\r\n $(\"body\").on(\"click\", AnonymousBaskets.addButtonSelector, AnonymousBaskets.addButtonHandler);\r\n //// setTimeout(AnonymousBaskets.getCurrentQuantities, 50);\r\n\r\n //// Checkout Page\r\n $(AnonymousBaskets.basketCheckoutContainer + \" .js-anonymous-basket--delete-line\").on(\"click\", AnonymousBaskets.deleteButtonHandler);\r\n $(AnonymousBaskets.basketCheckoutContainer + \" .js-anonymous-basket--input-quantity\").on(\"keyup change\", AnonymousBaskets.changeQuantityHandler);\r\n\r\n // MailTo\r\n $(AnonymousBaskets.mailBasketMailToButton).on(\"click\", AnonymousBaskets.startMailToFlow);\r\n $(AnonymousBaskets.mailBasketDownloadButton).on(\"click\", AnonymousBaskets.startDownload);\r\n $(AnonymousBaskets.mailBasketInitiateButton).on(\"click\", AnonymousBaskets.startMailTo);\r\n $(AnonymousBaskets.mailBasketAddressInputId).on(\"keyup\", AnonymousBaskets.handleEmailChanged);\r\n $(AnonymousBaskets.basketInfoContainer).on(\"submit\", AnonymousBaskets.handleInfoFormSubmit);\r\n\r\n AnonymousBaskets.tryAutoFillForm();\r\n }\r\n\r\n static addButtonHandler(e: JQueryEventObject) {\r\n console.log(\"addButtonHandler\");\r\n const $self = $(e.currentTarget);\r\n const $parent = $($self.data(\"nt-parent\"));\r\n const productId = +$parent.data(\"nt-product-id\");\r\n e.preventDefault();\r\n e.stopPropagation();\r\n AnonymousBaskets.addToBasket(productId);\r\n }\r\n\r\n static deleteButtonHandler(e: JQueryEventObject) {\r\n const $self = $(e.currentTarget);\r\n const $parent = $self.closest(\".js-anonymous-basket-line\");\r\n const productId = +$parent.data(\"nt-product-id\");\r\n e.preventDefault();\r\n e.stopPropagation();\r\n AnonymousBaskets.removeFromList(productId);\r\n }\r\n\r\n static changeQuantityHandler(e: JQueryEventObject) {\r\n if (AnonymousBaskets.ignoreUpdates) {\r\n return;\r\n }\r\n const $self = $(e.currentTarget);\r\n const $parent = $self.closest(\".js-anonymous-basket-line\");\r\n const originalQuantity = +$self.data(\"nt-original-quantity\");\r\n const productId = +$parent.data(\"nt-product-id\");\r\n let quantity = parseInt('' + $self.val());\r\n if (isNaN(quantity) || quantity === 0) {\r\n quantity = 1;\r\n $self.val(quantity);\r\n }\r\n\r\n if (quantity === originalQuantity) {\r\n return;\r\n }\r\n\r\n if (AnonymousBaskets.changeQuantityTimerId !== null) {\r\n clearTimeout(AnonymousBaskets.changeQuantityTimerId);\r\n }\r\n\r\n AnonymousBaskets.changeQuantityTimerId = setTimeout(function () {\r\n AnonymousBaskets.changeQuantityTimerId = null;\r\n AnonymousBaskets.updateInList(productId, quantity);\r\n }, 500);\r\n }\r\n\r\n static addToBasket(productId: number) {\r\n const postData = {\r\n productId: productId\r\n };\r\n\r\n axios\r\n .post(AnonymousBaskets.options.addToAnonymousBasketUrl, postData)\r\n .then((res) => res.data)\r\n .then((data: AddResult) => {\r\n console.log(data);\r\n AnonymousBaskets.handleAddToBasketResult(data);\r\n }).catch((err: AxiosError) => {\r\n Toaster.showAxiosMessage(err, \"\");\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n static removeFromList(productId: number) {\r\n const postData = {\r\n productId: productId\r\n };\r\n\r\n axios\r\n .post(ActionUrls.getUrl(\"remove-item\"), postData)\r\n .then((res) => res.data)\r\n .then((data: RemoveResult) => {\r\n console.log(data);\r\n AnonymousBaskets.handleRemoveFromListResult(data);\r\n }).catch((err: AxiosError) => {\r\n Toaster.showAxiosMessage(err, \"\");\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n static updateInList(productId: number, quantity: number) {\r\n const postData = {\r\n productId: productId,\r\n quantity: quantity\r\n };\r\n\r\n axios\r\n .post(ActionUrls.getUrl(\"update-item\"), postData)\r\n .then((res) => res.data)\r\n .then((data: UpdateResult) => {\r\n console.log(data);\r\n AnonymousBaskets.handleUpdateInListResult(data);\r\n }).catch((err: AxiosError) => {\r\n Toaster.showAxiosMessage(err, \"\");\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n static handleAddToBasketResult(data: AddResult) {\r\n AnonymousBaskets.showToasts(data.messages);\r\n MiniBasketData.setLineCount(data.lineCount);\r\n }\r\n\r\n static handleRemoveFromListResult(data: RemoveResult) {\r\n if (data.lineCount === 0) {\r\n document.location.reload();\r\n return;\r\n }\r\n\r\n $(AnonymousBaskets.basketCheckoutContainer + \" .js-anonymous-basket-line\").each(function () {\r\n const $self = $(this);\r\n const productId = $self.data(\"nt-product-id\") as number;\r\n\r\n if (productId === data.productId) {\r\n $self.addClass(\"hiding\");\r\n setTimeout(() => {\r\n $self.hide()\r\n }, 1000)\r\n }\r\n });\r\n\r\n MiniBasketData.setLineCount(data.lineCount);\r\n AnonymousBaskets.showToasts(data.messages);\r\n }\r\n\r\n static handleUpdateInListResult(data: UpdateResult) {\r\n AnonymousBaskets.ignoreUpdates = true;\r\n\r\n $(AnonymousBaskets.basketCheckoutContainer + \" .js-basketline\").each(function () {\r\n const $self = $(this);\r\n const productId = $self.data(\"nt-product-id\") as number;\r\n\r\n if (productId === data.productId) {\r\n const $input = $self.find(\".js-anonymous-basket--input-quantity\")\r\n $input.val(data.quantity);\r\n }\r\n });\r\n\r\n AnonymousBaskets.ignoreUpdates = false;\r\n AnonymousBaskets.showToasts(data.messages);\r\n }\r\n\r\n static showToasts(messages: Message[]) {\r\n for (let message of messages) {\r\n if (message.level == 0) {\r\n toastr.success(message.content);\r\n }\r\n if (message.level == 1) {\r\n toastr.warning(message.content);\r\n }\r\n if (message.level == 2) {\r\n toastr.error(message.content);\r\n }\r\n }\r\n }\r\n\r\n static openMailToModal() {\r\n $(AnonymousBaskets.mailBasketAddressInputId).val(\"\");\r\n $(AnonymousBaskets.mailBasketInitiateButton).prop(\"disabled\", true);\r\n AnonymousBaskets.modalInstance.show();\r\n }\r\n\r\n static closeMailToModal() {\r\n AnonymousBaskets.modalInstance.hide();\r\n }\r\n\r\n static startDownload() {\r\n const url = ActionUrls.getUrl(\"generate-excel\");\r\n\r\n DatalayerHelper.trackEvent(\"bm_anonymousbasket_export_excel\", null, () => {\r\n window.open(url);\r\n });\r\n }\r\n\r\n static startMailToFlow(e: JQueryEventObject) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n AnonymousBaskets.openMailToModal();\r\n }\r\n\r\n static startMailTo(e: JQueryEventObject) {\r\n const email = $(AnonymousBaskets.mailBasketAddressInputId).val() as string;\r\n\r\n if (AnonymousBaskets.validateEmail(email) === false) {\r\n return;\r\n }\r\n\r\n $(AnonymousBaskets.mailBasketInitiateButton).prop(\"disabled\", true);\r\n NProgress.start();\r\n\r\n const postData = {\r\n email: email,\r\n };\r\n\r\n axios\r\n .post(ActionUrls.getUrl(\"send-to\"), postData)\r\n .then((res) => res.data)\r\n .then((data: SendToResult) => {\r\n AnonymousBaskets.handleSendToResult(data);\r\n }).catch((err: AxiosError) => {\r\n Toaster.showAxiosMessage(err, \"\");\r\n }).finally(() => {\r\n NProgress.done();\r\n $(AnonymousBaskets.mailBasketInitiateButton).prop(\"disabled\", false);\r\n });\r\n\r\n }\r\n\r\n static handleSendToResult(data: SendToResult) {\r\n AnonymousBaskets.showToasts(data.messages);\r\n AnonymousBaskets.closeMailToModal();\r\n }\r\n\r\n static handleEmailChanged(e: JQueryEventObject) {\r\n const email = $(AnonymousBaskets.mailBasketAddressInputId).val() as string;\r\n\r\n if (AnonymousBaskets.validateEmail(email)) {\r\n $(AnonymousBaskets.mailBasketInitiateButton).prop(\"disabled\", false);\r\n } else {\r\n $(AnonymousBaskets.mailBasketInitiateButton).prop(\"disabled\", true);\r\n }\r\n }\r\n\r\n static handleInfoFormSubmit(e: JQueryEventObject) {\r\n const formData = AnonymousBaskets.readFormFields();\r\n localStorage.setItem(\"AnonymousBasketFormData\", JSON.stringify(formData));\r\n }\r\n\r\n static validateEmail(email: string): boolean {\r\n return /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(email);\r\n }\r\n\r\n static tryAutoFillForm() {\r\n if ($(AnonymousBaskets.basketInfoContainer).length === 0) {\r\n return;\r\n }\r\n\r\n const formDataJson = localStorage.getItem(\"AnonymousBasketFormData\");\r\n\r\n if (formDataJson === null) {\r\n AnonymousBaskets.tryAutoFillFormFromLeadsForm();\r\n return;\r\n }\r\n\r\n const formData = JSON.parse(formDataJson) as AnonymousBasketFormData;\r\n\r\n if (formData === null) {\r\n AnonymousBaskets.tryAutoFillFormFromLeadsForm();\r\n return;\r\n }\r\n\r\n AnonymousBaskets.populateFormFields(formData);\r\n }\r\n\r\n static tryAutoFillFormFromLeadsForm() {\r\n const leadDataJson = localStorage.getItem(\"ContactLeadData\");\r\n if (leadDataJson === null) {\r\n return;\r\n }\r\n\r\n const leadData = JSON.parse(leadDataJson) as ContactLeadData;\r\n\r\n if (leadData) {\r\n $(\"#FirstName\").val(leadData.firstName);\r\n $(\"#LastName\").val(leadData.lastName);\r\n $(\"#CompanyName\").val(leadData.companyName);\r\n $(\"#PostalCode\").val(leadData.zip);\r\n $(\"#EmailAddress\").val(leadData.emailAddress);\r\n $(\"#SectorId\").val(leadData.sectorId);\r\n }\r\n }\r\n\r\n static populateFormFields(formData: AnonymousBasketFormData) {\r\n $(\"#FirstName\").val(formData.firstName);\r\n $(\"#LastName\").val(formData.lastName);\r\n $(\"#EmailAddress\").val(formData.emailAddress);\r\n $(\"#Phone\").val(formData.phone);\r\n\r\n $(\"#OrganizationLevelId\").val(formData.organizationLevel);\r\n ////$(\"#Comment\").val(formData.comment);\r\n\r\n $(\"#CompanyName\").val(formData.companyName);\r\n $(\"#SectorId\").val(formData.sector);\r\n $(\"#VatNumber\").val(formData.vatNumber);\r\n\r\n $(\"#AddressLine\").val(formData.address);\r\n $(\"#PostalCode\").val(formData.zip);\r\n $(\"#City\").val(formData.city);\r\n }\r\n\r\n static readFormFields(): AnonymousBasketFormData {\r\n const formData = new AnonymousBasketFormData();\r\n\r\n formData.firstName = $(\"#FirstName\").val() as string;\r\n formData.lastName = $(\"#LastName\").val() as string;\r\n formData.emailAddress = $(\"#EmailAddress\").val() as string;\r\n formData.phone = $(\"#Phone\").val() as string;\r\n\r\n formData.organizationLevel = $(\"#OrganizationLevelId\").val() as string;\r\n ////formData.comment = $(\"#Comment\").val() as string;\r\n\r\n formData.companyName = $(\"#CompanyName\").val() as string;\r\n formData.sector = $(\"#SectorId\").val() as string;\r\n formData.vatNumber = $(\"#VatNumber\").val() as string;\r\n\r\n formData.address = $(\"#AddressLine\").val() as string as string;\r\n formData.zip = $(\"#PostalCode\").val() as string;\r\n formData.city = $(\"#City\").val() as string;\r\n\r\n return formData;\r\n }\r\n}","import ActionUrls from \"../utils/action-urls\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport $ from \"jquery\";\r\nimport axios from \"axios\";\r\n\r\ninterface AsyncPriceResults {\r\n success: boolean;\r\n prices: AsyncPriceResult[];\r\n}\r\n\r\ninterface AsyncPriceResult {\r\n id: number\r\n code: string;\r\n isGross: boolean\r\n priceDisplay: string;\r\n}\r\n\r\nexport default class AsyncPrices {\r\n static asyncPriceBoxSelector: string = \".js-async-price\";\r\n static asyncAutocompletePriceBoxSelector: string = \".js-autocomplete-products .js-async-price\";\r\n static asyncProductSuggestionsPriceBoxSelector: string = \".js-product-suggestions--suggestions .js-async-price\";\r\n // static cachedResponses = {};\r\n\r\n constructor() { }\r\n\r\n static init() {\r\n $(document).ready(AsyncPrices.startLoadPrices);\r\n }\r\n\r\n static startLoadPricesForAutoComplete() {\r\n AsyncPrices.startLoadPricesReal(AsyncPrices.asyncAutocompletePriceBoxSelector);\r\n }\r\n\r\n static startLoadPricesForProductSuggestions() {\r\n AsyncPrices.startLoadPricesReal(AsyncPrices.asyncProductSuggestionsPriceBoxSelector);\r\n }\r\n\r\n static startLoadPrices() {\r\n AsyncPrices.startLoadPricesReal(AsyncPrices.asyncPriceBoxSelector);\r\n }\r\n\r\n static startLoadPricesReal(selector: string) {\r\n // Get data from DOM\r\n // Find all product identifiers in DOM data-attributes\r\n let productIdList: number[] = [];\r\n\r\n $(selector).each(function () {\r\n const productId = $(this).data(\"nt-product-id\") as number;\r\n productIdList.push(productId);\r\n });\r\n\r\n if (productIdList.length === 0) {\r\n return;\r\n }\r\n\r\n const url = ActionUrls.getUrl(\"load-async-prices\");\r\n\r\n axios\r\n .get(`${url}?ids=${productIdList.join()}`)\r\n .then((res) => res.data)\r\n .then((data: AsyncPriceResults) => {\r\n AsyncPrices.addPricesToDom(data, selector);\r\n }).catch((err) => {\r\n console.error(`startLoadPrices() fail (${err}`);\r\n AsyncPrices.handleError(selector);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n static addPricesToDom(data: AsyncPriceResults, selector: string) {\r\n if (typeof data.prices == \"undefined\") {\r\n AsyncPrices.handleError(selector);\r\n return;\r\n }\r\n\r\n for (let price of data.prices) {\r\n if (price.priceDisplay === null || price.priceDisplay === \"\") {\r\n continue;\r\n }\r\n\r\n const $box = $(`${selector}[data-nt-product-id=${price.id}]`);\r\n\r\n if ($box.length > 0) {\r\n $box.find(\".js-async-net-price--value\").html(price.priceDisplay);\r\n\r\n if (price.isGross) {\r\n $box.find(\".js-async-net-price--label\")\r\n .html(Multilang.getTranslation(\"product.label.price-gross.short\", \"bruto\"))\r\n .addClass(\"text-muted\");\r\n }\r\n\r\n // check for gross price visibility (when equal to net price)\r\n const $netPrice: JQuery = $box.find(\".js-async-net-price--value\");\r\n const $grossPrice: JQuery = $box.find(\".js-async-gross-price--value\");\r\n\r\n if ($netPrice.length > 0 && $grossPrice.length > 0) {\r\n const netPrice: string = ($netPrice.text() as string).replace(\" \", \"\");\r\n const grossPrice: string = ($grossPrice.text() as string).replace(\" \", \"\");\r\n\r\n if (netPrice.length > 0 && grossPrice.length > 0) {\r\n\r\n const $grossPriceContainer: JQuery = $box.find(\".js-async-gross-price--container\");\r\n $grossPriceContainer.toggleClass(\"d-none\", netPrice === grossPrice);\r\n\r\n const $grossPriceEmptyContainer: JQuery = $box.find(\".js-async-gross-price--empty-container\");\r\n $grossPriceEmptyContainer.toggleClass(\"d-none\", netPrice !== grossPrice);\r\n }\r\n }\r\n }\r\n else {\r\n console.error(\"Box not found\");\r\n }\r\n }\r\n\r\n AsyncPrices.handleError(selector);\r\n }\r\n\r\n static handleError(selector: string) {\r\n $(selector).each(function () {\r\n var pid = $(this).data(\"nt-product-id\");\r\n const $box = $(`${selector}[data-nt-product-id=${pid}]`);\r\n if ($box.length > 0) {\r\n const $priceElement = $box.find(\".js-async-net-price--value\");\r\n const html = $priceElement.html();\r\n if (html === \"...\") {\r\n $priceElement.html(\"n/a\");\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport $$ from \"../utils/double-dollar\";\r\nimport { Popover } from \"bootstrap\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\nimport axios from \"axios\";\r\nimport { TransferDateData } from \"../models/basket\";\r\nimport { DatePickerData } from \"../models/date-picker\";\r\nimport CustomDatePicker from \"./custom-date-picker\";\r\nimport AsyncPrices from \"./async-prices\";\r\n\r\n// https://github.com/devbridge/jQuery-Autocomplete/blob/master/dist/jquery.autocomplete.js\r\n\r\ntype Options = {\r\n serviceUrl: string;\r\n minimumInputLength: number;\r\n lookupDelay: number;\r\n onSelectProduct: Function;\r\n onSelectBrand: Function;\r\n onSelectCategory: Function;\r\n onSelectAll: Function;\r\n};\r\n\r\nexport default class Autocomplete2 {\r\n static options: Options;\r\n static $container: JQuery;\r\n static $el: JQuery;\r\n static container: HTMLDivElement;\r\n static delayTimer: number | null;\r\n static blurTimer: number;\r\n static busy: boolean = false;\r\n static visible: boolean = false;\r\n static hovering: boolean = false;\r\n static previousLookup: string | null = null;\r\n static cachedResponses = {};\r\n static mainClass: string = \"autocomplete2-dropdown\";\r\n static eventNamespace = \".autocomplete2\";\r\n static hasLeft: boolean;\r\n static hasRight: boolean;\r\n\r\n constructor() { }\r\n\r\n static defaults: Options = {\r\n serviceUrl: \"\",\r\n minimumInputLength: 3,\r\n lookupDelay: 200,\r\n onSelectProduct: function () { },\r\n onSelectBrand: function () { },\r\n onSelectCategory: function () { },\r\n onSelectAll: function () { }\r\n };\r\n\r\n static keys = {\r\n ESC: 27,\r\n TAB: 9,\r\n RETURN: 13,\r\n LEFT: 37,\r\n UP: 38,\r\n RIGHT: 39,\r\n DOWN: 40\r\n };\r\n\r\n static isArray = data => {\r\n return Object.prototype.toString.call(data) === \"[object Array]\";\r\n };\r\n\r\n static init(options: object) {\r\n Autocomplete2.options = $.extend({}, Autocomplete2.defaults, options);\r\n // console.log(\"Autocomplete2.init\", Autocomplete2.options.serviceUrl);\r\n\r\n const div = document.createElement(\"div\");\r\n div.className = Autocomplete2.mainClass;\r\n div.style.position = \"absolute\";\r\n div.style.display = \"none\";\r\n \r\n Autocomplete2.container = div;\r\n Autocomplete2.$container = $(div);\r\n\r\n if (Autocomplete2.container === null) {\r\n return;\r\n }\r\n\r\n if (Autocomplete2.$container === null) {\r\n return;\r\n }\r\n \r\n $(window).on(\"resize\" + Autocomplete2.eventNamespace, Autocomplete2.fixPosition);\r\n\r\n $(document).on(\"keyup\", '[data-nt-provide=\"autocomplete2\"]', function (e) {\r\n const $this = $(this);\r\n \r\n if (Autocomplete2.$el === null || (typeof Autocomplete2.$el === \"undefined\")) {\r\n Autocomplete2.$el = $this;\r\n Autocomplete2.$container.insertAfter(Autocomplete2.$el);\r\n \r\n $this.on(\"keydown\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onKeyPress(e);\r\n });\r\n \r\n $this.on(\"keyup\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onKeyUp(e);\r\n });\r\n \r\n $this.on(\"blur\" + Autocomplete2.eventNamespace, function () {\r\n Autocomplete2.onBlur();\r\n });\r\n \r\n $this.on(\"focus\" + Autocomplete2.eventNamespace, function () {\r\n Autocomplete2.onFocus();\r\n });\r\n \r\n $this.on(\"change\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onKeyUp(e);\r\n });\r\n \r\n $this.on(\"input\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onKeyUp(e);\r\n });\r\n \r\n Autocomplete2.$container.on(\"mouseover\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onMouseover(e);\r\n });\r\n \r\n Autocomplete2.$container.on(\"mouseout\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onMouseout(e);\r\n });\r\n \r\n $(\"body\").on(\"click\" + Autocomplete2.eventNamespace, function () {\r\n Autocomplete2.onBlur();\r\n });\r\n }\r\n\r\n if (e.which == Autocomplete2.keys.UP) {\r\n Autocomplete2.hide();\r\n } else if (e.which == Autocomplete2.keys.RIGHT) {\r\n Autocomplete2.hide();\r\n } else if (e.which == Autocomplete2.keys.LEFT) {\r\n Autocomplete2.hide();\r\n } else if (e.which == Autocomplete2.keys.ESC) {\r\n Autocomplete2.hide();\r\n } else {\r\n if (Autocomplete2.isValidInput(Autocomplete2.getValue())) {\r\n Autocomplete2.lookup();\r\n } else {\r\n Autocomplete2.hide();\r\n }\r\n }\r\n });\r\n }\r\n\r\n static hide() {\r\n Autocomplete2.$container.hide();\r\n Autocomplete2.visible = false;\r\n\r\n Autocomplete2.$container.off(\"mouseover\" + Autocomplete2.eventNamespace);\r\n Autocomplete2.$container.off(\"mouseout\" + Autocomplete2.eventNamespace);\r\n }\r\n\r\n static show() {\r\n Autocomplete2.$container.show();\r\n Autocomplete2.visible = true;\r\n Autocomplete2.hovering = true;\r\n\r\n Autocomplete2.$container.on(\"mouseover\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onMouseover(e);\r\n });\r\n \r\n Autocomplete2.$container.on(\"mouseout\" + Autocomplete2.eventNamespace, function (e) {\r\n Autocomplete2.onMouseout(e);\r\n });\r\n }\r\n\r\n static isValidInput(value: string): boolean {\r\n return value.length >= Autocomplete2.options.minimumInputLength;\r\n }\r\n\r\n static getValue(): string {\r\n let value = Autocomplete2.$el.val() || \"\";\r\n \r\n if (typeof value === \"number\") {\r\n return \"\" + value;\r\n } else if (Autocomplete2.isArray(value) && value.length > 0) {\r\n return value[0];\r\n }\r\n \r\n return value as string;\r\n }\r\n\r\n static lookup() {\r\n if (Autocomplete2.delayTimer !== null) {\r\n clearTimeout(Autocomplete2.delayTimer);\r\n Autocomplete2.delayTimer = null;\r\n }\r\n\r\n Autocomplete2.delayTimer = setTimeout(Autocomplete2.actualLookup, Autocomplete2.options.lookupDelay);\r\n }\r\n\r\n static actualLookup() {\r\n let value = Autocomplete2.getValue();\r\n if (value === Autocomplete2.previousLookup) {\r\n Autocomplete2.show();\r\n return;\r\n }\r\n\r\n if (Autocomplete2.isValidInput(value)) {\r\n const cacheKey = value;\r\n \r\n const fromCache = Autocomplete2.cachedResponses[cacheKey];\r\n if (fromCache) {\r\n Autocomplete2.previousLookup = value;\r\n Autocomplete2.render(fromCache.html);\r\n } else {\r\n Autocomplete2.loadSuggestions(value);\r\n }\r\n } else {\r\n Autocomplete2.hide();\r\n }\r\n }\r\n\r\n static loadSuggestions(value: string) {\r\n if (Autocomplete2.busy) {\r\n // TODO: cancel current request (use abort controller)?\r\n return;\r\n }\r\n\r\n Autocomplete2.busy = true;\r\n\r\n axios\r\n .get(`${Autocomplete2.options.serviceUrl}?query=${value}`)\r\n .then((res) => res.data)\r\n .then((data: any) => {\r\n if (data.success) {\r\n Autocomplete2.previousLookup = value;\r\n Autocomplete2.render(data.html);\r\n\r\n const cacheKey = value;\r\n Autocomplete2.cachedResponses[cacheKey] = data;\r\n } else {\r\n Autocomplete2.hide();\r\n }\r\n \r\n Autocomplete2.busy = false;\r\n }).catch((err) => {\r\n Autocomplete2.hide();\r\n Autocomplete2.busy = false;\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n static hookEvents() {\r\n $$(`[data-bs-toggle=\"popover\"]`, el => new Popover(el));\r\n $$(`[data-bs-toggle=\"popover-dom\"]`, el => new Popover(el, { content: CustomHelper.getPopoverContent(el) }));\r\n\r\n // Autocomplete2.$container.off(Autocomplete2.eventNamespace); // TODO?\r\n }\r\n\r\n static unHookEvents() {\r\n Autocomplete2.$container.off(Autocomplete2.eventNamespace);\r\n }\r\n\r\n static render(html: string) {\r\n if (Autocomplete2.container.children.length > 0) {\r\n Autocomplete2.unHookEvents();\r\n Autocomplete2.container.removeChild(Autocomplete2.container.children[0]);\r\n }\r\n\r\n const content = document.createElement(\"div\");\r\n content.innerHTML = html;\r\n \r\n Autocomplete2.hasLeft = html.indexOf(\"autocomplete2-left-side\") > 0;\r\n Autocomplete2.hasRight = html.indexOf(\"autocomplete2-right-side\") > 0;\r\n Autocomplete2.container.appendChild(content);\r\n Autocomplete2.show();\r\n Autocomplete2.fixPosition();\r\n Autocomplete2.hookEvents();\r\n\r\n AsyncPrices.startLoadPricesForAutoComplete();\r\n }\r\n\r\n static destroy() { }\r\n\r\n static onMouseover(e: JQuery.TriggeredEvent) {\r\n Autocomplete2.hovering = true;\r\n }\r\n\r\n static onMouseout(e: JQuery.TriggeredEvent) {\r\n Autocomplete2.hovering = false;\r\n }\r\n\r\n static onKeyPress(e) { }\r\n\r\n static onKeyUp(e) { }\r\n\r\n static onFocus() {\r\n Autocomplete2.fixPosition();\r\n\r\n if (Autocomplete2.getValue().length >= Autocomplete2.options.minimumInputLength) {\r\n Autocomplete2.lookup();\r\n }\r\n }\r\n\r\n static onBlur() {\r\n if (Autocomplete2.hovering === false) {\r\n Autocomplete2.blurTimer = setTimeout(function () {\r\n Autocomplete2.hide();\r\n }, 200);\r\n }\r\n }\r\n \r\n static fixPosition() {\r\n if (Autocomplete2.visible === false) {\r\n return;\r\n }\r\n\r\n const containerParent = Autocomplete2.$container.parent().get(0);\r\n const elementParent = Autocomplete2.$el.parent();\r\n const elementParentParent = elementParent.parents(\".row\");\r\n\r\n if (typeof elementParentParent === \"undefined\") {\r\n console.debug(\"elementParentParent is undefined\");\r\n return;\r\n }\r\n\r\n const height = elementParent.outerHeight(),\r\n offset = elementParent.offset(),\r\n styles = { top: offset?.top ?? 0, left: offset?.left ?? 0, width: \"auto\" };\r\n\r\n const parentOffsetDiff = Autocomplete2.$container.offsetParent().offset();\r\n\r\n styles.top -= parentOffsetDiff?.top ?? 0;\r\n styles.top += containerParent.scrollTop;\r\n styles.top += height ?? 0;\r\n styles.left -= parentOffsetDiff?.left ?? 0;\r\n\r\n Autocomplete2.$container.css(styles);\r\n }\r\n}","import $ from \"jquery\";\r\nimport axios from \"axios\";\r\nimport * as FilePond from 'filepond';\r\nimport Multilang from \"../utils/multilang\";\r\n\r\nvar Global = Global || { CultureCode: null, LanguageCode: null };\r\n\r\n// https://pqina.nl/filepond/docs/patterns/api/server/\r\n\r\nexport default class BasketAttachment {\r\n static currentAttachmentUri;\r\n static pondInstance;\r\n static uploadUrl;\r\n static deleteUrl;\r\n\r\n static init() {\r\n const $basketAttachment = $(\".js-basket-attachment\");\r\n BasketAttachment.uploadUrl = $basketAttachment.data(\"nt-action-upload\");\r\n BasketAttachment.deleteUrl = $basketAttachment.data(\"nt-action-delete\");\r\n\r\n if (typeof FilePond.setOptions === \"undefined\") {\r\n return;\r\n }\r\n\r\n FilePond.setOptions({\r\n maxFiles: 1,\r\n allowBrowse: true,\r\n server: {\r\n process: BasketAttachment.uploadUrl,\r\n revert: BasketAttachment.deleteUrl\r\n },\r\n labelIdle: Multilang.getTranslation(\"basket.attachment.label.idle\", \"Klik hier of sleep hier een bestand\"),\r\n labelFileProcessing: Multilang.getTranslation(\"basket.attachment.label.file-processing\", \"Please wait...\"),\r\n labelFileProcessingComplete: Multilang.getTranslation(\"basket.attachment.label.file-processing-complete\", \"Upload klaar\"),\r\n labelFileProcessingError: Multilang.getTranslation(\"basket.attachment.label.file-processing-error\", \"Fout tijdens opladen (bestand te groot?)\"),\r\n labelTapToUndo: Multilang.getTranslation(\"basket.attachment.label.tap-to-undo\", \"Verwijder\"),\r\n labelButtonRemoveItem: Multilang.getTranslation(\"basket.attachment.label.remove-item\", \"Verwijder\"),\r\n labelButtonProcessItem: Multilang.getTranslation(\"basket.attachment.label.process-item\", \"Upload\"),\r\n onerror: BasketAttachment.onError,\r\n onprocessfile: BasketAttachment.onProcessFile,\r\n onremovefile: BasketAttachment.onRemoveFile,\r\n credits: false\r\n });\r\n\r\n const inputElement = document.getElementById('basket-attachment-input');\r\n if (inputElement === null) {\r\n return ;\r\n }\r\n\r\n BasketAttachment.pondInstance = FilePond.create(inputElement);\r\n BasketAttachment.currentAttachmentUri = $(\"#current-basket-attachment-uri\").val();\r\n BasketAttachment.viewOrHide();\r\n\r\n $(\".js-basket-attachment--delete-attachment\").on(\"click\", BasketAttachment.deleteAttachment);\r\n }\r\n\r\n static viewOrHide() {\r\n const $withAttachment = $(\".js-basket-attachment--with-attachment\");\r\n const $withoutAttachment = $(\".js-basket-attachment--without-attachment\");\r\n \r\n const showWithAttachment = BasketAttachment.currentAttachmentUri !== \"\"\r\n $withAttachment.toggleClass(\"d-none\", !showWithAttachment);\r\n $withAttachment.toggleClass(\"d-block\", showWithAttachment);\r\n $withoutAttachment.toggleClass(\"d-none\", showWithAttachment);\r\n $withoutAttachment.toggleClass(\"d-block\", !showWithAttachment);\r\n }\r\n\r\n static deleteAttachment(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n if (BasketAttachment.currentAttachmentUri === \"\") {\r\n BasketAttachment.viewOrHide();\r\n return;\r\n }\r\n \r\n axios\r\n .delete(BasketAttachment.deleteUrl)\r\n .then(() => {\r\n BasketAttachment.currentAttachmentUri = \"\";\r\n BasketAttachment.pondInstance.removeFile();\r\n BasketAttachment.viewOrHide();\r\n })\r\n .catch((err) => {\r\n console.error(`Basket attachment deletion failed.`, err);\r\n })\r\n .finally(() => { \r\n // do nothing \r\n });\r\n }\r\n\r\n static onError(error, file, status) {\r\n console.error(\"Basket attachment error.\", error, file, status);\r\n }\r\n\r\n static onProcessFile(error, file) {\r\n if (error == null) {\r\n BasketAttachment.currentAttachmentUri = file.serverId;\r\n \r\n const $currentAttachmentLink = $(\"#current-basket-attachment-link\");\r\n $currentAttachmentLink.prop(\"href\", BasketAttachment.currentAttachmentUri);\r\n $currentAttachmentLink.html(file.filename);\r\n\r\n BasketAttachment.viewOrHide();\r\n } else {\r\n console.error(\"Basket attachment process file error.\", error, file);\r\n }\r\n }\r\n\r\n static onRemoveFile(error, file) {\r\n if (error == null) {\r\n BasketAttachment.currentAttachmentUri = \"\";\r\n BasketAttachment.viewOrHide();\r\n } else {\r\n console.error(error, file);\r\n }\r\n }\r\n}","import $ from \"jquery\";\r\nimport { Modal } from \"bootstrap\";\r\nimport { Question, Choice } from \"../models/configurator-question\";\r\n\r\ntype resolverCallbackType = (questions: Question[], activator: any) => void;\r\ntype rejectorCallbackType = (reason?: any) => void;\r\n\r\nexport default class CmsConfiguratorLauncher {\r\n private static modalInstance: Modal;\r\n private static rejector: rejectorCallbackType | null = null;\r\n private static resolver: resolverCallbackType | null = null;\r\n private static activator: any | null = null;\r\n\r\n public static init() {\r\n //$(document).on(\"submit\", \".js-product-order-box\", {}, CmsConfigurator.activateCmsConfigurator);\r\n $(document).on(\"click\", \"#cms-configurator-modal [data-bs-dismiss='modal']\", {}, CmsConfiguratorLauncher.closeCmsConfigurator);\r\n CmsConfiguratorLauncher.modalInstance = new Modal(\"#cms-configurator-modal\", { keyboard: false });\r\n }\r\n\r\n public static needsConfiguration($form: any): boolean {\r\n const data = $form.data(\"nt-configurator-json\");\r\n if (data == null || data === \"\") {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public static resolve(configuration: Question[]) {\r\n if (CmsConfiguratorLauncher.resolver != null) {\r\n CmsConfiguratorLauncher.resolver(configuration, CmsConfiguratorLauncher.activator);\r\n }\r\n }\r\n\r\n public static reject(reason?: any) {\r\n if (CmsConfiguratorLauncher.rejector != null) {\r\n CmsConfiguratorLauncher.rejector(reason);\r\n }\r\n }\r\n\r\n public static askConfiguration($form: any, quantity: number): Promise {\r\n return new Promise((resolve, reject) => {\r\n CmsConfiguratorLauncher.resolver = resolve;\r\n CmsConfiguratorLauncher.rejector = reject;\r\n CmsConfiguratorLauncher.activator = $form;\r\n\r\n const productId = $form.data(\"nt-product-id\");\r\n const data = $form.data(\"nt-configurator-json\");\r\n if (data == null || data === \"\") {\r\n CmsConfiguratorLauncher.rejector(\"Configuration n/a\");\r\n return;\r\n }\r\n\r\n document.getElementById(\"content\")?.dispatchEvent(\r\n new CustomEvent(\"setCmsConfiguratorData\", {\r\n detail: {\r\n pid: productId,\r\n data: data,\r\n quantity: quantity,\r\n activator: $form,\r\n launcher: CmsConfiguratorLauncher\r\n }\r\n })\r\n );\r\n\r\n CmsConfiguratorLauncher.modalInstance.show();\r\n });\r\n }\r\n\r\n public static askConfigurationEx(productId: number, quantity: number, configuration: any, $activator: any, isFromQuickOrder: boolean): Promise {\r\n return new Promise((resolve, reject) => {\r\n CmsConfiguratorLauncher.resolver = resolve;\r\n CmsConfiguratorLauncher.rejector = reject;\r\n CmsConfiguratorLauncher.activator = $activator;\r\n\r\n if (configuration == null) {\r\n CmsConfiguratorLauncher.rejector(\"Configuration n/a\");\r\n return;\r\n }\r\n\r\n document.getElementById(\"content\")?.dispatchEvent(\r\n new CustomEvent(\"setCmsConfiguratorData\", {\r\n detail: {\r\n pid: productId,\r\n data: configuration,\r\n quantity: quantity,\r\n activator: $activator,\r\n launcher: CmsConfiguratorLauncher\r\n }\r\n })\r\n );\r\n\r\n CmsConfiguratorLauncher.modalInstance.show();\r\n });\r\n }\r\n\r\n private static closeCmsConfigurator(event) {\r\n document.getElementById(\"content\")?.dispatchEvent(new CustomEvent(\"closeCmsConfigurator\", { detail: null }));\r\n if (CmsConfiguratorLauncher.rejector != null) {\r\n CmsConfiguratorLauncher.rejector(\"User closed the modal\");\r\n }\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport { format, parse } from \"date-fns\";\r\nimport Datepicker from \"js-datepicker\";\r\nimport { DatePickerData, DatePickerRegistration } from \"../models/date-picker\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\n\r\nexport default class CustomDatePicker {\r\n private static datePickerRegistrationList: Array = [];\r\n\r\n public static init() {\r\n $(`[data-nt-toggle=\"datepicker\"]`).each(function (index: number) {\r\n const $input = $(this);\r\n\r\n // add item to keep registration per datepicker\r\n const datePickerIdentifier: string | undefined = $input.prop(\"id\");\r\n\r\n if (typeof datePickerIdentifier === \"undefined\") {\r\n console.warn(`Missing identifier for this datepicker registration (${$input[0]})`)\r\n return;\r\n }\r\n\r\n CustomDatePicker.datePickerRegistrationList.push({\r\n identifier: datePickerIdentifier,\r\n inputObject: $input,\r\n instance: undefined,\r\n selectedDate: new Date(),\r\n allowedDateList: [],\r\n allowedTimeList: [],\r\n allowAllDates: false\r\n });\r\n\r\n const datePickerRegistration = CustomDatePicker.getDatePickerRegistration(datePickerIdentifier);\r\n\r\n if (typeof datePickerRegistration === \"undefined\") {\r\n console.warn(`Missing registration for this datepicker (${datePickerIdentifier})`)\r\n return;\r\n }\r\n\r\n CustomDatePicker.initRegistration(datePickerRegistration);\r\n })\r\n }\r\n\r\n public static log() {\r\n console.log(\"CustomDatePicker Registrations\");\r\n for (let r of CustomDatePicker.datePickerRegistrationList) {\r\n console.log(\"R\", r.identifier, r.selectedDate);\r\n }\r\n\r\n console.log(\"----------------------------------------------\");\r\n }\r\n\r\n public static getSelectedDate(identifier: string): Date | null {\r\n for (let r of CustomDatePicker.datePickerRegistrationList) {\r\n if (r.identifier === identifier) {\r\n return r.selectedDate;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n public static updateDates(data: DatePickerData, identifier: string) {\r\n const datePickerRegistration = CustomDatePicker.getDatePickerRegistration(identifier);\r\n\r\n if (typeof datePickerRegistration === \"undefined\") {\r\n console.warn(`Missing registration for this datepicker (${identifier})`)\r\n return;\r\n }\r\n\r\n // clear lists\r\n datePickerRegistration.allowedDateList.length = 0;\r\n datePickerRegistration.allowedTimeList.length = 0;\r\n\r\n for (let allowed of data.allowedDateList) {\r\n const allowedDate = CustomHelper.getDateFromString(allowed);\r\n datePickerRegistration.allowedDateList.push(allowedDate);\r\n datePickerRegistration.allowedTimeList.push(allowedDate.getTime());\r\n }\r\n\r\n if (data.allowedDateList.length == 0) {\r\n return;\r\n }\r\n\r\n // reset instance\r\n if (typeof datePickerRegistration.instance !== \"undefined\") {\r\n datePickerRegistration.instance.remove();\r\n }\r\n\r\n CustomDatePicker.initRegistration(datePickerRegistration);\r\n\r\n CustomDatePicker.setDatePickerDate(CustomHelper.getDateFromString(data.minDate), datePickerRegistration);\r\n\r\n datePickerRegistration.instance.setMin(CustomHelper.getDateFromString(data.minDate));\r\n datePickerRegistration.instance.setMax(CustomHelper.getDateFromString(data.maxDate));\r\n\r\n const initialDate = new Date(data.selectedDate);\r\n CustomDatePicker.setDatePickerDate(initialDate, datePickerRegistration);\r\n }\r\n\r\n public static clearDatePicker() {\r\n $(\"#transfer-date\").val(\"\");\r\n }\r\n\r\n private static initRegistration(datePickerRegistration: DatePickerRegistration) {\r\n // https://www.npmjs.com/package/js-datepicker\r\n const options = {\r\n startDay: 1,\r\n disableYearOverlay: true,\r\n disabler: (date: Date) => {\r\n if (datePickerRegistration.allowAllDates) {\r\n return false;\r\n }\r\n\r\n return $.inArray(date.getTime(), datePickerRegistration.allowedTimeList) === -1;\r\n },\r\n formatter: (input: any, date: Date, instance: any) => {\r\n input.value = format(date, \"dd/MM/yyyy\");\r\n },\r\n onSelect: (instance: any, date: Date) => {\r\n datePickerRegistration.selectedDate = instance.dateSelected;\r\n datePickerRegistration.inputObject.trigger(\"change\", instance.dateSelected);\r\n },\r\n };\r\n\r\n const firstDate = datePickerRegistration.inputObject.data(\"nt-datepicker-first\") as string;\r\n if (typeof firstDate !== \"undefined\" && firstDate.length > 0 && firstDate !== \"01/01/0001\" && firstDate !== \"31/12/9999\") {\r\n options[\"minDate\"] = parse(firstDate, \"dd/MM/yyyy\", new Date());\r\n }\r\n\r\n const lastDate = datePickerRegistration.inputObject.data(\"nt-datepicker-last\") as string;\r\n if (typeof lastDate !== \"undefined\" && lastDate.length > 0 && lastDate !== \"01/01/0001\" && lastDate !== \"31/12/9999\") {\r\n options[\"maxDate\"] = parse(lastDate, \"dd/MM/yyyy\", new Date());\r\n }\r\n\r\n const allowedAsJson = datePickerRegistration.inputObject.data(\"nt-datepicker-allowed\") as string;\r\n if (typeof allowedAsJson !== \"undefined\") {\r\n if (allowedAsJson === \"*\") {\r\n datePickerRegistration.allowAllDates = true;\r\n }\r\n else {\r\n for (let allowed of allowedAsJson) {\r\n const allowedDate = CustomHelper.getDateFromString(allowed);\r\n datePickerRegistration.allowedDateList.push(allowedDate);\r\n datePickerRegistration.allowedTimeList.push(allowedDate.getTime());\r\n }\r\n }\r\n }\r\n\r\n const datepickerSelector = `#${datePickerRegistration.inputObject.prop(\"id\")}`;\r\n datePickerRegistration.instance = Datepicker(datepickerSelector, options);\r\n\r\n const dateValue = datePickerRegistration.inputObject.val() as string;\r\n if (dateValue != \"\") {\r\n const parsedDateValue = parse(dateValue, \"dd/MM/yyyy\", new Date());\r\n CustomDatePicker.setDatePickerDate(parsedDateValue, datePickerRegistration);\r\n }\r\n\r\n const $datepickerIcon = datePickerRegistration.inputObject.closest(\".input-group\").find(`[type=\"button\"]`);\r\n $datepickerIcon.on(\"click\", (e: JQueryEventObject) => {\r\n e.stopPropagation();\r\n datePickerRegistration.instance.show();\r\n });\r\n\r\n datePickerRegistration.inputObject.on(\"change\", (e: JQueryEventObject) => {\r\n const dateValue = parse(datePickerRegistration.inputObject.val() as string, \"dd/MM/yyyy\", new Date());\r\n const isEarlierDate = dateValue < datePickerRegistration.instance.minDate;\r\n const isLaterDate = dateValue > datePickerRegistration.instance.maxDate;\r\n const isAllowed = datePickerRegistration.allowedTimeList.length == 0 || datePickerRegistration.allowedTimeList.includes(dateValue.getTime());\r\n if (isEarlierDate || isLaterDate || isAllowed === false) {\r\n datePickerRegistration.inputObject.val(\"\");\r\n } else {\r\n CustomDatePicker.setDatePickerDate(dateValue, datePickerRegistration);\r\n }\r\n });\r\n }\r\n\r\n private static getDatePickerRegistration(identifier: string): DatePickerRegistration | undefined {\r\n return CustomDatePicker.datePickerRegistrationList.find(i => i.identifier == identifier);\r\n }\r\n\r\n private static setDatePickerDate(value: Date, datePickerRegistration: DatePickerRegistration) {\r\n if (typeof value.getMonth !== 'function') {\r\n value = new Date(value);\r\n }\r\n\r\n try {\r\n datePickerRegistration.selectedDate = value;\r\n datePickerRegistration.instance.setDate(value, true);\r\n } catch (error) {\r\n // do nothing (throws exception when disabled date is set)\r\n console.error(error);\r\n }\r\n }\r\n}\r\n","import { MenuAim } from 'es6-menu-aim';\r\n\r\nexport default class CustomMenuAim {\r\n /** Uses ES6 module to initialize the menu-aim component. */\r\n public static initES6() {\r\n let menuAimConfig = {\r\n /** Function to call when a row is purposefully activated.\r\n * Use this to show a submenu's content for the activated row.*/\r\n activate: (targetRow) => {\r\n CustomMenuAim.closeAll();\r\n\r\n const toggleTarget = targetRow.dataset.menuAimTarget;\r\n if (typeof toggleTarget === \"undefined\") {\r\n return;\r\n }\r\n\r\n const toggleTargetElement = document.getElementById(toggleTarget) as HTMLElement;\r\n // console.log(\"activate\", toggleTargetElement);\r\n\r\n if (!toggleTargetElement) {\r\n return;\r\n }\r\n\r\n toggleTargetElement.classList.toggle(\"d-none\", false);\r\n toggleTargetElement.classList.toggle(\"d-block\", true);\r\n\r\n targetRow.querySelector(\"a\").classList.toggle(\"hover\", true);\r\n\r\n CustomMenuAim.reactivateParent(toggleTargetElement);\r\n },\r\n\r\n /** Function to call when a row is deactivated */\r\n deactivate: (targetRow) => {\r\n const toggleTarget = targetRow.dataset.menuAimTarget;\r\n if (typeof toggleTarget === \"undefined\") {\r\n return;\r\n }\r\n\r\n const toggleTargetElement = document.getElementById(toggleTarget) as HTMLElement;\r\n // console.log(\"deactivate\", toggleTargetElement);\r\n\r\n if (!toggleTargetElement) {\r\n return;\r\n }\r\n\r\n targetRow.querySelector(\"a\").classList.toggle(\"hover\", false);\r\n\r\n toggleTargetElement.classList.toggle(\"d-none\", true);\r\n toggleTargetElement.classList.toggle(\"d-block\", false);\r\n },\r\n\r\n /** Function to call when mouse enters a menu row.\r\n * Entering a row does not mean the row has been\r\n * activated, as the user may be mousing over to a submenu. */\r\n enter: (targetRow) => {\r\n const toggleTarget = targetRow.dataset.menuAimTarget;\r\n if (typeof toggleTarget === \"undefined\") {\r\n return;\r\n }\r\n\r\n // const toggleTargetElement = document.getElementById(toggleTarget) as HTMLElement;\r\n // console.log(\"enter\", toggleTargetElement);\r\n },\r\n\r\n /** Function to call when mouse exits a menu row. */\r\n exit: (targetRow) => {\r\n const toggleTarget = targetRow.dataset.menuAimTarget;\r\n if (typeof toggleTarget === \"undefined\") {\r\n return;\r\n }\r\n\r\n // const toggleTargetElement = document.getElementById(toggleTarget) as HTMLElement;\r\n // console.log(\"exit\", toggleTargetElement);\r\n },\r\n\r\n /** Function to call when mouse exits the entire menu. If this\r\n * returns true, the current row's deactivation event and\r\n * callback function will be fired. Otherwise, if this isn't\r\n * supplied or it returns false, the currently activated row\r\n * will stay activated when the mouse leaves the menu entirely. */\r\n exitMenu: (menuAimInstance) => { \r\n // console.log(\"exitMenu\"); \r\n },\r\n\r\n /** Function to call when a menu row is clicked */\r\n clickRow: (mouseEvent, targetRow) => { \r\n // console.log(\"clickRow\");\r\n },\r\n\r\n /** Selector for identifying which elements in the menu are rows\r\n * that can trigger the above events. Defaults to \"> li\". */\r\n ////rowSelector: \"> li\",\r\n\r\n /** You may have some menu rows that aren't submenus and therefore\r\n * shouldn't ever need to \"activate.\" If so, filter submenu rows\r\n * w/ this selector. Defaults to \"*\" (all elements). */\r\n ////submenuSelector: \"*\",\r\n\r\n /** Direction the submenu opens relative to the main menu.\r\n * This controls which direction is \"forgiving\" as the user\r\n * moves their cursor from the main menu into the submenu.\r\n * Can be one of \"right\", \"left\", \"above\", or \"below\".\r\n * Defaults to \"right\". */\r\n ////submenuDirection: \"right\",\r\n\r\n /** for how long should menu remain displayed after the mouse has left it */\r\n ////exitDelay: null,\r\n\r\n /** bigger = more forgiving when entering submenu */\r\n tolerance: 75,\r\n\r\n /** set it to TRUE if the menu is not nested within another menu */\r\n ////isRoot: false\r\n };\r\n\r\n const menuList = document.querySelectorAll(\".js-menu-aim\");\r\n const menuArray = Array.from(menuList);\r\n\r\n menuArray.forEach((menuItem) => {\r\n let menuElement = menuItem as HTMLElement;\r\n let menuAim = new MenuAim(menuItem as HTMLElement, menuAimConfig);\r\n\r\n let menuLinkList = menuElement.querySelectorAll(\"li\");\r\n let menuLinkArray = Array.from(menuLinkList);\r\n menuLinkArray.forEach(menuLinkItem => {\r\n if (menuLinkItem.hasAttribute(\"data-menu-aim-target\")) {\r\n menuAim.hookUp(menuLinkItem);\r\n }\r\n })\r\n })\r\n }\r\n\r\n /** Uses JQuery library to initialize the menu-aim component.\r\n * Add to the page when using it.\r\n */\r\n public static initJQuery() {\r\n const activate = targetRow => {\r\n CustomMenuAim.closeAll();\r\n\r\n const toggleTarget = targetRow.dataset.menuAimTarget;\r\n if (typeof toggleTarget === \"undefined\") {\r\n return;\r\n }\r\n\r\n const toggleTargetElement = document.getElementById(toggleTarget) as HTMLElement;\r\n // console.log(\"activate\", toggleTargetElement);\r\n\r\n if (!toggleTargetElement) {\r\n return;\r\n }\r\n\r\n toggleTargetElement.classList.toggle(\"d-none\", false);\r\n toggleTargetElement.classList.toggle(\"d-block\", true);\r\n \r\n targetRow.querySelector(\"a\").classList.toggle(\"hover\", true);\r\n\r\n CustomMenuAim.reactivateParent(toggleTargetElement);\r\n };\r\n\r\n const deactivate = targetRow => {\r\n const toggleTarget = targetRow.dataset.menuAimTarget;\r\n if (typeof toggleTarget === \"undefined\") {\r\n return;\r\n }\r\n\r\n const toggleTargetElement = document.getElementById(toggleTarget) as HTMLElement;\r\n // console.log(\"deactivate\", toggleTargetElement);\r\n\r\n if (!toggleTargetElement) {\r\n return;\r\n }\r\n\r\n toggleTargetElement.classList.toggle(\"d-none\", true);\r\n toggleTargetElement.classList.toggle(\"d-block\", false);\r\n \r\n targetRow.querySelector(\"a\").classList.toggle(\"hover\", false);\r\n };\r\n \r\n const enter = targetRow => {\r\n // console.log(\"enter\", targetRow);\r\n }\r\n \r\n const exit = targetRow => {\r\n // console.log(\"exit\", targetRow);\r\n }\r\n \r\n const $menuList = $(\"body\").find(\".js-menu-aim\");\r\n \r\n // @ts-ignore\r\n $menuList.menuAim({\r\n activate: activate,\r\n deactivate: deactivate,\r\n enter: enter,\r\n exit: exit,\r\n rowSelector: \"li[data-menu-aim-target]\",\r\n })\r\n }\r\n \r\n private static reactivateParent(toggleTargetElement: any) {\r\n const toggleParent = toggleTargetElement.dataset.menuAimParent;\r\n if (typeof toggleParent === \"undefined\") {\r\n return;\r\n }\r\n\r\n const toggleParentElement = document.getElementById(toggleParent) as HTMLElement;\r\n // console.log(\"reactivate parent\", toggleParentElement);\r\n\r\n if (!toggleParentElement) {\r\n return;\r\n }\r\n\r\n toggleParentElement.classList.toggle(\"d-none\", false);\r\n toggleParentElement.classList.toggle(\"d-block\", true);\r\n \r\n CustomMenuAim.reactivateParent(toggleParentElement);\r\n }\r\n \r\n private static closeAll() {\r\n const subMenuList = document.querySelectorAll(\".js-menu-aim-sub\");\r\n const subMenuArray = Array.from(subMenuList);\r\n\r\n subMenuArray.forEach((subMenuItem) => {\r\n subMenuItem.classList.toggle(\"d-none\", true);\r\n subMenuItem.classList.toggle(\"d-block\", false);\r\n })\r\n }\r\n}","import $ from \"jquery\";\r\nimport Swiper, { Autoplay, Navigation, Pagination, SwiperOptions } from 'swiper';\r\n\r\nexport default class CustomSwiper {\r\n \r\n public static init() {\r\n let bulletSwiperList = document.querySelectorAll(\"[data-nt-swiper='bullet']\");\r\n for (let i = 0; i < bulletSwiperList.length; i++) {\r\n const el = bulletSwiperList[i] as HTMLElement;\r\n const $el = $(el);\r\n\r\n // display just before initializing the component, to prevent non-swiper elements\r\n $el.toggleClass(\"d-none\", false);\r\n\r\n new Swiper(el, {\r\n direction: \"horizontal\",\r\n watchOverflow: true,\r\n pagination: {\r\n el: \".js-bullet-swiper-pagination\",\r\n clickable: true,\r\n },\r\n breakpoints: this.getSwiperBreakpointOptions($el),\r\n modules: [Pagination],\r\n });\r\n }\r\n\r\n let imageSwiperList = document.querySelectorAll(\"[data-nt-swiper='image']\");\r\n for (let i = 0; i < imageSwiperList.length; i++) {\r\n const el = imageSwiperList[i] as HTMLElement;\r\n const $el = $(el);\r\n\r\n // display just before initializing the component, to prevent non-swiper elements\r\n $el.toggleClass(\"d-none\", false);\r\n\r\n let imageList: string[] = [];\r\n\r\n $el\r\n .find(\".swiper-slide\")\r\n .find(\"img\")\r\n .each(function () {\r\n imageList.push($(this).prop(\"src\"));\r\n });\r\n\r\n new Swiper(el, {\r\n direction: \"horizontal\",\r\n watchOverflow: true,\r\n pagination: {\r\n el: \".js-image-swiper-pagination\",\r\n clickable: true,\r\n renderBullet: (index, className) => {\r\n return `\"\"`;\r\n },\r\n },\r\n breakpoints: this.getSwiperBreakpointOptions($el),\r\n modules: [Pagination],\r\n });\r\n }\r\n\r\n let navSwiperList = document.querySelectorAll(\"[data-nt-swiper='nav']\");\r\n for (let i = 0; i < navSwiperList.length; i++) {\r\n const el = navSwiperList[i] as HTMLElement;\r\n const $el = $(el);\r\n\r\n // display just before initializing the component, to prevent non-swiper elements\r\n $el.toggleClass(\"d-none\", false);\r\n\r\n new Swiper(el, {\r\n direction: \"horizontal\",\r\n watchOverflow: true,\r\n navigation: {\r\n prevEl: \".js-nav-swiper-button--prev\",\r\n nextEl: \".js-nav-swiper-button--next\",\r\n },\r\n breakpoints: this.getSwiperBreakpointOptions($el),\r\n modules: [Navigation],\r\n });\r\n }\r\n\r\n let touchSwiperList = document.querySelectorAll(\"[data-nt-swiper='touch']\");\r\n for (let i = 0; i < touchSwiperList.length; i++) {\r\n const el = touchSwiperList[i] as HTMLElement;\r\n const $el = $(el);\r\n\r\n // display just before initializing the component, to prevent non-swiper elements\r\n $el.toggleClass(\"d-none\", false);\r\n \r\n const options: SwiperOptions = {\r\n direction: \"horizontal\",\r\n watchOverflow: true,\r\n breakpoints: this.getSwiperBreakpointOptions($el),\r\n };\r\n \r\n const setAutoplay = $el.data(\"nt-swiper-autoplay\");\r\n \r\n if (setAutoplay) {\r\n options.autoplay = true,\r\n options.modules = [Autoplay];\r\n }\r\n\r\n new Swiper(el, options);\r\n }\r\n }\r\n\r\n private static getSwiperBreakpointOptions($el: JQuery): any {\r\n const setBreakpoints = $el.data(\"nt-swiper-breakpoints\");\r\n\r\n if (setBreakpoints) {\r\n const initialColumns = $el.data(\"nt-swiper-breakpoints-col\");\r\n\r\n if (initialColumns === 4) {\r\n return {\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 24,\r\n },\r\n 768: {\r\n slidesPerView: 2,\r\n spaceBetween: 24,\r\n },\r\n 992: {\r\n slidesPerView: 3,\r\n spaceBetween: 24,\r\n },\r\n 1200: {\r\n slidesPerView: 4,\r\n spaceBetween: 24,\r\n },\r\n };\r\n }\r\n\r\n if (initialColumns === 3) {\r\n return {\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 24,\r\n },\r\n 768: {\r\n slidesPerView: 2,\r\n spaceBetween: 24,\r\n },\r\n 992: {\r\n slidesPerView: 3,\r\n spaceBetween: 24,\r\n },\r\n };\r\n }\r\n\r\n if (initialColumns === 2) {\r\n return {\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 24,\r\n },\r\n 768: {\r\n slidesPerView: 2,\r\n spaceBetween: 24,\r\n },\r\n };\r\n }\r\n }\r\n\r\n // return default\r\n return {\r\n 0: {\r\n slidesPerView: 1,\r\n spaceBetween: 24,\r\n },\r\n };\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport axios, { AxiosError } from \"axios\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport { default as NatchGtm4, EventNamesSchema } from \"natch-gtm4\";\r\nimport Toaster from \"./toaster\";\r\n\r\nexport default class Favorite {\r\n static init() {\r\n $(\"body\").on(\"click\", `[data-nt-action=\"favorite-on-click\"]`, e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const $favoriteLink = $(e.currentTarget);\r\n const $favoriteIcon = $(e.currentTarget).find(\"i\");\r\n\r\n const postData = {\r\n productId: $favoriteLink.data(\"nt-product-id\") as number,\r\n isFavorite: $favoriteIcon.hasClass(\"far\")\r\n };\r\n\r\n axios\r\n .post($favoriteLink.prop(\"href\"), postData)\r\n .then((res) => res.data)\r\n .then((data: any) => {\r\n console.log(\"Product #\" + postData.productId + \" is updated to favorite \" + postData.isFavorite);\r\n $favoriteIcon.toggleClass(\"far fas\");\r\n\r\n Favorite.tryTrackAddToWishlist($favoriteLink);\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product.message.error.update-favorite\", \"Could not update favorite.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n });\r\n }\r\n\r\n private static tryTrackAddToWishlist($favoriteLink) {\r\n // Track in GA4\r\n let productDto = null;\r\n let $productContainer = $favoriteLink.closest(\".js-product-item\");\r\n if ($productContainer.length == 0) {\r\n $productContainer = $favoriteLink.closest(\".js-product-detail\");\r\n }\r\n\r\n if ($productContainer.length == 0) {\r\n console.warn(\"No product container found\");\r\n return;\r\n }\r\n\r\n productDto = $productContainer.data(\"datalayer-list-item\");\r\n\r\n if (productDto == null) {\r\n productDto = $productContainer.data(\"datalayer-detail\");\r\n }\r\n\r\n if (productDto != null) {\r\n const natchGtm4 = new NatchGtm4(EventNamesSchema.OfficialGA4);\r\n natchGtm4.trackAddToFavorites(productDto);\r\n }\r\n }\r\n}","import $ from \"jquery\";\r\nimport { Modal } from \"bootstrap\";\r\n\r\nexport default class ListSelector {\r\n static modalInstance: Modal;\r\n\r\n public static init() {\r\n $(document).on(\"click\", \".js-list-selector--activator\", {}, ListSelector.activateListSelector);\r\n $(document).on(\"click\", \"#list-selector-modal [data-bs-dismiss='modal']\", {}, ListSelector.closeListSelector);\r\n ListSelector.modalInstance = new Modal(\"#list-selector-modal\", { keyboard: false });\r\n }\r\n\r\n private static closeListSelector(event) {\r\n document.getElementById(\"content\")?.dispatchEvent(new CustomEvent(\"closeListSelector\", { detail: null }));\r\n }\r\n\r\n private static activateListSelector(event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n const $activator = $(this);\r\n \r\n const productId = $activator.data(\"nt-product-id\");\r\n const childSelector = $activator.data(\"nt-list-selector-children\");\r\n\r\n let q = $activator.data(\"q\");\r\n if (typeof q === \"undefined\") {\r\n q = null;\r\n }\r\n\r\n let qref = $activator.data(\"qref\");\r\n if (typeof qref === \"undefined\") {\r\n qref = null;\r\n }\r\n\r\n // console.log({\r\n // pid: productId,\r\n // q: q,\r\n // qref: qref,\r\n // childSelector: childSelector,\r\n // activator: $activator\r\n // });\r\n\r\n document.getElementById(\"content\")?.dispatchEvent(\r\n new CustomEvent(\"setListSelectorProductId\", {\r\n detail: {\r\n pid: productId,\r\n qref: qref,\r\n q: q,\r\n childSelector: childSelector,\r\n activator: $activator\r\n }\r\n })\r\n );\r\n\r\n ListSelector.modalInstance.show();\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport axios, { AxiosError } from \"axios\";\r\nimport CustomDatePicker from \"../components/custom-date-picker\";\r\nimport Toaster from \"../components/toaster\";\r\nimport { TransferDateData } from \"../models/basket\";\r\nimport { DatePickerData } from \"../models/date-picker\";\r\nimport { BootstrapBreakpoint } from \"../models/enums\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport ActionUrls from \"../utils/action-urls\";\r\n\r\nenum SiteCodes {\r\n Deschacht = \"schac\",\r\n Foylo = \"foylo\",\r\n Lsdrain = \"lns\",\r\n Mpp = \"mpp\",\r\n Domspro = \"domsp\",\r\n Outilac = \"outil\",\r\n OutilacFR = \"outfr\",\r\n Technicel = \"techn\",\r\n};\r\n\r\nexport default class Checkout {\r\n private static DatesAvailableSelector: string = \".js-checkout-transfer-date--available\";\r\n private static DatesNotAvailableDeliverySelector: string = \".js-checkout-delivery-transfer-date--not-available\";\r\n private static DatesNotAvailablePickupSelector: string = \".js-checkout-pickup-transfer-date--not-available\";\r\n\r\n private static DeliveryAdviceSelector: string = \".js-checkout-information--delivery-advice\";\r\n private static TransferTypeSelector: string = \".js-checkout-information--transfer-type\";\r\n\r\n private static TransferSubTypeSelector: string = \".js-checkout-information--transfer-subtype\";\r\n\r\n private static CheckoutTotalsSelector: string = \".js-checkout-totals\";\r\n\r\n public static init() {\r\n Checkout.initClearBasket();\r\n Checkout.initChangeTransferType();\r\n Checkout.initChangeDeliveryAdvice();\r\n Checkout.initChangeDeliveryAddress();\r\n Checkout.initChangeContact();\r\n Checkout.initCheckoutButtonHandler();\r\n Checkout.initStoreDeliveryOption();\r\n Checkout.initDatepickerChange();\r\n\r\n // Initial setting of options:\r\n Checkout.handleStoreDeliveryAddressChange(null);\r\n\r\n if (Checkout.currentStep() === 2) {\r\n setTimeout(() => { Checkout.updateTransferDatesReal(); }, 500);\r\n }\r\n }\r\n\r\n public static deleteBasketLines(basketLineIdList: Array) {\r\n for (let basketLineId of basketLineIdList) {\r\n const $basketLine = $(`.js-checkout-basket-line[data-nt-basket-line-id=\"${basketLineId}\"]`)\r\n $basketLine.remove();\r\n }\r\n }\r\n\r\n public static setLineCount(lineCount: number) {\r\n $(\".js-checkout-order-box--basket-line-count\").text(lineCount);\r\n }\r\n\r\n public static updateBasketTotals(needRefresh: boolean) {\r\n if (needRefresh) {\r\n document.location.reload();\r\n return;\r\n }\r\n\r\n $(Checkout.CheckoutTotalsSelector).toggleClass(\"nt-blur-3\", true);\r\n\r\n const url = ActionUrls.getUrl(\"get-checkout-totals\") + `?step=${Checkout.currentStep()}`;\r\n\r\n axios\r\n .get(url)\r\n .then((res) => res.data)\r\n .then((data: any) => {\r\n const $full = $(\"
\").append(data);\r\n const newContent = $full.find(Checkout.CheckoutTotalsSelector);\r\n\r\n if (typeof newContent.html() === \"undefined\") {\r\n toastr.error(Multilang.getTranslation(\"checkout.message.error.update-info\", \"Could not update info.\"));\r\n return;\r\n }\r\n\r\n $(Checkout.CheckoutTotalsSelector).html(newContent.html());\r\n }).catch((err) => {\r\n Toaster.showAxiosMessage(err, Multilang.getTranslation(\"checkout.message.error.update-info\", \"Could not update info.\"));\r\n }).finally(() => {\r\n $(Checkout.CheckoutTotalsSelector).toggleClass(\"nt-blur-3\", false);\r\n });\r\n }\r\n\r\n public static updateBasketLineInfo(basketLineId: number, newLinePriceGross: string | null, newLinePriceNet: string | null, newQuantity: number | null) {\r\n const $basketLine = $(`.js-checkout-basket-line[data-nt-basket-line-id=\"${basketLineId}\"]`);\r\n\r\n if ($basketLine.length === 0) {\r\n return;\r\n }\r\n\r\n if (newLinePriceGross !== null) {\r\n const $displayLinePriceGross = $basketLine.find(\".js-checkout-basket-line--line-price-gross\");\r\n $displayLinePriceGross.text(newLinePriceGross as string);\r\n }\r\n\r\n if (newLinePriceNet !== null) {\r\n const $displayLinePriceNet = $basketLine.find(\".js-checkout-basket-line--line-price-net\");\r\n $displayLinePriceNet.text(newLinePriceNet as string);\r\n }\r\n\r\n if (newQuantity !== null) {\r\n const $inputQuantity = $basketLine.find(\".js-product-order-box--order-quantity\");\r\n $inputQuantity.val(newQuantity);\r\n $inputQuantity.data(\"nt-original-quantity\", newQuantity);\r\n }\r\n\r\n // check for gross price visibility (when equal to net price)\r\n if (newLinePriceNet !== null && newLinePriceGross !== null) {\r\n const $linePriceGrossContainer: JQuery = $basketLine.find(\".js-checkout-basket-line--line-price-gross-container\");\r\n $linePriceGrossContainer.toggleClass(\"d-none\", newLinePriceNet === newLinePriceGross);\r\n }\r\n }\r\n\r\n private static currentStep(): number {\r\n const $indicator = $(\".js-checkout-step-indicator\");\r\n\r\n if ($indicator.length != 1) {\r\n // console.warn(\"Step Indicator not found\");\r\n return 0;\r\n }\r\n\r\n return $indicator.data(\"nt-step\") as number;\r\n }\r\n\r\n private static initCheckoutButtonHandler() {\r\n const spinner = \"
Loading...
\";\r\n // disable the buttons once one is clicked to prevent double-clicks\r\n if (Checkout.currentStep() === 3 || Checkout.currentStep() === 1) {\r\n const $form = $(Checkout.CheckoutTotalsSelector).closest(\"form\");\r\n $form.on(\"submit\", () => { $(Checkout.CheckoutTotalsSelector + \" button\").prop(\"disabled\", true).html(spinner); });\r\n }\r\n else if (Checkout.currentStep() === 2) {\r\n const $form = $(Checkout.CheckoutTotalsSelector).closest(\"form\");\r\n $form.on(\"submit\", () => {\r\n $form.validate();\r\n if ($form.valid()) {\r\n $(Checkout.CheckoutTotalsSelector + \" button\").prop(\"disabled\", true).html(spinner);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private static initClearBasket() {\r\n $(\"body\").on(\"click\", \".js-checkout--clear-basket\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const $clearLink = $(e.currentTarget);\r\n\r\n bootbox.confirm({\r\n message: Multilang.getTranslation(\"checkout.label.clear-basket\", \"Wenst u het winkelmandje te verwijderen?\"),\r\n buttons: {\r\n confirm: {\r\n label: Multilang.getTranslation(\"checkout.action.confirm-clear-basket\", \"Verwijderen\"),\r\n className: 'btn-primary'\r\n },\r\n cancel: {\r\n label: Multilang.getTranslation(\"checkout.action.cancel-clear-basket\", \"Annuleren\"),\r\n className: 'btn-secondary'\r\n }\r\n },\r\n callback: (result: boolean) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n axios\r\n .post($clearLink.prop(\"href\") as string)\r\n .then((res) => res.data)\r\n .then((data: any) => {\r\n document.location.reload();\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"checkout.message.error.clear-basket\", \"Could not clear basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private static initChangeDeliveryAdvice() {\r\n $(\".js-checkout-information\").on(\"change\", Checkout.DeliveryAdviceSelector, Checkout.updateDeliveryAdvice);\r\n }\r\n\r\n private static initChangeTransferType() {\r\n $(\".js-checkout-information\").on(\"change\", Checkout.TransferTypeSelector, Checkout.updateTransferType);\r\n }\r\n\r\n private static updateDeliveryAdvice(e) {\r\n Checkout.updateTransferDates(e);\r\n }\r\n\r\n private static updateTransferType(e) {\r\n Checkout.updateTransferDates(e);\r\n }\r\n\r\n private static updateTransferDates(e) {\r\n const $transferType = $(Checkout.TransferTypeSelector);\r\n const $transferTypeSelection = $transferType.find(\"option:selected\");\r\n\r\n const $deliveryAddress = $(\".js-checkout-information--delivery-address\");\r\n const $pickupAddress = $(\".js-checkout-information--pickup-address\");\r\n\r\n const $deliveryDateTitle = $(\".js-checkout-transferdate--title-delivery\");\r\n const $pickupDateTitle = $(\".js-checkout-transferdate--title-pickup\");\r\n\r\n const transferTypeDefinition = $transferTypeSelection.data(\"nt-transfer-type-definition\");\r\n\r\n if (transferTypeDefinition === \"Delivery\") {\r\n Checkout.updateDeliveryAddress($deliveryAddress, $pickupAddress);\r\n $pickupDateTitle.toggleClass(\"d-none\", true);\r\n $deliveryDateTitle.toggleClass(\"d-none\", false);\r\n }\r\n else if (transferTypeDefinition === \"Pickup\") {\r\n Checkout.updatePickupAddress($transferTypeSelection, $deliveryAddress, $pickupAddress);\r\n $deliveryDateTitle.toggleClass(\"d-none\", true);\r\n $pickupDateTitle.toggleClass(\"d-none\", false);\r\n }\r\n\r\n Checkout.updateTransferDatesReal();\r\n }\r\n\r\n private static initChangeDeliveryAddress() {\r\n const $checkoutInformation = $(\".js-checkout-information\");\r\n\r\n $checkoutInformation.on(\"change\", \".js-checkout-information--delivery-address-option\", e => {\r\n const $deliveryAddressOption = $(e.currentTarget);\r\n const $deliveryAddressSelection = $deliveryAddressOption.find(\"option:selected\");\r\n\r\n const nameTarget = \".js-checkout-information--delivery-address-name\";\r\n const streetTarget = \".js-checkout-information--delivery-address-street\";\r\n const postalCodeTarget = \".js-checkout-information--delivery-address-postal-code\";\r\n const cityTarget = \".js-checkout-information--delivery-address-city\";\r\n const countryTarget = \".js-checkout-information--delivery-address-country\";\r\n const languageTarget = \".js-checkout-information--delivery-address-language\";\r\n const phoneTarget = \".js-checkout-information--delivery-address-phone\";\r\n const emailTarget = \".js-checkout-information--delivery-address-email\";\r\n\r\n Checkout.resetInfoField(nameTarget);\r\n Checkout.resetInfoField(streetTarget);\r\n Checkout.resetInfoField(postalCodeTarget);\r\n Checkout.resetInfoField(cityTarget);\r\n Checkout.resetInfoField(countryTarget);\r\n Checkout.resetInfoField(languageTarget);\r\n Checkout.resetInfoField(phoneTarget);\r\n Checkout.resetInfoField(emailTarget);\r\n\r\n const infoAsJson = $deliveryAddressSelection.data(\"nt-info\") as string;\r\n if (typeof infoAsJson === \"undefined\") {\r\n return;\r\n }\r\n\r\n Checkout.setInfoField(nameTarget, infoAsJson[\"name\"], infoAsJson[\"name\"]);\r\n Checkout.setInfoField(streetTarget, infoAsJson[\"street\"], infoAsJson[\"street\"]);\r\n Checkout.setInfoField(postalCodeTarget, infoAsJson[\"postalCode\"], infoAsJson[\"postalCode\"]);\r\n Checkout.setInfoField(cityTarget, infoAsJson[\"city\"], infoAsJson[\"city\"]);\r\n Checkout.setInfoField(countryTarget, infoAsJson[\"countryId\"], infoAsJson[\"countryName\"]);\r\n Checkout.setInfoField(languageTarget, infoAsJson[\"languageId\"], infoAsJson[\"languageName\"]);\r\n Checkout.setInfoField(phoneTarget, infoAsJson[\"phone\"], infoAsJson[\"phone\"]);\r\n Checkout.setInfoField(emailTarget, infoAsJson[\"email\"], infoAsJson[\"email\"]);\r\n\r\n Checkout.updateTransferDatesReal();\r\n });\r\n\r\n $checkoutInformation.on(\"change\", \".js-checkout-information--delivery-address-postal-code--input\", e => {\r\n Checkout.updateTransferDatesReal();\r\n });\r\n\r\n $checkoutInformation.on(\"change\", \".js-checkout-information--delivery-address-postal-country--input\", e => {\r\n Checkout.updateTransferDatesReal();\r\n });\r\n }\r\n\r\n private static initChangeContact() {\r\n $(\".js-checkout-information\").on(\"change\", \".js-checkout-information--contact-option\", e => {\r\n const $contactOption = $(e.currentTarget);\r\n const $contactSelection = $contactOption.find(\"option:selected\");\r\n\r\n const firstNameTarget = \".js-checkout-information--contact-first-name\";\r\n const lastNameTarget = \".js-checkout-information--contact-last-name\";\r\n const phoneTarget = \".js-checkout-information--contact-phone\";\r\n const mobileTarget = \".js-checkout-information--contact-mobile\";\r\n const genderTarget = \".js-checkout-information--contact-gender\";\r\n const emailTarget = \".js-checkout-information--contact-email\";\r\n const languageTarget = \".js-checkout-information--contact-language\";\r\n const functionTarget = \".js-checkout-information--contact-function\";\r\n\r\n Checkout.resetInfoField(firstNameTarget);\r\n Checkout.resetInfoField(lastNameTarget);\r\n Checkout.resetInfoField(phoneTarget);\r\n Checkout.resetInfoField(mobileTarget);\r\n Checkout.resetInfoField(genderTarget);\r\n Checkout.resetInfoField(emailTarget);\r\n Checkout.resetInfoField(languageTarget);\r\n Checkout.resetInfoField(functionTarget);\r\n\r\n const infoAsJson = $contactSelection.data(\"nt-info\") as string;\r\n if (typeof infoAsJson === \"undefined\") {\r\n return;\r\n }\r\n\r\n Checkout.setInfoField(firstNameTarget, infoAsJson[\"firstName\"], infoAsJson[\"firstName\"]);\r\n Checkout.setInfoField(lastNameTarget, infoAsJson[\"lastName\"], infoAsJson[\"lastName\"]);\r\n Checkout.setInfoField(phoneTarget, infoAsJson[\"phone\"], infoAsJson[\"phone\"]);\r\n Checkout.setInfoField(mobileTarget, infoAsJson[\"mobile\"], infoAsJson[\"mobile\"]);\r\n Checkout.setInfoField(genderTarget, infoAsJson[\"genderId\"], infoAsJson[\"genderName\"]);\r\n Checkout.setInfoField(emailTarget, infoAsJson[\"email\"], infoAsJson[\"email\"]);\r\n Checkout.setInfoField(languageTarget, infoAsJson[\"languageId\"], infoAsJson[\"languageName\"]);\r\n Checkout.setInfoField(functionTarget, infoAsJson[\"functionId\"], infoAsJson[\"functionName\"]);\r\n });\r\n }\r\n\r\n private static initStoreDeliveryOption() {\r\n // read from local storage\r\n $(\".js-checkout-information--delivery-address-option\").on(\"change\", Checkout.handleStoreDeliveryAddressChange);\r\n\r\n // register listener\r\n $(\".js-checkout-delivery-option\").on(\"click\", Checkout.handleStoreDeliveryOption);\r\n }\r\n\r\n private static handleStoreDeliveryAddressChange(e) {\r\n if ($(\".js-checkout-information--delivery-address-option\").length === 0) {\r\n return;\r\n }\r\n\r\n const deliveryAddressId = $(\".js-checkout-information--delivery-address-option\").val();\r\n\r\n const craneOption = window.localStorage.getItem(\"crane\" + deliveryAddressId);\r\n const forkliftOption = window.localStorage.getItem(\"forklift\" + deliveryAddressId);\r\n const trailerOption = window.localStorage.getItem(\"trailer\" + deliveryAddressId);\r\n const cranetruckOption = window.localStorage.getItem(\"cranetruck\" + deliveryAddressId);\r\n const truckmountedforkliftOption = window.localStorage.getItem(\"truckmountedforklift\" + deliveryAddressId);\r\n\r\n function setRadios(radioName: string, value: string | null) {\r\n let selector = `input[name='${radioName}']`;\r\n\r\n if (value === null) {\r\n $(selector).prop('checked', false);\r\n } else if (value === \"false\" || value === \"true\") {\r\n selector = `input[name='${radioName}'][value='${value}']`;\r\n $(selector).prop('checked', true);\r\n } else if (craneOption === \"true\") {\r\n $(selector).prop('checked', false);\r\n }\r\n }\r\n\r\n setRadios(\"CraneAvailable\", craneOption);\r\n setRadios(\"ForkliftAvailable\", forkliftOption);\r\n setRadios(\"AccessibleForTrailer\", trailerOption);\r\n setRadios(\"CraneTruckNeeded\", cranetruckOption);\r\n setRadios(\"TruckMountedForkliftNeeded\", truckmountedforkliftOption);\r\n }\r\n\r\n private static handleStoreDeliveryOption(e) {\r\n // clicked on one of the radio buttons\r\n const $target = $(e.currentTarget);\r\n const id = $target[0].id;\r\n let value = $target.val();\r\n const deliveryAddressId = $(\".js-checkout-information--delivery-address-option\").val();\r\n if (deliveryAddressId === \"\") {\r\n return;\r\n }\r\n\r\n value = typeof value === \"undefined\" ? \"\" : value?.toString();\r\n\r\n if (id.indexOf(\"cranetruck\") > -1) {\r\n window.localStorage.setItem(\"cranetruck\" + deliveryAddressId, value);\r\n }\r\n else if (id.indexOf(\"mounted\") > -1) {\r\n window.localStorage.setItem(\"truckmountedforklift\" + deliveryAddressId, value);\r\n }\r\n else if (id.indexOf(\"crane\") > -1) {\r\n window.localStorage.setItem(\"crane\" + deliveryAddressId, value);\r\n }\r\n else if (id.indexOf(\"forklift\") > -1) {\r\n window.localStorage.setItem(\"forklift\" + deliveryAddressId, value);\r\n }\r\n else if (id.indexOf(\"trailer\") > -1) {\r\n window.localStorage.setItem(\"trailer\" + deliveryAddressId, value);\r\n }\r\n }\r\n\r\n private static resetInfoField(target: string) {\r\n const $input = $(`${target}--input`);\r\n const $readonly = $(`${target}--readonly`);\r\n\r\n $input.val(\"\");\r\n $readonly.text(\"\");\r\n\r\n $input.toggleClass(\"d-none\", false);\r\n $input.toggleClass(\"d-block\", true);\r\n\r\n $readonly.toggleClass(\"d-none\", true);\r\n $readonly.toggleClass(\"d-block\", false);\r\n }\r\n\r\n private static setInfoField(target: string, value: string, text: string) {\r\n const $input = $(`${target}--input`);\r\n const $readonly = $(`${target}--readonly`);\r\n\r\n $input.val(value);\r\n $readonly.html(text ?? \"—\");\r\n\r\n $input.toggleClass(\"d-none\", true);\r\n $input.toggleClass(\"d-block\", false);\r\n\r\n $readonly.toggleClass(\"d-none\", false);\r\n $readonly.toggleClass(\"d-block\", true);\r\n }\r\n\r\n private static updateDeliveryAddress($deliveryAddress: any, $pickupAddress: any) {\r\n $deliveryAddress.toggleClass(\"d-none\", false);\r\n $deliveryAddress.toggleClass(\"d-block\", true);\r\n\r\n $pickupAddress.toggleClass(\"d-none\", true);\r\n $pickupAddress.toggleClass(\"d-block\", false);\r\n }\r\n\r\n private static isSameDate(thisDate, trad) {\r\n var ret = false;\r\n\r\n if (\r\n trad.getFullYear() === thisDate.getFullYear() &&\r\n trad.getMonth() === thisDate.getMonth() &&\r\n trad.getDate() === thisDate.getDate()\r\n ) {\r\n ret = true;\r\n }\r\n\r\n return ret;\r\n }\r\n\r\n private static updatePickupAddress($transferTypeSelection: any, $deliveryAddress: any, $pickupAddress: any) {\r\n $deliveryAddress.toggleClass(\"d-none\", true);\r\n $deliveryAddress.toggleClass(\"d-block\", false);\r\n\r\n $pickupAddress.toggleClass(\"d-none\", false);\r\n $pickupAddress.toggleClass(\"d-block\", true);\r\n\r\n const pickupAddressAsJson = $transferTypeSelection.data(\"nt-pickup-address\") as string;\r\n if (typeof pickupAddressAsJson === \"undefined\") {\r\n return;\r\n }\r\n\r\n $(\".js-checkout-information--pickup-address-name\").text(pickupAddressAsJson[\"name\"]);\r\n $(\".js-checkout-information--pickup-address-street\").text(pickupAddressAsJson[\"street\"]);\r\n $(\".js-checkout-information--pickup-address-city\").text(pickupAddressAsJson[\"city\"]);\r\n $(\".js-checkout-information--pickup-address-country\").text(pickupAddressAsJson[\"countryName\"]);\r\n }\r\n\r\n private static initDatepickerChange() {\r\n $(\"#transfer-date\").on(\"change\", Checkout.updateTransferTime);\r\n Checkout.updateTransferTime(null, null);\r\n }\r\n\r\n private static updateTransferTime(e, newDate: Date | null) {\r\n const selector = \".js-checkout-info--transfer-time\";\r\n\r\n const $transferType = $(Checkout.TransferTypeSelector);\r\n const $transferTypeSelection = $transferType.find(\"option:selected\");\r\n const transferTypeDefinition = $transferTypeSelection.data(\"nt-transfer-type-definition\");\r\n\r\n // hide all to reduct flickering\r\n $(\".js-pickup-time--saturday\").toggle(false);\r\n $(\".js-pickup-time--from8h\").toggle(false);\r\n $(\".js-pickup-time--from9h\").toggle(false);\r\n $(\".js-pickup-time--from13h\").toggle(false);\r\n $(\".js-pickup-time--from14h\").toggle(false);\r\n $(\".js-pickup-time--from15h\").toggle(false);\r\n $(\".js-pickup-time--from17h30\").toggle(false);\r\n\r\n if (transferTypeDefinition === \"Delivery\") {\r\n $(\".js-checkout-info--transfer-time\").removeClass(\"d-block\");\r\n $(\".js-checkout-info--transfer-time\").addClass(\"d-none\");\r\n return;\r\n }\r\n\r\n if (newDate == null) {\r\n newDate = CustomDatePicker.getSelectedDate(\"transfer-date\");\r\n }\r\n\r\n if (newDate == null) {\r\n $(\".js-checkout-info--transfer-time\").removeClass(\"d-block\");\r\n $(\".js-checkout-info--transfer-time\").addClass(\"d-none\");\r\n return;\r\n }\r\n\r\n $(\".js-checkout-info--transfer-time\").removeClass(\"d-none\");\r\n $(\".js-checkout-info--transfer-time\").addClass(\"d-block\");\r\n\r\n let showSaterday = false;\r\n let showFrom8h = false;\r\n let showFrom9h = false;\r\n let showFrom14h = false;\r\n let showFrom13h = false;\r\n let showFrom15h = false;\r\n let showFrom17h30 = false;\r\n\r\n var today = new Date();\r\n var tomorrow = new Date();\r\n tomorrow.setDate(tomorrow.getDate() + 1);\r\n\r\n type Window = { storeFrontCode: SiteCodes };\r\n var currentWindow = window as unknown as Window;\r\n\r\n if (currentWindow.storeFrontCode == SiteCodes.Technicel) {\r\n if (Checkout.isSameDate(newDate, today)) {\r\n if (today.getHours() >= 17) {\r\n showFrom8h = true;\r\n }\r\n else if (today.getHours() >= 12) {\r\n showFrom17h30 = true;\r\n }\r\n else if (today.getHours() >= 8) {\r\n showFrom15h = true;\r\n }\r\n else {\r\n showFrom13h = true;\r\n }\r\n }\r\n else {\r\n showFrom9h = true;\r\n }\r\n }\r\n else {\r\n if (newDate.getUTCDay() === 5) {\r\n showSaterday = true;\r\n showFrom14h = false;\r\n showFrom8h = false;\r\n } else {\r\n showSaterday = false;\r\n showFrom14h = false;\r\n showFrom8h = false;\r\n\r\n if ((today.getHours() < 12 || (today.getHours() === 12 && today.getMinutes() === 0 && today.getSeconds() === 0)) && Checkout.isSameDate(newDate, today)) {\r\n showFrom14h = true;\r\n }\r\n else {\r\n showFrom8h = true;\r\n }\r\n }\r\n }\r\n\r\n //// console.log(showSaterday, showFrom8h, showFrom14h);\r\n $(\".js-pickup-time--saturday\").toggle(showSaterday);\r\n $(\".js-pickup-time--from8h\").toggle(showFrom8h);\r\n $(\".js-pickup-time--from9h\").toggle(showFrom9h);\r\n $(\".js-pickup-time--from13h\").toggle(showFrom13h);\r\n $(\".js-pickup-time--from14h\").toggle(showFrom14h);\r\n $(\".js-pickup-time--from15h\").toggle(showFrom15h);\r\n $(\".js-pickup-time--from17h30\").toggle(showFrom17h30);\r\n }\r\n\r\n private static updateTransferDatesReal() {\r\n const $deliveryAdvice = $(Checkout.DeliveryAdviceSelector);\r\n let $deliveryAdviceSelection = $deliveryAdvice.find(\"option:selected\");\r\n\r\n if ($deliveryAdviceSelection.length == 0) {\r\n $deliveryAdviceSelection = $deliveryAdvice;\r\n }\r\n\r\n const $transferType = $(Checkout.TransferTypeSelector);\r\n let $transferTypeSelection = $transferType.find(\"option:selected\");\r\n\r\n\r\n if ($transferTypeSelection.length == 0) {\r\n $transferTypeSelection = $transferType;\r\n }\r\n\r\n const deliveryAdviceId = $deliveryAdviceSelection.val() as number;\r\n const transferTypeId = $transferTypeSelection.val() as number;\r\n\r\n console.log(\" TransferType \", transferTypeId);\r\n\r\n // NOTE: if transferTypeId == -1 then delivery else pickup, and transferTypeId is actually the transferSubType\r\n\r\n let postalCode = $(\".js-checkout-information--delivery-address-postal-code--input\").val() as string;\r\n const countryId = $(\".js-checkout-information--delivery-address-country--input\").val() as number;\r\n if (postalCode === \"undefined\") {\r\n postalCode = \"\";\r\n }\r\n\r\n const qs = `postalCode=${postalCode}&countryId=${countryId}&deliveryAdviceId=${deliveryAdviceId}&transferTypeId=${transferTypeId}`\r\n if ((typeof postalCode === \"undefined\") ||\r\n (typeof deliveryAdviceId === \"undefined\") ||\r\n (typeof transferTypeId === \"undefined\") ||\r\n (typeof countryId === \"undefined\")) {\r\n return;\r\n }\r\n\r\n const url = ActionUrls.getUrl(\"get-transfer-date-data\") + \"?\" + qs;\r\n\r\n axios\r\n .get(url)\r\n .then((res) => res.data)\r\n .then((data: TransferDateData) => {\r\n const datePickerData: DatePickerData = {\r\n selectedDate: data.transferDate,\r\n minDate: data.firstTransferDate,\r\n maxDate: data.lastTransferDate,\r\n allowedDateList: data.allowedTransferDateList\r\n }\r\n\r\n $(Checkout.TransferSubTypeSelector).val(data.transferSubTypeId);\r\n\r\n if (data.allowedTransferDateList.length == 0) {\r\n $(Checkout.DatesAvailableSelector).toggleClass(\"d-none\", true);\r\n $(Checkout.DatesAvailableSelector).toggleClass(\"d-block\", false);\r\n\r\n if (+transferTypeId === -1) {\r\n // Delivery\r\n console.log(\"delivery\");\r\n $(Checkout.DatesNotAvailableDeliverySelector).toggleClass(\"d-block\", true);\r\n $(Checkout.DatesNotAvailableDeliverySelector).toggleClass(\"d-none\", false);\r\n\r\n $(Checkout.DatesNotAvailablePickupSelector).toggleClass(\"d-block\", false);\r\n $(Checkout.DatesNotAvailablePickupSelector).toggleClass(\"d-none\", true);\r\n }\r\n else {\r\n // Pickup\r\n console.log(\"oickup\");\r\n $(Checkout.DatesNotAvailablePickupSelector).toggleClass(\"d-block\", true);\r\n $(Checkout.DatesNotAvailablePickupSelector).toggleClass(\"d-none\", false);\r\n\r\n $(Checkout.DatesNotAvailableDeliverySelector).toggleClass(\"d-block\", false);\r\n $(Checkout.DatesNotAvailableDeliverySelector).toggleClass(\"d-none\", true);\r\n }\r\n\r\n CustomDatePicker.clearDatePicker();\r\n }\r\n else {\r\n CustomDatePicker.updateDates(datePickerData, \"transfer-date\");\r\n\r\n $(Checkout.DatesAvailableSelector).toggleClass(\"d-none\", false);\r\n $(Checkout.DatesAvailableSelector).toggleClass(\"d-block\", true);\r\n\r\n $(Checkout.DatesNotAvailablePickupSelector).toggleClass(\"d-block\", false);\r\n $(Checkout.DatesNotAvailablePickupSelector).toggleClass(\"d-none\", true);\r\n\r\n $(Checkout.DatesNotAvailableDeliverySelector).toggleClass(\"d-block\", false);\r\n $(Checkout.DatesNotAvailableDeliverySelector).toggleClass(\"d-none\", true);\r\n }\r\n\r\n Checkout.updateTransferTime(null, null);\r\n\r\n }).catch((err) => {\r\n console.error(err);\r\n\r\n const defaultMessage = Multilang.getTranslation(\"checkout.message.error.update-transfer-dates\", \"Could not update transfer dates.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n Checkout.updateBasketTotals(false);\r\n });\r\n }\r\n}\r\n","interface String {\r\n toArray: any;\r\n toToastrMessageType(): string;\r\n}\r\n\r\nString.prototype.toArray = function() {\r\n return (this as string).replace(/\\[|\\]/g,'').split(',') as Array;\r\n}\r\n\r\nString.prototype.toToastrMessageType = function() {\r\n const messageTypeList = {\r\n \"Success\": \"success\",\r\n \"Error\": \"error\",\r\n \"Information\": \"info\",\r\n \"Warning\": \"warn\"\r\n };\r\n\r\n return messageTypeList[this as string];\r\n}","import $ from \"jquery\";\r\nimport { Modal } from \"bootstrap\";\r\nimport \"../extensions/string-extensions\";\r\n\r\nvar dataLayer = dataLayer || [];\r\n\r\ninterface UpgradeVoorstel {\r\n id: number;\r\n productId: number;\r\n name: string;\r\n namePlural: string;\r\n unitsPerPack: number;\r\n baseUnit: string;\r\n}\r\n\r\nexport default class UpgradeOverpack {\r\n private static modalInstance: Modal;\r\n\r\n private static EPSILON: number = 1e-5;\r\n private static voorstel: UpgradeVoorstel | null;\r\n private static voorstelb: number = 0;\r\n private static newcount: number = 1;\r\n private static opcount: number = 0;\r\n private static skipTryOverpack = false;\r\n private static $opEle = null;\r\n private static isLast: boolean;\r\n private static title: string;\r\n private static rejector: any;\r\n private static resolver: any;\r\n\r\n static testAskNoMore() {\r\n if ($(\"#nt-upgrade-overpack--asknomore\").is(\":checked\")) {\r\n console.log(\"Checbox is checked\");\r\n document.cookie = \"noopup=1;path=/\";\r\n }\r\n }\r\n\r\n static acceptOverpack() {\r\n UpgradeOverpack.testAskNoMore();\r\n UpgradeOverpack.modalInstance.hide();\r\n UpgradeOverpack.skipTryOverpack = false;\r\n UpgradeOverpack.resolver(UpgradeOverpack.newcount);\r\n }\r\n\r\n static refuseOverpack() {\r\n UpgradeOverpack.testAskNoMore();\r\n UpgradeOverpack.modalInstance.hide();\r\n UpgradeOverpack.skipTryOverpack = false;\r\n UpgradeOverpack.rejector(\"User clicked the 'no' button\");\r\n }\r\n\r\n static tryOverpackReal(productId: number, overpackData: UpgradeVoorstel[], value, $ele, last: boolean, moq: number): Promise {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n UpgradeOverpack.resolver = resolve;\r\n UpgradeOverpack.rejector = reject;\r\n\r\n UpgradeOverpack.$opEle = $ele;\r\n UpgradeOverpack.isLast = last;\r\n UpgradeOverpack.voorstel = null;\r\n UpgradeOverpack.voorstelb = 0;\r\n\r\n for (var i = overpackData.length - 1; i >= 0; i--) {\r\n var overpack = overpackData[i];\r\n\r\n if ((value * 100) % (overpack.unitsPerPack * 100) === 0) {\r\n // aantal is precies een overpack\r\n if (UpgradeOverpack.voorstel !== null) {\r\n continue;\r\n }\r\n\r\n reject(\"Quantity is already correct\");\r\n return;\r\n }\r\n\r\n var a = (value * 100) / (overpack.unitsPerPack * 100);\r\n var b = a - Math.floor(a);\r\n\r\n if (b > 0.999 || b < 0.001) {\r\n continue;\r\n }\r\n\r\n if (b < UpgradeOverpack.voorstelb) {\r\n continue;\r\n }\r\n\r\n if (b >= 0.60) { // 60% \r\n let opCount = (Math.floor(a) + 1);\r\n let newCount = opCount * overpack.unitsPerPack;\r\n if (((newCount % moq) > UpgradeOverpack.EPSILON) || (i > 1)) {\r\n UpgradeOverpack.voorstel = overpack;\r\n UpgradeOverpack.voorstelb = b;\r\n UpgradeOverpack.opcount = opCount;\r\n UpgradeOverpack.newcount = UpgradeOverpack.opcount * overpack.unitsPerPack;\r\n }\r\n }\r\n }\r\n\r\n if (UpgradeOverpack.voorstel !== null) {\r\n var tmpl = $(\"#nt-upgrade-overpack--template\").html();\r\n var msg = tmpl;\r\n var name = UpgradeOverpack.voorstel.name;\r\n if (UpgradeOverpack.opcount > 1) {\r\n name = UpgradeOverpack.voorstel.namePlural;\r\n }\r\n\r\n msg = msg.replace(/{unit}/gi, UpgradeOverpack.voorstel.baseUnit);\r\n msg = msg.replace(/{count}/gi, value);\r\n msg = msg.replace(/{newcount}/gi, UpgradeOverpack.newcount.toString());\r\n msg = msg.replace(/{opcount}/gi, UpgradeOverpack.opcount.toString());\r\n msg = msg.replace(/{opname}/gi, name);\r\n $(\"#nt-upgrade-overpack--body\").html(msg);\r\n }\r\n else {\r\n reject(\"No need for an upgrade\");\r\n return;\r\n }\r\n\r\n $(\"#nt-upgrade-overpack--title\").html(UpgradeOverpack.title);\r\n UpgradeOverpack.modalInstance.show();\r\n });\r\n }\r\n\r\n static tryOverpack($container, $input): Promise {\r\n return new Promise((resolve, reject) => {\r\n var productId = $container.data(\"pid\");\r\n var overpackJsonData = $container.data(\"nt-overpack-json\");\r\n var moqData = $container.data(\"nt-moq\") as string;\r\n var moq: number = parseFloat(moqData.replace(/,/g, \".\"));\r\n UpgradeOverpack.title = $container.data(\"nt-product-title\");\r\n\r\n if (typeof $input === 'undefined') {\r\n reject(\"No $input field found\");\r\n return;\r\n }\r\n if (document.cookie.indexOf(\"noopup=1\") !== -1) {\r\n reject(\"User doesn't want popups anymore\");\r\n return;\r\n }\r\n\r\n if (overpackJsonData) {\r\n const overpackData = overpackJsonData;\r\n if (overpackData.length > 0) {\r\n var val = $input.val();\r\n val = parseFloat(val.replace(/,/g, \".\"));\r\n if (val !== \"\" && parseFloat(val) > 0) {\r\n UpgradeOverpack.tryOverpackReal(productId, overpackData, val, $input, true, moq)\r\n .then(newQuantity => {\r\n resolve(newQuantity)\r\n }).catch(reason => {\r\n reject(reason);\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n static init() {\r\n UpgradeOverpack.modalInstance = new Modal(\"#nt-upgrade-overpack--modal\", { keyboard: false });\r\n\r\n $(\"#nt-upgrade-overpack--button-ja\").on(\"click\", UpgradeOverpack.acceptOverpack);\r\n $(\"#nt-upgrade-overpack--button-nee\").on(\"click\", UpgradeOverpack.refuseOverpack);\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport $$ from \"../utils/double-dollar\";\r\nimport axios, { AxiosError } from \"axios\";\r\nimport { Modal, Popover } from \"bootstrap\";\r\nimport ActionUrls from \"../utils/action-urls\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\nimport AsyncPrices from \"./async-prices\";\r\n\r\nexport default class ProductSuggestions {\r\n static trySuggest(productId: number, quantity: number, productSetPrice: string, suggestionList: Array, suggestionRatioList: Array) {\r\n let url = ActionUrls.getUrl(\"get-product-suggestions\") as string;\r\n url = `${url}?productid=${productId}&suggestions=${suggestionList.join()}`\r\n\r\n axios\r\n .get(url)\r\n .then((res) => res.data)\r\n .then((data: string) => {\r\n const productSuggestionsElement = document.getElementById(\"product-suggestions-modal\") as HTMLElement;\r\n const productSuggestionsModal = new Modal(productSuggestionsElement);\r\n productSuggestionsModal.show();\r\n\r\n const $modalBody = $(\"#product-suggestions-modal\").find(\".modal-body\");\r\n $modalBody.html(data);\r\n\r\n $(\".js-product-suggestions--set-price\").html(productSetPrice);\r\n\r\n if (suggestionList.length > 0 && suggestionList.length === suggestionRatioList.length) {\r\n for (let i = 0; i < suggestionList.length; ++i) {\r\n const productId = suggestionList[i];\r\n const ratio = suggestionRatioList[i];\r\n const selector = \".modal-body #product-card-\" + productId + \" \";\r\n\r\n if (ratio >= 1) {\r\n $(selector + \".js-product-order-box--order-quantity\").val(quantity * ratio);\r\n $(selector + \".js-product-order-box--total-order-quantity\").val(quantity * ratio);\r\n }\r\n\r\n }\r\n }\r\n\r\n AsyncPrices.startLoadPricesForProductSuggestions();\r\n\r\n $$(`[data-bs-toggle=\"popover\"]`, el => new Popover(el));\r\n $$(`[data-bs-toggle=\"popover-dom\"]`, el => new Popover(el, {content: CustomHelper.getPopoverContent(el)}));\r\n })\r\n .catch((err: AxiosError) => console.error(err));\r\n }\r\n}\r\n","import $ from \"jquery\";\r\n\r\nexport default class ProductVolumeDiscount {\r\n static init(): void {\r\n ProductVolumeDiscount.initProductItem();\r\n ProductVolumeDiscount.initProductDetailOrderInfo();\r\n }\r\n\r\n static initProductItem(): void {\r\n const $productItem: JQuery = $(\".js-product-item\");\r\n\r\n if ($productItem.length === 0) {\r\n return;\r\n }\r\n\r\n $productItem.on(\"click\", \".js-modal-product-volume-discount--submit\", e => {\r\n const $volumeDiscountSubmit: JQuery = $(e.currentTarget);\r\n const $volumeDiscountModal: JQuery = $volumeDiscountSubmit.closest(\".modal\");\r\n const $volumeDiscountClose: JQuery = $volumeDiscountModal.find(`[data-bs-dismiss=\"modal\"]`);\r\n const $volumeDiscountOption: JQuery = $volumeDiscountModal.find(\".js-product-volume-discount--option:checked\");\r\n const $productItem: JQuery = $volumeDiscountSubmit.closest(\".js-product-item\");\r\n\r\n ProductVolumeDiscount.updatePriceAndQuantity($volumeDiscountOption, $productItem);\r\n $volumeDiscountClose.trigger(\"click\"); // closes modal\r\n });\r\n\r\n // select correct volume discount option on load\r\n $(\"body\").find(\".js-product-item\").each(function () {\r\n const $productItem: JQuery = $(this);\r\n\r\n const $totalOrderQuantity: JQuery = $productItem.find(\".js-product-order-box--total-order-quantity\");\r\n if ($totalOrderQuantity.length === 0) {\r\n return;\r\n }\r\n\r\n const totalOrderQuantity: string = ($totalOrderQuantity.val() as string).replace(\",\", \".\");\r\n ProductVolumeDiscount.selectOption(parseFloat(totalOrderQuantity), $productItem)\r\n });\r\n }\r\n\r\n static initProductDetailOrderInfo(): void {\r\n const $productDetailOrderInfo: JQuery = $(\".js-product-detail-order-info\");\r\n\r\n if ($productDetailOrderInfo.length === 0) {\r\n return;\r\n }\r\n\r\n $productDetailOrderInfo.on(\"change\", \".js-product-volume-discount--option\", e => {\r\n const $volumeDiscountOption: JQuery = $(e.currentTarget);\r\n const $orderInfo: JQuery = $volumeDiscountOption.closest(\".js-product-detail-order-info\");\r\n ProductVolumeDiscount.updatePriceAndQuantity($volumeDiscountOption, $orderInfo);\r\n });\r\n\r\n // select correct volume discount option on load\r\n const $totalOrderQuantity: JQuery = $productDetailOrderInfo.find(\".js-product-order-box--total-order-quantity\");\r\n if ($totalOrderQuantity.length === 0) {\r\n return;\r\n }\r\n\r\n const totalOrderQuantity: string = ($totalOrderQuantity.val() as string).replace(\",\", \".\");\r\n ProductVolumeDiscount.selectOption(parseFloat(totalOrderQuantity), $productDetailOrderInfo)\r\n }\r\n\r\n static updatePriceAndQuantity($volumeDiscountOption: JQuery, $targetContainer: JQuery): void {\r\n const $netPriceFrom: JQuery = $targetContainer.find(\".js-async-net-price-from--value\");\r\n const $orderQuantity: JQuery = $targetContainer.find(\".js-product-order-box--order-quantity\");\r\n const $totalOrderQuantity: JQuery = $targetContainer.find(\".js-product-order-box--total-order-quantity\");\r\n const $overpack: JQuery = $targetContainer.find(\".js-product-order-box--overpack\");\r\n\r\n const volumeDiscountOptionPrice: string = $volumeDiscountOption.data(\"nt-price\") as string;\r\n const volumeDiscountOptionValue: number = $volumeDiscountOption.val() as number;\r\n\r\n const selectedUnitsPerPack: number = ($overpack.length > 0 ? $overpack.find(\"option:selected\").data(\"nt-upp\") : 1) as number;\r\n const decimalSeparator = window[\"Global\"].DecimalSeparator;\r\n const totalOrderQuantity = volumeDiscountOptionValue;\r\n const totalOrderQuantityString = totalOrderQuantity.toString().replace(\".\", decimalSeparator);\r\n\r\n $netPriceFrom.text(volumeDiscountOptionPrice);\r\n const quantity = volumeDiscountOptionValue / selectedUnitsPerPack;\r\n $orderQuantity.val(Math.round((quantity + Number.EPSILON) * 10000) / 10000);\r\n $totalOrderQuantity.val(totalOrderQuantityString);\r\n\r\n if ($overpack.length) {\r\n $overpack.trigger(\"staffelchange\");\r\n }\r\n }\r\n\r\n /**\r\n * Selects the correct radiobutton in the volume discount overview.\r\n * @param {number} totalOrderQuantity The total order quantity.\r\n * @param {number} $targetContainer The target containing the component.\r\n */\r\n static selectOption(totalOrderQuantity: number, $targetContainer: JQuery): void {\r\n if ($targetContainer.length === 0) {\r\n return;\r\n }\r\n\r\n const $netPriceFrom: JQuery = $targetContainer.find(\".js-async-net-price-from--value\");\r\n\r\n if ($netPriceFrom.length === 0) {\r\n return;\r\n }\r\n\r\n let found = false;\r\n\r\n $targetContainer.find(\".js-product-volume-discount--option\").each(function () {\r\n const $volumeDiscountOption: JQuery = $(this);\r\n const volumeDiscountOptionValue: number = $volumeDiscountOption.val() as number;\r\n const volumeDiscountOptionMaxValue: number = $volumeDiscountOption.data(\"nt-max\") as number;\r\n const volumeDiscountOptionPrice: string = $volumeDiscountOption.data(\"nt-price\") as string;\r\n\r\n if (found === false && totalOrderQuantity >= volumeDiscountOptionValue && totalOrderQuantity <= volumeDiscountOptionMaxValue) {\r\n $volumeDiscountOption.prop(\"checked\", true);\r\n $netPriceFrom.text(volumeDiscountOptionPrice);\r\n found = true;\r\n }\r\n });\r\n\r\n if (!found) {\r\n // quantity entered is lower than the smallest discount quantity\r\n $targetContainer.find(\".js-product-volume-discount--option\").prop(\"checked\", false);\r\n const defaultPrice = $targetContainer\r\n .find(\".js-product-volume-discount--table\")\r\n .data(\"nt-defaultprice\");\r\n $netPriceFrom.text(defaultPrice);\r\n }\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport axios, { AxiosError } from \"axios\";\r\nimport ActionUrls from \"../utils/action-urls\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport MiniBasketData from \"../models/mini-basket-data\";\r\nimport { default as NatchGtm4, EventNamesSchema, NatchOsDataLayerProduct } from \"natch-gtm4\";\r\nimport { AddToBasketResult, UpdateInBasketResult, DeleteFromBasketResult, CountInBasketResult } from \"../models/basket\";\r\nimport Checkout from \"../pages/checkout\";\r\nimport Toaster from \"./toaster\";\r\nimport UpgradeOverpack from \"./upgrade-overpack\";\r\nimport CmsConfiguratorLauncher from \"./cms-configurator-launcher\";\r\nimport ProductSuggestions from \"./product-suggestions\";\r\nimport ProductVolumeDiscount from \"./product-volume-discount\";\r\nimport { Question, Choice } from \"../models/configurator-question\";\r\nimport { Toast } from \"bootstrap\";\r\n\r\nexport default class ProductOrderBox {\r\n private static addToBasketAction: string;\r\n private static updateInBasketAction: string;\r\n private static deleteFromBasketAction: string;\r\n private static countInBasketAction: string;\r\n private static maxQuantity: number = 999999.99;\r\n\r\n static init() {\r\n ActionUrls.load();\r\n ProductOrderBox.addToBasketAction = ActionUrls.getUrl(\"add-to-basket\");\r\n ProductOrderBox.updateInBasketAction = ActionUrls.getUrl(\"update-in-basket\");\r\n ProductOrderBox.deleteFromBasketAction = ActionUrls.getUrl(\"delete-from-basket\");\r\n ProductOrderBox.countInBasketAction = ActionUrls.getUrl(\"count-in-basket\");\r\n\r\n ProductOrderBox.initAddToBasket();\r\n ProductOrderBox.initChangeOrderQuantity();\r\n ProductOrderBox.initChangeOverpack();\r\n ProductOrderBox.initDeleteFromBasket();\r\n ProductOrderBox.initEditSkyluxConfiguration();\r\n }\r\n\r\n private static initAddToBasket() {\r\n $(\"body\").on(\"click\", \".js-product-order-box--submit\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const $submit = $(e.currentTarget);\r\n const $form = $submit.closest(\".js-product-order-box\");\r\n const $totalOrderQuantity = $form.find(\".js-product-order-box--total-order-quantity\");\r\n\r\n let val = $totalOrderQuantity.val() as string;\r\n val = val.replace(/,/g, \".\");\r\n\r\n if (val !== \"\") {\r\n let quantity = parseFloat(val);\r\n if (quantity > ProductOrderBox.maxQuantity) {\r\n $totalOrderQuantity.val(ProductOrderBox.maxQuantity);\r\n }\r\n }\r\n\r\n if (CmsConfiguratorLauncher.needsConfiguration($form)) {\r\n // configuration takes presedence over upgradeoverpack\r\n\r\n // check if product is already in basket\r\n const productId = $form.data(\"nt-product-id\");\r\n axios\r\n .get(ProductOrderBox.countInBasketAction + `?productId=${productId}`)\r\n .then((res) => res.data)\r\n .then((data: CountInBasketResult) => {\r\n if (data.quantity > 0) {\r\n Toaster.showFeedbackMessage(\"Error\", Multilang.getTranslation(\"product-order-box.message.error.only-one-configurable\"));\r\n return;\r\n }\r\n\r\n let val = $totalOrderQuantity.val() as string;\r\n val = val.replace(/,/g, \".\");\r\n let quantity = parseFloat(val);\r\n\r\n CmsConfiguratorLauncher.askConfiguration($form, quantity)\r\n .then(questions => {\r\n ProductOrderBox.addToBasketWithConfiguration($form, questions);\r\n })\r\n .catch(e => {\r\n // console.log(\"Cms Configuration failed or cancelled\", e);\r\n });\r\n\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product-order-box.message.error.add-to-basket\", \"Could not add to basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n\r\n return;\r\n }\r\n\r\n UpgradeOverpack.tryOverpack($form, $totalOrderQuantity)\r\n .then(number => {\r\n const decimalSeparator = window[\"Global\"].DecimalSeparator;\r\n $totalOrderQuantity.val(number.toString().replace(\".\", decimalSeparator));\r\n ProductOrderBox.addToBasket($form);\r\n })\r\n .catch(e => {\r\n // console.log(\"Overpack Upgrade Rejected\", e);\r\n ProductOrderBox.addToBasket($form);\r\n });\r\n })\r\n }\r\n\r\n private static initChangeOrderQuantity() {\r\n $(\"body\").on(\"change\", \".js-product-order-box--order-quantity\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n ////console.log(\".js-product-order-box--order-quantity\");\r\n\r\n const $orderQuantity = $(e.currentTarget);\r\n const $form = $orderQuantity.closest(\".js-product-order-box\");\r\n const $overpack = $form.find(\".js-product-order-box--overpack\");\r\n const $totalOrderQuantity = $form.find(\".js-product-order-box--total-order-quantity\");\r\n const $totalUnits = $form.find(\".js-product-order-box--total-units\");\r\n\r\n // order quantity\r\n const decimalSeparator = window[\"Global\"].DecimalSeparator;\r\n const orderQuantity = $orderQuantity.val()?.toString().replace(decimalSeparator, \".\") as unknown as number;\r\n const unitsPerPack = ($overpack.length > 0 ? $overpack.find(\"option:selected\").data(\"nt-upp\") : 1) as number;\r\n const totalOrderQuantity = orderQuantity * unitsPerPack;\r\n\r\n if (totalOrderQuantity <= 0) {\r\n const originalQuantity = $orderQuantity.data(\"nt-original-quantity\");\r\n $orderQuantity.val(originalQuantity);\r\n\r\n return;\r\n }\r\n\r\n // hidden field (used for POST data)\r\n let fixedOrderQuantity: string = totalOrderQuantity === null || typeof totalOrderQuantity === \"undefined\"\r\n ? \"1\"\r\n : totalOrderQuantity.toString().replace(\".\", decimalSeparator);\r\n $totalOrderQuantity.val(fixedOrderQuantity);\r\n\r\n // informative text (\"= x units\")\r\n $totalUnits.text(totalOrderQuantity);\r\n\r\n // volume discount\r\n ProductVolumeDiscount.selectOption(totalOrderQuantity, $(\".js-product-detail-order-info\"));\r\n ProductVolumeDiscount.selectOption(totalOrderQuantity, $orderQuantity.closest(\".js-product-item\"));\r\n\r\n const orderAction = $form.data(\"nt-action\");\r\n if (orderAction === \"update-in-basket\") {\r\n ProductOrderBox.updateInBasket($form);\r\n }\r\n });\r\n }\r\n\r\n private static initChangeOverpack() {\r\n $(\"body\").on(\"staffelchange\", \".js-product-order-box--overpack\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n ////console.log(\"Staffelchange\");\r\n\r\n const $overpack = $(e.currentTarget);\r\n const $form = $overpack.closest(\".js-product-order-box\");\r\n const $orderQuantity = $form.find(\".js-product-order-box--order-quantity\");\r\n const $totalOrderQuantity = $form.find(\".js-product-order-box--total-order-quantity\")\r\n const $totalUnits = $form.find(\".js-product-order-box--total-units\");\r\n const $baseUnit = $form.find(\".js-product-order-box--base-unit\");\r\n\r\n // selected overpack\r\n const $selectedOverpack = $overpack.find(\"option:selected\");\r\n const selectedMinimumOrderQuantity = $selectedOverpack.data(\"nt-min\") as number;\r\n const selectedIncrementalOrderQuantity = $selectedOverpack.data(\"nt-step\") as number;\r\n const selectedUnitsPerPack = $selectedOverpack.data(\"nt-upp\") as number;\r\n const selectedBaseUnit = $selectedOverpack.data(\"nt-bu\") as string;\r\n\r\n // order quantity\r\n const totalOrderQuantity = $totalOrderQuantity.val() as number;\r\n ////console.log(\"totalOrderQuantity \", totalOrderQuantity);\r\n const orderQuantity = ProductOrderBox.validateOrderQuantity(totalOrderQuantity, selectedUnitsPerPack, selectedMinimumOrderQuantity);\r\n\r\n ////console.log(\"selectedMinimumOrderQuantity \", selectedMinimumOrderQuantity);\r\n ////console.log(\"selectedIncrementalOrderQuantity\", selectedIncrementalOrderQuantity);\r\n ////console.log(\"selectedUnitsPerPack\", selectedUnitsPerPack);\r\n ////console.log(\"selectedBaseUnit\", selectedBaseUnit);\r\n ////console.log(\"totalOrderQuantity\", totalOrderQuantity);\r\n ////console.log(\"orderQuantity\", orderQuantity);\r\n\r\n const decimalSeparator = window[\"Global\"].DecimalSeparator;\r\n\r\n // hidden field (used for POST data)\r\n const newTotalQuantityNumber = Math.round((orderQuantity * selectedUnitsPerPack + Number.EPSILON) * 10000) / 10000;\r\n let newTotalQuantity = (newTotalQuantityNumber).toString().replace(\".\", decimalSeparator);\r\n\r\n // $totalOrderQuantity.val(newTotalQuantity);\r\n\r\n ////console.log(\"totalOrderQuantity\", totalOrderQuantity);\r\n ////console.log(\"newTotalQuantity\", newTotalQuantity);\r\n\r\n // informative text (\"= x units\")\r\n // $totalUnits.text(orderQuantity * selectedUnitsPerPack);\r\n $totalUnits.text(totalOrderQuantity);\r\n $baseUnit.text(selectedBaseUnit);\r\n\r\n ////console.log(\"$totalUnits\", orderQuantity * selectedUnitsPerPack);\r\n });\r\n\r\n $(\"body\").on(\"change\", \".js-product-order-box--overpack\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n ////console.log(\"Change Overpack\");\r\n\r\n const $overpack = $(e.currentTarget);\r\n const $form = $overpack.closest(\".js-product-order-box\");\r\n const $orderQuantity = $form.find(\".js-product-order-box--order-quantity\");\r\n const $totalOrderQuantity = $form.find(\".js-product-order-box--total-order-quantity\")\r\n const $totalUnits = $form.find(\".js-product-order-box--total-units\");\r\n const $baseUnit = $form.find(\".js-product-order-box--base-unit\");\r\n\r\n // selected overpack\r\n const $selectedOverpack = $overpack.find(\"option:selected\");\r\n const selectedMinimumOrderQuantity = $selectedOverpack.data(\"nt-min\") as number;\r\n const selectedIncrementalOrderQuantity = $selectedOverpack.data(\"nt-step\") as number;\r\n const selectedUnitsPerPack = $selectedOverpack.data(\"nt-upp\") as number;\r\n const selectedBaseUnit = $selectedOverpack.data(\"nt-bu\") as string;\r\n\r\n // order quantity\r\n const totalOrderQuantity = $totalOrderQuantity.val() as number;\r\n ////console.log(\"totalOrderQuantity \", totalOrderQuantity);\r\n const orderQuantity = ProductOrderBox.validateOrderQuantity(totalOrderQuantity, selectedUnitsPerPack, selectedMinimumOrderQuantity);\r\n\r\n ////console.log(\"selectedMinimumOrderQuantity \", selectedMinimumOrderQuantity);\r\n ////console.log(\"selectedIncrementalOrderQuantity\", selectedIncrementalOrderQuantity);\r\n ////console.log(\"selectedUnitsPerPack\", selectedUnitsPerPack);\r\n ////console.log(\"selectedBaseUnit\", selectedBaseUnit);\r\n ////console.log(\"totalOrderQuantity\", totalOrderQuantity);\r\n ////console.log(\"orderQuantity\", orderQuantity);\r\n\r\n // input field\r\n $orderQuantity.val(orderQuantity);\r\n $orderQuantity.prop(\"min\", selectedMinimumOrderQuantity);\r\n $orderQuantity.prop(\"step\", selectedIncrementalOrderQuantity);\r\n\r\n const decimalSeparator = window[\"Global\"].DecimalSeparator;\r\n\r\n // hidden field (used for POST data)\r\n const newTotalQuantityNumber = Math.round((orderQuantity * selectedUnitsPerPack + Number.EPSILON) * 10000) / 10000;\r\n let newTotalQuantity = (newTotalQuantityNumber).toString().replace(\".\", decimalSeparator);\r\n\r\n $totalOrderQuantity.val(newTotalQuantity);\r\n\r\n ////console.log(\"newTotalQuantity\", newTotalQuantity);\r\n\r\n // informative text (\"= x units\")\r\n $totalUnits.text(newTotalQuantity);\r\n $baseUnit.text(selectedBaseUnit);\r\n\r\n ////console.log(\"$totalUnits\", orderQuantity * selectedUnitsPerPack);\r\n\r\n // volume discount\r\n ProductVolumeDiscount.selectOption(totalOrderQuantity, $(\".js-product-detail-order-info\"));\r\n ProductVolumeDiscount.selectOption(totalOrderQuantity, $orderQuantity.closest(\".js-product-item\"));\r\n\r\n const orderAction = $form.data(\"nt-action\");\r\n if (orderAction === \"update-in-basket\") {\r\n ProductOrderBox.updateInBasket($form);\r\n }\r\n });\r\n }\r\n\r\n private static initEditSkyluxConfiguration() {\r\n $(\"body\").on(\"click\", `[data-nt-action=\"edit-skylux-configuration\"]`, e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const $editLink = $(e.currentTarget);\r\n const $form = $editLink.closest(\".js-product-order-box\");\r\n const configurationId = $form.data(\"nt-skylux-configuration-id\");\r\n\r\n const url = ActionUrls.getUrl(\"edit-skylux\") + \"?skyluxConfigurationId=\" + configurationId;\r\n document.location.href = url;\r\n });\r\n }\r\n\r\n private static initDeleteFromBasket() {\r\n $(\"body\").on(\"click\", `[data-nt-action=\"delete-from-basket\"]`, e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const $deleteLink = $(e.currentTarget);\r\n\r\n bootbox.confirm({\r\n message: Multilang.getTranslation(\"product-order-box.label.delete-from-basket\", \"Wenst u het product te verwijderen?\"),\r\n buttons: {\r\n confirm: {\r\n label: Multilang.getTranslation(\"product-order-box.action.confirm-delete-from-basket\", \"Verwijderen\"),\r\n className: 'btn-primary'\r\n },\r\n cancel: {\r\n label: Multilang.getTranslation(\"product-order-box.action.cancel-delete-from-basket\", \"Annuleren\"),\r\n className: 'btn-secondary'\r\n }\r\n },\r\n callback: (result: boolean) => {\r\n if (!result) {\r\n return;\r\n }\r\n\r\n const $form = $deleteLink.closest(\".js-product-order-box\");\r\n ProductOrderBox.deleteFromBasket($form);\r\n }\r\n });\r\n })\r\n }\r\n\r\n private static addToBasketByProductAndQuantity(productId: number, quantity: number) {\r\n const data = {\r\n productId: productId,\r\n orderQuantity: quantity,\r\n totalOrderQuantity: quantity,\r\n selectedOverpackId: 0,\r\n basketLineId: 0\r\n };\r\n\r\n const toUrlEncoded = obj => Object.keys(obj).map(k => encodeURIComponent(k) + '=' + encodeURIComponent(obj[k])).join('&');\r\n\r\n axios\r\n .post(ProductOrderBox.addToBasketAction, toUrlEncoded(data))\r\n .then((res) => res.data)\r\n .then((data: AddToBasketResult) => {\r\n Toaster.showFeedbackMessage(data.messageType, data.message);\r\n MiniBasketData.setLineCount(data.lineCount);\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product-order-box.message.error.add-to-basket\", \"Could not add to basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n public static addToBasketWithConfiguration($form, configuration: Question[]) {\r\n let postData = $form.serialize();\r\n\r\n let configData = \"\";\r\n for (let question of configuration) {\r\n configData += `&Configuration.Questions[${question.id}].Question=${encodeURIComponent(question.question)}`;\r\n configData += `&Configuration.Questions[${question.id}].Answer=${encodeURIComponent(question.choices[question.selectedChoiceId].choice)}`;\r\n }\r\n\r\n postData = postData + configData;\r\n \r\n axios\r\n .post(ProductOrderBox.addToBasketAction, postData)\r\n .then((res) => res.data)\r\n .then((data: AddToBasketResult) => {\r\n ProductOrderBox.handleAddToBasketResult(data, $form);\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product-order-box.message.error.add-to-basket\", \"Could not add to basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n private static handleAddToBasketResult(data: AddToBasketResult, $form) {\r\n MiniBasketData.setLineCount(data.lineCount);\r\n\r\n ProductOrderBox.tryTrackAddToBasket($form, data.quantity, data.totalLinePrice, data.unitPrice);\r\n\r\n // When on checkout page, do a refresh\r\n if ($(\".js-checkout-step-indicator\").length > 0) {\r\n // timeout for GA/GTM\r\n Toaster.showFeedbackMessage(data.messageType, data.message);\r\n setTimeout(() => { location.reload(); }, 1000);\r\n return;\r\n }\r\n\r\n // show a popup when there are suggestions for the added product\r\n // otherwise, show the toaster\r\n const suggestionList = $form.data(\"nt-suggestions-json\") as Array;\r\n const suggestionRatioList = $form.data(\"nt-suggestionratios-json\") as Array;\r\n\r\n if (suggestionList.length > 0) {\r\n const productId = $form.data(\"nt-product-id\");\r\n\r\n const $productCard = $form.closest(`#product-card-${productId}`);\r\n const $promoNetPrice = $productCard.find(\".js-promo-net-price--value\");\r\n const $asyncNetPrice = $productCard.find(\".js-async-net-price--value\");\r\n\r\n let productSetPrice = $promoNetPrice.length > 0\r\n ? $promoNetPrice.text() : $asyncNetPrice.length > 0\r\n ? $asyncNetPrice.text() : \"\";\r\n\r\n ProductSuggestions.trySuggest(productId, data.quantity, productSetPrice, suggestionList, suggestionRatioList);\r\n }\r\n else {\r\n Toaster.showFeedbackMessage(data.messageType, data.message);\r\n }\r\n }\r\n\r\n private static addToBasket($form) {\r\n const postData = $form.serialize();\r\n\r\n axios\r\n .post(ProductOrderBox.addToBasketAction, postData)\r\n .then((res) => res.data)\r\n .then((data: AddToBasketResult) => {\r\n ProductOrderBox.handleAddToBasketResult(data, $form);\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product-order-box.message.error.add-to-basket\", \"Could not add to basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n private static updateInBasket($form) {\r\n axios\r\n .post(ProductOrderBox.updateInBasketAction, $form.serialize())\r\n .then((res) => res.data)\r\n .then((data: UpdateInBasketResult) => {\r\n Checkout.updateBasketTotals(data.needRefresh);\r\n Checkout.updateBasketLineInfo(data.basketLineId, data.newLineTotalGross, data.newLineTotalNet, data.quantity);\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product-order-box.message.error.update-in-basket\", \"Could not update in basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n private static deleteFromBasket($form) {\r\n axios\r\n .post(ProductOrderBox.deleteFromBasketAction, $form.serialize())\r\n .then((res) => res.data)\r\n .then((data: DeleteFromBasketResult) => {\r\n ProductOrderBox.tryTrackDeleteFromBasket($form);\r\n MiniBasketData.setLineCount(data.lineCount);\r\n Checkout.setLineCount(data.lineCount);\r\n if (data.lineCount == 0 || data.needRefresh) {\r\n\r\n document.location.reload();\r\n return;\r\n }\r\n\r\n Checkout.updateBasketTotals(data.needRefresh);\r\n Checkout.deleteBasketLines(data.deletedBasketLineIdList);\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product-order-box.message.error.delete-from-basket\", \"Could not delete from basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage)\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n private static validateOrderQuantity(totalOrderQuantity: number, requestedUnitsPerPack: number, minimumOrderQuantity: number): number {\r\n\r\n const decimalSeparator = window[\"Global\"].DecimalSeparator;\r\n\r\n if (typeof (totalOrderQuantity) === \"string\") {\r\n totalOrderQuantity = parseFloat((totalOrderQuantity as string).toString().replace(decimalSeparator, \".\"));\r\n }\r\n\r\n const requestedMultiplier = totalOrderQuantity / requestedUnitsPerPack;\r\n if (requestedMultiplier > 1) {\r\n // return Math.ceil(requestedMultiplier);\r\n return Math.round((requestedMultiplier + Number.EPSILON) * 10000) / 10000;\r\n // return requestedMultiplier;\r\n }\r\n\r\n return minimumOrderQuantity;\r\n }\r\n\r\n private static tryTrackAddToBasket($form, quantity: number, monetaryValue: number, unitPrice: number) {\r\n // Track in GA\r\n let productDto = null;\r\n if (quantity == 0) {\r\n let quantityBox = $form.find(\".js-product-order-box--total-order-quantity\");\r\n if (quantityBox.length == 0) {\r\n quantityBox = $form.find(\".js-product-order-box--order-quantity\");\r\n }\r\n\r\n if (quantityBox.length == 0) {\r\n console.warn(\"No quantity box\");\r\n return;\r\n }\r\n\r\n quantity = quantityBox.val();\r\n }\r\n\r\n let listName: string = \"\";\r\n let listId: string = \"\";\r\n let $listContainer = $form.closest(\"[data-datalayer-list-name]\");\r\n if ($listContainer.length > 0) {\r\n listName = $listContainer.data(\"datalayer-list-name\");\r\n listId = $listContainer.data(\"datalayer-list-id\");\r\n }\r\n\r\n let $item = $form.closest(\".js-product-item\");\r\n\r\n if ($item.length > 0) {\r\n productDto = $item.data(\"datalayer-list-item\");\r\n }\r\n\r\n if (productDto == null) {\r\n $item = $form.closest(\".js-product-detail\");\r\n\r\n if ($item.length > 0) {\r\n productDto = $item.data(\"datalayer-detail\");\r\n }\r\n }\r\n\r\n if (productDto != null) {\r\n (productDto as NatchOsDataLayerProduct)._quantity = quantity;\r\n (productDto as NatchOsDataLayerProduct)._price = unitPrice;\r\n (productDto as NatchOsDataLayerProduct).list_name = listName;\r\n (productDto as NatchOsDataLayerProduct).list_id = listId;\r\n\r\n const natchgtm4 = new NatchGtm4(EventNamesSchema.OfficialGA4);\r\n natchgtm4.trackAddToCart(productDto, monetaryValue);\r\n }\r\n }\r\n\r\n private static tryTrackDeleteFromBasket($form) {\r\n const $item = $form.closest(\".js-checkout-basket-line\");\r\n\r\n if ($item.length === 0) {\r\n return;\r\n }\r\n\r\n const productDto = $item.data(\"datalayer-list-item\");\r\n\r\n // type of productDto is a string when datalayer attribute does not contain a value\r\n if (typeof productDto === \"string\" && (productDto as String).length === 0) {\r\n return;\r\n }\r\n\r\n const quantity = $form.find(\".js-product-order-box--order-quantity\").val();\r\n\r\n const natchGtm4 = new NatchGtm4(EventNamesSchema.OfficialGA4);\r\n natchGtm4.trackRemoveFromCart(productDto, quantity);\r\n }\r\n}\r\n","import Multilang from \"../utils/multilang\";\r\n\r\nexport default class PwaHelper {\r\n static init() {\r\n const userAgent = window.navigator.userAgent.toLowerCase();\r\n\r\n const isIos = /iphone|ipad|ipod/i.test(userAgent) || /CriOS/i.test(userAgent); // CriOS = Chrome on iOS\r\n const isSamsung = /samsungbrowser/i.test(userAgent);\r\n const isFirefox = /firefox/i.test(userAgent) && (/mobile/i.test(userAgent) || /tablet/i.test(userAgent));\r\n const isPwaHelperDismissalFound = document.cookie.indexOf(\"pwah=1\") !== -1;\r\n const isInStandaloneModeIos = \"standalone\" in window.navigator && window.navigator.standalone;\r\n const isInStandaloneModeChrome = window.matchMedia(\"(display-mode: standalone)\").matches;\r\n\r\n if (isPwaHelperDismissalFound) {\r\n return;\r\n }\r\n\r\n if ((!isIos || isInStandaloneModeIos) && (!isSamsung || isInStandaloneModeChrome) && !isFirefox) {\r\n return;\r\n }\r\n\r\n const helperElement = document.querySelector(\".pwa-helper\") as HTMLElement;\r\n\r\n if (helperElement !== null) {\r\n const helperContentElement = helperElement.querySelector(\".js-pwa-helper-content\") as HTMLElement;\r\n\r\n const iconElement = document.createElement(\"img\");\r\n iconElement.style.width = \"18px\";\r\n iconElement.style.height = \"18px\";\r\n\r\n if (helperContentElement !== null) {\r\n if (isIos) {\r\n iconElement.src = Multilang.getTranslation(\"pwa-helper.browser.safari.icon\", \"/img/ios-share-icon-46x46.png\");\r\n\r\n helperContentElement.innerHTML = Multilang\r\n .getTranslation(\"pwa-helper.browser.safari.message\", \"Om de webshop als app te installeren kan u de optie 'Add to home screen' (__icon__) gebruiken.\")\r\n .replace(\"__icon__\", iconElement.outerHTML);\r\n }\r\n\r\n if (isSamsung) {\r\n iconElement.src = Multilang.getTranslation(\"pwa-helper.browser.samsung.icon\", \"\");\r\n\r\n helperContentElement.innerHTML = Multilang\r\n .getTranslation(\"pwa-helper.browser.samsung.message\", \"Om de webshop als app te installeren kan u de optie 'Add to home screen' gebruiken.\")\r\n .replace(\"__icon__\", iconElement.outerHTML);\r\n }\r\n\r\n if (isFirefox) {\r\n iconElement.src = Multilang.getTranslation(\"pwa-helper.browser.firefox.icon\", \"\");\r\n\r\n helperContentElement.innerHTML = Multilang\r\n .getTranslation(\"pwa-helper.browser.firefox.message\", \"Om de webshop als app te installeren kan u de optie 'Add to home screen' gebruiken.\")\r\n .replace(\"__icon__\", iconElement.outerHTML);\r\n }\r\n\r\n helperElement.style.display = \"block\";\r\n }\r\n\r\n const closeElement = helperElement.querySelector(\".js-pwa-helper-close\");\r\n\r\n if (closeElement !== null) {\r\n closeElement.addEventListener(\"click\", function () {\r\n helperElement.style.display = \"none\";\r\n document.cookie = \"pwah=1; expires=Sun, 1 Jan 2040 03:14:15 UTC; path=/\";\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport $$ from \"../utils/double-dollar\";\r\nimport axios, { AxiosResponse, AxiosError } from \"axios\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport MiniBasketData from \"../models/mini-basket-data\";\r\nimport { AddToBasketResult } from \"../models/basket\";\r\nimport Toaster from \"./toaster\";\r\nimport { Popover } from \"bootstrap\";\r\nimport DatalayerHelper from \"../utils/datalayer-helper\";\r\nimport { default as NatchGtm4, EventNamesSchema } from \"natch-gtm4\";\r\nimport CmsConfiguratorLauncher from \"./cms-configurator-launcher\";\r\nimport { Question } from \"../models/configurator-question\";\r\n\r\nexport default class QuickOrder {\r\n private static quickOrderInputSelector: string = \".js-quick-order--input-value\";\r\n private static cmsConfiguration: Question[] | null = null;\r\n\r\n static init() {\r\n QuickOrder.initAddToBasket();\r\n }\r\n\r\n private static initAddToBasket() {\r\n const quickOrderDropdown = document.querySelector(\".js-quick-order--dropdown\") as HTMLElement;\r\n if (quickOrderDropdown != null) {\r\n quickOrderDropdown.addEventListener(\"shown.bs.dropdown\", event => {\r\n const $inputValue = $(QuickOrder.quickOrderInputSelector);\r\n $inputValue.trigger(\"focus\");\r\n });\r\n }\r\n\r\n $(\"body\").on(\"click\", \".js-quick-order--submit\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const $submit = $(e.currentTarget);\r\n const $form = $submit.closest(\".js-quick-order\");\r\n\r\n $form.validate();\r\n\r\n if (!$form.valid()) {\r\n return;\r\n }\r\n\r\n QuickOrder.addToBasket($form);\r\n })\r\n }\r\n\r\n private static addToBasket($form) {\r\n const $inputValue = $form.find(QuickOrder.quickOrderInputSelector);\r\n\r\n let postData = QuickOrder.parseQuickOrderValue($inputValue);\r\n if (postData === null) {\r\n return;\r\n }\r\n\r\n if (QuickOrder.cmsConfiguration != null) {\r\n postData.configuration = { questions: [] };\r\n for (let question of QuickOrder.cmsConfiguration) {\r\n const q = {\r\n question: question.question,\r\n answer: question.choices[question.selectedChoiceId].choice\r\n };\r\n postData.configuration.questions.push(q);\r\n }\r\n\r\n postData.cmsConfiguration = QuickOrder.cmsConfiguration;\r\n }\r\n\r\n if (isNaN(postData.totalOrderQuantity)) {\r\n toastr.error(Multilang.getTranslation(\"quick-order.message.error.invalid-entry\", \"Invalid quick order entry.\"));\r\n return;\r\n }\r\n\r\n axios\r\n .post($form.prop(\"action\"), postData)\r\n .then((res: AxiosResponse) => res.data)\r\n .then((data: AddToBasketResult) => {\r\n Toaster.showFeedbackMessage(data.messageType, data.message);\r\n MiniBasketData.setLineCount(data.lineCount);\r\n\r\n if (data.cmsConfiguration != null && data.needsConfiguration) {\r\n // First ask for configuration (answer the questions)\r\n console.log(data.cmsConfiguration);\r\n\r\n CmsConfiguratorLauncher.askConfigurationEx(data.productId, data.quantity, data.cmsConfiguration, $form, true)\r\n .then((questions: Question[]) => {\r\n QuickOrder.cmsConfiguration = questions;\r\n // call this method again, but this time QuickOrder.cmsConfiguration has a value, and the POST handler will use that data\r\n QuickOrder.addToBasket($form);\r\n })\r\n .catch((reason: any) => {\r\n QuickOrder.cmsConfiguration = null;\r\n console.error(reason);\r\n })\r\n return;\r\n }\r\n\r\n DatalayerHelper.trackEvent(\"bm_basket_quick_entry\", postData.productCode);\r\n $inputValue.val(\"\").focus();\r\n\r\n if (data.dataLayerProduct) {\r\n const gtm = new NatchGtm4(EventNamesSchema.OfficialGA4);\r\n gtm.trackAddToCart(data.dataLayerProduct, data.totalLinePrice);\r\n }\r\n\r\n QuickOrder.cmsConfiguration = null;\r\n\r\n const needRefresh = $form.data(\"nt-need-refresh\");\r\n if (needRefresh) {\r\n QuickOrder.refreshWithAjax(document.location.href, $inputValue);\r\n return;\r\n }\r\n }).catch((err: AxiosError) => {\r\n console.log(err);\r\n const defaultMessage = Multilang.getTranslation(\"quick-order.message.error.add-to-basket\", \"Could not add to basket.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n\r\n private static parseQuickOrderValue($inputValue: any): any | null {\r\n const inputValue = $inputValue.val() as string;\r\n const spaceIndex = inputValue.lastIndexOf(\" \") as number;\r\n\r\n if (spaceIndex === -1) {\r\n toastr.error(Multilang.getTranslation(\"quick-order.message.error.invalid-entry\", \"Invalid quick order entry.\"));\r\n return null;\r\n }\r\n\r\n const parsedData = {\r\n productCode: inputValue.substr(0, spaceIndex) as string,\r\n totalOrderQuantity: parseFloat(inputValue.substr(spaceIndex + 1).replace(\",\", \".\") as string)\r\n };\r\n\r\n return parsedData;\r\n }\r\n\r\n private static refreshWithAjax(url: string, $inputValue: any) {\r\n axios.get(url)\r\n .then((res: AxiosResponse) => res.data)\r\n .then((data: string) => {\r\n const $fullPage = $(data);\r\n\r\n // refresh checkout overview\r\n const $checkoutOverview = $fullPage.find(\".js-checkout-overview-async\");\r\n $(\".js-checkout-overview-async\").html($checkoutOverview.html());\r\n\r\n // refresh basket line count\r\n const $basketLineCount = $fullPage.find(\".js-checkout-order-box--basket-line-count\");\r\n $(\".js-checkout-order-box--basket-line-count\").text($basketLineCount.text());\r\n\r\n const miniBasketLineCount = $basketLineCount.text() as unknown as number;\r\n MiniBasketData.setLineCount(miniBasketLineCount);\r\n\r\n // refresh totals\r\n const $checkoutTotals = $fullPage.find(\".js-checkout-totals\");\r\n $(\".js-checkout-totals\").html($checkoutTotals.html());\r\n\r\n // reset bootstrap toggles\r\n $$(`[data-bs-toggle=\"popover\"]`, el => new Popover(el));\r\n $$(`[data-bs-toggle=\"popover-dom\"]`, el => new Popover(el, { content: CustomHelper.getPopoverContent(el) }));\r\n\r\n // reset input value\r\n $inputValue.val(\"\");\r\n $inputValue.focus();\r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"quick-order.message.error.refresh-checkout-page\", \"Could not refresh checkout page.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n}","import $ from \"jquery\";\r\nimport { type ssoData } from \"../models/sso-data\";\r\nimport { ContactLeadData } from \"../models/contact-lead-data\";\r\nimport { type simpleDto } from \"../models/simple-dto\";\r\n\r\nexport default class SSO {\r\n static ssoData?: ssoData;\r\n static cookieDomain: string;\r\n static tagSelector: string = \"data-ssotag\";\r\n static globalCodes: any | undefined;\r\n\r\n public static init() {\r\n $(\"form\").on(\"submit\", SSO.handleSubmit);\r\n\r\n SSO.globalCodes = window[\"GlobalCodes\"];\r\n var ssojson = SSO.getCookie(\"sso\");\r\n if (ssojson) {\r\n try {\r\n SSO.ssoData = JSON.parse(ssojson);\r\n } catch {\r\n SSO.ssoData = {}\r\n }\r\n }\r\n else {\r\n SSO.ssoData = {};\r\n }\r\n\r\n SSO.fillFields();\r\n\r\n var domainParts = window.location.hostname.split(\".\");\r\n if (domainParts.length < 3) {\r\n SSO.cookieDomain = window.location.hostname;\r\n }\r\n else {\r\n SSO.cookieDomain = domainParts.slice(domainParts.length - 2).join('.');\r\n }\r\n }\r\n\r\n public static storeContactLeadData(data: ContactLeadData) {\r\n if (!SSO.ssoData) {\r\n SSO.ssoData = {};\r\n }\r\n\r\n if (data.firstName != \"\") {\r\n SSO.ssoData.firstName = data.firstName;\r\n }\r\n\r\n if (data.lastName != \"\") {\r\n SSO.ssoData.lastName = data.lastName;\r\n }\r\n\r\n if (data.companyName != \"\") {\r\n SSO.ssoData.companyErp = data.companyName;\r\n }\r\n\r\n if (data.emailAddress != \"\") {\r\n SSO.ssoData.email = data.emailAddress;\r\n }\r\n\r\n if (data.emailAddress != \"\") {\r\n SSO.ssoData.companyEmail = data.emailAddress;\r\n }\r\n\r\n if (data.zip != \"\") {\r\n SSO.ssoData.zipCode = data.zip;\r\n }\r\n\r\n if (data.languageCode != \"\") {\r\n SSO.ssoData.language = data.languageCode;\r\n }\r\n\r\n if (data.activity != \"\") {\r\n SSO.ssoData.activity = data.activity;\r\n SSO.ssoData.activityId = data.sectorId;\r\n }\r\n\r\n if (data.functie != \"\") {\r\n SSO.ssoData.function = data.functie;\r\n SSO.ssoData.functionId = data.functionId;\r\n }\r\n\r\n SSO.saveCookie();\r\n }\r\n\r\n public static loadContactLeadData(): ContactLeadData | null {\r\n if (!SSO.ssoData) {\r\n return null;\r\n }\r\n\r\n var data: ContactLeadData = {\r\n pageTitle: \"\",\r\n firstName: SSO.ssoData.firstName ?? \"\",\r\n lastName: SSO.ssoData.lastName ?? \"\",\r\n emailAddress: SSO.ssoData.companyEmail ?? \"\",\r\n companyName: SSO.ssoData.companyErp ?? \"\",\r\n zip: SSO.ssoData.zipCode ?? \"\",\r\n activity: SSO.ssoData.activity ?? \"\",\r\n sectorId: SSO.ssoData.activityId ?? 0,\r\n languageCode: SSO.ssoData.language ?? \"\",\r\n functie: SSO.ssoData.function ?? \"\",\r\n functionId: SSO.ssoData.functionId ?? 0,\r\n initiator: \"product_document\",\r\n buildmat: \"\"\r\n };\r\n return data;\r\n }\r\n\r\n private static handleSubmit(e: JQuery.SubmitEvent) {\r\n const $form = $(e.currentTarget);\r\n const $taggedFields = $form.find(\"[\" + SSO.tagSelector + \"]\");\r\n\r\n if (!SSO.ssoData) {\r\n SSO.ssoData = {};\r\n }\r\n\r\n for (var field of $taggedFields) {\r\n const tag = field.attributes[SSO.tagSelector].value;\r\n const value = (field as HTMLInputElement).value;\r\n\r\n switch (tag) {\r\n case \"lastname\":\r\n SSO.ssoData.lastName = value;\r\n break;\r\n case \"firstname\":\r\n SSO.ssoData.firstName = value;\r\n break;\r\n case \"associated_company_erp\":\r\n SSO.ssoData.companyErp = value;\r\n break;\r\n case \"activity\":\r\n SSO.storeActivity(value);\r\n break;\r\n case \"email\":\r\n SSO.ssoData.email = value;\r\n break;\r\n case \"company_email\":\r\n SSO.ssoData.companyEmail = value;\r\n break;\r\n case \"zip\":\r\n SSO.ssoData.zipCode = value;\r\n break;\r\n case \"city\":\r\n SSO.ssoData.city = value;\r\n break;\r\n case \"phone\":\r\n SSO.ssoData.phone = value;\r\n break;\r\n case \"mobile\":\r\n SSO.ssoData.mobile = value;\r\n break;\r\n case \"preferred_language\":\r\n SSO.ssoData.language = value;\r\n break;\r\n case \"vat_number\":\r\n SSO.ssoData.vatNumber = value;\r\n break;\r\n case \"country\":\r\n SSO.storeCountry(value);\r\n break;\r\n case \"website\":\r\n SSO.ssoData.website = value;\r\n break;\r\n case \"function\":\r\n SSO.storeFunction(value);\r\n break;\r\n case \"client_number_erp\":\r\n SSO.ssoData.customerCode = value;\r\n break;\r\n }\r\n }\r\n\r\n SSO.saveCookie();\r\n }\r\n\r\n private static saveCookie() {\r\n var json = JSON.stringify(SSO.ssoData);\r\n json = json.replace(\";\", \",\"); // ; is invalid inside a cookie\r\n document.cookie = \"sso\" + \"=\" + json + \"; expires=Sun, 1 Jan 2040 03:14:15 UTC; SameSite=lax; Secure; path=/; domain=\" + SSO.cookieDomain;\r\n }\r\n\r\n private static fillFields() {\r\n const $taggedFields = $(\"[\" + SSO.tagSelector + \"]\");\r\n\r\n if (!SSO.ssoData) {\r\n return;\r\n }\r\n\r\n for (var field of $taggedFields) {\r\n const tag = field.attributes[SSO.tagSelector].value;\r\n\r\n const input = field as HTMLInputElement;\r\n var select = field as HTMLSelectElement;\r\n\r\n switch (tag) {\r\n case \"lastname\":\r\n if (input) input.value = SSO.ssoData.lastName ?? \"\";\r\n break;\r\n case \"firstname\":\r\n if (input) input.value = SSO.ssoData.firstName ?? \"\";\r\n break;\r\n case \"associated_company_erp\":\r\n if (input) input.value = SSO.ssoData.companyErp ?? \"\";\r\n break;\r\n case \"activity\":\r\n if (select) select.value = SSO.ssoData.activityId?.toString() ?? \"\";\r\n break;\r\n case \"email\":\r\n if (input) input.value = SSO.ssoData.email ?? \"\";\r\n break;\r\n case \"company_email\":\r\n if (input) input.value = SSO.ssoData.companyEmail ?? \"\";\r\n break;\r\n case \"zip\":\r\n if (input) input.value = SSO.ssoData.zipCode ?? \"\";\r\n break;\r\n case \"city\":\r\n if (input) input.value = SSO.ssoData.city ?? \"\";\r\n break;\r\n case \"phone\":\r\n if (input) input.value = SSO.ssoData.phone ?? \"\";\r\n break;\r\n case \"mobile\":\r\n if (input) input.value = SSO.ssoData.mobile ?? \"\";\r\n break;\r\n case \"preferred_language\":\r\n if (input) input.value = SSO.ssoData.language ?? \"\";\r\n break;\r\n case \"vat_number\":\r\n if (input) input.value = SSO.ssoData.vatNumber ?? \"\";\r\n break;\r\n case \"country\":\r\n if (select) select.value = SSO.ssoData.countryId?.toString() ?? \"\";\r\n break;\r\n case \"website\":\r\n if (input) input.value = SSO.ssoData.website ?? \"\";\r\n break;\r\n case \"function\":\r\n if (select) select.value = SSO.ssoData.functionId?.toString() ?? \"\";\r\n break;\r\n case \"client_number_erp\":\r\n if (input) input.value = SSO.ssoData.customerCode ?? \"\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private static storeCountry(value: string) {\r\n if (!SSO.ssoData) {\r\n SSO.ssoData = {};\r\n }\r\n\r\n SSO.ssoData.countryId = parseInt(value);\r\n if (SSO.globalCodes.countryCodes) {\r\n if (Array.isArray(SSO.globalCodes.countryCodes)) {\r\n const countryCodes: simpleDto[] = SSO.globalCodes.countryCodes;\r\n const found = countryCodes.find((item) => item.id === SSO.ssoData?.countryId ?? 0);\r\n if (typeof found !== \"undefined\") {\r\n SSO.ssoData.country = found.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private static storeActivity(value: string) {\r\n if (!SSO.ssoData) {\r\n SSO.ssoData = {};\r\n }\r\n\r\n SSO.ssoData.activityId = parseInt(value);\r\n if (SSO.globalCodes.sectorCodes) {\r\n if (Array.isArray(SSO.globalCodes.sectorCodes)) {\r\n const sectorCodes: simpleDto[] = SSO.globalCodes.sectorCodes;\r\n const found = sectorCodes.find((item) => item.id === SSO.ssoData?.activityId ?? 0);\r\n if (typeof found !== \"undefined\") {\r\n SSO.ssoData.activity = found.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private static storeFunction(value: string) {\r\n if (!SSO.ssoData) {\r\n SSO.ssoData = {};\r\n }\r\n\r\n SSO.ssoData.functionId = parseInt(value);\r\n if (SSO.globalCodes.functionCodes) {\r\n if (Array.isArray(SSO.globalCodes.functionCodes)) {\r\n const functionCodes: simpleDto[] = SSO.globalCodes.functionCodes;\r\n const found = functionCodes.find((item) => item.id === SSO.ssoData?.functionId ?? 0);\r\n if (typeof found !== \"undefined\") {\r\n SSO.ssoData.function = found.name;\r\n }\r\n }\r\n }\r\n }\r\n\r\n private static getCookie(name: string): string | null {\r\n const nameLength = (name.length + 1);\r\n return document.cookie\r\n .split(';')\r\n .map(c => c.trim())\r\n .filter(cookie => {\r\n return cookie.substring(0, nameLength) === `${name}=`;\r\n })\r\n .map(cookie => {\r\n return decodeURIComponent(cookie.substring(nameLength));\r\n })[0] || null;\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport { Popover } from \"bootstrap\";\r\n\r\nexport default class StockInWarehouse {\r\n static init() {\r\n const $body = $(\"body\");\r\n\r\n let currentPopoverInstance: Popover;\r\n\r\n // show popover when clicking on the trigger\r\n $body.on(\"click\", \".js-stock-in-warehouse-trigger\", e => {\r\n const $trigger = $(e.currentTarget);\r\n\r\n // hide previous one\r\n if (currentPopoverInstance) {\r\n currentPopoverInstance.hide();\r\n }\r\n\r\n // show new one\r\n currentPopoverInstance = StockInWarehouse.getPopoverInstance($trigger) as Popover;\r\n\r\n if (currentPopoverInstance) {\r\n currentPopoverInstance.toggle();\r\n }\r\n });\r\n\r\n // hide popover when clicking elsewhere (not on the trigger)\r\n document.addEventListener(\"click\", e => {\r\n if (e.target === null || e.target instanceof HTMLElement === false){\r\n return;\r\n }\r\n\r\n const isPopoverTrigger = (e.target as HTMLElement).classList.contains(\"js-stock-in-warehouse-trigger\");\r\n\r\n if (isPopoverTrigger === false && currentPopoverInstance) {\r\n currentPopoverInstance.hide();\r\n }\r\n });\r\n }\r\n\r\n private static getPopoverInstance($trigger: any) : Popover | null {\r\n const $container = $trigger.closest(\".js-stock-in-warehouse-container\");\r\n const $popover = $container.find(\".js-stock-in-warehouse-popover\");\r\n\r\n if ($popover.length == 0) {\r\n return null;\r\n }\r\n\r\n const popoverElement = $popover[0];\r\n return Popover.getInstance(popoverElement);\r\n }\r\n}","import $ from \"jquery\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\n\r\nexport default class Approvals {\r\n static init() {\r\n $(\"body\").on(\"click\", \".js-basket-approval--select-purchaser\", (e) => {\r\n const $button = $(e.currentTarget);\r\n const purchaserId = $button.data(\"nt-purchaser-id\") as number;\r\n $(\".js-basket-approval--purchaser-id\").val(purchaserId);\r\n \r\n const $form = $button.closest(\"form\");\r\n CustomHelper.submitForm($form);\r\n });\r\n \r\n $(\"body\").on(\"click\", \".js-basket-purchaser--activate-basket\", (e) => {\r\n const $button = $(e.currentTarget);\r\n const basketId = $($button).data(\"nt-basket-id\") as number;\r\n $(\".js-basket-purchaser--basket-id\").val(basketId);\r\n\r\n const $form = $button.closest(\"form\");\r\n CustomHelper.submitForm($form);\r\n });\r\n }\r\n}","export default class BlanketOrder {\r\n static init() {\r\n const $blanketOrderList = $(\".js-blanket-order--list\");\r\n\r\n if ($blanketOrderList.length === 0) {\r\n return;\r\n }\r\n\r\n BlanketOrder.initList($blanketOrderList);\r\n }\r\n \r\n static initList($blanketOrderList: JQuery): void {\r\n $blanketOrderList.find(\".js-blanket-order--list-details\").each((ix: number, el: HTMLElement) => {\r\n const $toggle: JQuery = $blanketOrderList.find(`[href=\"#${el.id}\"]`);\r\n\r\n el.addEventListener('shown.bs.collapse', () => {\r\n BlanketOrder.toggleDetailText($toggle);\r\n });\r\n\r\n el.addEventListener('hidden.bs.collapse', () => {\r\n BlanketOrder.toggleDetailText($toggle);\r\n });\r\n }); \r\n }\r\n \r\n static toggleDetailText($toggle: JQuery) {\r\n const $hiddenText: JQuery = $toggle.find(\"span.d-none\");\r\n const $visibleText: JQuery = $toggle.find(\"span.d-block\")\r\n\r\n $hiddenText.toggleClass(\"d-none\", false);\r\n $hiddenText.toggleClass(\"d-block\", true);\r\n\r\n $visibleText.toggleClass(\"d-none\", true);\r\n $visibleText.toggleClass(\"d-block\", false);\r\n }\r\n}","import $ from \"jquery\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport MiniBasketData from \"../models/mini-basket-data\";\r\n\r\nexport default class Documents {\r\n private static ProductsInBasketMessage: string;\r\n private static RemoveProductsMessage: string;\r\n private static CancelOrderQuoteMessage: string;\r\n\r\n static init() {\r\n Documents.ProductsInBasketMessage = Multilang.getTranslation(\"documents.products.in.basket\");\r\n Documents.RemoveProductsMessage = Multilang.getTranslation(\"documents.remove.products\");\r\n Documents.CancelOrderQuoteMessage = Multilang.getTranslation(\"documents.cancel.orderquote\");\r\n\r\n Documents.initPager();\r\n Documents.initQuote();\r\n\r\n $(\".js-documents--search-form\").on(\r\n \"change\",\r\n \".js-documents--search-value, .js-documents--start-date, .js-documents--end-date\",\r\n (e) => {\r\n const $form = $(e.currentTarget).closest(\"form\");\r\n $form.trigger(\"submit\");\r\n }\r\n );\r\n\r\n $(\".js-documents--search-form\").on(\"change\", \".js-documents--status\", (e) => {\r\n const $form = $(e.currentTarget).closest(\"form\");\r\n $form.trigger(\"submit\");\r\n });\r\n }\r\n\r\n static initQuote() {\r\n $(\".js-order-quote\").on(\"click\", (e) => {\r\n const productCount = MiniBasketData.lineCount;\r\n\r\n let url = $(e.currentTarget).prop(\"href\");\r\n const queryString = $(\".nt-form-search\").serialize();\r\n url = url + \"&\" + queryString;\r\n\r\n if (productCount.value > 0) {\r\n bootbox.confirm({\r\n size: \"small\",\r\n message: Documents.ProductsInBasketMessage,\r\n buttons: {\r\n confirm: {\r\n label: Documents.RemoveProductsMessage,\r\n className: \"\"\r\n },\r\n cancel: {\r\n label: Documents.CancelOrderQuoteMessage,\r\n className: \"\"\r\n }\r\n },\r\n callback: function (result) {\r\n if (result) {\r\n window.location.href = url ?? \"\";\r\n }\r\n }\r\n });\r\n\r\n e.preventDefault();\r\n return false;\r\n } else {\r\n window.location.href = url;\r\n\r\n e.preventDefault();\r\n return false;\r\n }\r\n });\r\n }\r\n\r\n private static initPager() {\r\n $(\".js-documents .js-pager-navigate\").on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const pageIndex = $(e.currentTarget).data(\"nt-page-index\");\r\n\r\n $(\"#PageIndex\").val(pageIndex);\r\n $(\".js-documents--search-form\").trigger(\"submit\");\r\n });\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport axios, { AxiosError } from \"axios\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport ActionUrls from \"../utils/action-urls\";\r\n\r\ntype HauratonItem = {\r\n articleNumber: string,\r\n amount: number,\r\n description: string\r\n};\r\n\r\ntype HauratonProject = {\r\n cartItems: Array;\r\n description: string;\r\n projectCode: string;\r\n};\r\n\r\ntype HauratonEventData = {\r\n message: string,\r\n url: string,\r\n project: HauratonProject,\r\n};\r\n\r\ntype AddHauratonToBasketResult = {\r\n productsAdded :number,\r\n productsNotAdded: number,\r\n success: boolean,\r\n message: string\r\n redirectTo: string;\r\n};\r\n\r\nexport default class Hauraton {\r\n static iframeElement: HTMLIFrameElement | null;\r\n static spinnerElement: HTMLElement | null;\r\n static languageCode: string = \"\";\r\n\r\n static init() {\r\n if ($(\".nt-hauraton\").length === 0) {\r\n return;\r\n }\r\n\r\n console.log(\"Hauraton.init\");\r\n Hauraton.languageCode = Multilang.getLongLanguageCode();\r\n\r\n ActionUrls.load();\r\n\r\n Hauraton.iframeElement = document.getElementById(\"toolComponent\") as HTMLIFrameElement;\r\n Hauraton.spinnerElement = document.getElementById(\"hauraton-submit-spinner\") as HTMLElement;\r\n\r\n $(\"#hauraton-generatepdf-button\").on(\"click\", Hauraton.generatePdfClicked);\r\n $(\"#hauraton-addtobasket-button\").on(\"click\", Hauraton.addToBasketClicked);\r\n\r\n window.onmessage = async (e: MessageEvent) => {\r\n if (e.data.message === \"TRIGGER_PDF_GEN_DC_RESULT\") {\r\n if (e.data.url !== null && e.data.url.length > 0) {\r\n\r\n Hauraton.handleLeadsPopup().then((data) => {\r\n window.open(e.data.url);\r\n }).finally(() => {\r\n Hauraton.hideSpinner();\r\n });\r\n }\r\n }\r\n else if (e.data.message === \"TRIGGER_ADD_TO_CART_DC_RESULT\") {\r\n if (e.data.project.cartItems.length === 0) {\r\n toastr.error(Multilang.getTranslation(\"hauraton.message.error.noproducts\", \"No products to add to basket. Please check your inputs.\"));\r\n Hauraton.hideSpinner();\r\n }\r\n else {\r\n Hauraton.showSpinner();\r\n Hauraton.addToBasket(e.data.project);\r\n }\r\n }\r\n };\r\n }\r\n\r\n private static handleLeadsPopup(): Promise {\r\n return new Promise((resolve, reject) => {\r\n var content = document.getElementById(\"content\");\r\n\r\n content?.addEventListener(\"acceptLeadsPopup\", acceptLeadsPopup);\r\n content?.addEventListener(\"cancelLeadsPopup\", cancelLeadsPopup);\r\n\r\n content?.dispatchEvent(new CustomEvent(\"startLeadsPopup\", { detail: \"hauraton_pdf\" }));\r\n\r\n function acceptLeadsPopup(e: Event) {\r\n content?.removeEventListener(\"acceptLeadsPopup\", acceptLeadsPopup);\r\n content?.removeEventListener(\"cancelLeadsPopup\", cancelLeadsPopup);\r\n resolve(\"\");\r\n }\r\n\r\n function cancelLeadsPopup(e: Event) {\r\n content?.removeEventListener(\"acceptLeadsPopup\", acceptLeadsPopup);\r\n content?.removeEventListener(\"cancelLeadsPopup\", cancelLeadsPopup);\r\n reject(\"\");\r\n }\r\n });\r\n }\r\n\r\n private static addToBasketClicked(e) {\r\n if (Hauraton.iframeElement === null) {\r\n console.error(\"No iframe\");\r\n return;\r\n }\r\n\r\n if (Hauraton.iframeElement.contentWindow === null) {\r\n console.error(\"No iframe contentWindow\");\r\n return;\r\n }\r\n\r\n Hauraton.showSpinner();\r\n // console.log(\"addToBasketClicked !\");\r\n Hauraton.iframeElement.contentWindow.postMessage(\"TRIGGER_ADD_TO_CART_DC\", \"*\");\r\n }\r\n\r\n private static generatePdfClicked(e) {\r\n if (Hauraton.iframeElement === null) {\r\n console.error(\"No iframe\");\r\n return;\r\n }\r\n\r\n if (Hauraton.iframeElement.contentWindow === null) {\r\n console.error(\"No iframe contentWindow\");\r\n return;\r\n }\r\n\r\n Hauraton.showSpinner();\r\n // console.log(\"generatePdfClicked !\");\r\n Hauraton.iframeElement.contentWindow.postMessage(\"TRIGGER_PDF_GEN_DC\", \"*\");\r\n }\r\n\r\n private static addToBasket(project: HauratonProject) {\r\n const actionUrl = ActionUrls.getUrl(\"add-hauraton-configuration-to-basket\");\r\n\r\n axios\r\n .post(actionUrl, project)\r\n .then((res) => res.data)\r\n .then((model: AddHauratonToBasketResult) => {\r\n if (model.success) {\r\n if (model.redirectTo !== null && model.redirectTo.length > 0) {\r\n document.location.href = model.redirectTo;\r\n }\r\n if (model.message !== null && model.message.length > 0) {\r\n toastr.success(model.message);\r\n }\r\n\r\n if (model.productsAdded != 0) {\r\n document.location.href = `/${Hauraton.languageCode}/checkout`;\r\n }\r\n else {\r\n toastr.error(Multilang.getTranslation(\"hauraton.message.error.noproducts\", \"No products to add to basket. Please check your inputs.\"));\r\n }\r\n } else {\r\n toastr.error(model.message);\r\n }\r\n }).catch((err) => {\r\n toastr.error(err, Multilang.getTranslation(\"hauraton.message.error.addtobasket\", \"Could not add products to basket. Please check your inputs.\"));\r\n }).finally(() => {\r\n \r\n });\r\n }\r\n\r\n private static showSpinner() {\r\n if (Hauraton.spinnerElement === null) {\r\n return;\r\n }\r\n\r\n Hauraton.spinnerElement.style.visibility = \"visible\";\r\n }\r\n\r\n private static hideSpinner() {\r\n if (Hauraton.spinnerElement === null) {\r\n return;\r\n }\r\n\r\n Hauraton.spinnerElement.style.visibility = \"hidden\";\r\n }\r\n}\r\n","import * as FilePond from \"filepond\";\r\nimport FilePondPluginFileEncode from 'filepond-plugin-file-encode';\r\nimport FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';\r\nimport Multilang from \"../utils/multilang\";\r\n\r\nexport default class ListsUpload {\r\n static filePondInstanceTop;\r\n static filePondInstanceBottom;\r\n \r\n static init(): void {\r\n ListsUpload.initTopComponent(\".js-lists-upload--default-top\", \".js-lists-upload--filepond-top\", ListsUpload.filePondInstanceTop);\r\n ListsUpload.initTopComponent(\".js-lists-upload--default-bottom\", \".js-lists-upload--filepond-bottom\", ListsUpload.filePondInstanceBottom);\r\n }\r\n \r\n static initTopComponent(defaultTarget: string, filePondTarget: string, filePondInstance: any): void {\r\n const listsUploadFilePond = document.querySelector(filePondTarget) as HTMLElement;\r\n\r\n if (listsUploadFilePond === null || typeof FilePond.setOptions === \"undefined\") {\r\n ListsUpload.showDefaultUpload(defaultTarget);\r\n return;\r\n }\r\n\r\n listsUploadFilePond.classList.remove(\"d-none\");\r\n\r\n FilePond.registerPlugin(\r\n FilePondPluginFileEncode, // encodes files as base64 (needed for regular form post)\r\n FilePondPluginFileValidateSize // validates file size\r\n );\r\n\r\n FilePond.setOptions({\r\n maxFiles: 1,\r\n allowBrowse: true,\r\n allowFileEncode: true,\r\n allowFileSizeValidation: true,\r\n maxFileSize: \"5MB\",\r\n maxTotalFileSize: \"5MB\",\r\n labelButtonProcessItem: Multilang.getTranslation(\"lists-upload.label.process-item\", \"Upload\"),\r\n labelButtonRemoveItem: Multilang.getTranslation(\"lists-upload.label.remove-item\", \"Verwijder\"),\r\n labelFileProcessing: Multilang.getTranslation(\"lists-upload.label.file-processing\", \"Wachten...\"),\r\n labelFileProcessingComplete: Multilang.getTranslation(\"lists-upload.label.file-processing-complete\", \"Upload klaar\"),\r\n labelFileProcessingError: Multilang.getTranslation(\"lists-upload.label.file-processing-error\", \"Fout tijdens opladen (bestand te groot?)\"),\r\n labelIdle: Multilang.getTranslation(\"lists-upload.label.idle\", \"Klik hier of sleep hier een bestand\"),\r\n labelTapToUndo: Multilang.getTranslation(\"lists-upload.label.tap-to-undo\", \"Verwijder\"),\r\n labelMaxFileSize: Multilang.getTranslation(\"lists-upload.message.warning.file-size.max\", \"De maximum bestandsgrootte is {filesize}.\"),\r\n labelMaxFileSizeExceeded: Multilang.getTranslation(\"lists-upload.message.warning.file-size.max-exceeded\", \"De bestandsgrootte werd overschreden.\"),\r\n labelMaxTotalFileSize: Multilang.getTranslation(\"lists-upload.message.warning.file-size.max-total\", \"De maximum totale bestandsgrootte is {filesize}.\"),\r\n labelMaxTotalFileSizeExceeded: Multilang.getTranslation(\"lists-upload.message.warning.file-size.max-total-exceeded\", \"De maximum totale bestandsgrootte werd overschreden.\"),\r\n onerror: ListsUpload.onError,\r\n credits: false\r\n });\r\n\r\n filePondInstance = FilePond.create(listsUploadFilePond);\r\n }\r\n \r\n static showDefaultUpload(defaultTarget: string): void {\r\n const listsUploadDefault = document.querySelector(defaultTarget) as HTMLElement;\r\n\r\n if (listsUploadDefault === null) {\r\n return;\r\n }\r\n\r\n listsUploadDefault.classList.remove(\"d-none\");\r\n }\r\n\r\n static onError(error, file, status): void {\r\n console.error(\"Lists upload error.\", error, file, status);\r\n }\r\n}","var Global = Global || {};\r\n\r\nexport default class LoginRequest {\r\n static savedPlaceHolder: any = null;\r\n\r\n static init() {\r\n LoginRequest.initIsEmptyVat();\r\n LoginRequest.handleVat();\r\n }\r\n \r\n private static initIsEmptyVat() {\r\n $(\"body\").on(\"click\", \".js-login-request--is-empty-vat\", LoginRequest.handleVat);\r\n }\r\n\r\n private static handleVat() {\r\n const $vat = $(\".js-login-request--vat\");\r\n const $isEmptyVat = $(\".js-login-request--is-empty-vat\");\r\n\r\n $vat.prop(\"disabled\", $isEmptyVat.is(\":checked\"));\r\n\r\n if ($isEmptyVat.is(\":checked\")) {\r\n LoginRequest.savedPlaceHolder = $vat.prop(\"placeholder\") as string;\r\n \r\n $vat.prop(\"placeholder\", \"\");\r\n $vat.val(\"\");\r\n } else {\r\n if (LoginRequest.savedPlaceHolder !== null) {\r\n $vat.prop(\"placeholder\", LoginRequest.savedPlaceHolder);\r\n }\r\n }\r\n }\r\n}\r\n","import $$ from \"../utils/double-dollar\";\r\n\r\nexport default class PriceLists {\r\n static init() {\r\n this.onChangeDivision();\r\n this.addOnChangeDivision();\r\n this.addOnChangeCategoryCheckbox();\r\n this.addOnClickCheckboxLabel();\r\n }\r\n\r\n private static addOnClickCheckboxLabel() {\r\n $(\".js-category-node--checkbox-label\").on('click', (event) => this.onClickCheckboxLabel(event));\r\n }\r\n private static onClickCheckboxLabel(event: JQuery.ClickEvent) {\r\n const checkboxLabel = event.target as HTMLElement;\r\n const checkbox = checkboxLabel.previousElementSibling as HTMLInputElement;\r\n checkbox.checked = !checkbox.checked;\r\n checkbox.dispatchEvent(new Event('change', { bubbles: true, cancelable: true }));\r\n }\r\n\r\n private static addOnChangeCategoryCheckbox() {\r\n $(\".js-category-node--checkbox\").on(\"change\", (event) => this.onChangeCategoryCheckbox(event));\r\n }\r\n\r\n private static onChangeCategoryCheckbox(event: JQuery.ChangeEvent) {\r\n const $currentNode = event.target as HTMLInputElement\r\n const $childNodes = this.getChildNodes($currentNode);\r\n \r\n if ($currentNode.checked) {\r\n this.addCategoriesRecusively($currentNode, $childNodes);\r\n this.expandNode($currentNode);\r\n } else {\r\n this.removeCategoriesRecursively($currentNode, $childNodes);\r\n }\r\n\r\n this.updateChildNodesCheckboxValue($childNodes, $currentNode.checked);\r\n this.updateParentNodeCheckboxValue($currentNode);\r\n }\r\n private static expandNode($currentNode: HTMLInputElement) {\r\n $(\"#js-category-node--child-nodes-\" + $currentNode.dataset.category).collapse(\"show\");\r\n }\r\n\r\n private static removeCategoriesRecursively($currentNode: HTMLInputElement, $childNodes: HTMLInputElement[]) {\r\n const categoriesToRemove = this.getCategories($currentNode, $childNodes);\r\n\r\n let selectedCategories = this.getSelectedCategories();\r\n \r\n if (categoriesToRemove.length > 0) {\r\n selectedCategories = selectedCategories.filter(selectedCategory => !categoriesToRemove.includes(selectedCategory));\r\n selectedCategories = Array.from(new Set(selectedCategories));\r\n\r\n this.updateSelectedCategories(selectedCategories);\r\n }\r\n }\r\n\r\n private static updateParentNodeCheckboxValue($currentNode: HTMLInputElement) {\r\n const $siblingNodes = this.getSiblings($currentNode);\r\n const $parentNode = this.getParentNode($currentNode);\r\n\r\n if ($siblingNodes !== null && $parentNode !== null) {\r\n const numberOfCheckedSiblings = $siblingNodes.filter(($siblingNode) => $siblingNode.checked).length;\r\n const totalSiblings = $siblingNodes.length;\r\n\r\n if (numberOfCheckedSiblings == totalSiblings) {\r\n $parentNode.indeterminate = false;\r\n $parentNode.checked = true;\r\n } else if (numberOfCheckedSiblings == 0) {\r\n $parentNode.indeterminate = false;\r\n $parentNode.checked = false;\r\n } else {\r\n $parentNode.indeterminate = true;\r\n }\r\n }\r\n }\r\n\r\n private static updateChildNodesCheckboxValue($childNodes: HTMLInputElement[], checked: boolean) {\r\n $childNodes.forEach(($childNode) => $childNode.checked = checked);\r\n }\r\n\r\n private static getParentNode($currentNode: HTMLInputElement): HTMLInputElement | null {\r\n const parentCategory = $currentNode.dataset.parent;\r\n const $parentNode = $(\"#js-category-node--checkbox-\" + parentCategory);\r\n \r\n if ($parentNode.length == 0) {\r\n return null\r\n }\r\n \r\n return $parentNode[0] as HTMLInputElement;\r\n }\r\n\r\n private static getSiblings($currentNode: HTMLInputElement): HTMLInputElement[] | null {\r\n const $parent = this.findParentWithClass($currentNode, \"js-category-node--child-nodes\");\r\n \r\n if ($parent != null) {\r\n const $childNodes = Array.prototype.slice.call($parent.querySelectorAll('.js-category-node--checkbox, .js-category-node--checkbox *'), 0) as HTMLInputElement[];\r\n return $childNodes.map(($childNode) => $childNode as HTMLInputElement);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private static findParentWithClass(element: HTMLElement, className: string): HTMLElement | null {\r\n let parent = element.parentElement;\r\n \r\n while (parent) {\r\n if (parent.classList.contains(className)) {\r\n return parent;\r\n }\r\n \r\n parent = parent.parentElement;\r\n }\r\n \r\n return null;\r\n }\r\n\r\n private static addCategoriesRecusively($currentNode: HTMLInputElement, $childNodes: HTMLInputElement[]) {\r\n const categoriesToAdd = this.getCategories($currentNode, $childNodes);\r\n let selectedCategories = this.getSelectedCategories();\r\n\r\n if (categoriesToAdd.length > 0) {\r\n selectedCategories.push(...categoriesToAdd);\r\n selectedCategories = Array.from(new Set(selectedCategories));\r\n selectedCategories = selectedCategories.filter((category) => category != \"\")\r\n this.updateSelectedCategories(selectedCategories);\r\n }\r\n }\r\n\r\n private static getCategories($currentNode: HTMLInputElement, $childNodes: HTMLInputElement[]) {\r\n let categories = [] as string[];\r\n \r\n const currentCategory = $currentNode.dataset.category ?? \"\";\r\n categories.push(currentCategory);\r\n\r\n const childCategories = $childNodes.map(($childNode) => $childNode.dataset.category ?? \"\");\r\n categories.push(...childCategories);\r\n categories = categories.filter((category) => category !== \"\");\r\n \r\n return categories;\r\n }\r\n\r\n private static getSelectedCategories(): string[] {\r\n const categoryString = $(\"#SelectedCategories\").val()?.toString() ?? \"\";\r\n return categoryString.split(\",\");\r\n }\r\n\r\n private static updateSelectedCategories(categories: string[]) {\r\n $(\"#SelectedCategories\").val(categories.join(\",\"));\r\n }\r\n\r\n private static getChildNodes($checkbox: HTMLInputElement): HTMLInputElement[] {\r\n const startCategory = $checkbox.dataset.category;\r\n const $childrenContainer = $(\"#js-category-node--child-nodes-\" + startCategory)[0] as HTMLElement;\r\n const $childNodes = Array.prototype.slice.call($childrenContainer.querySelectorAll('.js-category-node--checkbox, .js-category-node--checkbox *'), 0) as HTMLInputElement[];\r\n \r\n return $childNodes.map(($childNode) => $childNode as HTMLInputElement);\r\n }\r\n\r\n private static addOnChangeDivision() {\r\n const $divisionSelect = $(\".js-price-list--select-division\");\r\n $divisionSelect.on(\"change\", (event) => this.onChangeDivision());\r\n }\r\n\r\n private static onChangeDivision() {\r\n const selectedDivision = $(\".js-price-list--select-division\").val() as string;\r\n const divisions = $$(\".js-price-list--select-division option\", (option) => option.getAttribute(\"value\"));\r\n\r\n divisions.filter(division => division !== selectedDivision)\r\n .forEach(divisionToHide => $('#js-division-' + divisionToHide).collapse(\"hide\"));\r\n\r\n $('#js-division-' + selectedDivision).collapse(\"show\");\r\n }\r\n}","export default class PriceListRequest {\r\n private static $categoriesSelectElement: JQuery;\r\n private static $cataloguesSelectElement: JQuery;\r\n private static $brandsSelectElement: JQuery;\r\n private static $listsSelectElement: JQuery;\r\n private static $pricetypeSelectElement: JQuery;\r\n private static $stocktypeSelectElement: JQuery;\r\n private static $submitButtonElement: JQuery;\r\n private static $allCategoriesElement: JQuery;\r\n private static $categorysElements: JQuery;\r\n\r\n static init() {\r\n this.initLoad();\r\n this.initOnChangeSelectionKind();\r\n this.initAllCategoriesChange();\r\n }\r\n\r\n private static initLoad()\r\n {\r\n this.$categoriesSelectElement = $(\".js-categories-select\");\r\n this.$cataloguesSelectElement = $(\".js-catalogues-select\");\r\n this.$brandsSelectElement = $(\".js-brands-select\");\r\n this.$listsSelectElement = $(\".js-lists-select\");\r\n this.$pricetypeSelectElement = $(\".js-pricetype-select\");\r\n this.$stocktypeSelectElement = $(\".js-stocktype-select\");\r\n this.$submitButtonElement = $(\".js-pricelist-submit-button\");\r\n this.$allCategoriesElement = $(\".js-categories-all\");\r\n this.$categorysElements = $(\".js-categories-select-category\");\r\n \r\n\r\n if (this.$listsSelectElement.length === 0) {\r\n const $listRadio = $(\".js-lists-radio\");\r\n $listRadio.prop(\"disabled\", true);\r\n }\r\n }\r\n\r\n private static initAllCategoriesChange() {\r\n this.$allCategoriesElement.on(\"change\", (event) => this.allCategoriesChanged(event));\r\n this.$categorysElements.on(\"change\", (event) => this.categoryChanged(event));\r\n\r\n }\r\n\r\n private static categoryChanged(event: JQuery.ChangeEvent) {\r\n var checkBoxes = $(\".js-categories-select-category:not(checked)\");\r\n if (checkBoxes.length > 0) {\r\n this.$allCategoriesElement.prop(\"checked\", false);\r\n }\r\n\r\n this.onChangeSelectionKind(null);\r\n }\r\n\r\n private static allCategoriesChanged(event: JQuery.ChangeEvent | null) {\r\n this.$categoriesSelectElement.prop(\"checked\", this.$allCategoriesElement.prop(\"checked\"));\r\n this.onChangeSelectionKind(null);\r\n }\r\n\r\n private static initOnChangeSelectionKind() {\r\n $(\".js-form-pricelistrequest input\").on(\"change\", (event) => this.onChangeSelectionKind(event));\r\n this.onChangeSelectionKind(null);\r\n }\r\n\r\n private static onChangeSelectionKind(event: JQuery.ChangeEvent | null) {\r\n const value: number = $(\"input[name='SelectionKind']:checked\").val() as number;\r\n const selectedKind = SelectionKind[value];\r\n\r\n type Window = { storeFrontCode: string };\r\n var currentWindow = window as unknown as Window;\r\n\r\n this.$categoriesSelectElement.prop(\"disabled\", selectedKind !== SelectionKind[SelectionKind.Category]);\r\n this.$brandsSelectElement.prop(\"disabled\", selectedKind !== SelectionKind[SelectionKind.Brand]);\r\n this.$cataloguesSelectElement.prop(\"disabled\", selectedKind !== SelectionKind[SelectionKind.Catalogue]);\r\n this.$listsSelectElement.prop(\"disabled\", selectedKind !== SelectionKind[SelectionKind.List]);\r\n\r\n // below is some store specific dirty code\r\n if (currentWindow.storeFrontCode == \"schac\") {\r\n if (selectedKind == SelectionKind[SelectionKind.Brand] || selectedKind == SelectionKind[SelectionKind.Category]) {\r\n PriceListRequest.$stocktypeSelectElement.val(\"true\");\r\n }\r\n }\r\n else if (currentWindow.storeFrontCode == \"outil\" || currentWindow.storeFrontCode == \"outfr\") {\r\n if (selectedKind == SelectionKind[SelectionKind.Category]) {\r\n PriceListRequest.$stocktypeSelectElement.val(\"true\");\r\n PriceListRequest.$stocktypeSelectElement.prop(\"disabled\", true);\r\n }\r\n else {\r\n PriceListRequest.$stocktypeSelectElement.prop(\"disabled\", false);\r\n }\r\n }\r\n else if (currentWindow.storeFrontCode == \"techn\") {\r\n if (selectedKind == SelectionKind[SelectionKind.Brand] || selectedKind == SelectionKind[SelectionKind.Category]) {\r\n PriceListRequest.$stocktypeSelectElement.val(\"true\");\r\n }\r\n }\r\n\r\n if (selectedKind == SelectionKind[SelectionKind.Category]) {\r\n // is at least one category selected ?\r\n var checkBoxes = $(\".js-categories-select:checked\");\r\n this.$submitButtonElement.prop(\"disabled\", checkBoxes.length == 0);\r\n }\r\n else {\r\n this.$submitButtonElement.prop(\"disabled\", false);\r\n }\r\n }\r\n}\r\n\r\nenum SelectionKind {\r\n NotSet = 0,\r\n Category = 1,\r\n Brand = 2,\r\n Catalogue = 3,\r\n Favorites = 4,\r\n List = 5,\r\n AlreadyBought = 6,\r\n}\r\n","import $ from \"jquery\";\r\nimport axios, { AxiosError } from \"axios\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport CustomHelper from \"../utils/custom-helper\";\r\nimport Toaster from \"../components/toaster\";\r\nimport \"../extensions/string-extensions\";\r\nimport DatalayerHelper from \"../utils/datalayer-helper\";\r\n\r\nexport default class Products {\r\n static init() {\r\n Products.initChangeCustomerProductCode();\r\n Products.initLogDownload();\r\n Products.initSectionLinks();\r\n\r\n Products.doLogProductDetail();\r\n }\r\n\r\n private static initChangeCustomerProductCode() {\r\n $(\"body\").on(\"keyup\", \".js-product-detail--customer-product-code\", e => {\r\n const $customerProductCodeInput = $(e.currentTarget);\r\n\r\n const $customerProductCodeAction = $customerProductCodeInput\r\n .closest(\".input-group\")\r\n .find(\".js-product-detail--save-customer-product-code\");\r\n\r\n const code = $customerProductCodeInput.val() as string;\r\n const originalCode = $customerProductCodeInput.data(\"nt-original-code\") as string;\r\n\r\n // do not use prop for toggling disabled as that does not work on links\r\n $customerProductCodeAction.attr(\"disabled\", (code === originalCode ? \"disabled\" : null));\r\n });\r\n\r\n $(\"body\").on(\"click\", \".js-product-detail--save-customer-product-code\", e => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const $customerProductCodeAction = $(e.currentTarget);\r\n\r\n const $customerProductCodeInput = $customerProductCodeAction\r\n .closest(\".input-group\")\r\n .find(\".js-product-detail--customer-product-code\");\r\n\r\n const postData = {\r\n productId: $customerProductCodeAction.data(\"nt-product-id\") as number,\r\n code: $customerProductCodeInput.val() as string,\r\n originalCode: $customerProductCodeInput.data(\"nt-original-code\") as string\r\n };\r\n\r\n if (postData.code === postData.originalCode) {\r\n return;\r\n }\r\n\r\n axios\r\n .post($customerProductCodeAction.prop(\"href\"), postData)\r\n .then((res) => res.data)\r\n .then((data: any) => {\r\n $customerProductCodeInput.data(\"nt-original-code\", postData.code);\r\n\r\n // do not use prop for toggling disabled as that does not work on links\r\n $customerProductCodeAction.attr(\"disabled\", \"disabled\");\r\n\r\n const successMessage = Multilang.getTranslation(\"product.message.success.update-customer-product-code\", \"Customer product code was updated successfully.\");\r\n toastr.success(successMessage);\r\n\r\n DatalayerHelper.trackEvent(\"bm_product_customer_product_code\");\r\n \r\n }).catch((err: AxiosError) => {\r\n const defaultMessage = Multilang.getTranslation(\"product.message.error.update-customer-product-code\", \"Could not update customer product code.\");\r\n Toaster.showAxiosMessage(err, defaultMessage);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n })\r\n }\r\n\r\n private static doLogProductDetail() {\r\n const $element = $(\".js-log-product-detail\");\r\n\r\n if ($element.length === 1) {\r\n\r\n const postData = {\r\n productId: $element.data(\"nt-product-id\")\r\n };\r\n\r\n axios\r\n .post($element.data(\"nt-action-url\"), postData)\r\n .then((res) => res.data)\r\n .then((data: any) => {\r\n console.log(\"Product #\" + postData.productId + \" has logged a detail view.\");\r\n }).catch((err) => {\r\n console.error(err);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n }\r\n }\r\n\r\n private static initLogDownload() {\r\n $(\"body\").on(\"click\", \".js-download\", e => {\r\n const $downloadLink = $(e.currentTarget);\r\n\r\n const postData = {\r\n productId: $downloadLink.data(\"nt-product-id\"),\r\n url: $downloadLink.attr(\"href\") ?? \"\"\r\n };\r\n\r\n DatalayerHelper.trackEvent(\"bm_product_download_pdf\", postData.url);\r\n\r\n axios\r\n .post($downloadLink.data(\"nt-action-url\"), postData)\r\n .then((res) => res.data)\r\n .then((data: any) => {\r\n console.log(\"Product #\" + postData.productId + \" has logged a download.\");\r\n }).catch((err) => {\r\n console.error(err);\r\n }).finally(() => {\r\n // do nothing\r\n });\r\n });\r\n }\r\n\r\n private static initSectionLinks() {\r\n $(\"[href*='#product-detail-']\").each((ix: number, el: HTMLElement) => {\r\n const linkTarget = el.getAttribute(\"href\") as string;\r\n const linkTargetId = linkTarget.replace(\"#\", \"\");\r\n const linkSection = document.querySelector(`section[id='${linkTargetId}']`);\r\n\r\n if (linkSection !== null) {\r\n el.addEventListener(\"click\", (e) => {\r\n e.preventDefault();\r\n\r\n const stickyHeaderHeight: number = CustomHelper.getStickyHeaderHeight(true);\r\n CustomHelper.smoothScrollTo(linkTarget, stickyHeaderHeight);\r\n\r\n window.location.hash = linkTargetId;\r\n })\r\n }\r\n });\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport Multilang from \"../utils/multilang\";\r\nimport ActionUrls from \"../utils/action-urls\";\r\nimport { Collapse } from \"bootstrap\";\r\nimport NProgress from \"nprogress\";\r\n\r\nexport default class ProductSearch {\r\n private static refreshDelay: any = 500;\r\n private static currentTimeout: any = null;\r\n private static $form: any = null;\r\n private static $uiForm: any = null;\r\n private static clientData: ClientDataModel;\r\n\r\n public static init() {\r\n this.$form = $(\".js-product-search--left-filter-form\");\r\n this.$uiForm = $(\".js-product-search--top-form\");\r\n \r\n if (this.$form.length === 0 && this.$uiForm.length === 0) {\r\n return;\r\n }\r\n\r\n this.clientData = new ClientDataModel();\r\n\r\n //// console.log(\"Search ***** \", ActionUrls.getUrl(\"product-search\"));\r\n\r\n this.initSearchUI();\r\n\r\n if (this.$form.length === 0) {\r\n return;\r\n }\r\n\r\n this.initSortOrderSelection();\r\n this.initViewModeSelection();\r\n this.initPager();\r\n this.initFilters();\r\n this.initPreviousClientData();\r\n }\r\n\r\n private static initSortOrderSelection() {\r\n $(\".js-product-search--sort-order\").on(\"change\", (e) => {\r\n const newSortOrder = $(e.currentTarget).val() as string;\r\n document.cookie = \"psso2\" + \"=\" + newSortOrder + \"; expires=Sun, 1 Jan 2040 03:14:15 UTC; path=/\";\r\n ProductSearch.doRefresh();\r\n });\r\n }\r\n\r\n private static initViewModeSelection() {\r\n $(\".js-product-search--view-mode\").on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const newViewMode = $(e.currentTarget).data(\"nt-view-mode\") as string;\r\n document.cookie = \"rvm\" + \"=\" + newViewMode + \"; expires=Sun, 1 Jan 2040 03:14:15 UTC; path=/\";\r\n ProductSearch.doRefresh();\r\n });\r\n }\r\n\r\n private static initPager() {\r\n $(\".nt-product-search .js-pager-navigate\").on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n const pageIndex = $(e.currentTarget).data(\"nt-page-index\");\r\n ProductSearch.changePage(pageIndex);\r\n });\r\n }\r\n\r\n private static initFilters() {\r\n $(\".js-filter--more\").on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const $block = $(e.currentTarget).closest(\".js-filter\");\r\n $block.find(\".js-filter--more-container\").toggleClass(\"d-none\", true);\r\n $block.find(\".js-filter--more-container\").toggleClass(\"d-block\", false);\r\n $block.find(\".js-filter--less-container\").toggleClass(\"d-none\", false);\r\n $block.find(\".js-filter--less-container\").toggleClass(\"d-block\", true);\r\n $block.find(\".js-filter--extra\").toggleClass(\"d-none\", false);\r\n $block.find(\".js-filter--extra\").toggleClass(\"d-block\", true);\r\n\r\n ProductSearch.sortFilterValues($block, 2);\r\n ProductSearch.delayRefresh();\r\n });\r\n\r\n $(\".js-filter--less\").on(\"click\", (e) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const $block = $(e.currentTarget).closest(\".js-filter\");\r\n $block.find(\".js-filter--more-container\").toggleClass(\"d-none\", false);\r\n $block.find(\".js-filter--more-container\").toggleClass(\"d-block\", true);\r\n $block.find(\".js-filter--less-container\").toggleClass(\"d-none\", true);\r\n $block.find(\".js-filter--less-container\").toggleClass(\"d-block\", false);\r\n $block.find(\".js-filter--extra\").toggleClass(\"d-none\", true);\r\n $block.find(\".js-filter--extra\").toggleClass(\"d-block\", false);\r\n\r\n ProductSearch.sortFilterValues($block, 1);\r\n ProductSearch.delayRefresh();\r\n });\r\n\r\n $(\".js-filter--brand\").on(\"click\", this.brandFilterClicked);\r\n $(\".js-filter--category\").on(\"click\", this.categoryFilterClicked);\r\n\r\n $(\".js-filter--all-prop-remove\").on(\"click\", this.clearPropertyFilters);\r\n $(\".js-filter--brand-remove\").on(\"click\", this.removableBrandFilterClicked);\r\n $(\".js-filter--cat-remove\").on(\"click\", this.removableCatFilterClicked);\r\n $(\".js-filter--product-model-remove\").on(\"click\", this.removableProductModelFilterClicked);\r\n $(\".js-filter--prop-remove\").on(\"click\", this.removablePropFilterClicked);\r\n $(\".js-filter--word-remove\").on(\"click\", this.removableWordFilterClicked);\r\n\r\n $(\".js-filter--title\").on(\"click\", this.delayRefresh);\r\n $(\".js-filter--value-input input\").on(\"click\", this.propertyFilterClicked);\r\n $(\".js-filter--value-line\").on(\"mouseenter\", this.delayRefresh);\r\n }\r\n\r\n private static initSearchUI() {\r\n $(\".js-product-search--filter\").on(\"change\", (e) => {\r\n const $button = $(e.currentTarget);\r\n const filterType = $button.data(\"nt-filter-type\");\r\n\r\n switch (filterType) {\r\n case \"favorites\":\r\n ProductSearch.clientData.FilterFavorites = !ProductSearch.clientData.FilterFavorites;\r\n break;\r\n case \"promotions\":\r\n ProductSearch.clientData.FilterPromotions = !ProductSearch.clientData.FilterPromotions;\r\n if (ProductSearch.clientData.FilterPromotions) {\r\n ProductSearch.clientData.FilterLiquidations = false;\r\n }\r\n\r\n break;\r\n case \"liquidations\":\r\n ProductSearch.clientData.FilterLiquidations = !ProductSearch.clientData.FilterLiquidations;\r\n if (ProductSearch.clientData.FilterLiquidations) {\r\n ProductSearch.clientData.FilterPromotions = false;\r\n }\r\n\r\n break;\r\n case \"ordered\":\r\n ProductSearch.clientData.FilterOrdered = !ProductSearch.clientData.FilterOrdered;\r\n break;\r\n case \"in-stock\":\r\n ProductSearch.clientData.FilterInStock = !ProductSearch.clientData.FilterInStock;\r\n break;\r\n }\r\n\r\n const arg = $(\".js-product-search--query\").val();\r\n\r\n if (ProductSearch.areEqualOrEmpty(ProductSearch.clientData.SearchTerm, String(arg)) === false) {\r\n // if using new search word, reset the filters\r\n ProductSearch.clientData.CategoryIds = [];\r\n ProductSearch.clientData.PropertyValueIds = [];\r\n }\r\n\r\n ProductSearch.clientData.SearchTerm = String(arg);\r\n ProductSearch.initiateRefresh();\r\n });\r\n\r\n ProductSearch.$form.bind(\"submit\", ProductSearch.handleSearchSubmit);\r\n $(\".js-product-search--submit\").on(\"click\", ProductSearch.handleSearchSubmit);\r\n }\r\n\r\n private static handleSearchSubmit(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const arg = $(\".js-product-search--query\").val();\r\n if (ProductSearch.clientData.SearchTerm !== String(arg)) {\r\n // if using new search word, reset the filters\r\n ProductSearch.clientData.CategoryIds = [];\r\n ProductSearch.clientData.PropertyValueIds = [];\r\n ProductSearch.clientData.BrandId = 0;\r\n ProductSearch.clientData.ProductModelId = 0;\r\n }\r\n\r\n ProductSearch.clientData.SearchTerm = String(arg);\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static sortFilterValues($block: JQuery, order: number) {\r\n var $wrapper = $block.find(\".js-filter--values\");\r\n var $elements = $wrapper.find(\".js-filter--value-line\");\r\n var sorted = $elements.toArray().sort(function (a, b) {\r\n const val1 = a.getAttribute(order === 1 ? \"data-sortorder1\" : \"data-sortorder2\") ?? \"\";\r\n const val2 = b.getAttribute(order === 1 ? \"data-sortorder1\" : \"data-sortorder2\") ?? \"\";\r\n return val1 > val2 ? 1 : -1;\r\n });\r\n $wrapper.append(sorted);\r\n }\r\n\r\n private static areEqualOrEmpty(value1, value2) {\r\n if (value1 === null) value1 = \"\";\r\n if (value2 === null) value2 = \"\";\r\n return value1 === value2;\r\n }\r\n\r\n private static removableWordFilterClicked(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n $(\".js-product-search--query\").val(\"\");\r\n ProductSearch.clientData.SearchTerm = null;\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static removableBrandFilterClicked(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n ProductSearch.clientData.BrandId = 0;\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static removableProductModelFilterClicked(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n ProductSearch.clientData.ProductModelId = 0;\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static removablePropFilterClicked(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const entityIds = String($(this).data(\"nt-entities\"));\r\n for (let entityId of entityIds.split(\",\")) {\r\n ProductSearch.clientData.RemovedPropertyValueId = +entityId;\r\n ProductSearch.removeFilterValueId(+entityId);\r\n }\r\n\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static removableCatFilterClicked(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n const entityIds = String($(this).data(\"nt-entities\"));\r\n for (let entityId of entityIds.split(\",\")) {\r\n ProductSearch.removeCategoryId(+entityId);\r\n }\r\n\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static clearPropertyFilters(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n \r\n ProductSearch.resetFilterUI();\r\n ProductSearch.clientData.PropertyValueIds = [];\r\n ////ProductSearch.clientData.CategoryIds = [];\r\n ////ProductSearch.clientData.BrandId = 0;\r\n ////ProductSearch.clientData.ProductModelId = 0;\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static resetFilterUI() {\r\n $(\".js-filter--value-input input\").prop(\"checked\", false);\r\n }\r\n\r\n private static propertyFilterClicked(e) {\r\n const valueId = $(this).data(\"nt-value-id\");\r\n const checked = $(this).is(\":checked\");\r\n\r\n if (checked) {\r\n ProductSearch.addFilterValueId(valueId);\r\n } else {\r\n ProductSearch.removeFilterValueId(valueId);\r\n }\r\n\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static categoryFilterClicked(e) {\r\n const categoryId = $(this).data(\"nt-category-id\") as string;\r\n ProductSearch.addCategoryId(categoryId);\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static brandFilterClicked(e) {\r\n ProductSearch.clientData.BrandId = $(this).data(\"nt-category-id\") as number;\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n public static changePage(pageIndex) {\r\n ProductSearch.clientData.PageIndex = pageIndex;\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n public static changeViewMode(mode) {\r\n // TODO: set cookie\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n public static changeSortOrder(order) {\r\n // TODO: set cookie\r\n ProductSearch.initiateRefresh();\r\n }\r\n\r\n private static initiateRefresh() {\r\n if (this.currentTimeout !== null) {\r\n clearTimeout(this.currentTimeout);\r\n this.currentTimeout = null;\r\n }\r\n\r\n ProductSearch.currentTimeout = setTimeout(this.doRefresh, this.refreshDelay);\r\n }\r\n\r\n private static delayRefresh() {\r\n if (ProductSearch.currentTimeout !== null) {\r\n ProductSearch.initiateRefresh(); // will restart the delay timer\r\n }\r\n }\r\n\r\n private static doRefresh() {\r\n ProductSearch.currentTimeout = null;\r\n const qs = ProductSearch.buildQueryString();\r\n\r\n if (qs === \"t=\") {\r\n NProgress.start();\r\n document.location.href = \"/\" + Multilang.getLongLanguageCode();\r\n return;\r\n }\r\n\r\n let url = ActionUrls.getUrl(\"product-search\");\r\n url = url + (url.indexOf(\"?\") !== -1 ? \"&\" : \"?\") + qs;\r\n\r\n NProgress.start();\r\n document.location.href = url;\r\n }\r\n\r\n private static buildQueryString() {\r\n let qs = \"\";\r\n const propertyValueOrderValue = $(\".js-value-order-string\").val() as string ?? \"\";\r\n\r\n if (this.clientData.SearchTerm !== null && this.clientData.SearchTerm != \"\") {\r\n qs += \"q=\" + encodeURIComponent(this.clientData.SearchTerm) + \"&\";\r\n }\r\n\r\n if (this.clientData.CategoryIds.length > 0) {\r\n qs += \"cc=\" + this.joinIds(this.clientData.CategoryIds) + \"&\";\r\n }\r\n\r\n if (this.clientData.FilterFavorites) {\r\n qs += \"ff=1&\";\r\n }\r\n\r\n if (this.clientData.FilterOrdered) {\r\n qs += \"fo=1&\";\r\n }\r\n\r\n if (this.clientData.FilterPromotions) {\r\n qs += \"fp=1&\";\r\n }\r\n\r\n if (this.clientData.FilterLiquidations) {\r\n qs += \"fl=1&\";\r\n }\r\n\r\n if (this.clientData.FilterInStock) {\r\n qs += \"fs=1&\";\r\n }\r\n\r\n if (this.clientData.PropertyValueIds.length > 0) {\r\n qs += \"pv=\" + this.joinIds(this.clientData.PropertyValueIds) + \"&\";\r\n }\r\n\r\n const lpvcsq = this.collectFromPreviousData();\r\n if (lpvcsq !== \"\") {\r\n qs += \"lpvc=\" + lpvcsq + \"&\";\r\n }\r\n\r\n if (this.clientData.BrandId !== 0) {\r\n qs += \"b=\" + String(this.clientData.BrandId) + \"&\";\r\n }\r\n\r\n if (this.clientData.ProductModelId !== 0) {\r\n qs += \"m=\" + String(this.clientData.ProductModelId) + \"&\";\r\n }\r\n\r\n if (this.clientData.PageIndex !== 0) {\r\n qs += \"p=\" + String(this.clientData.PageIndex) + \"&\";\r\n }\r\n\r\n if (this.clientData.RemovedPropertyValueId !== 0) {\r\n qs += \"rp=\" + String(this.clientData.RemovedPropertyValueId) + \"&\";\r\n }\r\n\r\n if (qs.length + propertyValueOrderValue.length < 1024) {\r\n qs += \"pvov=\" + propertyValueOrderValue + \"&\";\r\n }\r\n\r\n qs += \"t=\" + new Date().getTime();\r\n\r\n return qs;\r\n }\r\n\r\n private static joinIds(array) {\r\n return array.join(\",\");\r\n }\r\n\r\n private static pushIfNotExists(array: PropertyValueCountCombinations[], value: PropertyValueCountCombinations) {\r\n for (let pvcc of array) {\r\n if (pvcc.c === value.c && pvcc.p === value.p && pvcc.v === value.v) {\r\n return;\r\n }\r\n }\r\n\r\n array.push(value);\r\n }\r\n\r\n private static collectFromPreviousData() {\r\n // take last propertyValueId\r\n let lastPropertyValueId = this.clientData.PropertyValueIds[this.clientData.PropertyValueIds.length - 1];\r\n \r\n let lastPropertyId = 0;\r\n for (let lpvc of this.clientData.PreviousPropertyValues) {\r\n if (lpvc.v == lastPropertyValueId) {\r\n lastPropertyId = lpvc.p;\r\n break;\r\n }\r\n }\r\n\r\n let newData: PropertyValueCountCombinations[] = [];\r\n\r\n // find all value-count pairs from lastPropertyId\r\n if (lastPropertyId !== 0) {\r\n for (let lpvc of this.clientData.PreviousPropertyValues.filter(function(item) {\r\n return item.p == lastPropertyId;\r\n })) {\r\n ProductSearch.pushIfNotExists(newData, lpvc);\r\n }\r\n }\r\n\r\n // find all value-count pairs from selectedproperties\r\n for (let lpvc of this.clientData.PreviousPropertyValues) {\r\n if (this.clientData.PropertyValueIds.indexOf(lpvc.v) >= 0) ProductSearch.pushIfNotExists(newData, lpvc);\r\n }\r\n\r\n let lpvcsq = \"\";\r\n for (let lpvc of newData) {\r\n if (lpvcsq !== \"\") lpvcsq += \",\";\r\n lpvcsq += lpvc.p + \":\" + lpvc.v + \":\" + lpvc.c;\r\n if (lpvcsq.length > 1500) break;\r\n }\r\n\r\n return lpvcsq;\r\n }\r\n\r\n private static initPreviousClientData() {\r\n const json = ProductSearch.$form.find(\"#clientdatasearchdata\").val();\r\n ProductSearch.clientData = JSON.parse(json);\r\n\r\n ProductSearch.clientData.RemovedPropertyValueId = 0;\r\n let selector;\r\n\r\n // set the top-filter checkboxes\r\n selector = \".js-product-search--filter[data-nt-filter-type=favorites]\";\r\n ProductSearch.setFilterButtonState(selector, ProductSearch.clientData.FilterFavorites);\r\n\r\n selector = \".js-product-search--filter[data-nt-filter-type=promotions]\";\r\n ProductSearch.setFilterButtonState(selector, ProductSearch.clientData.FilterPromotions);\r\n\r\n selector = \".js-product-search--filter[data-nt-filter-type=liquidations]\";\r\n ProductSearch.setFilterButtonState(selector, ProductSearch.clientData.FilterLiquidations);\r\n\r\n selector = \".js-product-search--filter[data-nt-filter-type=ordered]\";\r\n ProductSearch.setFilterButtonState(selector, ProductSearch.clientData.FilterOrdered);\r\n\r\n selector = \".js-product-search--filter[data-nt-filter-type=in-stock]\";\r\n ProductSearch.setFilterButtonState(selector, ProductSearch.clientData.FilterInStock);\r\n\r\n const hideInStockFilter = ProductSearch.clientData.ProductCount === 0 && ProductSearch.clientData.FilterInStock === false;\r\n \r\n const $inStockFilterDesktop = $(selector).closest(\".form-check\");\r\n $inStockFilterDesktop.toggleClass(\"d-none\", hideInStockFilter);\r\n $inStockFilterDesktop.toggleClass(\"d-inline-block\", hideInStockFilter === false);\r\n \r\n const $inStockFilterMobile = $(selector).closest(\".nav-item\");\r\n $inStockFilterMobile.toggleClass(\"d-none\", hideInStockFilter);\r\n $inStockFilterMobile.toggleClass(\"d-block\", hideInStockFilter === false);\r\n\r\n if (ProductSearch.clientData.SearchTerm !== null && ProductSearch.clientData.SearchTerm !== \"\") {\r\n $(\".js-product-search--query\").val(ProductSearch.clientData.SearchTerm);\r\n }\r\n }\r\n\r\n private static setFilterButtonState(selector: string, flag: boolean) {\r\n $(selector).prop(\"checked\", flag);\r\n }\r\n\r\n private static addFilterValueId(id) {\r\n const ix = ProductSearch.clientData.PropertyValueIds.indexOf(id);\r\n if (ix === -1) {\r\n ProductSearch.clientData.PropertyValueIds.push(id);\r\n }\r\n }\r\n\r\n private static removeFilterValueId(id) {\r\n const ix = ProductSearch.clientData.PropertyValueIds.indexOf(id);\r\n if (ix === -1) {\r\n return;\r\n }\r\n\r\n ProductSearch.clientData.RemovedPropertyValueId = id;\r\n ProductSearch.clientData.PropertyValueIds.splice(ix, 1);\r\n }\r\n\r\n private static addCategoryId(id) {\r\n const ix = ProductSearch.clientData.CategoryIds.indexOf(id);\r\n if (ix === -1) {\r\n ProductSearch.clientData.CategoryIds.push(id);\r\n }\r\n }\r\n\r\n private static removeCategoryId(id) {\r\n const ix = ProductSearch.clientData.CategoryIds.indexOf(id);\r\n if (ix === -1) {\r\n return;\r\n }\r\n\r\n ProductSearch.clientData.CategoryIds.splice(ix, 1);\r\n }\r\n}\r\n\r\nclass PropertyValueCountCombinations {\r\n p: number = 0;\r\n v: number = 0;\r\n c: number = 0;\r\n}\r\n\r\nclass ClientDataModel {\r\n PreviousPropertyValues: PropertyValueCountCombinations[] = [];\r\n PropertyValueIds: number[] = [];\r\n CategoryIds: number[] = [];\r\n SearchTerm: string | null = null;\r\n FilterFavorites: boolean = false;\r\n FilterPromotions: boolean = false;\r\n FilterLiquidations: boolean = false;\r\n FilterInStock: boolean = false;\r\n FilterOrdered: boolean = false;\r\n BrandId: number = 0;\r\n ProductModelId: number = 0;\r\n RemovedPropertyValueId: number = 0;\r\n ProductCount: number = 0;\r\n PageIndex: number = 0;\r\n}\r\n","import $ from \"jquery\";\r\nimport ActionUrls from \"../utils/action-urls\";\r\n\r\nexport default class Skylux {\r\n\r\n private static hiveInstance;\r\n private static pluginToken;\r\n private static configurationId;\r\n private static cultureCode;\r\n\r\n static init() {\r\n // console.log(\"Skylux.init\");\r\n ActionUrls.load();\r\n\r\n var domElement = $(\".js-skylux-tokens\");\r\n if (domElement.length == 0) {\r\n // console.log(\"Skylux.init - bailing, not a Skylux page\");\r\n return;\r\n }\r\n\r\n $(\"#skylux-addtobasket-button\").click(Skylux.addToBasketClicked);\r\n\r\n Skylux.loadScript(\"https://external-static.hivecpq.com/hive-1.0.2.js\", function () {\r\n /*//console.log(\"Skylux.init DOM\");*/\r\n\r\n Skylux.pluginToken = domElement.data(\"nt-skylux-plugin-token\");\r\n Skylux.configurationId = domElement.data(\"nt-skylux-configuration-id\");\r\n Skylux.cultureCode = domElement.data(\"nt-skylux-culture-code\");\r\n\r\n Skylux.instantiate(Skylux.pluginToken);\r\n Skylux.openConfigurator(Skylux.configurationId);\r\n })\r\n }\r\n\r\n static loadScript(source, callBack) {\r\n var script = document.createElement(\"script\");\r\n script.src = source;\r\n script.async = false;\r\n document.body.appendChild(script);\r\n \r\n script.addEventListener(\"load\", () => {\r\n if (typeof callBack == \"function\") callBack();\r\n });\r\n }\r\n\r\n static instantiate(pluginToken) {\r\n let Hive = window[\"Hive\"];\r\n\r\n //console.log(\"Skylux.instantiate\", pluginToken);\r\n\r\n Skylux.pluginToken = pluginToken;\r\n\r\n console.log(\"Hive.instantiate\");\r\n Skylux.hiveInstance = Hive.instantiate(\r\n \"https://app.hivecpq.com\",\r\n \"https://api.hivecpq.com\",\r\n \"hive-launch-button\",\r\n \"hive-close-button\",\r\n \"100%\",\r\n \"1500px\"\r\n );\r\n\r\n //console.log(\"Hive.instantiate Done\");\r\n\r\n // Using undocumented stuff here.\r\n // Discovered using reverse engineering.\r\n window.addEventListener(\"message\", event => {\r\n console.log(\"Skylux message event\");\r\n try {\r\n if (event.data.integrationType === \"webshop\") {\r\n // console.log(event.data);\r\n if (event.data.type === \"isConfigValid\") {\r\n if (event.data.message.data === \"valid\") {\r\n $(\"#skylux-addtobasket-button\").prop(\"disabled\", false);\r\n } else {\r\n $(\"#skylux-addtobasket-button\").prop(\"disabled\", true);\r\n }\r\n } else if (event.data.type === \"loading\") {\r\n if (event.data.message.parameters.loading === false) {\r\n // console.log(\"Setting iframe class\");\r\n Skylux.hiveInstance.setIframeAttribute(\r\n Skylux.hiveInstance.iframe,\r\n \"style\",\r\n \"border:0;width:100%;height:1500px;\"\r\n );\r\n }\r\n }\r\n }\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n });\r\n\r\n $(\"#skylux-addtobasket-button\").prop(\"disabled\", true);\r\n //console.log(\"Skylux.hiveInstance.init\");\r\n Skylux.hiveInstance.init({ status: true, data: { access_token: Skylux.pluginToken } });\r\n\r\n /*Skylux.hiveInstance.isConfigValid().subscribe(valid => {\r\n $(\"#skylux-addtobasket-button\").prop(\"disabled\", !valid);\r\n });*/\r\n\r\n //// let bool1 = Skylux.hiveInstance.isConfigValid();\r\n //// let hiveId = hiveInstance.getHiveId();\r\n }\r\n\r\n static openConfigurator(projectSegmentItemId) {\r\n if (projectSegmentItemId != null && projectSegmentItemId != \"\") {\r\n // alert(projectSegmentItemId);\r\n // Skylux.hiveInstance.externalSegment.projectSegmentItemId = projectSegmentItemId;\r\n Skylux.configurationId = projectSegmentItemId;\r\n }\r\n //console.log(\"Trying to launch\");\r\n $(\".\" + Skylux.hiveInstance.launchButtonsClass).click();\r\n }\r\n\r\n static addToBasketClicked(e) {\r\n let id = Skylux.hiveInstance.externalSegment.projectSegmentItemId;\r\n let configId = Skylux.configurationId;\r\n // console.log(id);\r\n\r\n if (Skylux.hiveInstance.isConfigurationValid === false) {\r\n console.log(\"Not Valid\");\r\n return;\r\n }\r\n\r\n const actionUrl = ActionUrls.getUrl(\"add-configuration-to-basket\");\r\n const q = $.get(`${actionUrl}?projectSegmentItemId=${id}&configurationId=${configId}`);\r\n \r\n q.done(model => {\r\n if (model.success) {\r\n toastr.success(model.message);\r\n \r\n if (model.productsAdded != 0) {\r\n document.location.href = `/${Skylux.cultureCode}/checkout`;\r\n }\r\n } else {\r\n toastr.error(model.message);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","export default class MiniBasketOptions {\r\n static anonymousCheckoutUrl: string = \"\";\r\n static checkoutUrl: string = \"\";\r\n static enableAnonymousBaskets: boolean = false;\r\n static getCurrentQuantitiesUrl: string = \"\";\r\n static getMiniUrl: string = \"\";\r\n static isAuthenticated: boolean = false;\r\n\r\n static set(\r\n anonymousCheckoutUrl: string,\r\n checkoutUrl: string,\r\n enableAnonymousBaskets: boolean,\r\n getCurrentQuantitiesUrl: string,\r\n getMiniUrl: string,\r\n isAuthenticated: boolean) {\r\n this.anonymousCheckoutUrl = anonymousCheckoutUrl;\r\n this.checkoutUrl = checkoutUrl;\r\n this.enableAnonymousBaskets = enableAnonymousBaskets;\r\n this.getCurrentQuantitiesUrl = getCurrentQuantitiesUrl;\r\n this.getMiniUrl = getMiniUrl;\r\n this.isAuthenticated = isAuthenticated;\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n","\r\n\r\n\r\n","export enum UserMgmtContactAction {\r\n Update,\r\n Create,\r\n Remove,\r\n CreateUser,\r\n RemoveUser\r\n}\r\n\r\nexport enum UserMgmtNewsletterSetting {\r\n None,\r\n Company,\r\n Home,\r\n}\r\n\r\nexport interface UserMgmtCityData {\r\n zipCode: string;\r\n city: string;\r\n zipCity: string;\r\n}\r\n\r\nexport interface UserMgmtContactData {\r\n id: number;\r\n code: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n phone: string;\r\n mobile: string;\r\n addressLine1: string;\r\n zipCity: string;\r\n zipCitySelection: UserMgmtCityData;\r\n gender: string;\r\n lcid: number;\r\n functionId: number;\r\n productSelectionId: number;\r\n roleId: number;\r\n userName: string;\r\n isBlocked: boolean;\r\n isLockedOut: boolean;\r\n canLogOn: boolean;\r\n isInternal: boolean;\r\n validateErrors: any;\r\n mustRemove: boolean;\r\n encryptedCustomerId: string;\r\n newsletterType: UserMgmtNewsletterSetting;\r\n wantsNewsletter: boolean;\r\n electronicInvoices: boolean;\r\n effectiveRights: number[];\r\n standardRights: number[];\r\n action: UserMgmtContactAction;\r\n}\r\n\r\nexport interface UserMgmtFunctionData {\r\n id: number;\r\n code: string;\r\n name: string;\r\n}\r\n\r\nexport interface UserMgmtRightData {\r\n id: number;\r\n name: string;\r\n description: string;\r\n disabled: boolean;\r\n isInternal: boolean;\r\n isExternal: boolean;\r\n isActive: boolean;\r\n isStandard: boolean;\r\n}\r\n\r\nexport interface UserMgmtRoleData {\r\n id: number;\r\n isInternal: string;\r\n signinAllowed: string;\r\n name: string;\r\n}\r\n\r\nexport interface UserMgmtProductSelection {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport interface UserMgmtContactsResults {\r\n contacts: UserMgmtContactData[];\r\n encryptedCustomerId: string;\r\n}\r\n\r\nexport interface UserMgmtExtraResults {\r\n functions: UserMgmtFunctionData[];\r\n roles: UserMgmtRoleData[];\r\n cities: UserMgmtCityData[];\r\n rights: UserMgmtRightData[];\r\n productSelections: UserMgmtProductSelection[];\r\n}\r\n\r\nexport interface UserMgmtContactSaveResults {\r\n success: boolean;\r\n errorMessage: string;\r\n contact: UserMgmtContactData;\r\n validation: UserMgmtValidationResult[];\r\n}\r\n\r\nexport interface UserMgmtValidationResult {\r\n field: string;\r\n message: string;\r\n}","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\r\n\r\n\r\n","import { createApp } from 'vue';\r\n\r\nimport CmsConfigurator from \"../components/CmsConfigurator.vue\";\r\nimport MiniBasket from \"../components/MiniBasket.vue\";\r\nimport LeadsForm from '../components/LeadsForm.vue';\r\nimport Lists from '../components/Lists.vue';\r\nimport ListSelector from '../components/ListSelector.vue';\r\nimport UserMgmt from \"../components/UserMgmt.vue\";\r\n\r\n/*\r\n * Place this on a page to render one of these components:\r\n *
\r\n */\r\n\r\nexport default class VueComponentLoader {\r\n private static vueComponents = [\r\n { component: CmsConfigurator, elementId: \"vue-cms-configurator\", checkForVisibility: false },\r\n { component: MiniBasket, elementId: \"vue-mini-basket--desktop\", checkForVisibility: true },\r\n { component: MiniBasket, elementId: \"vue-mini-basket--mobile\", checkForVisibility: true },\r\n { component: LeadsForm, elementId: \"vue-leads-form\", checkForVisibility: false },\r\n { component: Lists, elementId: \"vue-lists\", checkForVisibility: false },\r\n { component: ListSelector, elementId: \"vue-list-selector\", checkForVisibility: false },\r\n { component: UserMgmt, elementId: \"vue-user-mgmt\", checkForVisibility: false },\r\n ];\r\n\r\n static load() {\r\n for (let vueComponent of VueComponentLoader.vueComponents) {\r\n const mountElement = document.getElementById(vueComponent.elementId);\r\n\r\n if (mountElement !== null) {\r\n const doMount = vueComponent.checkForVisibility ? mountElement.offsetWidth > 0 || mountElement.offsetHeight > 0 : true;\r\n \r\n if (doMount) {\r\n ////console.log(\"vue mounting...\", mountElement);\r\n createApp(vueComponent.component, {...mountElement.dataset}).mount(\"#\" + vueComponent.elementId);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","import $ from \"jquery\";\r\nimport $$ from \"./scripts/utils/double-dollar\";\r\nimport { Button, Modal, Popover, Tab, Tooltip } from \"bootstrap\";\r\nimport { default as NatchGtm4, EventNamesSchema } from \"natch-gtm4\";\r\n\r\nimport \"toastr\";\r\nimport \"jquery-validation\";\r\nimport \"./scripts/http/set-axios-defaults\";\r\n\r\nimport { BootstrapBreakpoint } from \"./scripts/models/enums\";\r\n\r\nimport ActionUrls from \"./scripts/utils/action-urls\";\r\nimport Multilang from \"./scripts/utils/multilang\";\r\nimport CustomHelper from \"./scripts/utils/custom-helper\";\r\nimport Validators from \"./scripts/utils/validators\";\r\n\r\nimport AnonymousBaskets from \"./scripts/components/anonymous-baskets\";\r\nimport Autocomplete2 from \"./scripts/components/autocomplete2\";\r\nimport AsyncPrices from \"./scripts/components/async-prices\";\r\nimport BasketAttachment from \"./scripts/components/basket-attachment\";\r\nimport CmsConfiguratorLauncher from \"./scripts/components/cms-configurator-launcher\";\r\nimport CustomDatePicker from \"./scripts/components/custom-date-picker\";\r\nimport CustomMenuAim from \"./scripts/components/custom-menu-aim\";\r\nimport CustomSwiper from \"./scripts/components/custom-swiper\";\r\nimport Favorite from \"./scripts/components/favorite\";\r\nimport ListSelector from \"./scripts/components/list-selector\";\r\nimport ProductOrderBox from \"./scripts/components/product-order-box\";\r\nimport ProductVolumeDiscount from \"./scripts/components/product-volume-discount\";\r\nimport PwaHelper from \"./scripts/components/pwa-helper\";\r\nimport QuickOrder from \"./scripts/components/quick-order\";\r\nimport SSO from \"./scripts/components/sso\";\r\nimport StockInWarehouse from \"./scripts/components/stock-in-warehouse\";\r\nimport UpgradeOverpack from \"./scripts/components/upgrade-overpack\";\r\n\r\nimport Approvals from \"./scripts/pages/approvals\";\r\nimport BlanketOrder from \"./scripts/pages/blanket-order\";\r\nimport Checkout from \"./scripts/pages/checkout\";\r\nimport Documents from \"./scripts/pages/documents\";\r\nimport Hauraton from \"./scripts/pages/hauraton\";\r\nimport ListsUpload from \"./scripts/pages/lists-upload\";\r\nimport LoginRequest from \"./scripts/pages/login-request\";\r\nimport PriceLists from \"./scripts/pages/price-lists\"\r\nimport PriceListRequest from \"./scripts/pages/pricelist-request\"\r\nimport Products from \"./scripts/pages/products\";\r\nimport ProductSearch from \"./scripts/pages/product-search\";\r\nimport Skylux from \"./scripts/pages/skylux\";\r\n\r\nimport VueComponentLoader from \"./scripts/vue-component-loader\";\r\n\r\nclass Index {\r\n static init() {\r\n toastr.options = {\r\n closeButton: true,\r\n positionClass: \"toast-bottom-left\",\r\n progressBar: true,\r\n timeOut: 10000\r\n }\r\n\r\n var isMobile = Math.min(window.screen.width, window.screen.height) < 768 || navigator.userAgent.indexOf(\"Mobi\") > -1;\r\n document.cookie = \"mobile=\" + (isMobile ? \"1\" : \"0\") + \"; expires=Sun, 1 Jan 2040 03:14:15 UTC; path=/\";\r\n\r\n Index.processPageForGA();\r\n\r\n Multilang.load();\r\n ActionUrls.load();\r\n\r\n // controls\r\n Index.initBootstrap();\r\n Index.initCheckboxes()\r\n Index.initForms();\r\n Index.initInputFocus();\r\n Index.initMoveToTop();\r\n Index.initPasswords();\r\n Index.initProductOrderBoxes();\r\n Index.initStickyComponents();\r\n\r\n // pages\r\n Approvals.init();\r\n BlanketOrder.init();\r\n Checkout.init();\r\n Documents.init();\r\n Hauraton.init();\r\n ListsUpload.init();\r\n LoginRequest.init();\r\n PriceLists.init();\r\n PriceListRequest.init();\r\n Products.init();\r\n ProductSearch.init();\r\n Skylux.init();\r\n\r\n // vue components (loader)\r\n VueComponentLoader.load();\r\n\r\n // custom components\r\n AnonymousBaskets.init({\r\n addToAnonymousBasketUrl: ActionUrls.getUrl(\"add-to-anonymous-basket\"),\r\n });\r\n\r\n AsyncPrices.init();\r\n\r\n Autocomplete2.init({\r\n serviceUrl: $(\"[data-nt-provide='autocomplete2']\").data(\"nt-action-get-suggestions\"),\r\n ajaxSettings: { timeout: 2000 },\r\n minimumInputLength: 2,\r\n onSelectProduct: function () { },\r\n onSelectBrand: function () { },\r\n onSelectCategory: function () { },\r\n onSelectAll: function () { }\r\n });\r\n\r\n BasketAttachment.init();\r\n CmsConfiguratorLauncher.init();\r\n CustomDatePicker.init();\r\n CustomMenuAim.initES6();\r\n CustomSwiper.init();\r\n Favorite.init();\r\n ListSelector.init();\r\n ProductOrderBox.init();\r\n ProductVolumeDiscount.init();\r\n PwaHelper.init();\r\n QuickOrder.init();\r\n SSO.init();\r\n StockInWarehouse.init();\r\n UpgradeOverpack.init();\r\n\r\n // validation\r\n Validators.init();\r\n\r\n // Code to test CLS (https://web.dev/cls/)\r\n //// new PerformanceObserver((entryList) => {\r\n //// for (const entry of entryList.getEntries()) {\r\n //// console.log('Layout shift:', entry);\r\n //// }\r\n //// }).observe({ type: 'layout-shift', buffered: true });\r\n }\r\n\r\n private static processPageForGA() {\r\n // Remove empty attributes\r\n $('*[data-datalayer-list-item=\"\"]').removeAttr('data-datalayer-list-item');\r\n $('*[data-datalayer-cart-item=\"\"]').removeAttr('data-datalayer-cart-item');\r\n\r\n try {\r\n // These can sometimes fail\r\n const natchGtm4 = new NatchGtm4(EventNamesSchema.OfficialGA4);\r\n natchGtm4.processPage(); // Process page for GA4, using official GA4 event names.\r\n } catch (e) {\r\n console.error(\"processPageForGA()\");\r\n console.error(e);\r\n }\r\n }\r\n\r\n private static initBootstrap() {\r\n $$(`[data-bs-toggle=\"button\"]`, el => new Button(el));\r\n $$(`[data-bs-toggle=\"tooltip\"]`, el => new Tooltip(el));\r\n $$(`[data-bs-toggle=\"popover\"]`, el => new Popover(el));\r\n $$(`[data-bs-toggle=\"popover-dom\"]`, el => new Popover(el, { content: CustomHelper.getPopoverContent(el) }));\r\n }\r\n\r\n private static initCheckboxes() {\r\n const $body = $(\"body\");\r\n\r\n $body.find(`[data-nt-action=\"toggle-on-check\"]`).each((ix: number, el: HTMLElement) => {\r\n const $checkbox = $(el);\r\n this.toggleOnCheck($checkbox);\r\n });\r\n\r\n $body.on(\"click\", `[data-nt-action=\"toggle-on-check\"]`, e => {\r\n const $checkbox = $(e.currentTarget);\r\n this.toggleOnCheck($checkbox);\r\n });\r\n }\r\n\r\n private static initForms() {\r\n const $body = $(\"body\");\r\n\r\n $body.on(\"change\", `[data-nt-action=\"submit-on-change\"]`, e => {\r\n const $form = $(e.currentTarget).closest(\"form\");\r\n CustomHelper.submitForm($form);\r\n });\r\n\r\n $body.on(\"click\", `[data-nt-action=\"submit-on-click\"]`, e => {\r\n const $form = $(e.currentTarget).closest(\"form\");\r\n CustomHelper.submitForm($form);\r\n });\r\n }\r\n\r\n private static initInputFocus() {\r\n $(`[data-nt-action=\"focus-on-load\"]`).trigger(\"focus\");\r\n }\r\n\r\n private static initMoveToTop() {\r\n window.addEventListener(\"scroll\", () => {\r\n if (window.scrollY > 300) {\r\n $(\".nt-move-to-top\").fadeIn(200);\r\n } else {\r\n $(\".nt-move-to-top\").fadeOut(200);\r\n }\r\n });\r\n }\r\n\r\n private static initStickyComponents(): void {\r\n let stickyHeaderHeight: number = 0;\r\n let checkoutContainerHeight: number = 0;\r\n let checkoutOrderBoxTop: number = 0;\r\n let checkoutOrderBoxWidth: number = 0;\r\n let checkoutOrderBoxHeight: number = 0;\r\n\r\n const stickyHeader = document.querySelector(\"header.sticky-top\") as HTMLElement;\r\n stickyHeaderHeight = CustomHelper.getStickyHeaderHeight(false);\r\n\r\n const checkoutContainer = document.querySelector(\".js-checkout-container\") as HTMLElement;\r\n const checkoutOrderBox = document.querySelector('.js-checkout-order-box') as HTMLElement;\r\n\r\n if (checkoutContainer !== null && checkoutOrderBox !== null) {\r\n checkoutContainerHeight = checkoutContainer.getBoundingClientRect().height;\r\n\r\n // data attributes were added as early as possible (bottom of layout page)\r\n // slower JS load could result in a negative top value, breaking the intended behaviour\r\n checkoutOrderBoxTop = checkoutOrderBox.hasAttribute(\"data-nt-top\")\r\n ? checkoutOrderBox.getAttribute(\"data-nt-top\") as unknown as number\r\n : checkoutOrderBox.getBoundingClientRect().top;\r\n\r\n checkoutOrderBoxWidth = checkoutOrderBox.getBoundingClientRect().width;\r\n checkoutOrderBoxHeight = checkoutOrderBox.getBoundingClientRect().height;\r\n }\r\n\r\n const bootstrapBreakpoint: BootstrapBreakpoint = CustomHelper.getBootstrapBreakpoint();\r\n\r\n window.addEventListener(\"scroll\", () => {\r\n stickyHeaderHeight = Index.tryActivateStickyHeader(\r\n bootstrapBreakpoint,\r\n stickyHeader,\r\n stickyHeaderHeight);\r\n\r\n Index.tryActivateStickyCheckoutOrderBox(\r\n bootstrapBreakpoint,\r\n checkoutContainer,\r\n checkoutContainerHeight,\r\n checkoutOrderBox,\r\n checkoutOrderBoxTop,\r\n checkoutOrderBoxWidth,\r\n checkoutOrderBoxHeight,\r\n stickyHeaderHeight);\r\n });\r\n\r\n // NOTE: listening to the resize event results in bad performance,\r\n // mainly because of the usage of the getBootstrapBreakpoint method\r\n // window.addEventListener(\"resize\", debounce(() => {\r\n // Index.initStickyComponents();\r\n // }, 300));\r\n }\r\n\r\n private static toggleOnCheck($checkbox: any) {\r\n const isChecked = $checkbox.is(\":checked\");\r\n\r\n const enableTargetList = ($checkbox.data(\"nt-toggle-enable\") as string).toArray();\r\n for (let enableTarget of enableTargetList) {\r\n $(enableTarget).prop(\"disabled\", !isChecked);\r\n }\r\n\r\n const hideTargetList = ($checkbox.data(\"nt-toggle-hide\") as string).toArray();\r\n for (let hideTarget of hideTargetList) {\r\n $(hideTarget).toggleClass(\"d-none\", isChecked);\r\n $(hideTarget).toggleClass(\"d-block\", !isChecked);\r\n }\r\n }\r\n\r\n private static tryActivateStickyHeader(\r\n bootstrapBreakpoint: BootstrapBreakpoint,\r\n stickyHeader: HTMLElement,\r\n stickyHeaderHeight: number): number {\r\n // do not activate sticky header functionality when header could not be found\r\n if (stickyHeaderHeight <= 0) {\r\n return 0;\r\n }\r\n\r\n const isDesktop = bootstrapBreakpoint === BootstrapBreakpoint.md\r\n || bootstrapBreakpoint === BootstrapBreakpoint.lg\r\n || bootstrapBreakpoint === BootstrapBreakpoint.xl\r\n || bootstrapBreakpoint === BootstrapBreakpoint.xxl;\r\n\r\n const activateStickyHeader = window.scrollY > stickyHeaderHeight;\r\n\r\n if (activateStickyHeader) {\r\n $$(`.js-hide-for-sticky-header--item`,\r\n el => (el as HTMLElement).style.setProperty(\"display\", \"none\", \"important\"));\r\n\r\n stickyHeader.classList.add(\"shadow-navbar\");\r\n\r\n const searchBarElement = document.getElementById(\"search-bar\") as HTMLElement;\r\n const searchBarForm = document.querySelector(\".js-product-search--top-form\") as HTMLElement;\r\n\r\n if (searchBarElement != null) {\r\n searchBarElement.style.setProperty(\"width\", \"100%\", \"important\");\r\n }\r\n\r\n if (isDesktop) {\r\n const gridContainer = $(\".js-hide-for-sticky-header--grid-container\")\r\n gridContainer.css(\"display\", \"initial\");\r\n\r\n if (searchBarForm != null) {\r\n searchBarForm.style.setProperty(\"padding-top\", \"8px\", \"important\");\r\n }\r\n }\r\n }\r\n else {\r\n $$(`.js-hide-for-sticky-header--item`,\r\n el => (el as HTMLElement).style.removeProperty(\"display\"));\r\n\r\n stickyHeader.classList.remove(\"shadow-navbar\");\r\n\r\n const searchBarElement = document.getElementById(\"search-bar\") as HTMLElement;\r\n const searchBarForm = document.querySelector(\".js-product-search--top-form\") as HTMLElement;\r\n\r\n if (searchBarElement != null) {\r\n searchBarElement.style.removeProperty(\"width\");\r\n }\r\n\r\n if (isDesktop) {\r\n const gridContainer = $(\".js-hide-for-sticky-header--grid-container\")\r\n gridContainer.css(\"display\", \"grid\");\r\n\r\n if (searchBarForm != null) {\r\n searchBarForm.style.removeProperty(\"padding-top\");\r\n }\r\n }\r\n }\r\n\r\n return stickyHeader.getBoundingClientRect().height;\r\n }\r\n\r\n private static tryActivateStickyCheckoutOrderBox(\r\n bootstrapBreakpoint: BootstrapBreakpoint,\r\n checkoutContainer: HTMLElement,\r\n checkoutContainerHeight: number,\r\n checkoutOrderBox: HTMLElement,\r\n checkoutOrderBoxTop: number,\r\n checkoutOrderBoxWidth: number,\r\n checkoutOrderBoxHeight: number,\r\n stickyHeaderHeight: number): void {\r\n // do not activate sticky order-box functionality when checkout info height is less than the order box height\r\n if (checkoutContainerHeight <= checkoutOrderBoxHeight) {\r\n return;\r\n }\r\n\r\n // do not activate sticky order-box functionality when viewport is mobile\r\n const isMobile = bootstrapBreakpoint === BootstrapBreakpoint.xs\r\n || bootstrapBreakpoint === BootstrapBreakpoint.sm\r\n || bootstrapBreakpoint === BootstrapBreakpoint.md;\r\n\r\n if (isMobile) {\r\n return;\r\n }\r\n\r\n const checkoutContainerBottom = checkoutContainer.getBoundingClientRect().bottom;\r\n\r\n // when the current scroll position passes the order box ...\r\n const activateStickyCheckoutOrderBox = window.scrollY >= checkoutOrderBoxTop - stickyHeaderHeight;\r\n\r\n if (activateStickyCheckoutOrderBox) {\r\n // ... set position of order box as fixed to the bottom of the sticky header\r\n checkoutOrderBox.style.position = \"fixed\";\r\n\r\n let newTop: number = stickyHeaderHeight; // = the bottom of the sticky header\r\n\r\n // update top position when the current scroll position passes the bottom of the overview\r\n if (checkoutContainerBottom <= checkoutOrderBoxHeight) {\r\n newTop = (checkoutOrderBoxHeight - checkoutContainerBottom) * -1;\r\n }\r\n\r\n checkoutOrderBox.style.top = `${newTop}px`;\r\n } else {\r\n // otherwise, set as static (default)\r\n checkoutOrderBox.style.position = \"static\";\r\n checkoutOrderBox.style.top = \"\";\r\n }\r\n\r\n // set width of order box as position \"fixed\" does not stay within the page container\r\n checkoutOrderBox.style.width = `${checkoutOrderBoxWidth}px`;\r\n }\r\n\r\n private static initProductOrderBoxes() {\r\n $(\".js-product-order-box\").each((ix: number, el: HTMLElement) => {\r\n const listContainer = el.closest(\"[data-datalayer-list-name]\");\r\n if (listContainer != null) {\r\n const listName = listContainer.getAttribute(\"data-datalayer-list-name\");\r\n const listId = listContainer.getAttribute(\"data-datalayer-list-id\");\r\n $(el).find(\".js-product-order-box--attribution-listid\").val(listId ?? \"\");\r\n $(el).find(\".js-product-order-box--attribution-listname\").val(listName ?? \"\");\r\n }\r\n });\r\n }\r\n\r\n private static initPasswords() {\r\n $(\".js-password-reveal\").on(\"mousedown touchstart\", (e) => {\r\n const $pw = $($(e.currentTarget).data(\"nt-for\"));\r\n $pw.attr(\"type\", \"text\");\r\n });\r\n\r\n $(\".js-password-reveal\").on(\"mouseup mouseleave touchend touchmove\", (e) => {\r\n const $pw = $($(e.currentTarget).data(\"nt-for\"));\r\n $pw.attr(\"type\", \"password\");\r\n });\r\n }\r\n}\r\n\r\n(function () {\r\n Index.init();\r\n})();\r\n"],"names":["$$","selector","fn","axios","urlsExemptFromOverlay","config","NProgress","$","error","response","BootstrapBreakpoint","ActionUrls","actionUrlJson","name","filteredUrlList","l","__publicField","Multilang","multilangJson","multilangObject","labelName","defaultValue","filteredLabels","CustomHelper","msg","func","result","cancelButtonText","confirmButtonText","breakpointList","breakpoint","divElement","value","parts","el","element","current","stickyHeader","height","anchor","offset","$target","targetOffset","_a","$form","Validators","params","options","input","cleanVat","pattern","vatNumber","AnonymousBasketFormData","MiniBasketData","data","lineCount","ref","Toaster","defaultMessage","errorMessage","messageType","message","DatalayerHelper","customEventName","parameterValue","callback","_AnonymousBaskets","Modal","$self","productId","$parent","originalQuantity","quantity","postData","res","err","messages","url","email","formData","formDataJson","leadDataJson","leadData","AnonymousBaskets","_AsyncPrices","productIdList","price","$box","$netPrice","$grossPrice","netPrice","grossPrice","pid","$priceElement","AsyncPrices","_Autocomplete2","div","e","$this","cacheKey","fromCache","Popover","html","content","containerParent","elementParent","styles","parentOffsetDiff","Autocomplete2","_BasketAttachment","$basketAttachment","FilePond.setOptions","inputElement","FilePond.create","$withAttachment","$withoutAttachment","showWithAttachment","file","status","$currentAttachmentLink","BasketAttachment","_CmsConfiguratorLauncher","configuration","reason","resolve","reject","$activator","isFromQuickOrder","event","CmsConfiguratorLauncher","_CustomDatePicker","index","$input","datePickerIdentifier","datePickerRegistration","r","identifier","allowed","allowedDate","initialDate","date","instance","format","firstDate","parse","lastDate","allowedAsJson","datepickerSelector","Datepicker","dateValue","parsedDateValue","isEarlierDate","isLaterDate","isAllowed","i","CustomDatePicker","CustomMenuAim","menuAimConfig","targetRow","toggleTarget","toggleTargetElement","menuAimInstance","mouseEvent","menuList","menuItem","menuElement","menuAim","MenuAim","menuLinkList","menuLinkItem","activate","deactivate","enter","exit","toggleParent","toggleParentElement","subMenuList","subMenuItem","CustomSwiper","bulletSwiperList","$el","Swiper","Pagination","imageSwiperList","imageList","className","navSwiperList","Navigation","touchSwiperList","Autoplay","initialColumns","Favorite","$favoriteLink","$favoriteIcon","productDto","$productContainer","NatchGtm4","EventNamesSchema","ListSelector$1","childSelector","q","qref","_Checkout","basketLineIdList","basketLineId","needRefresh","newContent","newLinePriceGross","newLinePriceNet","newQuantity","$basketLine","$inputQuantity","$indicator","spinner","$clearLink","$transferTypeSelection","$deliveryAddress","$pickupAddress","$deliveryDateTitle","$pickupDateTitle","transferTypeDefinition","$checkoutInformation","$deliveryAddressSelection","nameTarget","streetTarget","postalCodeTarget","cityTarget","countryTarget","languageTarget","phoneTarget","emailTarget","infoAsJson","$contactSelection","firstNameTarget","lastNameTarget","mobileTarget","genderTarget","functionTarget","deliveryAddressId","craneOption","forkliftOption","trailerOption","cranetruckOption","truckmountedforkliftOption","setRadios","radioName","id","target","$readonly","text","thisDate","trad","ret","pickupAddressAsJson","newDate","showSaterday","showFrom8h","showFrom9h","showFrom14h","showFrom13h","showFrom15h","showFrom17h30","today","tomorrow","currentWindow","$deliveryAdvice","$deliveryAdviceSelection","$transferType","deliveryAdviceId","transferTypeId","postalCode","countryId","qs","datePickerData","Checkout","_UpgradeOverpack","overpackData","$ele","last","moq","overpack","a","b","opCount","tmpl","$container","overpackJsonData","moqData","val","UpgradeOverpack","ProductSuggestions","productSetPrice","suggestionList","suggestionRatioList","productSuggestionsElement","ratio","ProductVolumeDiscount","$productItem","$volumeDiscountSubmit","$volumeDiscountModal","$volumeDiscountClose","$volumeDiscountOption","$totalOrderQuantity","totalOrderQuantity","$productDetailOrderInfo","$orderInfo","$targetContainer","$netPriceFrom","$orderQuantity","$overpack","volumeDiscountOptionPrice","volumeDiscountOptionValue","selectedUnitsPerPack","decimalSeparator","totalOrderQuantityString","found","volumeDiscountOptionMaxValue","defaultPrice","_ProductOrderBox","questions","number","$totalUnits","orderQuantity","unitsPerPack","fixedOrderQuantity","$baseUnit","$selectedOverpack","selectedMinimumOrderQuantity","selectedBaseUnit","selectedIncrementalOrderQuantity","newTotalQuantity","configurationId","$deleteLink","toUrlEncoded","obj","k","configData","question","$productCard","$promoNetPrice","$asyncNetPrice","requestedUnitsPerPack","minimumOrderQuantity","requestedMultiplier","monetaryValue","unitPrice","quantityBox","listName","listId","$listContainer","$item","ProductOrderBox","PwaHelper","userAgent","isIos","isSamsung","isFirefox","isPwaHelperDismissalFound","isInStandaloneModeIos","isInStandaloneModeChrome","helperElement","helperContentElement","iconElement","closeElement","_QuickOrder","quickOrderDropdown","$inputValue","inputValue","spaceIndex","$fullPage","$checkoutOverview","$basketLineCount","miniBasketLineCount","$checkoutTotals","QuickOrder","_SSO","ssojson","domainParts","$taggedFields","field","tag","json","select","_b","_c","item","nameLength","c","cookie","SSO","StockInWarehouse","$body","currentPopoverInstance","$trigger","$popover","popoverElement","Approvals","$button","purchaserId","basketId","BlanketOrder","$blanketOrderList","ix","$toggle","$hiddenText","$visibleText","_Documents","productCount","queryString","pageIndex","Documents","_Hauraton","acceptLeadsPopup","cancelLeadsPopup","project","actionUrl","model","Hauraton","_ListsUpload","defaultTarget","filePondTarget","filePondInstance","listsUploadFilePond","FilePond.registerPlugin","FilePondPluginFileEncode","FilePondPluginFileValidateSize","listsUploadDefault","ListsUpload","_LoginRequest","$vat","$isEmptyVat","LoginRequest","PriceLists","checkbox","$currentNode","$childNodes","categoriesToRemove","selectedCategories","selectedCategory","$siblingNodes","$parentNode","numberOfCheckedSiblings","$siblingNode","totalSiblings","checked","$childNode","parentCategory","parent","categoriesToAdd","category","categories","currentCategory","childCategories","$checkbox","startCategory","$childrenContainer","selectedDivision","option","division","divisionToHide","_PriceListRequest","checkBoxes","selectedKind","SelectionKind","PriceListRequest","Products","$customerProductCodeInput","$customerProductCodeAction","code","originalCode","successMessage","$element","$downloadLink","linkTarget","linkTargetId","stickyHeaderHeight","_ProductSearch","ClientDataModel","newSortOrder","newViewMode","$block","arg","order","$wrapper","$elements","sorted","val1","val2","value1","value2","entityIds","entityId","valueId","categoryId","mode","propertyValueOrderValue","lpvcsq","array","pvcc","lastPropertyValueId","lastPropertyId","lpvc","newData","hideInStockFilter","$inStockFilterDesktop","$inStockFilterMobile","flag","ProductSearch","_Skylux","domElement","source","callBack","script","pluginToken","Hive","projectSegmentItemId","configId","Skylux","_sfc_main$9","defineComponent","qix","cix","choice","props","_hoisted_1","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_createElementVNode","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_toDisplayString","_Fragment","_renderList","_hoisted_8","$event","args","_hoisted_9","_vModelRadio","_hoisted_11","MiniBasketOptions","anonymousCheckoutUrl","checkoutUrl","enableAnonymousBaskets","getCurrentQuantitiesUrl","getMiniUrl","isAuthenticated","miniBasketContainerSelector","showToasts","getMiniBasketData","renderCurrentQuantities","$isInBasket","_sfc_main$8","anonymousBasketButtonTitle","isEnabledAnonymousBaskets","productIds","_hoisted_7","_createCommentVNode","emailRegExp","ActivityPrivate","_sfc_main$7","self","s","linkElement","sectorsJson","functionsJson","startLeadsPopup","ce","submitUrl","pageTitle","_hoisted_12","_hoisted_13","_hoisted_15","_hoisted_16","_hoisted_18","_hoisted_19","_hoisted_21","_hoisted_22","_hoisted_25","_hoisted_26","_hoisted_29","_hoisted_30","_hoisted_33","_hoisted_34","_hoisted_36","_hoisted_39","_hoisted_41","_hoisted_42","_hoisted_44","_hoisted_45","_hoisted_47","_hoisted_10","_withDirectives","_createTextVNode","_vModelText","_hoisted_24","functie","_vModelSelect","_hoisted_27","_hoisted_31","_hoisted_35","_hoisted_38","sector","_hoisted_40","_hoisted_43","_hoisted_46","_hoisted_48","_vShow","_sfc_main$6","list","dto","context","_hoisted_23","_hoisted_32","_hoisted_37","_vModelCheckbox","line","_hoisted_14","_hoisted_17","_hoisted_20","_normalizeClass","_hoisted_28","_withKeys","_sfc_main$5","modalInstance","opened","_sfc_main$4","ListProducts","PrintForm","canAddToBasket","canEditCustomerProductCodes","theList","previx","Tooltip","temp","count","selected","listLine","_hoisted_50","_hoisted_52","_hoisted_54","_hoisted_55","_hoisted_53","_hoisted_59","_hoisted_62","_resolveComponent","_withModifiers","_hoisted_51","_hoisted_49","_hoisted_56","_hoisted_57","_hoisted_58","_createVNode","_component_list_products","_hoisted_60","_hoisted_63","_hoisted_64","_hoisted_65","_sfc_main$3","productDataList","ActionUrl","qfield","productData","containsProduct","p","iq","getListsUrl","updateListUrl","saveNewListUrl","userMgmtRightsModalInstance","_sfc_main$2","isBusy","encryptedCustomerId","rightsList","standardRightsList","computed","extraRightsList","saveRights","contact","right","loadExtraData","aa","bb","UserMgmtContactAction","UserMgmtContactAction2","UserMgmtNewsletterSetting","UserMgmtNewsletterSetting2","defaultRoleId1","defaultRoleId2","defaultRoleIdIntern1","defaultRoleIdIntern2","rightIdNeedsProductSelection2","userMgmtEditorModalInstance","userMgmtRightsRef","_sfc_main$1","UserMgmtRights","VueSelect","cityList","updateContact","saveContact","removeContact","internalRoleList","externalRoleList","setValidation","genderList","languageList","functionList","toggleWantsNewsletter","productSelectionList","mustHaveProductSelection","setProductSelectionChanged","startEditRights","savedRights","getDefaultInternalRole","role","getDefaultExternalRole","roleChanged","setRoleChanged","createUserName","removeUserName","decoder","textArea","isGuid","city","ftion","productSelection","validationItem","_hoisted_61","_hoisted_66","_hoisted_68","_hoisted_69","_hoisted_70","_hoisted_71","_hoisted_72","_hoisted_73","_hoisted_74","_hoisted_75","_hoisted_76","_hoisted_77","_hoisted_79","gender","language","_hoisted_67","_component_vue_select","_hoisted_78","_hoisted_80","_hoisted_81","_hoisted_82","_component_user_mgmt_rights","defaultFunctionId","defaultGender","defaultLcid","userMgmtEditorRef","_sfc_main","UserMgmtEditor","allowEditPersons","allowEditRights","allowDeletePersons","allowCreatePersons","allowAddRemoveUsername","isInternal","selectedContact","personList","contactList","loginList","loadContacts","setDefaults","newContact","editContact","savedContact","isFound","person","functionName","roleName","externalRole","internalRole","login","_component_user_mgmt_editor","_VueComponentLoader","vueComponent","mountElement","createApp","VueComponentLoader","CmsConfigurator","MiniBasket","LeadsForm","Lists","ListSelector","UserMgmt","Index","isMobile","Button","checkoutContainerHeight","checkoutOrderBoxTop","checkoutOrderBoxWidth","checkoutOrderBoxHeight","checkoutContainer","checkoutOrderBox","bootstrapBreakpoint","isChecked","enableTargetList","enableTarget","hideTargetList","hideTarget","isDesktop","searchBarElement","searchBarForm","checkoutContainerBottom","newTop","listContainer"],"mappings":"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"}