{"version":3,"file":"checkoutModalLogin-DIhiFwdS.js","sources":["../../../../Coloplast.UI/src/shared/utils/stripHtml.utils.ts","../../../../Coloplast.UI/src/shared/services/tracking/loginTrackingService.ts","../../../../Coloplast.UI/src/multisite/components/checkout/checkoutModalLogin.vue"],"sourcesContent":["export function stripHtmlTags(input: string | null | undefined): string {\r\n    if (!input) return \"\"; // Handle null, undefined, and empty strings\r\n\r\n    const parser = new DOMParser();\r\n    const doc = parser.parseFromString(input, 'text/html');\r\n    return doc.body.textContent ?? \"\";\r\n}\r\n","import { track } from \"./core\"\r\nimport { trackingEventNames } from '../../settings/constants';\r\n\r\nexport function track_login() {\r\n\tconst event = {\r\n\t\tevent: trackingEventNames.LOGIN,\r\n\t};\r\n\ttrack(event);\r\n}\r\n\r\nexport function track_login_start() {\r\n\tconst event = {\r\n\t\tevent: trackingEventNames.LOGIN_START,\r\n\t};\r\n\ttrack(event);\r\n}\r\n\r\nexport function track_sign_up_start() {\r\n\tconst event = {\r\n\t\tevent: trackingEventNames.SIGN_UP_START,\r\n\t};\r\n\ttrack(event);\r\n}\r\n\r\nexport function track_sign_up() {\r\n\tconst event = {\r\n\t\tevent: trackingEventNames.SIGN_UP,\r\n\t};\r\n\ttrack(event);\r\n}","<script setup>\r\n\timport {\r\n\t\tcomputed,\r\n\t\twatch,\r\n\t\tref,\r\n\t\tonMounted,\r\n\t\tonUnmounted,\r\n\t\tnextTick,\r\n\t} from 'vue';\r\n\timport { useStore } from 'vuex';\r\n\timport Events from 'shared/settings/events';\r\n\timport { stripHtmlTags } from 'shared/utils/stripHtml.utils';\r\n\timport { DsButton, DsText, DsModal, DsButtonGroup, DsIcon } from '@coloplast/design-system';\r\n\timport { track_login_start, track_sign_up_start } from 'shared/services/tracking/loginTrackingService.ts';\r\n\r\n\timport \"@coloplast/design-system/dist/components/modal/ds-modal.css\";\r\n\r\n\tconst store = useStore();\r\n\r\n\tconst props = defineProps({\r\n\t\tvm: {\r\n\t\t\ttype: Object\r\n\t\t},\r\n\t\tshow: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t},\r\n\t\tsigninHeadingProp: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tsignupHeadingProp: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tsigninUrlProp: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tsignupReturnUrl: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tsigninButtonTextProp: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tsignupButtonTextProp: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tsignupBodyText: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tproceedWithoutRegisteringUrlProp: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tproceedWithoutRegisteringUrlTextProp: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: null,\r\n\t\t},\r\n\t\tactionOrder: {\r\n\t\t\ttype: String,\r\n\t\t\tdefault: () => 'LoginProceedRegister',\r\n\t\t},\r\n\t\tdisabledRedirectAfterClosing: {\r\n\t\t\ttype: Boolean,\r\n\t\t\tdefault: false\r\n\t\t}\r\n\t});\r\n\r\n\tconst\r\n\t\titemsOrder = ref(props?.actionOrder?.match(/[A-Z][a-z]*/g)),\r\n\t\tsignupHeading = ref(props.signupHeadingProp || props.vm.BaseViewModel.AuthenticateModalViewModel.SignUpHeading),\r\n\t\tsigninHeading = ref(props.signinHeadingProp || props.vm.BaseViewModel.AuthenticateModalViewModel.SignInHeading),\r\n\t\tsigninText = ref(props.signinButtonTextProp || props.vm.BaseViewModel.AuthenticateModalViewModel.SignInButtonText),\r\n\t\tsignupText = ref(props.signupButtonTextProp || props.vm.BaseViewModel.AuthenticateModalViewModel.SignUpButtonText),\r\n\t\tproceedWithoutRegisteringText = ref(props.proceedWithoutRegisteringUrlTextProp || props.vm.BaseViewModel.AuthenticateModalViewModel.ProceedWithoutRegisteringUrlText),\r\n\t\tselectedVariantCode = computed(() => store.getters.getSelectedVariantCode),\r\n\t\tquantity = computed(() => store.getters.getQuantity),\r\n\t\tisSample = computed(() => store.getters.getSelectedVariantIsSample),\r\n\t\tisCut = computed(() => store.getters.getSelectedVariantIsCut),\r\n\t\tloginModalState = computed(() => store.state.globalCheckout.isLoginModalShow),\r\n\t\tsigninLink = computed(() => props.signinUrlProp || props.vm.BaseViewModel.AuthenticateModalViewModel.SignInUrl),\r\n\t\tsigninLinkWithReturnParams = computed(() => {\r\n\t\t\tif (selectedVariantCode.value) {\r\n\t\t\t\treturn replaceUrlForAddToBasketAction(signinLink.value);\r\n\t\t\t}\r\n\t\t\treturn signinLink.value;\r\n\t\t}),\r\n\t\tisHcpModal = computed(() => props.vm?.BaseViewModel?.AuthenticateModalViewModel?.IsHcpModal),\r\n\t\thcpLayoutButtonsView = ref([ //relevant for hcp modal only\r\n\t\t\t{\r\n\t\t\t\tkey: 'Login',\r\n\t\t\t\tlinkText: signinText?.value,\r\n\t\t\t\torder: 1\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: 'Proceed',\r\n\t\t\t\ttext: stripHtmlTags(props?.vm?.BaseViewModel?.AuthenticateModalViewModel?.ProceedWithoutRegisteringDescriptionText),\r\n\t\t\t\tlinkText: proceedWithoutRegisteringText?.value,\r\n\t\t\t\torder: 2,\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\tkey: 'Register',\r\n\t\t\t\ttext: signupHeading?.value,\r\n\t\t\t\tlinkText: signupText?.value,\r\n\t\t\t\tlink: props.signupReturnUrl,\r\n\t\t\t\torder: 3\r\n\t\t\t}\r\n\t\t]),\r\n\t\tlastLink = ref(null),\r\n\t\tauthenticateModal = computed(() => props.vm?.BaseViewModel.AuthenticateModalViewModel ),\r\n\t\tisOpenSingupModal = ref(false);\r\n\r\n\tfunction close() {\r\n\t\tif ( isOpenSingupModal.value ) return false\r\n\r\n\t\tstore.commit('globalCheckout/setLoginModalShow', !loginModalState.value);\r\n\r\n\t\tif(!document.referrer || props.disabledRedirectAfterClosing) return\r\n\r\n\t\tconst referrerUrl = new URL(document.referrer)\r\n\t\tif (location.origin == referrerUrl.origin) location.href = document.referrer;\r\n\t}\r\n\r\n\tfunction clickHandler(buttonAction) {\r\n\t\t// buttonAction { 0: login, 1: sign up, 2: proceed without registration }\r\n\t\tswitch (buttonAction) {\r\n\t\t\tcase 0:\r\n\t\t\t\tredirect()\r\n\t\t\t\tbreak;\r\n\t\t\tcase 1:\r\n\t\t\t\ttriggerSignupFlow()\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2:\r\n\t\t\t\tproceedWithoutRegistration()\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tredirect()\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tfunction redirect() {\r\n\t\ttrack_login_start();\r\n\t\twindow.location.assign(signinLinkWithReturnParams.value);\r\n\t}\r\n\r\n\tfunction triggerSignupFlow() {\r\n\t\ttrack_sign_up_start();\r\n\t\tlet tmpSignupReturnUrl = props.signupReturnUrl || props.vm.BaseViewModel.AuthenticateModalViewModel.SignUpReturnUrl;\r\n\t\tif (selectedVariantCode?.value) {\r\n\t\t\ttmpSignupReturnUrl = replaceUrlForAddToBasketAction(tmpSignupReturnUrl);\r\n\t\t}\r\n\r\n\t\tconst event = new CustomEvent(Events.ACTIVATE_CONSUMER_SIGNUP, {\r\n\t\t\tdetail: tmpSignupReturnUrl\r\n\t\t});\r\n\t\tdocument.dispatchEvent(event);\r\n\r\n\t\tisOpenSingupModal.value = true\r\n\t}\r\n\r\n\r\n\tfunction proceedWithoutRegistration() {\r\n\t\twindow.location = authenticateModal.value.ProceedWithoutRegistrationUrl;\r\n\t}\r\n\r\n\tfunction replaceUrlForAddToBasketAction(url) {\r\n\t\treturn url\r\n\t\t\t.replaceAll('_pvc_', selectedVariantCode.value)\r\n\t\t\t.replaceAll('_qty_', quantity.value)\r\n\t\t\t.replaceAll('_issample_', isSample.value)\r\n\t\t\t.replaceAll('_iscut_', isCut.value);\r\n\t}\r\n\r\n\twatch(() => props.vm, () => {\r\n\t\tstore.commit('globalCheckout/setLoginModalShow', props.show);\r\n\t}, { deep: true });\r\n\r\n\twatch(() => hcpLayoutButtonsView.value, (newVal) => {\r\n\t    //sort by order\r\n\t\tnewVal.sort((a, b) => a.order > b.order ? 1 : -1);\r\n\t\t//extract last link\r\n\t\tlastLink.value = newVal.find(x => x.order === 3);\r\n\t}, { deep: true });\r\n\r\n\tonMounted(async () => {\r\n\t\tstore.commit('globalCheckout/setLoginModalShow', props.show);\r\n\r\n\t\t//if hcp modal re-arrange buttons order according to option checked in epi settings\r\n\t\tif (isHcpModal?.value && itemsOrder?.value?.length) {\r\n\t\t\thcpLayoutButtonsView.value.map((button) => button.order = itemsOrder?.value?.findIndex(item => item === button.key) + 1);\r\n\t\t\tawait nextTick();\r\n\t\t\tconst proceedLink = document.getElementById('proceedLink');\r\n\t\t\tif (proceedLink) {\r\n\t\t\t\thcpLayoutButtonsView.value.find(x => x.key === 'Proceed').link = proceedLink.href;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tdocument.addEventListener(Events.INACTIVATE_CONSUMER_SIGNUP, () => {\r\n\t\t\tisOpenSingupModal.value = false\r\n\t\t});\r\n\t});\r\n\r\n\tonUnmounted(async () =>  {\r\n\t\tdocument.removeEventListener(Events.INACTIVATE_CONSUMER_SIGNUP,() => {\r\n\t\t\tisOpenSingupModal.value = false\r\n\t\t});\r\n\t})\r\n</script>\r\n\r\n<template>\r\n\t<DsModal\r\n\t\tclass=\"signup-modal\"\r\n\t\t:isOpen=\"loginModalState\"\r\n\t\t@close-modal=\"close\"\r\n\t\tcloseLabel=\"Close button\"\r\n\t\t:title=\"isHcpModal ? signinHeading : authenticateModal.AuthenticateModalHeading\"\r\n\t\t:size=\"isHcpModal ? 'md' : 'sm'\"\r\n\t\t>\r\n\t\t<div v-if=\"!isHcpModal\">\r\n\t\t\t<div class=\"signin-primary\" v-if=\"authenticateModal.PrimaryButtonViewModel.ToShow\">\r\n\t\t\t\t<ul class=\"signin-usp-list\">\r\n\t\t\t\t\t<li v-for=\"item in authenticateModal.UspList\" :key=\"item.Text\" >\r\n\t\t\t\t\t\t<DsIcon :icon-name=\"item.IconName\" size=\"sm\"/>\r\n\t\t\t\t\t\t<DsText html-element=\"div\"\r\n\t\t\t\t\t\ttext-type=\"body-md\"\r\n\t\t\t\t\t\ttext-style=\"regular\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ item.Text }}\r\n\t\t\t\t\t\t</DsText>\r\n\t\t\t\t\t</li>\r\n\t\t\t\t</ul>\r\n\r\n\t\t\t\t<DsButtonGroup desktopAlignment=\"stretch\">\r\n\t\t\t\t\t<DsButton\r\n\t\t\t\t\t\t:clickHandler=\"() => clickHandler(authenticateModal.PrimaryButtonViewModel.ButtonAction)\"\r\n\t\t\t\t\t\t\tvariant=\"primary\"\r\n\t\t\t\t\t\t\tautofocus>\r\n\t\t\t\t\t\t{{ authenticateModal.PrimaryButtonViewModel.Label }}\r\n\t\t\t\t\t</DsButton>\r\n\t\t\t\t</DsButtonGroup>\r\n\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"signin-supporting\" v-if=\"authenticateModal.SupportingTextAndLinkViewModel.ToShow\">\r\n\t\t\t\t<DsText html-element=\"span\"\r\n\t\t\t\t\t\ttext-type=\"body-lg\">\r\n\t\t\t\t\t<span v-html=\"authenticateModal.SupportingTextAndLinkViewModel.SupportingText\" />\r\n\t\t\t\t</DsText>\r\n\r\n\t\t\t\t<DsButton\r\n\t\t\t\t\t:clickHandler=\"() => clickHandler(authenticateModal.SupportingTextAndLinkViewModel.ButtonAction)\"\r\n\t\t\t\t\tvariant=\"link\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{{ authenticateModal.SupportingTextAndLinkViewModel.Label }}\r\n\t\t\t\t</DsButton>\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"signin-secondary\" v-if=\"authenticateModal.SecondaryButtonViewModel.ToShow\">\r\n\t\t\t\t<DsText html-element=\"div\"\r\n\t\t\t\t\t\ttext-type=\"body-lg\"\r\n\t\t\t\t\t\tclass=\"signin-divider\">\r\n\t\t\t\t\t<span v-html=\"authenticateModal.SecondaryButtonViewModel.DividerLabel\" />\r\n\t\t\t\t</DsText>\r\n\r\n\t\t\t\t<DsButtonGroup desktopAlignment=\"stretch\">\r\n\t\t\t\t\t<DsButton\r\n\t\t\t\t\t\t:clickHandler=\"() => clickHandler(authenticateModal.SecondaryButtonViewModel.ButtonAction)\"\r\n\t\t\t\t\t\tvariant=\"secondary\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{{ authenticateModal.SecondaryButtonViewModel.Label }}\r\n\t\t\t\t\t</DsButton>\r\n\t\t\t\t</DsButtonGroup>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<!--Hcp Modal-->\r\n\t\t<div v-else>\r\n\t\t\t<DsText\r\n\t\t\t\tv-if=\"vm.BaseViewModel.AuthenticateModalViewModel.SignInDescriptionText\"\r\n\t\t\t\thtml-element=\"div\"\r\n\t\t\t\ttext-type=\"body-md\"\r\n\t\t\t\t>\r\n\t\t\t\t<span v-html=\"vm.BaseViewModel.AuthenticateModalViewModel.SignInDescriptionText\" />\r\n\t\t\t</DsText>\r\n\t\t\t<!--proceed href if exists-->\r\n\t\t\t<slot name=\"proceed\"></slot>\r\n\t\t\t<div class=\"c-modal__hcp-buttons\">\r\n\t\t\t\t<template v-for=\"button in hcpLayoutButtonsView\">\r\n\t\t\t\t\t<DsButton v-if=\"button.order != 3 && button.linkText\"\r\n\t\t\t\t\t\t\t:key=\"button.key\"\r\n\t\t\t\t\t\t\t:variant=\"button.order === 1? 'primary' : 'secondary-neutral'\"\r\n\t\t\t\t\t\t\t:href=\"button.link\"\r\n\t\t\t\t\t\t\t@click=\"button.key === 'Login' ? redirect() : {}\"\r\n\t\t\t\t\t\t\t@keydown.enter=\"button.key === 'Login' ? redirect() : {}\"\r\n\t\t\t\t\t\t\tsize=\"md\"\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t<span v-html=\"button.linkText\"></span>\r\n\t\t\t\t\t</DsButton>\r\n\t\t\t\t</template>\r\n\t\t\t</div>\r\n\t\t\t<div class=\"c-modal__hcp-text\" v-if=\"lastLink && lastLink.linkText\">\r\n\t\t\t\t<DsText\r\n\t\t\t\t\t\tv-if=\"lastLink.text\"\r\n\t\t\t\t\t\thtml-element=\"span\"\r\n\t\t\t\t\t\ttext-type=\"body-sm\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t<span v-html=\"lastLink.text\"></span>\r\n\t\t\t\t</DsText>\r\n\t\t\t\t<DsButton\r\n\t\t\t\t\t\tvariant=\"link\"\r\n\t\t\t\t\t\tsize=\"sm\"\r\n\t\t\t\t\t\t:href=\"lastLink.link\"\r\n\t\t\t\t\t\t@click=\"lastLink.key === 'Login' ? redirect() : {}\"\r\n\t\t\t\t\t\t@keydown.enter=\"lastLink.key === 'Login' ? redirect() : {}\"\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t<span v-html=\"lastLink.linkText\"></span>\r\n\t\t\t\t</DsButton>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t</DsModal>\r\n</template>\r\n\r\n\r\n<style lang=\"scss\">\r\n.signup-modal{\r\n\t&:focus {\r\n\t\toutline: 0;\r\n\t}\r\n\r\n\t.ds-modal__actions {\r\n\t\tmargin-block-start: 0;\r\n\t}\r\n}\r\n</style>\r\n<style lang=\"scss\" scoped>\r\n@import 'multisite/styles/settings/settings';\r\n@import 'multisite/styles/tools/tools';\r\n\r\n.signin-usp-list {\r\n\tpadding: 0;\r\n\tlist-style: none;\r\n\tmargin-block: ds-space(\"8\") ds-space(\"9\");\r\n\r\n\tli {\r\n\t\tdisplay: flex;\r\n\t\tcolor: ds-color(\"fg\",\"brand\");\r\n\t\tmargin-block-start: ds-space(\"5\");\r\n\r\n\t\tdiv {\r\n\t\t\tcolor: ds-color(\"fg\", \"default\");\r\n\t\t\tmargin-left: ds-space(\"4\");\r\n\t\t}\r\n\t}\r\n}\r\n\r\n.signin-supporting {\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tjustify-content: center;\r\n\tmargin-top: ds-space(\"7\");\r\n\r\n\tspan {\r\n\t\tmargin-right: ds-space(\"2\");\r\n\t}\r\n}\r\n\r\n.signin-secondary {\r\n\tmargin-top: ds-space(\"7\");\r\n}\r\n\r\n.signin-divider {\r\n\tcolor: ds-color(\"fg\", \"default\");\r\n\ttext-align: center;\r\n\tmargin-bottom: ds-space(\"7\");\r\n\tposition: relative;\r\n\r\n\t&::before,\r\n\t&::after {\r\n\t\tcontent: \"\";\r\n\t\theight: 1px;\r\n\t\twidth: 45%;\r\n\t\tposition: absolute;\r\n\t\tbackground: ds-color(\"border\", \"muted\");\r\n\t\ttop: 48%;\r\n\t}\r\n\t&::before {\r\n\t\tleft: 0;\r\n\t}\r\n\r\n\t&::after {\r\n\t\tright: 0;\r\n\t}\r\n}\r\n</style>\r\n"],"names":["stripHtmlTags","input","track_login","event","trackingEventNames","track","track_login_start","track_sign_up_start","track_sign_up","store","useStore","props","__props","itemsOrder","ref","_a","signupHeading","signinHeading","signinText","signupText","proceedWithoutRegisteringText","selectedVariantCode","computed","quantity","isSample","isCut","loginModalState","signinLink","signinLinkWithReturnParams","replaceUrlForAddToBasketAction","isHcpModal","_c","_b","hcpLayoutButtonsView","_d","lastLink","authenticateModal","isOpenSingupModal","close","referrerUrl","clickHandler","buttonAction","redirect","triggerSignupFlow","proceedWithoutRegistration","tmpSignupReturnUrl","Events","url","watch","newVal","a","b","x","onMounted","button","item","nextTick","proceedLink","onUnmounted"],"mappings":"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"}