New Recipe: Martha Stewart’s ‘Elegant’ Carrot Cake Recipe Is Inspired By This Refreshing & Classic Springtime Dessert

    {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=hasClass(document.body,t.promos.eligibleBodyClass));var r=t.promos.enableNotifOnboard&&i&&o?notifOnboardPromoTemplate:””;if(r){var s=t.promos.showYahooLogo?””:”yns-no-logo”;r=r.replace(“{notifOnboardBtnLabel}”,t.promos.notifOnboardBtnLabel).replace(“{notifOnboardMsg}”,t.promos.notifOnboardMsg).replace(“{subscriptionTopic}”,t.promos.subscriptionTopic).replace(“{noLogoClass}”,s)}var a=n.newCount>t.panel.maxCount?n.newCount:””,c=t.panel.notificationCenterPath,l=c?””:constants.panelHideElement,u=t.panel.headerMsg?””:” “+constants.panelHideElement,d=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}”,r).replace(“{hideClass}”,l).replace(“https://www.yahoo.com/lifestyle/{notifCenterLink}”,c).replace(“{paddingClass}”,d).replace(“{headerMsg}”,t.panel.headerMsg).replace(“{hideHeaderClass}”,u).replace(/{notificationCenterNavMsg}/g,t.panel.notificationCenterNavMsg).replace(/{newCount}/g,a)}},{key:”render”,value:function(e,n){var t=this;if(t._panelNode){var i=void 0,o=t._panelNode,r=void 0,s=void 0;switch(e){case EXPANDED_PANEL:i=panelTemplate,s=t._store.getNotifications(),r=t._generatePanelMarkup(i,s),o.innerHTML=r;break;case ERROR_PANEL:r=(i=panelErrorTemplate).replace(“{errorMsg}”,t._config.panel.errorMsg),o.innerHTML=r}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 r=o._config.panel;o._panelParentNode=document.querySelector(r.parentSelector),o._badgeNode=o._config.badge.selector&&document.querySelector(o._config.badge.selector),o._indicatorNode=r.indicatorSelector&&document.querySelector(r.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){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),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,notifOnboardBtnLabel:”Notify Me”,notifOnboardMsg:”Get alerts for breaking news and top stories”,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},r=(null===(e=window.YAHOO)||void 0===e?void 0:e.context)||(null===(n=window.Af)||void 0===n?void 0:n.context)||{};return r.region&&r.lang&&(o.lang=r.lang,o.region=r.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={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}},i=document.getElementById(“notification-container”),o=null===(e=null==i?void 0:i.dataset)||void 0===e?void 0:e.config,r={};if(o){“att”===(null===(n=this.partnerClasses)||void 0===n?void 0:n[1])&&(t.promos.showYahooLogo=!1);try{var s=JSON.parse(o);r=__assign({},s),this.personalized=1===s.personalize}catch(e){logError(“Notifications config parsing error”,e)}i&&delete i.dataset.config}return this.mergeConfigs(t,r)},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 wrap=”_yb_1mgnn”,item=”_yb_1mg8u”,icon=”_yb_1mgcq”,spacer=”_yb_q2jen”,promo=”_yb_b6dn5″,bold=”_yb_1mge4″,selected=”_yb_1isnb”,Css$7={“ybar-mod-topnavigation”:”_yb_v756w”,”ybar-mod-topnavigation-teaser-imp”:”_yb_m6p71″,”opaque-background”:”_yb_mx7nh”,wrap:wrap,”right-background”:”_yb_oow82″,item:item,”item-content”:”_yb_50su9″,”locale-zh-hans-cn”:”_yb_1pvms”,”locale-zh-hant-hk”:”_yb_1zgwt”,”locale-zh-hant-tw”:”_yb_1hljt”,”property-mail”:”_yb_a0onh”,”nav-item”:”_yb_tf7sv”,icon:icon,”item-footer”:”_yb_ak1xk”,”selected-item-footer”:”_yb_18i8t”,”item-with-icon”:”_yb_1w3uz”,”arrow-left”:”_yb_1476g”,”arrow-right”:”_yb_um17l”,spacer:spacer,promo:promo,”promo-text”:”_yb_1ov2s”,”promo-icon”:”_yb_hr3bj”,bold:bold,”new-fin-promo-logo”:”_yb_1xtpw”,”new-fin-promo-text”:”_yb_126rj”,”svg-icon”:”_yb_zyet3″,selected:selected,”right-item”:”_yb_697jc”,”promo-button”:”_yb_d3fny”,”variant-att”:”_yb_kprdi”},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 r=listener.apply(this,arguments);return e.addEventListener(t,r,o),{destroy:function(){e.removeEventListener(t,r,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(“.”+Css$6[“logo-image”])};init$3(e,n)}));var tablet$1=”_yb_l1kvh”,smartphone$2=”_yb_1accu”,glowing=”_yb_f7e0q”,none=”_yb_17gr2″,tooltip=”_yb_1coqa”,tooltip__voice=”_yb_bq5xq”,tooltip__web=”_yb_kzsjj”,tooltip__text=”_yb_pu9k2″,overlay$1=”_yb_1uyr5″,light=”_yb_dk3xx”,dark=”_yb_17gv7″,darker=”_yb_eszxi”,Css$5={“search-form-container”:”_yb_1vbtm”,tablet:tablet$1,”property-generic”:”_yb_p66zr”,”property-homepage”:”_yb_7hx51″,”property-fantasy”:”_yb_1x0w8″,smartphone:smartphone$2,”search-input”:”_yb_1dmmf”,”glowing-bd”:”_yb_e6jzf”,”sa-btn”:”_yb_wfl8k”,”x-sa-btn”:”_yb_h8gnj”,”sa-btn-bar”:”_yb_15l6m”,”voice-search-sa-btn”:”_yb_1jhmb”,”clear-btn”:”_yb_vfgjj”,”voice-search-sa-btn-img”:”_yb_1a51j”,”search-submit”:”_yb_4w21a”,glowing:glowing,”glowing-fuji2″:”_yb_bseg8″,”locale-es-us”:”_yb_rqx0r”,”variant-att”:”_yb_e81ii”,”locale-en-us”:”_yb_1x9t4″,none:none,”variant-frontier”:”_yb_v24gv”,”locale-fr-ca”:”_yb_12vti”,”variant-rogers”:”_yb_1voc8″,”locale-en-ca”:”_yb_3hcz1″,”searchbox-icon”:”_yb_zone6″,”search-back-btn”:”_yb_1gatp”,”search-input-“:”_yb_a2riq”,”search-label”:”_yb_fdlxn”,”property-news”:”_yb_84mmp”,”locale-zh-hant-tw”:”_yb_ffpdh”,”locale-zh-hant-hk”:”_yb_1gawl”,”skiplink-list”:”_yb_1z0vw”,”skiplink-item”:”_yb_1djc1″,”shops-buttons”:”_yb_6puhb”,”shops-category-select-label”:”_yb_1raqo”,”shops-category-select”:”_yb_m14pj”,”shops-category-dropdown-wrapper”:”_yb_150lk”,”styled-select”:”_yb_7m3dn”,”dropdown-open”:”_yb_b0x7v”,”shops-category-select-dropdown”:”_yb_11qrb”,”selected-merchant-wrap”:”_yb_5vsfh”,”selected-merchant-clear-button”:”_yb_xi94p”,”merchant-is-selected”:”_yb_103jt”,tooltip:tooltip,tooltip__voice:tooltip__voice,tooltip__web:tooltip__web,”tooltip–show”:”_yb_1xebo”,tooltip__text:tooltip__text,overlay:overlay$1,light:light,dark:dark,darker:darker},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)).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,r=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(),r&&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,r=i.key,s=range(65,90),a=__spreadArray(__spreadArray([],range(58,57)),range(96,105)),c=__spreadArray(__spreadArray([],s),a).includes(o);(32===o||13===o||c)&&(t.preventDefault(),t.stopPropagation(),openSearchOverlay(e,n,c?r:””))})),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 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 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 if (self.searchBoxForm.fr && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr) {\n self.searchBoxForm.fr.value = config.searchBox.params.fr;\n self.searchBoxForm.fr.disabled = false; // for homepage case\n }\n\n if (self.searchBoxForm.fr2 && self.config.searchBox && self.config.searchBox.params && self.config.searchBox.params.fr2) {\n self.searchBoxForm.fr2.value = config.searchBox.params.fr2;\n self.searchBoxForm.fr2.disabled = false; // for homepage case\n }\n\n self.searchBoxForm.submit();\n }\n }, 1000);\n };\n\n self.recognition.onspeechstart = function () {// 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 // 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 // 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 // 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 // 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 // Fired when no sound present\n if (self.speechButtonContainer) {\n self.speechButtonContainer.classList.remove(\”speaking\”);\n }\n };\n\n self.recognition.onstart = function () {\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 // 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,r=0;r>>0;if(“function”!=typeof e)throw new TypeError(e+” is not a function”);for(arguments.length>1&&(t=n),i=new Array(s),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 r,s=(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?(s=s.replace(“%needles”,o.join(“|”)),n.replace(new RegExp(s,”gi”),(r=e,function(e,n,t){return n&&!/\s/.test(t)?e:r.replace(/\{s\}/g,t)}))):n},fireEvent:function(e,n,t){var i;”function”==typeof r.CustomEvent?(i=new r.CustomEvent(n,{detail:t}),e.dispatchEvent(i)):”function”==typeof s.createEvent?((i=s.createEvent(“CustomEvent”)).initCustomEvent(n,!1,!1,t),e.dispatchEvent(i)):(s.attachEvent,document.documentElement[n]=t)}},r.YAHOO=r.YAHOO||{},r.YAHOO.NBClass=o,r.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,r=Object(this),s=r.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=[],r=2>>0;if(“function”!=typeof e)throw new TypeError(e+” is not a function”);for(1this.length)&&-1!==this.indexOf(e,n)});var r,s,a,c,l,u,d,p,h,f,m=window,g=document,y=m.YAHOO,b=y.NB,v={},_=”before_get_assist”,w=”before_display_data”,C=”before_init_view”,E=”after_init_view”,x=”before_parse_data”,k=”before_update_assist”,T=”after_update_list”,S=”after_create_item”,L=”before_show_sa”,I=”after_reset_view”,M=”after_hide_view”,A=”after_init_controller”,R=”click_assist”,N=”before_query_assist”,O=”before_key_submit”,B=”before_button_submit”,P=”before_submit_query”,q=”after_item_highlight”,D=”after_item_reset_highlight”,j=”before_sb_focus”,V=”after_sb_focus”,$=”before_sb_blur”,F=”after_sb_blur”,U=”before_beacon”,H=”after_set_ylc”,Y=”after_reset_controller”;function z(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)b.set(i,t,e.attrs[t]);for(t in e.style)i.style[t]=e.style[t];return e.wrap?((n=z(e.wrap)).appendChild(i),n):i}function G(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||(b.stopPropagation(e),r.value=””,b.setFocus(r),i.show(),t.control.beacon(“tapClr”,s,n.config.log))}var n=this,t=n.app,i=t.view,o=i.elems,r=o.sbInput,s=o.sbClear;s&&(b.ae(s,”click”,e),b.ae(s,”keydown”,e))}function Se(){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=(u=[],G.prototype={jsonp:function(e){var n=g.getElementsByTagName(“head”)[0],t=g.createElement(“script”);b.set(t,”type”,”text/javascript”),b.set(t,”src”,e),n.appendChild(t),b.ae(t,”load”,(function(){n.removeChild(t)}))},createElem:z,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,r=this,s=r.config,a=s.plugins={};for(o in r.view=n=new l.viewClass,r.model=t=new l.modelClass,r.control=i=new l.controlClass,v){var c=new v[o];a[o]=c.config=c.config||{},c.createElem=z,c.init(r)}”object”==typeof e&&b.merge(s,e),r.ready=n.init(r)&&t.init(r)&&i.init(r)}},d=G,l={ver:”assistjs-v1.0.155-ybar”,apps:u,plugs:v,add:function(e,n){v[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:k,AFTER_UPDATE_LIST:T,AFTER_CREATE_ITEM:S,BEFORE_SHOW_SA:L,AFTER_RESET_VIEW:I,AFTER_HIDE_VIEW:M,AFTER_INIT_CONTROLLER:A,CLICK_ASSIST:R,BEFORE_QUERY_ASSIST:N,BEFORE_KEY_SUBMIT:O,BEFORE_BUTTON_SUBMIT:B,BEFORE_SUBMIT_QUERY:P,BEFORE_SB_FOCUS:j,AFTER_SB_FOCUS:V,BEFORE_SB_BLUR:$,AFTER_SB_BLUR:F,BEFORE_BEACON:U,AFTER_SET_YLC:H,AFTER_RESET_CONTROLLER:Y,AFTER_ITEM_HIGHLIGHT:q,AFTER_ITEM_RESET_HIGHLIGHT:D},markers:{GOSSIP_MARKER_SEARCH_HISTORY:13,GOSSIP_MARKER_TRENDING:9,GOSSIP_MARKER_PEOPLE_ALSO_SEARCH_FOR:42},init:function(e){var n,t=b.ieVer;return!(t&&t”+r+” “+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;b.removeClass(g.body,i.typingClass),t&&t.parentElement&&b.removeClass(t.parentElement,i.typingClass),b.removeClass(t,i.noResultClass),e.clearAssist(),e.shown=!1,e.triggered=!1,n&&(b.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=b.htmlEncode,o=this.config,r=(n=this.app.createElem)(o.saItem,”li”);return(n=(b.set(r,”pos”,e.idx),n(o.saTitle,”span”))).innerHTML=e.t||(o.boldTag&&e.k&&e.q?b.bold(o.boldTag,i(e.k),i(e.q),o.highlight||{}):i(e.k)),r.appendChild(n),t.l



    Source by [author_name]

    Add Comment

    Total
    0