{"version":3,"file":"customer-status.js?v=13dd94ad0a5bad65633f","mappings":"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","sources":["webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/functions/element-enumerator.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/functions/widget-initializer.js","webpack://RdoWeb/./ResourcePackages/Main/assets/src/scripts/widgets/customer-status.js","webpack://RdoWeb/./node_modules/vue-click-outside/index.js"],"sourcesContent":["export var ElementsEnumerator = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\rElementsEnumerator.prototype.getElements = function () {\r var elements = document.getElementsByClassName(this.elementsClass);\r\n var elementIdPrefix = this.elementsClass + \"-\";\r\n for (var i = 0; i < elements.length; i++) {\r\n var element = elements[i];\r\n element.setAttribute(\"id\", (elementIdPrefix + (i + 1)));\r\n }\r return elements;\r};","import { widgetInitialisation } from \"./widget-init\";\r\nimport { ElementsEnumerator } from \"./element-enumerator\";\r\n\r\nconst initializedVueAppAttrName = \"data-vue-initialized\";\r\n\r\nexport var WidgetInitializer = function (elementsClass) {\r\n this.elementsClass = elementsClass;\r\n};\r\n\r\nWidgetInitializer.prototype.initialize = function (initializationCallback) {\r\n var that = this;\r\n widgetInitialisation(function () {\r\n return innerInitialization.call(that, initializationCallback);\r\n });\r\n};\r\n\r\nfunction innerInitialization(initializationCallback) {\r\n var elementsEnumerator = new ElementsEnumerator(this.elementsClass);\r\n var notInitializedElements = elementsEnumerator.getElements();\r\n for (var i = 0; i < notInitializedElements.length; i++) {\r\n var element = notInitializedElements[i];\r\n if (element.hasAttribute(initializedVueAppAttrName))\r\n return;\r\n\r\n var newElement = initializationCallback(element);\r\n if (newElement)\r\n { element = newElement; }\r\n\r\n element.setAttribute(initializedVueAppAttrName, '');\r\n }\r\n};","import ClickOutside from 'vue-click-outside';\r\nimport { WidgetInitializer } from \"../functions/widget-initializer\";\r\nimport { Constants } from \"../functions/constants\";\r\nimport { RouteUtils } from \"../functions/route-utils\";\r\nimport { ConfigUtils } from \"../functions/config-utils\";\r\n\r\nvar widgetInitializer = new WidgetInitializer(Constants.COMPONENTS.CUSTOMER_STATUS);\r\nGlobalApp.registerInitializationHandler(Constants.COMPONENTS.CUSTOMER_STATUS, function () {\r\n widgetInitializer.initialize(initHeaderCustomerStatusApp);\r\n});\r\n\r\nfunction initHeaderCustomerStatusApp(element) {\r\n var config = ConfigUtils.getConfigFor(element);\r\n var vueApp = new Vue({\r\n el: '#' + element.id,\r\n data: {\r\n initializationReadyHook: GlobalApp.getInitializationReadyHook(),\r\n storeData: '',\r\n popupShown: false,\r\n searchShown: false,\r\n guest: true,\r\n customerEmail: null,\r\n customerDisplayName: null,\r\n customerAvatarImageUrl: '',\r\n postLogoutUrl: null,\r\n isPunchoutCustomer: false\r\n },\r\n directives: {\r\n ClickOutside\r\n },\r\n computed: {\r\n buttonTitle: function buttonTitle() {\r\n return this.guest ? 'Sign In' : 'Account';\r\n },\r\n isGuest: function isGuest() {\r\n return this.guest;\r\n }\r\n },\r\n methods: {\r\n init: function init() {\r\n var that = this;\r\n\r\n this.postLogoutUrl = this.getPostlogOutUrl(Constants.SIGN_OUT.BACKEND_USER_SIGN_OUT_URL);\r\n GlobalApp.CustomerService.getCurrentCustomer()\r\n .then((data) => {\r\n if (data.IsLoggedIn) {\r\n that.guest = false;\r\n that.customerEmail = data.Email;\r\n that.customerDisplayName = data.DisplayName;\r\n that.customerAvatarImageUrl = data.AvatarImageUrl;\r\n if (data.BigCommerceDetails) {\r\n that.postLogoutUrl = this.getPostlogOutUrl(Constants.SIGN_OUT.RDO_CUSTOMER_SIGN_OUT_URL);\r\n that.isPunchoutCustomer = data.BigCommerceDetails.PunchoutEnabled?.toLowerCase() == Constants.CUSTOMER.PUNCHOUT_ENABLED_VALUE;\r\n }\r\n if (that.isPunchoutCustomer) {\r\n let header_wrapper = document.querySelector('.header_wrapper');\r\n header_wrapper.classList.add('has_punchout_header');\r\n }\r\n }\r\n }).catch(function (err) {\r\n console.warn(Constants.ERROR_MESSAGES.SOMETHING_WENT_WRONG, err);\r\n }).finally(function () {\r\n that.initializationReadyHook(element.id);\r\n });\r\n },\r\n togglePopupExpanded: function () {\r\n if (!this.popupShown) {\r\n GlobalApp.EventHub.raiseEvent(Constants.EVENTS.CLOSE_ALL_POPUPS);\r\n GlobalApp.EventHub.raiseEvent(Constants.EVENTS.POPUP_OPENED);\r\n }\r\n this.popupShown = !this.popupShown;\r\n },\r\n searchExpanded: function () {\r\n if (!this.searchShown) {\r\n GlobalApp.EventHub.raiseEvent(Constants.EVENTS.CLOSE_ALL_POPUPS);\r\n GlobalApp.EventHub.raiseEvent(Constants.EVENTS.POPUP_OPENED);\r\n }\r\n this.searchShown = !this.searchShown;\r\n },\r\n hidePopup: function hidePopup() {\r\n this.popupShown = false;\r\n },\r\n getPostlogOutUrl: function (signOutUrl) {\r\n let currentDomainUrl = RouteUtils.getBaseUrl();\r\n let logOutUri = new URL(currentDomainUrl + signOutUrl);\r\n var logoutPageUrl = config.logoutPageUrl == \"/home\" ? \"/\" : config.logoutPageUrl;\r\n logOutUri.searchParams.append(Constants.SIGN_OUT.REDIRECT_QUERY_PARAM_NAME, logoutPageUrl);\r\n\r\n return logOutUri.href;\r\n },\r\n bigCommerceLogout: function () {\r\n GlobalApp.CustomerService.logout()\r\n GlobalApp.MyStoreService.resetMyStorePreferences();\r\n window.location.href = this.postLogoutUrl;\r\n }\r\n },\r\n created: function () {\r\n this.init();\r\n GlobalApp.EventHub.subscribeToEvent(Constants.EVENTS.CLOSE_ALL_POPUPS, this.hidePopup);\r\n },\r\n destroyed() {\r\n GlobalApp.EventHub.unsubscribeToEvent(Constants.EVENTS.CLOSE_ALL_POPUPS, this.hidePopup);\r\n }\r\n });\r\n\r\n return vueApp.$el;\r\n}","function validate(binding) {\n if (typeof binding.value !== 'function') {\n console.warn('[Vue-click-outside:] provided expression', binding.expression, 'is not a function.')\n return false\n }\n\n return true\n}\n\nfunction isPopup(popupItem, elements) {\n if (!popupItem || !elements)\n return false\n\n for (var i = 0, len = elements.length; i < len; i++) {\n try {\n if (popupItem.contains(elements[i])) {\n return true\n }\n if (elements[i].contains(popupItem)) {\n return false\n }\n } catch(e) {\n return false\n }\n }\n\n return false\n}\n\nfunction isServer(vNode) {\n return typeof vNode.componentInstance !== 'undefined' && vNode.componentInstance.$isServer\n}\n\nexports = module.exports = {\n bind: function (el, binding, vNode) {\n if (!validate(binding)) return\n\n // Define Handler and cache it on the element\n function handler(e) {\n if (!vNode.context) return\n\n // some components may have related popup item, on which we shall prevent the click outside event handler.\n var elements = e.path || (e.composedPath && e.composedPath())\n elements && elements.length > 0 && elements.unshift(e.target)\n\n if (el.contains(e.target) || isPopup(vNode.context.popupItem, elements)) return\n\n el.__vueClickOutside__.callback(e)\n }\n\n // add Event Listeners\n el.__vueClickOutside__ = {\n handler: handler,\n callback: binding.value\n }\n const clickHandler = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';\n !isServer(vNode) && document.addEventListener(clickHandler, handler)\n },\n\n update: function (el, binding) {\n if (validate(binding)) el.__vueClickOutside__.callback = binding.value\n },\n\n unbind: function (el, binding, vNode) {\n // Remove Event Listeners\n const clickHandler = 'ontouchstart' in document.documentElement ? 'touchstart' : 'click';\n !isServer(vNode) && el.__vueClickOutside__ && document.removeEventListener(clickHandler, el.__vueClickOutside__.handler)\n delete el.__vueClickOutside__\n }\n}\n"],"names":["ElementsEnumerator","elementsClass","this","prototype","getElements","elements","document","getElementsByClassName","elementIdPrefix","i","length","setAttribute","WidgetInitializer","innerInitialization","initializationCallback","notInitializedElements","element","hasAttribute","newElement","initialize","that","widgetInitialisation","call","widgetInitializer","Constants","COMPONENTS","CUSTOMER_STATUS","initHeaderCustomerStatusApp","config","ConfigUtils","getConfigFor","Vue","el","id","data","initializationReadyHook","GlobalApp","getInitializationReadyHook","storeData","popupShown","searchShown","guest","customerEmail","customerDisplayName","customerAvatarImageUrl","postLogoutUrl","isPunchoutCustomer","directives","ClickOutside","computed","buttonTitle","isGuest","methods","init","getPostlogOutUrl","SIGN_OUT","BACKEND_USER_SIGN_OUT_URL","CustomerService","getCurrentCustomer","then","IsLoggedIn","_data$BigCommerceDeta","Email","DisplayName","AvatarImageUrl","BigCommerceDetails","RDO_CUSTOMER_SIGN_OUT_URL","PunchoutEnabled","toLowerCase","CUSTOMER","PUNCHOUT_ENABLED_VALUE","querySelector","classList","add","catch","err","console","warn","ERROR_MESSAGES","SOMETHING_WENT_WRONG","finally","togglePopupExpanded","EventHub","raiseEvent","EVENTS","CLOSE_ALL_POPUPS","POPUP_OPENED","searchExpanded","hidePopup","signOutUrl","currentDomainUrl","RouteUtils","getBaseUrl","logOutUri","URL","logoutPageUrl","searchParams","append","REDIRECT_QUERY_PARAM_NAME","href","bigCommerceLogout","logout","MyStoreService","resetMyStorePreferences","window","location","created","subscribeToEvent","destroyed","unsubscribeToEvent","$el","registerInitializationHandler","validate","binding","value","expression","isServer","vNode","componentInstance","$isServer","module","exports","bind","handler","e","context","path","composedPath","unshift","target","contains","popupItem","len","isPopup","__vueClickOutside__","callback","clickHandler","documentElement","addEventListener","update","unbind","removeEventListener"],"sourceRoot":""}