{promoMarkup}{notifMarkup}

“,panelEmptyTemplate=”

  • {emptyPanelMsg}

  • “,panelErrorTemplate=”

    {errorMsg}

    “,panelParentTemplate=””,notifOnboardPromoTemplate=”

  • “,EXPANDED_PANEL=”expanded_panel”,ERROR_PANEL=”error_panel”,NotificationView=function(){function e(n,t){classCallCheck(this,e);var i=this;i._config=n,i._panelNode=null,i._store=t}return createClass(e,[{key:”_generatePanelMarkup”,value:function(e,n){var t=this._config,i=void 0,o=void 0;”undefined”!=typeof window&&(i=window.Notification&&”default”===window.Notification.permission,o=t.promos.bypassEligibleClassCheck||hasClass(document.body,t.promos.eligibleBodyClass));var s=t.promos.enableNotifOnboard&&i&&o?notifOnboardPromoTemplate:””;if(s){var a=t.promos.showYahooLogo?””:”yns-no-logo”;s=s.replace(“{notifOnboardBtnLabel}”,t.promos.notifOnboardBtnLabel).replace(“{notifOnboardMsg}”,t.promos.notifOnboardMsg).replace(“{subscriptionTopic}”,t.promos.subscriptionTopic).replace(“{noLogoClass}”,a).replace(“https://money.yahoo.com/{promoLogo}”,t.promos.promoLogo)}var r=n.newCount>t.panel.maxCount?n.newCount:””,c=t.panel.notificationCenterPath,l=c?””:constants.panelHideElement,d=t.panel.headerMsg?””:” “+constants.panelHideElement,u=c?constants.panelPaddingBtm:””,p=void 0;n.count?p=n.markup:p=panelEmptyTemplate.replace(“{emptyPanelMsg}”,t.panel.emptyPanelMsg);return e=e.replace(“{notifMarkup}”,p).replace(“{promoMarkup}”,s).replace(“{hideClass}”,l).replace(“https://money.yahoo.com/{notifCenterLink}”,c).replace(“{paddingClass}”,u).replace(“{headerMsg}”,t.panel.headerMsg).replace(“{hideHeaderClass}”,d).replace(/{notificationCenterNavMsg}/g,t.panel.notificationCenterNavMsg).replace(/{newCount}/g,r)}},{key:”render”,value:function(e,n){var t=this;if(t._panelNode){var i=void 0,o=t._panelNode,s=void 0,a=void 0;switch(e){case EXPANDED_PANEL:i=panelTemplate,a=t._store.getNotifications(),s=t._generatePanelMarkup(i,a),o.innerHTML=s;break;case ERROR_PANEL:s=(i=panelErrorTemplate).replace(“{errorMsg}”,t._config.panel.errorMsg),o.innerHTML=s}n&&n()}else n&&n(new Error(“No panel parent”))}},{key:”createPanelParentNode”,value:function(e){e&&(e.innerHTML=panelParentTemplate,this._panelNode=document.getElementById(constants.panelNodeId))}},{key:”updateBadgeNode”,value:function(e){if(e){var n=this._store.getNotifications().newCount,t=this._config.badge.maxCount;if(n){var i=n>t?t+”+”:n;e.innerHTML=i}else e.innerHTML=””}}},{key:”addStyles”,value:function(e){if(e&&”undefined”!=typeof window){var n=document.getElementById(this._config.panel.styleTagId);n||((n=document.createElement(“style”)).type=”text/css”,n.id=this._config.panel.styleTagId,n.innerText=e,document.head.appendChild(n))}}}]),e}(),EXPANDED_PANEL$1=”expanded_panel”,ERROR_PANEL$1=”error_panel”,PanelController=function(){function e(n,t,i){classCallCheck(this,e);var o=this;o._store=t,o._view=i,o._config=n;var s=o._config.panel;o._panelParentNode=document.querySelector(s.parentSelector),o._badgeNode=o._config.badge.selector&&document.querySelector(o._config.badge.selector),o._indicatorNode=s.indicatorSelector&&document.querySelector(s.indicatorSelector)}return createClass(e,[{key:”createPanelParentNode”,value:function(){this._view.createPanelParentNode(this._panelParentNode),this._notifPanelNode=document.getElementById(constants.panelNodeId)}},{key:”refreshPanelNode”,value:function(e,n){var t=this;addClass(t._notifPanelNode,constants.panelLoading),t._store.fetchNotifications(e,(function(e,i){var o=window.wafer&&window.wafer.base;o&&o.destroy(t._notifPanelNode),e?t._notifPanelNode.innerHTML||(t._view.render(ERROR_PANEL$1),addClass(t._notifPanelNode,constants.panelLoading)):(t._view.render(EXPANDED_PANEL$1),t._view.updateBadgeNode(t._badgeNode),t._showBadge(),t._showIndicator(),t._view.addStyles(i.css)),removeClass(t._notifPanelNode,constants.panelLoading),o&&o.sync(t._notifPanelNode.parentNode),n&&n(e,i)}))}},{key:”resetBadge”,value:function(){var e=this;e._store.resetNewCount(),e._view.updateBadgeNode(e._badgeNode),addClass(e._badgeNode,e._config.badge.hideClass)}},{key:”_showIndicator”,value:function(){this._indicatorNode&&(this._store.getNotifications().newCount?addClass(this._indicatorNode,this._config.panel.indicatorClass):removeClass(this._indicatorNode,this._config.panel.indicatorClass))}},{key:”_showBadge”,value:function(){var e=this;e._store.getNotifications().newCount?removeClass(e._badgeNode,e._config.badge.hideClass):addClass(e._badgeNode,e._config.badge.hideClass)}}]),e}(),config={promos:{eligibleBodyClass:”display-push-promos”,enableNotifOnboard:!0,bypassEligibleClassCheck:!1,notifOnboardBtnLabel:”Notify Me”,notifOnboardMsg:”Get alerts for breaking news and top stories”,promoLogo:”https://s.yimg.com/cv/apiv2/ae/news/circle_bell.png”,showYahooLogo:!0,subscriptionTopic:”gondor_homerun_news”},badge:{hideClass:””,maxCount:5,selector:””},panel:{emptyPanelMsg:”You have no new notifications.”,errorMsg:””,headerMsg:”Notifications”,imageTag:”img:40×40|2|80″,indicatorClass:”yns-indicator”,indicatorSelector:null,maxCount:6,notificationCenterNavMsg:”View all {newCount} notifications”,notificationCenterPath:””,notificationTypes:””,parentSelector:null,styleTagId:”notificationStyles”,theme:”default”},service:{attemptCount:2,attemptDelay:1,url:null,resetUrl:null,isRMP:!1,responseType:”json”,timeout:1500}},Main=function(){function e(n){classCallCheck(this,e);var t=this;t.config=t._parseConfig(n),t._validateRequiredConfigs()&&(t._request=new NotificationRequest(t.config),t._store=new NotificationStore(t.config,t._request),t._view=new NotificationView(t.config,t._store),t._panelController=new PanelController(t.config,t._store,t._view),t._panelController.createPanelParentNode(),t._assignHelperMethods())}return createClass(e,[{key:”_parseConfig”,value:function(e){var n={};for(var t in objectAssign(n,config),n)if(n.hasOwnProperty(t)){var i=n[t],o=e[t];”object”===(void 0===i?”undefined”:_typeof(i))?objectAssign(i,o):n[t]=e[t]}return n}},{key:”_validateRequiredConfigs”,value:function(){var e=this.config;return!(!e.panel.parentSelector||!e.service.url)}},{key:”_assignHelperMethods”,value:function(){var e=this;e.helpers={refreshPanelNode:e._panelController.refreshPanelNode.bind(e._panelController),resetBadge:e._panelController.resetBadge.bind(e._panelController),resetIndicator:function(){removeClass(e._panelController._indicatorNode,e.config.panel.indicatorClass)}}}}]),e}(),notificationClient_module_min=Main,notificationClient={NotificationClient:notificationClient_module_min},CONSUMPTION_STORAGE_KEY=”lnct”,NotifClient=function(){function e(){var e,n;this.personalized=!1,this.ybarElem=document.getElementById(“ybar”),this.partnerClasses=null===(n=null===(e=this.ybarElem)||void 0===e?void 0:e.className)||void 0===n?void 0:n.match(/ybar-variant-([a-z]*)/),this.client=new notificationClient.NotificationClient(this.getConfig())}return e.prototype.refreshPanel=function(){var e,n,t,i=this,o={lastUpdate:this.getTimeStamp()||this.setTimeStamp(),loadInHpViewer:!0,includePersonalized:this.personalized},s=(null===(e=window.YAHOO)||void 0===e?void 0:e.context)||(null===(n=window.Af)||void 0===n?void 0:n.context)||{};return s.region&&s.lang&&(o.lang=s.lang,o.region=s.region),(null===(t=this.partnerClasses)||void 0===t?void 0:t.length)&&(o.partner=this.partnerClasses[1]),new Promise((function(e,n){i.client.helpers.refreshPanelNode({matrixParams:o},(function(t,i){t&&(logError(“Notification refresh error:”,t),n(t)),e(i)}))}))},e.prototype.resetBadge=function(){this.client.helpers.resetBadge(),this.setTimeStamp()},e.prototype.getConfig=function(){var e,n,t,i,o,s={promos:{eligibleBodyClass:”display-push-promos”,enableNotifOnboard:!0},badge:{selector:”#notif-badge”,hideClass:”ybar-notification-hidden”},panel:{emptyPanelMsg:”You have no new notifications.”,errorMsg:”Please check back later.”,headerMsg:”Notifications”,maxCount:5,parentSelector:”#ybarNotificationBody”,notificationTypes:”breakingNews”},service:{url:”/tdv2_fp/api/resource/NotificationHistory.getHistory”,isRMP:!1}},a=document.getElementById(“notification-container”),r=null===(e=null==a?void 0:a.dataset)||void 0===e?void 0:e.config,c={};if(r){“att”===(null===(n=this.partnerClasses)||void 0===n?void 0:n[1])&&(s.promos.showYahooLogo=!1);try{var l=JSON.parse(r);c=__assign({},l),this.personalized=1===l.personalize}catch(e){logError(“Notifications config parsing error”,e)}a&&delete a.dataset.config}var d=this.mergeConfigs(s,c);return(null===(t=this.partnerClasses)||void 0===t?void 0:t.length)&&”yahoo”!==(null===(i=this.partnerClasses)||void 0===i?void 0:i[1])&&(null===(o=d.promos)||void 0===o?void 0:o.subscriptionTopic)&&delete d.promos.subscriptionTopic,d},e.prototype.mergeConfigs=function(e,n){var t=__assign({},e);for(var i in e)t[i]=__assign(__assign({},e[i]),n[i]);return t},e.prototype.getTimeStamp=function(){var e;return null===(e=window.localStorage)||void 0===e?void 0:e.getItem(CONSUMPTION_STORAGE_KEY)},e.prototype.setTimeStamp=function(){var e,n=””+Math.floor((new Date).getTime()/1e3);return null===(e=window.localStorage)||void 0===e||e.setItem(CONSUMPTION_STORAGE_KEY,n),n},e}(),notifClient=new NotifClient,getNotifClient=function(){return notifClient},reInit=function(){notifClient=new NotifClient},ybarRapid,ybarRapidInterval,ybarRapidErrMsg=””,beaconQueue=[],noop=function(){},logRapidError=function(){window.removeEventListener(“beforeunload”,logRapidError),””!==ybarRapidErrMsg&&logError(“Rapid not found on page”,new Error(ybarRapidErrMsg))},findRapidWithSpaceid=function(e){var n=void 0;if(e&&e.length>0)for(var t=0;t0){if(ybarRapid.addModules(o,!1,i),beaconQueue.length>0)for(e=0;e90&&fireImageBeacon(“performance”,e)}catch(e){}}),1e3)}))},measureInit=measure(“ybar-init”);initYbar(),measureInit.stop(),initPerformanceMetricsBeaconListener(),initRapid(),initErrorBeaconListener();var selected=”_yb_a1c6y”,Css$7={“right-item”:”_yb_1uiby”,selected:selected,”ybar-mod-topnavigation”:”_yb_1m3v0″,”ybar-mod-topnavigation-teaser-imp”:”_yb_hlq8o”},DOCUMENT_NODE_TYPE=9;if(“undefined”!=typeof Element&&!Element.prototype.matches){var proto=Element.prototype;proto.matches=proto.matchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector}function closest(e,n){for(;e&&e.nodeType!==DOCUMENT_NODE_TYPE;){if(“function”==typeof e.matches&&e.matches(n))return e;e=e.parentNode}}var closest_1=closest;function _delegate(e,n,t,i,o){var s=listener.apply(this,arguments);return e.addEventListener(t,s,o),{destroy:function(){e.removeEventListener(t,s,o)}}}function delegate(e,n,t,i,o){return”function”==typeof e.addEventListener?_delegate.apply(null,arguments):”function”==typeof t?_delegate.bind(null,document).apply(null,arguments):(“string”==typeof e&&(e=document.querySelectorAll(e)),Array.prototype.map.call(e,(function(e){return _delegate(e,n,t,i,o)})))}function listener(e,n,t,i){return function(t){t.delegateTarget=closest_1(t.target,n),t.delegateTarget&&i.call(e,t)}}var delegate_1=delegate,ListNode=function(e){this.data=e,this.next=null,this.prev=null},LinkedList=function(){function e(){this.head=null,this.tail=null}return e.prototype.push=function(e){var n=new ListNode(e);return this.head?this.tail?(n.prev=this.tail,this.tail.next=n,this.tail=n):(this.tail=n,this.tail.prev=this.head,this.head.next=this.tail):(this.head=n,n.next=this.tail),n},e.prototype.size=function(){for(var e=0,n=this.head;n;)e+=1,n=n.next;return e},e.prototype.getHead=function(){return this.head},e.prototype.getTail=function(){return this.tail},e.prototype.get=function(e){if(e>=this.size())return null;for(var n=0,t=this.head;(null==t?void 0:t.next)&&n0&&Array.prototype.forEach.call(e,(function(e){e.onerror=function(){e.onerror=null,e.style.display=”none”}}))},fixLogoOutline=function(e,n){e&&(hideOutlineOnMouseDown(“#ybar-logo”,”#ybar-logo”,n),n.onDestroy((function(){e.classList.remove(“ybar-show-outline”),e.classList.remove(“ybar-hide-outline”)})))},logoClick=function(e,n){n&&e.addElementListener(n,”click”,(function(){e.triggerEvent(“logo-click”)}))},init$3=function(e,n){n.logoImages&&hideLogosOnError(n.logoImages),n.wrapper&&(fixLogoOutline(n.wrapper,e),logoClick(e,n.wrapper))};initModule(“ybar-mod-logo”,(function(e){var n={wrapper:document.getElementById(“ybar-logo”),logoImages:document.querySelectorAll(“.”.concat(Css$6[“logo-image”]))};init$3(e,n)}));var overlay$1=”_yb_n987k”,tooltip=”_yb_1tx3r”,tooltip__text=”_yb_j352k”,tooltip__voice=”_yb_twkgv”,tooltip__web=”_yb_1mefg”,dark=”_yb_1i3kt”,darker=”_yb_kde5l”,light=”_yb_9c3id”,midnight60=”_yb_165fd”,Css$5={“dropdown-open”:”_yb_1wzev”,”merchant-is-selected”:”_yb_16zwv”,overlay:overlay$1,”selected-merchant-clear-button”:”_yb_1px1w”,”shops-buttons”:”_yb_ojcg4″,”styled-select”:”_yb_hlha7″,tooltip:tooltip,”tooltip–show”:”_yb_2khwr”,tooltip__text:tooltip__text,tooltip__voice:tooltip__voice,tooltip__web:tooltip__web,dark:dark,darker:darker,light:light,midnight60:midnight60},range=function(e,n){var t=Math.max(e,n),i=Math.min(e,n),o=Math.abs(t-i);return __spreadArray([],new Array(o+1),!0).map((function(e,n){return i+n}))},openSearchOverlay=function(e,n,t){var i=e.getConfig().bucketConfig,o=(void 0===i?{}:i).enable_search_ui,s=void 0!==o&&o;if(n.ybar){n.ybar.classList.add(“ybar-searchbox-assist-fullscreen”),document.documentElement.classList.add(“ybar-overlay”),document.body.classList.add(“ybar-overlay-noscroll”);beaconClick(“ybar”,”websrch”,””,{elm:”expand”,subsec:”searchbox”,itc:”1″}),setTimeout((function(){n.searchInput instanceof HTMLInputElement&&(t&&(n.searchInput.value=t),n.searchInput.focus(),s&&n.searchInput.click())}))}},closeSearchOverlay=function(e){var n;null===(n=e.ybar)||void 0===n||n.classList.remove(“ybar-searchbox-assist-fullscreen”),document.documentElement.classList.remove(“ybar-overlay”),document.body.classList.remove(“ybar-overlay-noscroll”),e.searchInput instanceof HTMLInputElement&&(e.searchInput.value=””,e.searchInput.blur())},initMweb=function(e,n){“smartphone”===e.getConfig().device&&(e.addElementListener(n.searchBoxPlaceholder,”click”,(function(){openSearchOverlay(e,n)})),e.addElementListener(n.searchBoxPlaceholder,”keydown”,(function(t){var i=t,o=i.keyCode,s=i.key,a=range(65,90),r=__spreadArray(__spreadArray([],range(58,57),!0),range(96,105),!0),c=__spreadArray(__spreadArray([],a,!0),r,!0).includes(o);(32===o||13===o||c)&&(t.preventDefault(),t.stopPropagation(),openSearchOverlay(e,n,c?s:””))})),n.searchBoxBackButton&&(e.addElementListener(n.searchBoxBackButton,”click”,(function(e){e.stopPropagation(),closeSearchOverlay(n);beaconClick(“ybar”,”back-close-srch”,””,{elm:”btn”,subsec:”searchbox”,itc:”1″})})),e.addElementListener(n.searchInput,”keyup”,(function(e){e.stopPropagation();27===e.keyCode&&(e.stopPropagation(),closeSearchOverlay(n))}))),e.onDestroy((function(){closeSearchOverlay(n)})))},Tooltip=function(){function e(e,n,t){n&&(this.ybar=e,this.elem=n,this.options=t,this.show=this.show.bind(this),this.hide=this.hide.bind(this),this.addEventListeners())}return Object.defineProperty(e.prototype,”tooltip”,{get:function(){var e=this;return this.tooltipMarkup||(this.tooltipMarkup=this.createTooltip(),(this.options.tooltipParentElm||this.elem).appendChild(this.tooltipMarkup),this.ybar.onDestroy((function(){var n,t;null===(t=null===(n=e.tooltipMarkup)||void 0===n?void 0:n.parentNode)||void 0===t||t.removeChild(e.tooltipMarkup)}))),this.tooltipMarkup},enumerable:!1,configurable:!0}),e.prototype.show=function(){this.tooltip.classList.add(this.options.showClass)},e.prototype.hide=function(){this.tooltip.classList.remove(this.options.showClass)},e.prototype.addEventListeners=function(){this.ybar.addElementListener(this.elem,”mouseenter”,this.show),this.ybar.addElementListener(this.elem,”focus”,this.show),this.ybar.addElementListener(this.elem,”mouseleave”,this.hide),this.ybar.addElementListener(this.elem,”blur”,this.hide)},e.prototype.createTooltip=function(){var e=document.createElement(“div”);e.className=this.options.containerClass||””;var n=document.createElement(“p”);return n.textContent=this.options.label,n.className=this.options.textClass||””,e.appendChild(n),e},e}();createCommonjsModule((function(module){(function(){var __webpack_modules__={“./src/index.js”:
    /*!**********************!*\
    !*** ./src/index.js ***!
    \**********************/function(__unused_webpack_module,__unused_webpack_exports,__webpack_require__){eval(“var I18n = __webpack_require__(/*! ./lib/I18n */ \”./src/lib/I18n.js\”);\n\n(function (win, doc) {\n \”use strict\”;\n\n var defaultConfig = {\n uiLang: ‘en-US’,\n speechLang: ‘en-US’,\n voiceButton: ‘#voice-btn’,\n searchBox: {\n form: ‘#sf’,\n input: ‘#yschsp’,\n params: {\n fr: ”,\n fr2: ”\n }\n },\n enable_voice_trending: false,\n trending: {\n market: \”en-us\”\n },\n ui: {\n speechOverlay: {\n disableBlur: false\n }\n },\n browsers: {\n edge: false\n }\n };\n\n function VoiceSearch(config) {\n var self = this;\n self.config = Object.assign(defaultConfig, config || {});\n self.i18n = new VoiceSearch.I18n({\n lang: self.config.uiLang\n });\n self.renderPermissionGuide(self);\n self.renderSpeechPanel(self);\n self.speechResult=””;\n self.noSpeech = true;\n self.isRecognitionStart = false;\n self.recognition = null;\n self.voiceButton = doc.querySelector(self.config.voiceButton);\n self.searchBoxForm = doc.querySelector(self.config.searchBox.form);\n self.searchBoxQuery = doc.querySelector(self.config.searchBox.input);\n self.speechPanel = doc.querySelector(‘#spch’);\n self.speechButtonContainer = doc.querySelector(‘#spchbc’);\n self.speechButton = doc.querySelector(‘#spchbc-btn’);\n self.speechText = doc.querySelector(‘#spcht’);\n self.speechOverlay = doc.getElementById(‘spch-overlay’);\n self.retryLink = doc.querySelector(‘#spcht-retry’);\n self.trending = doc.getElementById(‘spch-trending’);\n self.trendingTerms = doc.getElementById(‘trending-terms’);\n self.termSpans = doc.getElementsByClassName(\”trending-term\”);\n self.closeButton = doc.querySelector(‘#spchx’);\n self.startAudio = new Audio(‘https://s.yimg.com/pv/static/misc/voice-start-202105050733.wav’);\n self.resultAudio = new Audio(‘https://s.yimg.com/pv/static/misc/voice-result-202105050733.wav’);\n self.errorAudio = new Audio(‘https://s.yimg.com/pv/static/misc/voice-error-202105050733.wav’);\n self.closeAudio = new Audio(‘https://s.yimg.com/pv/static/misc/voice-close-202105050733.wav’);\n self.permissionGuide = doc.querySelector(‘#spchp’);\n self.permissionGuideClose = doc.querySelector(‘#spchpx’);\n self.permissionGuideTimer = null;\n\n self.onEscKeyDown = function (e) {\n if (e.code !== ‘Escape’) {\n return;\n }\n\n self.recognition.stop();\n self.sendBeacon(‘keybrd’, ‘voicesearch_cancel_esc’); // The clean up should put inside closePanel() instead of here,\n // or func won’t be cleaned up if user close panel with btn or overlay\n\n self.closePanel(self);\n };\n\n if (self.isBrowserSupported()) {\n var SpeechRecognition = win.SpeechRecognition || win.webkitSpeechRecognition;\n var SpeechGrammarList = win.SpeechGrammarList || win.webkitSpeechGrammarList;\n var speechGrammar=”#JSGF V1.0;”;\n self.recognition = new SpeechRecognition();\n var speechRecognitionList = new SpeechGrammarList();\n\n if (speechRecognitionList.addFromString) {\n speechRecognitionList.addFromString(speechGrammar, 1);\n }\n\n self.recognition.grammars = speechRecognitionList;\n self.recognition.continuous = false;\n self.recognition.lang = self.config.speechLang;\n self.recognition.interimResults = false;\n self.recognition.maxAlternatives = 1;\n /* Listeners */\n\n if (self.voiceButton) {\n self.voiceButton.onclick = function () {\n self.recognition.start();\n\n if (self.permissionGuideTimer) {\n win.clearTimeout(self.permissionGuideTimer);\n }\n\n self.permissionGuideTimer = win.setTimeout(function () {\n if (!self.isRecognitionStart) {\n self.showPermissionGuide(self);\n }\n }, 300); // Also close when pressing esc\n\n doc.addEventListener(‘keydown’, self.onEscKeyDown);\n self.sendBeacon(‘clk’, ‘voicesearch’);\n };\n }\n\n if (self.speechButton) {\n self.speechButton.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon(‘clk’, ‘voicesearch_panel_mic_restart’);\n } else {\n self.recognition.stop();\n self.sendBeacon(‘clk’, ‘voicesearch_panel_mic_close’);\n self.closePanel(self);\n }\n };\n }\n\n if (self.retryLink) {\n self.retryLink.onclick = function () {\n if (!self.isRecognitionStart) {\n self.recognition.start();\n self.sendBeacon(‘clk’, ‘voicesearch_panel_retry’);\n }\n };\n }\n\n if (self.speechOverlay) {\n self.speechOverlay.onclick = function () {\n self.recognition.stop();\n self.sendBeacon(‘clk’, ‘voicesearch_cancel_outside’);\n self.closePanel(self);\n };\n }\n\n if (self.closeButton) {\n self.closeButton.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon(‘clk’, ‘voicesearch_cancel’);\n self.closePanel(self);\n };\n }\n\n if (self.permissionGuideClose) {\n self.permissionGuideClose.onclick = function\n /*event*/\n () {\n self.recognition.stop();\n self.sendBeacon(‘clk’, ‘voicesearch_permission_close’);\n self.closeAudio.play();\n self.hidePermissionGuide(self);\n };\n }\n /* Recognition Events */\n\n\n self.recognition.onresult = function (event) {\n // The SpeechRecognitionEvent results property returns a SpeechRecognitionResultList object\n // The SpeechRecognitionResultList object contains SpeechRecognitionResult objects.\n // It has a getter so it can be accessed like an array\n // The first [0] returns the SpeechRecognitionResult at the last position.\n // Each SpeechRecognitionResult object contains SpeechRecognitionAlternative objects that contain individual results.\n // These also have getters so they can be accessed like arrays.\n // The second [0] returns the SpeechRecognitionAlternative at position 0.\n // We then return the transcript property of the SpeechRecognitionAlternative object\n // console.log(‘Confidence: ‘ + event.results[0][0].confidence);\n self.speechResult = event.results[0][0].transcript;\n /* Punctuation Handling: Check last character and strip it if necessary */\n\n self.handlePunctuation(self);\n\n if (self.speechText) {\n self.speechText.innerText = self.speechResult;\n }\n\n if (self.searchBoxQuery) {\n self.searchBoxQuery.value = self.speechResult;\n }\n\n self.resultAudio.play();\n win.setTimeout(function () {\n if (self.speechPanel) {\n self.speechPanel.classList.remove(\”s2tb\”);\n self.speechPanel.classList.add(\”s2tb-h\”);\n }\n\n self.hideRetryLink(self);\n\n if (self.searchBoxForm) {\n var inputFr = self.searchBoxForm.querySelector(‘[name=fr]’);\n var inputFr2 = self.searchBoxForm.querySelector(‘[name=fr2]’);\n\n if (inputFr && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr) {\n inputFr.value = config.searchBox.params.fr;\n inputFr.disabled = false; // for homepage case\n }\n\n if (inputFr2 && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr2) {\n inputFr2.value = config.searchBox.params.fr2;\n inputFr2.disabled = false; // for homepage case\n }\n\n self.searchBoxForm.submit();\n }\n }, 1000);\n };\n\n self.recognition.onspeechstart = function\n /*event*/\n () {// Fired when speech starts\n };\n\n self.recognition.onspeechend = function () {\n // Fired when speech ends\n self.recognition.stop();\n };\n\n self.recognition.onerror = function\n /*event*/\n () {\n // console.log(‘Error occurred in recognition: ‘ + event.error);\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t(‘search.voice.recognition_error’);\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n };\n\n self.recognition.onaudiostart = function\n /*event*/\n () {\n // Fired when the user agent has started to capture audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.add(\”listening\”);\n }\n };\n\n self.recognition.onaudioend = function\n /*event*/\n () {\n // Fired when the user agent has finished capturing audio.\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\”listening\”);\n }\n };\n\n self.recognition.onsoundstart = function\n /*event*/\n () {\n // Fired when any sound — recognisable speech or not — has been detected.\n self.hideTrending(self);\n self.noSpeech = false;\n\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\”listening\”);\n self.speechButtonContainer.classList.add(\”speaking\”);\n }\n };\n\n self.recognition.onsoundend = function\n /*event*/\n () {\n // Fired when no sound present\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\”speaking\”);\n }\n };\n\n self.recognition.onstart = function\n /*event*/\n () {\n // Fired when the speech recognition service has begun listening\n self.recognitionInit(self);\n self.startRecognition(self);\n };\n\n self.recognition.onend = function\n /*event*/\n () {\n // Fired when the speech recognition service has disconnected.\n self.isRecognitionStart = false;\n\n if (self.noSpeech == false && self.speechResult == ”) {\n // No match: Fired when the speech recognition can’t recognise speech\n if (self.speechText) {\n self.speechText.innerText = self.i18n.t(‘search.voice.recognition_nomatch’);\n }\n\n self.hideTrending(self);\n self.showRetryLink(self);\n self.errorAudio.play();\n }\n }; // trigger onReady event when initialized\n\n\n if (document && document.dispatchEvent) {\n document.dispatchEvent(new Event(‘VOICE_JS_READY’));\n }\n }\n } // static members\n\n\n VoiceSearch.I18n = I18n; // instance members\n\n VoiceSearch.prototype.renderPermissionGuide = function (self) {\n var tmpl = \”\\n

    \\n \\n

    \\n \\n

    \\n

    \”.concat(self.i18n.t(‘search.voice.permission_title’), \”

    \\n

    \”).concat(self.i18n.t(‘search.voice.permission_text’), \”

    \\n

    \\n

    \\n

    \\n \”);\n var dom = new DOMParser().parseFromString(tmpl, ‘text/html’);\n document.body.appendChild(dom.body.children[0]);\n };\n\n VoiceSearch.prototype.renderSpeechPanel = function (self) {\n var tmpl = \”\\n

    \\n \\n \\n

    \\n

    \\n

    \\n \\n \\n \\n \\n \\n \\n

    \\n

    \\n

    \\n \\n \\n \”.concat(self.i18n.t(‘search.voice.recognition_retry’), \”\\n

    \\n

    \\n

    \\n

    \\n

    \\n

    \\n \”).concat(self.i18n.t(‘search.voice.trending_title’), \”\\n \\n

    \\n

    \\n

    \\n \”);\n var dom = new DOMParser().parseFromString(tmpl, ‘text/html’);\n\n if (self && self.config && self.config.ui && self.config.ui.speechOverlay && self.config.ui.speechOverlay.disableBlur) {\n dom.body.children[0].classList.add(‘disable-blur-overlay’);\n }\n\n document.body.appendChild(dom.body.children[0]);\n };\n\n VoiceSearch.prototype.isBrowserSupported = function () {\n var isSupported = false;\n var self = this;\n var isChromium = Boolean(window.chrome);\n var isIOSChrome = /CriOS/.test(window.navigator.userAgent);\n var isEdge = /Edg\\//.test(window.navigator.userAgent);\n var isLegacyEdge = /Edge\\//.test(window.navigator.userAgent);\n var isOpera = Boolean(window.opr);\n var isBrave = Boolean(window.navigator.brave);\n var browsers = [// chrome\n {\n checkEnabled: function checkEnabled() {\n return true;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && !isIOSChrome && !isEdge && !isOpera && !isBrave;\n },\n checkAPI: function checkAPI() {\n return win && (‘SpeechRecognition’ in win || ‘webkitSpeechRecognition’ in win) && (‘SpeechGrammarList’ in win || ‘webkitSpeechGrammarList’ in win);\n }\n }, // edge\n {\n checkEnabled: function checkEnabled() {\n return self && self.config && self.config.browsers && self.config.browsers.edge;\n },\n checkBrowser: function checkBrowser() {\n return isChromium && isEdge && !isLegacyEdge;\n },\n checkAPI: function checkAPI() {\n return win && (‘SpeechRecognition’ in win || ‘webkitSpeechRecognition’ in win) && (‘SpeechGrammarList’ in win || ‘webkitSpeechGrammarList’ in win);\n }\n }];\n\n for (var b = 0; b 0) {\n var lastChar = self.speechResult.charAt(self.speechResult.length – 1);\n\n if (lastChar === ‘.’ || lastChar === ‘?’ || lastChar === ‘。’ || lastChar === ‘?’) {\n self.speechResult = self.speechResult.slice(0, -1);\n }\n }\n };\n\n VoiceSearch.prototype.sendBeacon = function (actn, slk) {\n var ULT = win.YAHOO.ULT || {},\n SB = win.YAHOO.SB || {};\n\n if (ULT.beacon_click) {\n var trackParams = {\n _S: SB.config.i13n.spaceid,\n _I: SB.config.i13n.pvid,\n actn: actn,\n sec: ‘search’,\n slk: slk\n };\n win.YAHOO.ULT.beacon_click(trackParams);\n }\n };\n\n VoiceSearch.prototype.ajaxReq = function (url, callback) {\n var DONE_STATE = XMLHttpRequest.DONE || 4; // for IE-compatibility\n\n var xhr = new XMLHttpRequest();\n var responseRaw;\n var response; // CORS request only for IE8/IE9\n\n if (doc.documentMode && doc.documentMode \n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== ‘boolean’) {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== ‘[object Array]’) {\n return;\n }\n\n for (var i = 0; i >>0;if(“function”!=typeof e)throw new TypeError(e+” is not a function”);for(arguments.length>1&&(t=n),i=0;i>>0;if(“function”!=typeof e)throw new TypeError;for(var i=[],o=arguments.length>=2?arguments[1]:void 0,s=0;s>>0;if(“function”!=typeof e)throw new TypeError(e+” is not a function”);for(arguments.length>1&&(t=n),i=new Array(a),o=0;othis.length)&&-1!==this.indexOf(e,n)}),function(){function e(e){return”function”==typeof e.trim?e.trim():e.replace(/^\s+|\s+$/gm,””)}function n(e){var n;c&&c\&]/gim,(function(e){return””+e.charCodeAt(0)+”;”}))},ae:function(e,n,t,i){if(i=i||!1,e.addEventListener)e.addEventListener(n,t,i);else{if(!e.attachEvent)return!1;e.attachEvent(“on”+n,t)}},de:function(e,n,t){if(e.removeEventListener)e.removeEventListener(n,t);else{if(!e.detachEvent)return!1;e.detachEvent(“on”+n,t)}},ts:function(){return Math.round((new Date).getTime()/1e3)},bold:function(e,n,t,o){var s,a=(o.pattern||””)+”(&[^;\\s]*)?(%needles)”;return(o=o.exact?[i(t)]:t.split(/[\s|,]+/).filter((function(e){return””!==e})).sort((function(e,n){return n.length-e.length})).map(i)).length?(a=a.replace(“%needles”,o.join(“|”)),n.replace(new RegExp(a,”gi”),(s=e,function(e,n,t){return n&&!/\s/.test(t)?e:s.replace(/\{s\}/g,t)}))):n},fireEvent:function(e,n,t){var i;”function”==typeof s.CustomEvent?(i=new s.CustomEvent(n,{detail:t}),e.dispatchEvent(i)):”function”==typeof a.createEvent?((i=a.createEvent(“CustomEvent”)).initCustomEvent(n,!1,!1,t),e.dispatchEvent(i)):(a.attachEvent,document.documentElement[n]=t)}},s.YAHOO=s.YAHOO||{},s.YAHOO.NBClass=o,s.YAHOO.NB=new o,Array.prototype.forEach||(Array.prototype.forEach=function(e,n){var t,i;if(null==this)throw new TypeError(” this is null or not defined”);var o,s=Object(this),a=s.length>>>0;if(“function”!=typeof e)throw new TypeError(e+” is not a function”);for(1>>0;if(“function”!=typeof e)throw new TypeError;for(var i,o=[],s=2>>0;if(“function”!=typeof e)throw new TypeError(e+” is not a function”);for(1this.length)&&-1!==this.indexOf(e,n)});var s,a,r,c,l,d,u,p,h,f,m=window,g=document,y=m.YAHOO,v=y.NB,b={},_=”before_get_assist”,w=”before_display_data”,C=”before_init_view”,E=”after_init_view”,x=”before_parse_data”,S=”before_update_assist”,T=”after_update_list”,k=”after_create_item”,L=”before_show_sa”,I=”after_reset_view”,M=”after_hide_view”,A=”after_init_controller”,N=”click_assist”,R=”before_query_assist”,O=”before_key_submit”,B=”before_button_submit”,P=”before_submit_query”,D=”after_item_highlight”,q=”after_item_reset_highlight”,j=”before_sb_focus”,V=”after_sb_focus”,U=”before_sb_blur”,F=”after_sb_blur”,$=”before_beacon”,H=”after_set_ylc”,Y=”after_reset_controller”;function G(e,n){n=(e=e||{}).tag||n||”div”;var t,i=g.createElement(n);for(t in e.css&&(i.className=e.css),e.text&&(i.textContent=e.text),e.attrs)v.set(i,t,e.attrs[t]);for(t in e.style)i.style[t]=e.style[t];return e.wrap?((n=G(e.wrap)).appendChild(i),n):i}function z(e){this.config=e||{},this.listeners={},this.cb={}}function W(){}function J(){}function Q(){}function K(){var e=this.app.view.elems,n=e.sbClear;n&&(0Manage history‘},log:{sec:”search”,slk:”clear history”,rspns:”upd”,t2:”search”,t4:”clear history”}}}function Te(){function e(e){e.keyCode&&27!==e.keyCode&&13!=e.keyCode||(v.stopPropagation(e),s.value=””,v.setFocus(s),i.show(),t.control.beacon(“tapClr”,a,n.config.log))}var n=this,t=n.app,i=t.view,o=i.elems,s=o.sbInput,a=o.sbClear;a&&(v.ae(a,”click”,e),v.ae(a,”keydown”,e))}function ke(){this.config={log:{_r:2,actn:”clk”,pos:1,sec:”search”,slk:”clearsearch”,rspns:”upd”,t1:”hdr”,t2:”search”,t3:”clear”,t4:”clearsearch”}}}y.SA=(d=[],z.prototype={jsonp:function(e){var n=g.getElementsByTagName(“head”)[0],t=g.createElement(“script”);v.set(t,”type”,”text/javascript”),v.set(t,”src”,e),n.appendChild(t),v.ae(t,”load”,(function(){n.removeChild(t)}))},createElem:G,getElemStyleValue:function(e,n){return m.getComputedStyle?m.getComputedStyle(e).getPropertyValue(n):e.currentStyle?(n=n.replace(/\-([a-z]){1}/g,(function(e,n){return n.toUpperCase()})),e.currentStyle[n]):””},format:function(e,n){if(e)return e.replace(/{(\d+)}/g,(function(e,t){return n&&void 0!==n[t]?n[t]:””})).trim()},on:function(e,n,t){var i;e&&n&&((i=this.listeners)[e]||(i[e]=[]),i[e].push({thisArg:t||this,fn:n}))},notify:function(e,n){var t=this.listeners;if(!t[e])return!1;t[e].forEach((function(e){var t=e.thisArg;(e=e.fn)&&e.apply&&1!=t.config.disable&&e.apply(t,n||[])}))},init:function(e){var n,t,i,o,s=this,a=s.config,r=a.plugins={};for(o in s.view=n=new l.viewClass,s.model=t=new l.modelClass,s.control=i=new l.controlClass,b){var c=new b[o];r[o]=c.config=c.config||{},c.createElem=G,c.init(s)}”object”==typeof e&&v.merge(a,e),s.ready=n.init(s)&&t.init(s)&&i.init(s)}},u=z,l={ver:”assistjs-v1.0.155-ybar”,apps:d,plugs:b,add:function(e,n){b[e]=n},msg:{BEFORE_GET_ASSIST:_,BEFORE_DISPLAY_DATA:w,BEFORE_INIT_VIEW:C,AFTER_INIT_VIEW:E,BEFORE_PARSE_DATA:x,BEFORE_UPDATE_ASSIST:S,AFTER_UPDATE_LIST:T,AFTER_CREATE_ITEM:k,BEFORE_SHOW_SA:L,AFTER_RESET_VIEW:I,AFTER_HIDE_VIEW:M,AFTER_INIT_CONTROLLER:A,CLICK_ASSIST:N,BEFORE_QUERY_ASSIST:R,BEFORE_KEY_SUBMIT:O,BEFORE_BUTTON_SUBMIT:B,BEFORE_SUBMIT_QUERY:P,BEFORE_SB_FOCUS:j,AFTER_SB_FOCUS:V,BEFORE_SB_BLUR:U,AFTER_SB_BLUR:F,BEFORE_BEACON:$,AFTER_SET_YLC:H,AFTER_RESET_CONTROLLER:Y,AFTER_ITEM_HIGHLIGHT:D,AFTER_ITEM_RESET_HIGHLIGHT:q},markers:{GOSSIP_MARKER_SEARCH_HISTORY:13,GOSSIP_MARKER_TRENDING:9,GOSSIP_MARKER_PEOPLE_ALSO_SEARCH_FOR:42},init:function(e){var n,t=v.ieVer;return!(t&&t”+s+” “+t.config.saAria.shownText+””)},show:function(){var e=this,n=e.config,t=e.elems.sbInput.value,i=t.length;e.app.notify(L),e.shown&&e.sameQuery()||(e.lastInput=t,in.maxInput?e.hide():(e.model.fetch(),e.triggered=!0))},hide:function(){var e=this,n=(t=e.elems).saAria,t=t.sbForm,i=e.config;v.removeClass(g.body,i.typingClass),t&&t.parentElement&&v.removeClass(t.parentElement,i.typingClass),v.removeClass(t,i.noResultClass),e.clearAssist(),e.shown=!1,e.triggered=!1,n&&(v.set(n,”aria-expanded”,”false”),n.innerHTML=”

    “+e.config.saAria.closedText+”

    “),e.app.notify(M)},clearAssist:function(){this.elems.saTray.innerHTML=””,this.items.splice(0,this.items.length),this.assistItem=null},createItem:function(e){var n,t={idx:e.idx,data:e.origData},i=v.htmlEncode,o=this.config,s=(n=this.app.createElem)(o.saItem,”li”);return(n=(v.set(s,”pos”,e.idx),n(o.saTitle,”span”))).innerHTML=e.t||(o.boldTag&&e.k&&e.q?v.bold(o.boldTag,i(e.k),i(e.q),o.highlight||{}):i(e.k)),s.appendChild(n),t.li=s,t.title=n,this.app.notify(k,[t,e]),t},resetQuery:function(){this.elems.sbInput.value=this.origQuery},reset:function(){var e=this,n=e.config,t=e.elems.sbForm;n.resetQuery&&e.resetQuery(),e.hide(),t.action=e.origAction,e.app.notify(I)},sameQuery:function(){return this.elems.sbInput.value==this.lastInput}},Q),l.initConfig=function(){return{elems:{sbForm:”sb-form”,sbInput:”sb-input”,sbSubmit:”sb-search”,sbClear:”sb-clr”,sbCancel:”sb-cancel”,saTray:”sa-tray”},customEvent:{},sa:{css:”sa”,attrs:{type:”normal”}},saList:{css:”sa-list”,attrs:{role:”listbox”},style:{cursor:”pointer”}},saItem:{css:”sa-item”,attrs:{role:”option”}},saTitle:{css:”sa-item-title”},saAria:{shownText:”new suggestions shown”,closedText:”Suggestion box closed”,css:”sa-aria-live-region”,attrs:{“aria-live”:”polite”},style:{position:”absolute”,left:”-9999px”}},saBE:{host:””,base:”/sugg/gossip/gossip-us-ura/”,params:{l:1,bm:3,output:”sd1″,nresults:10}},shBE:{host:””,base:”https://money.yahoo.com/history”},minInput:0,maxInput:255,boldTag:”{s}“,ylc:{_r:2},ylcAssist:{use_case:””},hideOnOutsideClick:!0,noQueryClass:”sa-noQuery”,typingClass:”typing”,noResultClass:”sf-noResult”}},b.hideSbClr=(X.prototype={init:function(e){(this.app=e).on(L,K,this)}},X),b.saFr=(te.prototype={init:function(e){(this.app=e).on(E,Z,this),e.on(R,ee,this),e.on(I,ne,this)}},te),b.ipos=(se.prototype={init:function(e){(this.app=e).on(L,ie,this),e.on(_,oe,this)}},se),b.saTray=(re.prototype={init:function(e){(this.app=e).on(C,ae,this)}},re),b.saFlvr=(le.prototype={init:function(e){e.on(k,ce,this)}},le),b.saEdit=(ue.prototype={init:function(e){e.on(k,de,this)}},ue),b.saAnnot=(he.prototype={init:function(e){e.on(k,pe,this)}},he),b.saImg=(me.prototype={init:function(e){e.on(k,fe,this)}},me),b.saGroup=(ve.prototype={init:function(e){this.app=e,this.idxs={},e.on(k,ge,this),e.on(T,ye,this)}},ve),b.saPCActn=(Ee.prototype={init:function(e){var n=this;n.app=e,n.selectedIndex=-1,e.on(w,be,n),e.on(A,_e,n),e.on(V,we,n),e.on(F,Ce,n)}},Ee),b.tapRmv=(Se.prototype={init:function(e){(this.app=e).on(N,xe,this)}},Se),b.tapClr=(ke.prototype={init:function(e){(this.app=e).on(A,Te,this)}},ke)}();var history=”_yb_x6txu”,lowlight=”_yb_ofce7″,sa=”_yb_108su”,trending=”_yb_6vrrr”,Css$4={“bot-search-icon”:”_yb_2o94e”,”bot-search-icon-container”:”_yb_119jn”,”bot-search-item”:”_yb_j84k2″,”bot-search-item-col”:”_yb_1dk8m”,”bot-search-span”:”_yb_1rguq”,history:history,”list-item-hover”:”_yb_1crxa”,lowlight:lowlight,”no-wrap”:”_yb_1u12r”,”related-title”:”_yb_1757n”,sa:sa,”sa-annot-rich”:”_yb_1lnma”,”sa-annot-subtitle”:”_yb_x63sj”,”sa-annot-title”:”_yb_1l0s6″,”sa-edit”:”_yb_1km71″,”sa-edit-icon”:”_yb_9jkpo”,”sa-edit-text”:”_yb_189pp”,”sa-fd-actn-cont”:”_yb_96vg4″,”sa-grp-hdr”:”_yb_pyiht”,”sa-grp-hdr-title”:”_yb_hwq5u”,”sa-history”:”_yb_1orgr”,”sa-img”:”_yb_sv8vr”,”sa-img-ctn”:”_yb_12u5s”,”sa-img-icon”:”_yb_bsdbi”,”sa-item”:”_yb_1x2g9″,”sa-item-title”:”_yb_1uhne”,”sa-rich-thumb”:”_yb_ou7f3″,”sa-sbx-container”:”_yb_oa4gf”,”sa-sugg”:”_yb_k2gmo”,”sa-thumb-icon”:”