Latest News

Avoid Capital Gains Tax When Selling a House

‘,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 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).replace(“{promoLogo}”,t.promos.promoLogo)}var a=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}”,r).replace(“{hideClass}”,l).replace(“{notifCenterLink}”,c).replace(“{paddingClass}”,u).replace(“{headerMsg}”,t.panel.headerMsg).replace(“{hideHeaderClass}”,d).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){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},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,i,o,r={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}},s=document.getElementById(“notification-container”),a=null===(e=null==s?void 0:s.dataset)||void 0===e?void 0:e.config,c={};if(a){“att”===(null===(n=this.partnerClasses)||void 0===n?void 0:n[1])&&(r.promos.showYahooLogo=!1);try{var l=JSON.parse(a);c=__assign({},l),this.personalized=1===l.personalize}catch(e){logError(“Notifications config parsing error”,e)}s&&delete s.dataset.config}var d=this.mergeConfigs(r,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_e4yie”,Css$7={“right-item”:”_yb_wu2tp”,selected:selected,”ybar-mod-topnavigation”:”_yb_hrmho”,”ybar-mod-topnavigation-teaser-imp”:”_yb_hk7rb”},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$4=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$4(e,n)}));var overlay$1=”_yb_1d8bh”,tooltip=”_yb_k961j”,tooltip__text=”_yb_1y509″,tooltip__voice=”_yb_5la2x”,tooltip__web=”_yb_1ffrq”,dark=”_yb_3t62g”,darker=”_yb_19jvk”,light=”_yb_1j5cd”,midnight60=”_yb_ixews”,Css$5={“dropdown-open”:”_yb_16mux”,”merchant-is-selected”:”_yb_ckqnk”,overlay:overlay$1,”selected-merchant-clear-button”:”_yb_190kr”,”shops-buttons”:”_yb_160ih”,”styled-select”:”_yb_13d39″,tooltip:tooltip,”tooltip–show”:”_yb_1i0zi”,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,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),!0),range(96,105),!0),c=__spreadArray(__spreadArray([],s,!0),a,!0).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”);nn(function (win, doc) {n “use strict”;nn 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: falsen }n },n browsers: {n edge: falsen }n };nn function VoiceSearch(config) {n var self = this;n self.config = Object.assign(defaultConfig, config || {});n self.i18n = new VoiceSearch.I18n({n lang: self.config.uiLangn });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;nn self.onEscKeyDown = function (e) {n if (e.code !== ‘Escape’) {n return;n }nn 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 overlaynn self.closePanel(self);n };nn 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();nn if (speechRecognitionList.addFromString) {n speechRecognitionList.addFromString(speechGrammar, 1);n }nn 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 */nn if (self.voiceButton) {n self.voiceButton.onclick = function () {n self.recognition.start();nn if (self.permissionGuideTimer) {n win.clearTimeout(self.permissionGuideTimer);n }nn self.permissionGuideTimer = win.setTimeout(function () {n if (!self.isRecognitionStart) {n self.showPermissionGuide(self);n }n }, 300); // Also close when pressing escnn doc.addEventListener(‘keydown’, self.onEscKeyDown);n self.sendBeacon(‘clk’, ‘voicesearch’);n };n }nn 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 }nn 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 }nn 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 }nn if (self.closeButton) {n self.closeButton.onclick = functionn /*event*/n () {n self.recognition.stop();n self.sendBeacon(‘clk’, ‘voicesearch_cancel’);n self.closePanel(self);n };n }nn if (self.permissionGuideClose) {n self.permissionGuideClose.onclick = functionn /*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 */nnn self.recognition.onresult = function (event) {n // The SpeechRecognitionEvent results property returns a SpeechRecognitionResultList objectn // The SpeechRecognitionResultList object contains SpeechRecognitionResult objects.n // It has a getter so it can be accessed like an arrayn // 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 objectn // 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 */nn self.handlePunctuation(self);nn if (self.speechText) {n self.speechText.innerText = self.speechResult;n }nn if (self.searchBoxQuery) {n self.searchBoxQuery.value = self.speechResult;n }nn 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 }nn self.hideRetryLink(self);nn if (self.searchBoxForm) {n var inputFr = self.searchBoxForm.querySelector(‘[name=fr]’);n var inputFr2 = self.searchBoxForm.querySelector(‘[name=fr2]’);nn 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 casen }nn 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 casen }nn self.searchBoxForm.submit();n }n }, 1000);n };nn self.recognition.onspeechstart = functionn /*event*/n () {// Fired when speech startsn };nn self.recognition.onspeechend = function () {n // Fired when speech endsn self.recognition.stop();n };nn self.recognition.onerror = functionn /*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 }nn self.hideTrending(self);n self.showRetryLink(self);n self.errorAudio.play();n };nn self.recognition.onaudiostart = functionn /*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 };nn self.recognition.onaudioend = functionn /*event*/n () {n // Fired when the user agent has finished capturing audio.n if (self.speechButtonContainer) {n self.speechButtonContainer.classList.remove(“listening”);n }n };nn self.recognition.onsoundstart = functionn /*event*/n () {n // Fired when any sound — recognisable speech or not — has been detected.n self.hideTrending(self);n self.noSpeech = false;nn if (self.speechButtonContainer) {n self.speechButtonContainer.classList.remove(“listening”);n self.speechButtonContainer.classList.add(“speaking”);n }n };nn self.recognition.onsoundend = functionn /*event*/n () {n // Fired when no sound presentn if (self.speechButtonContainer) {n self.speechButtonContainer.classList.remove(“speaking”);n }n };nn self.recognition.onstart = functionn /*event*/n () {n // Fired when the speech recognition service has begun listeningn self.recognitionInit(self);n self.startRecognition(self);n };nn self.recognition.onend = functionn /*event*/n () {n // Fired when the speech recognition service has disconnected.n self.isRecognitionStart = false;nn if (self.noSpeech == false && self.speechResult == ”) {n // No match: Fired when the speech recognition can’t recognise speechn if (self.speechText) {n self.speechText.innerText = self.i18n.t(‘search.voice.recognition_nomatch’);n }nn self.hideTrending(self);n self.showRetryLink(self);n self.errorAudio.play();n }n }; // trigger onReady event when initializednnn if (document && document.dispatchEvent) {n document.dispatchEvent(new Event(‘VOICE_JS_READY’));n }n }n } // static membersnnn VoiceSearch.I18n = I18n; // instance membersnn VoiceSearch.prototype.renderPermissionGuide = function (self) {n var tmpl = “\n

\n \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 };nn 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’);nn 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 }nn document.body.appendChild(dom.body.children[0]);n };nn 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 = [// chromen {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 }, // edgen {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 }];nn for (var b = 0; b < browsers.length; b++) {n var browser = browsers[b];nn if (browser && browser.checkBrowser && browser.checkBrowser() && browser.checkEnabled && browser.checkEnabled(self) && browser.checkAPI && browser.checkAPI()) {n isSupported = true;n }n }nn return isSupported;n };nn VoiceSearch.prototype.recognitionInit = function (self) {n // Initialize flags for checking whether user is speaking or notn self.speechResult = ”;n self.noSpeech = true;n self.isRecognitionStart = true;n };nn VoiceSearch.prototype.showPermissionGuide = function (self) {n if (self.permissionGuide) {n self.permissionGuide.classList.remove(“hide”);n }n };nn VoiceSearch.prototype.hidePermissionGuide = function (self) {n if (self.permissionGuide) {n self.permissionGuide.classList.add(“hide”);n }n };nn VoiceSearch.prototype.getTrending = function (self) {n // Call api for trending termsn if (!self.config.enable_voice_trending || !self.trending) {n return;n }nn var url = “https://api.search.yahoo.com/data/v3/search?appid=4d234a9d&market=” + self.config.trending.market + “&features=trending.voice”;n self.ajaxReq(url, function (resBody) {n if (!resBody || !resBody.response || !resBody.response.search || !resBody.response.search.results || !resBody.response.search.results[“trending.voice”]) {n return;n }nn var terms = resBody.response.search.results[“trending.voice”].data;n self.showTrending(self, terms);n });n };nn VoiceSearch.prototype.showTrending = function (self, terms) {n // params checkn if (!Array.isArray(terms) || terms.length < 3) {n return;n } // DOM checknnn if (!self.trending || !self.termSpans || !self.termSpans[0]) {n return;n }nn var trendingLabel = ”;n trendingLabel += ‘”‘ + terms[0].text + ‘”‘ + ‘, ‘;n trendingLabel += ‘”‘ + terms[1].text + ‘”‘ + ‘ ‘;n trendingLabel += self.i18n.t(‘search.voice.trending_or’) + ‘ ‘;n trendingLabel += ‘”‘ + terms[2].text + ‘”‘;n self.termSpans[0].innerText = trendingLabel;n self.trending.classList.remove(“hide”);n };nn VoiceSearch.prototype.hideTrending = function (self) {n if (!self.trending) {n return;n }nn self.trending.classList.add(“hide”);n };nn VoiceSearch.prototype.showRetryLink = function (self) {n if (self.retryLink) {n self.retryLink.innerText = self.i18n.t(‘search.voice.recognition_retry’);n self.retryLink.classList.remove(“hide”);n }n };nn VoiceSearch.prototype.hideRetryLink = function (self) {n if (self.retryLink) {n self.retryLink.classList.add(“hide”);n }n };nn VoiceSearch.prototype.startRecognition = function (self) {n self.hidePermissionGuide(self);n self.getTrending(self);n self.startAudio.play();nn if (self.speechText) {n self.speechText.innerText = self.i18n.t(‘search.voice.recognition_start’);n win.setTimeout(function () {n self.speechText.innerText = self.i18n.t(‘search.voice.recognition_listening’);n }, 2000);n }nn if (self.speechPanel) {n self.speechPanel.classList.remove(“s2tb-h”);n self.speechPanel.classList.add(“s2tb”);n }nn self.hideRetryLink(self);n };nn VoiceSearch.prototype.closePanel = function (self) {n self.closeAudio.play();n win.setTimeout(function () {n if (self.speechPanel) {n self.speechPanel.classList.remove(“s2tb”);n self.speechPanel.classList.add(“s2tb-h”);n }nn self.hideTrending(self);n self.hideRetryLink(self); // clean up esc listenernn doc.removeEventListener(‘keydown’, self.onEscKeyDown);n }, 100);n };nn VoiceSearch.prototype.handlePunctuation = function (self) {n if (self.speechResult.length > 0) {n var lastChar = self.speechResult.charAt(self.speechResult.length – 1);nn if (lastChar === ‘.’ || lastChar === ‘?’ || lastChar === ‘。’ || lastChar === ‘?’) {n self.speechResult = self.speechResult.slice(0, -1);n }n }n };nn VoiceSearch.prototype.sendBeacon = function (actn, slk) {n var ULT = win.YAHOO.ULT || {},n SB = win.YAHOO.SB || {};nn 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: slkn };n win.YAHOO.ULT.beacon_click(trackParams);n }n };nn VoiceSearch.prototype.ajaxReq = function (url, callback) {n var DONE_STATE = XMLHttpRequest.DONE || 4; // for IE-compatibilitynn var xhr = new XMLHttpRequest();n var responseRaw;n var response; // CORS request only for IE8/IE9nn if (doc.documentMode && doc.documentMode < 10) {n var xdr = new win.XDomainRequest();nn xdr.onload = function () {n try {n response = JSON.parse(responseRaw);n callback(response);n } catch (err) {n return;n }n };nn xhr.open(‘GET’, url);n xhr.send();n return;n } // CORS request for browers newer than IE9nnn xhr.onreadystatechange = function () {n if (xhr.readyState !== DONE_STATE) {n return;n } // handle ajax responsennn switch (xhr.status) {n case 200:n responseRaw = xhr.responseText;nn try {n response = JSON.parse(responseRaw);n callback(response);n } catch (err) {n return;n }nn break;nn default:n // non-200 status code: retry or assume failuren callback(response);n break;n }n };nn xhr.open(‘GET’, url, true);n /* aync request */nn xhr.timeout = 10000;n xhr.send();n };nn if (!win.YAHOO) {n win.YAHOO = {};n }nn if (!win.YAHOO.Util) {n win.YAHOO.Util = {};n }nn win.YAHOO.Util.VoiceSearch = VoiceSearch;n})(window, document);nn//# sourceURL=webpack://@vzmi/voicejs/./src/index.js?”)},”./src/lib/I18n.js”:
/*!*************************!*
!*** ./src/lib/I18n.js ***!
*************************/function(module,__unused_webpack_exports,__webpack_require__){eval(“module.exports = function () {n var LANG_LIST = __webpack_require__(/*! ./lang_list.json */ “./src/lib/lang_list.json”);nn var DEFAULT_LANG = ‘default’;nn var isValidLang = function isValidLang(lang) {n return LANG_LIST.indexOf(lang) !== -1;n }; // convert language strings to key-value mapnnn var buildStrMap = function buildStrMap(langStrings) {n return langStrings.reduce(function (strMap, item) {n strMap[item.id] = item.defaultMessage;n return strMap;n }, {});n };nn var I18n = function I18n(options) {n // initializen this.lang = isValidLang(options && options.lang) ? options.lang : DEFAULT_LANG;n }; // static membersnnn I18n.langMap = {};n I18n.langMap[DEFAULT_LANG] = buildStrMap(__webpack_require__(/*! ../lang/strings.json */ “./src/lang/strings.json”));nn I18n.setLangMap = function (lang, strings) {n if (lang && strings) {n I18n.langMap[lang] = buildStrMap(strings);n }n }; // instance membersnnn I18n.prototype = {n t: function t(id) {n switch (true) {n // look up target languagen case Boolean(I18n.langMap && I18n.langMap[this.lang] && I18n.langMap[this.lang][id]):n return I18n.langMap[this.lang][id];n // fallback to default stringsnn case Boolean(I18n.langMap && I18n.langMap[DEFAULT_LANG] && I18n.langMap[DEFAULT_LANG][id]):n return I18n.langMap[DEFAULT_LANG][id];nn default:n return ”;n }n }n };n return I18n;n}();nn//# sourceURL=webpack://@vzmi/voicejs/./src/lib/I18n.js?”)},”./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css”:
/*!*******************************************************************************************************!*
!*** ./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css ***!
*******************************************************************************************************/function(module,__webpack_exports__,__webpack_require__){eval(‘__webpack_require__.r(__webpack_exports__);n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../node_modules/css-loader/dist/runtime/api.js */ “./node_modules/css-loader/dist/runtime/api.js”);n/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__);n// Importsnnvar ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]});n// Modulen___CSS_LOADER_EXPORT___.push([module.id, “/* Sprites */\n#spchp.permission-guide .guide .microphone .sprite,\n#spchp .close-button,\n#spch .close-button,\n#spch .spchc .microphone,\n#spch .spchc .speaking .microphone {\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch1x-1620383531565.min.png);\n background-repeat: no-repeat;\n background-size: initial;\n color: transparent;\n}\n/* Retina displays */\n@media\n only screen and (-webkit-min-device-pixel-ratio: 2),\n only screen and (min-device-pixel-ratio: 2),\n only screen and (min-resolution: 192dpi),\n only screen and (min-resolution: 2dppx) {\n#spchp.permission-guide .guide .microphone .sprite,\n#spchp .close-button,\n#spch .close-button,\n#spch .spchc .microphone,\n#spch .spchc .speaking .microphone {\n background-size: 41px 330px;\n background-image: url(https://s.yimg.com/pv/static/img/voiceSearch2x-1620383531565.min.png)\n}\n }\n\n/* permission guide */\n#spchp.permission-guide {\n height: 100%;\n width: 100%;\n padding: 0;\n opacity: 0.9;\n background-color: #fff;\n left: 0;\n overflow: hidden;\n position: fixed;\n text-align: left;\n top: 0;\n z-index: 10000;\n transition: visibility 0s linear 0.218s, background-color 0.218s;\n}\n#spchp.permission-guide .close-button {\n background-position: 0 0;\n width: 24px;\n height: 24px;\n border: none;\n cursor: pointer;\n right: 0;\n margin: 20px;\n padding: 0;\n position: absolute;\n top: 0;\n z-index: 10;\n opacity: 0.8;\n }\n#spchp.permission-guide .close-button:hover {\n opacity: 1;\n }\n#spchp.permission-guide .guide {\n margin: 191px 0 0 507px;\n }\n#spchp.permission-guide .guide .microphone {\n height: 68px;\n width: 52px;\n border-right: 1px solid #232a31;\n float: left;\n }\n#spchp.permission-guide .guide .microphone .sprite {\n background-position: 0 -105px;\n width: 28px;\n height: 28px;\n }\n#spchp.permission-guide .guide .guide-text {\n height: 68px;\n margin-left: 24px;\n float: left;\n }\n#spchp.permission-guide .guide .guide-text .title {\n color: #232a31;\n font-size: 32px;\n font-family: HelveticaNeue-Bold;\n line-height: 28px;\n margin-bottom: 16px;\n }\n#spchp.permission-guide .guide .guide-text .text {\n color: #232a31;\n font-size: 16px;\n line-height: 28px;\n }\n#spchp.permission-guide.hide {\n display: none;\n }\n\n/* speech panel */\n#spch.spch {\n background: #fff;\n height: 100%;\n left: 0;\n opacity: 0;\n overflow: hidden;\n position: fixed;\n text-align: left;\n top: 0;\n visibility: hidden;\n width: 100%;\n z-index: 10000;\n transition: visibility 0s linear 0.218s, background-color 0.218s;\n}\n#spch.spch .close-button {\n background-position: 0 0;\n width: 24px;\n height: 24px;\n border: none;\n cursor: pointer;\n right: 0;\n margin: 20px;\n padding: 0;\n position: absolute;\n top: 0;\n z-index: 10;\n opacity: 0.8;\n }\n#spch.spch .close-button:hover {\n opacity: 1;\n }\n#spch.spch .spchc {\n display: block;\n height: 97px;\n pointer-events: none;\n }\n#spch.spch .spchc .inner-container {\n width: 100%;\n height: 100%;\n opacity: 0.1;\n pointer-events: none;\n transition: opacity 0.318s ease-in;\n }\n#spch.spch .spchc .inner-container .spch-control {\n display: inline-block;\n }\n#spch.spch .spchc .inner-container .text-container {\n float: left;\n height: 91px;\n overflow: hidden;\n margin: 3px 0;\n pointer-events: none;\n width: calc(50% – 48.5px);\n }\n#spch.spch .spchc .inner-container .text-container p {\n display: table-cell;\n vertical-align: middle;\n width: 550px;\n height: 97px;\n }\n#spch.spch .spchc .inner-container .text-container .spcht {\n font-weight: normal;\n color: #6e7780;\n line-height: normal;\n opacity: 0;\n pointer-events: none;\n text-align: left;\n -webkit-font-smoothing: antialiased;\n transition: opacity 0.1s ease-in, margin-left 0.5s ease-in, top 0s linear 0.218s;\n }\n#spch.spch .spchc .inner-container .text-container .spcht.hide {\n display: none;\n }\n#spch.spch .spchc .inner-container .text-container #spcht-retry {\n color: #0f69ff;\n cursor: pointer;\n pointer-events: auto;\n }\n#spch.spch .spchc .inner-container .button-container {\n pointer-events: none;\n position: relative;\n transition: transform 0.218s, opacity 0.218s ease-in;\n }\n#spch.spch .spchc .inner-container .button-container .button {\n background-color: #fff;\n border: 1px solid #eee;\n border-radius: 100%;\n bottom: 0;\n box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);\n cursor: pointer;\n display: inline-block;\n left: 0;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n right: 0;\n top: 0;\n transition: background-color 0.218s, border 0.218s, box-shadow 0.218s;\n }\n#spch.spch .spchc .inner-container .button-container .button .microphone {\n background-position: 0 -24px;\n width: 41px;\n height: 41px;\n left: 27px;\n pointer-events: none;\n position: absolute;\n top: 27px;\n transform: scale(1);\n }\n#spch.spch .spchc .inner-container .button-container.listening .ripple {\n position: absolute;\n width: 136px;\n height: 136px;\n z-index: -1;\n left: 50%;\n top: 50%;\n opacity: 0;\n margin: -70px 0 0 -70px;\n border-radius: 100px;\n -webkit-animation: ripple 3.3s infinite;\n animation: ripple 3.3s infinite;\n background-color: #fff !important;\n border: 2px solid #e0e4e9;\n }\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(2) {\n -webkit-animation-delay: 1.1s;\n animation-delay: 1.1s;\n }\n#spch.spch .spchc .inner-container .button-container.listening .ripple:nth-child(3) {\n -webkit-animation-delay: 2.2s;\n animation-delay: 2.2s;\n }\n#spch.spch .spchc .inner-container .button-container.speaking .button {\n background-color: #0f69ff;\n }\n#spch.spch .spchc .inner-container .button-container.speaking .button .microphone {\n background-position: 0 -65px;\n width: 40px;\n height: 40px;\n pointer-events: none;\n position: absolute;\n transform: scale(1);\n }\n#spch.spch .spchc .inner-container .button-container.speaking .ripple {\n background-size: 114px;\n position: absolute;\n width: 114px;\n height: 114px;\n z-index: -1;\n left: 50%;\n top: 50%;\n margin: -57px 0 0 -57px;\n -webkit-animation: speakingRipple1 2s infinite;\n animation: speakingRipple1 2s infinite;\n }\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(2) {\n background-size: 123px;\n width: 123px;\n height: 123px;\n margin: -62px 0 0 -62px;\n -webkit-animation: speakingRipple2 2s infinite;\n animation: speakingRipple2 2s infinite;\n }\n#spch.spch .spchc .inner-container .button-container.speaking .ripple:nth-child(3) {\n background-size: 136px;\n width: 136px;\n height: 136px;\n margin: -68px 0 0 -68px;\n -webkit-animation: speakingRipple3 2s infinite;\n animation: speakingRipple3 2s infinite;\n }\n#spch.spch .spcho {\n background-image: linear-gradient(to bottom, rgb(255, 255, 255) 50%, rgba(255, 255, 255, 0) 99%);\n display: block;\n min-width: 100%;\n text-align: center;\n top: 145px;\n padding-bottom: 71px;\n pointer-events: auto;\n }\n#spch.spch .spcho #spch-trending {\n -webkit-animation: fadeIn 1s forwards;\n animation: fadeIn 1s forwards;\n opacity: 0;\n }\n#spch.spch .spcho #spch-trending .trending {\n color: #6e7780;\n display: inline-block;\n font-size: 16px;\n }\n#spch.spch .spcho #spch-trending #trending-label {\n font-weight: bold;\n margin: 5px 5px;\n }\n#spch.spch .spcho #spch-trending.hide {\n display: none;\n }\n#spch.spch.s2tb .spchc, #spch.spch.s2tb-h .spchc {\n background: #fff;\n box-sizing: border-box;\n box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);\n height: auto;\n margin: 0;\n min-width: 100%;\n overflow: hidden;\n padding: 24px 115px;\n }\n#spch.spch.s2tb .spchc .inner-container, #spch.spch.s2tb-h .spchc .inner-container {\n opacity: 1;\n transition: opacity 0.318s ease-in;\n }\n#spch.spch.s2tb .spchc .inner-container .text-container, #spch.spch.s2tb-h .spchc .inner-container .text-container {\n position: relative;\n }\n#spch.spch.s2tb {\n background: rgba(255, 255, 255, 0);\n opacity: 1;\n visibility: visible;\n transition-delay: 0s;\n }\n#spch.spch.s2tb .spchc .inner-container .button-container {\n transform: scale(1);\n height: 97px;\n right: 0;\n top: 0;\n width: 97px;\n }\n#spch.spch.s2tb .spchc .inner-container .button-container .button {\n opacity: 1;\n pointer-events: auto;\n position: absolute;\n transform: scale(1);\n transition-delay: 0;\n }\n#spch.spch.s2tb .spchc .inner-container .text-container .spcht {\n font-size: 24px;\n margin-left: 0;\n opacity: 1;\n transition: opacity 0.5s ease-out, margin-left 0.5s ease-out;\n }\n#spch.spch.s2tb #spch-overlay {\n -webkit-backdrop-filter: blur(10px);\n backdrop-filter: blur(10px);\n background-color: #fff;\n height: 100%;\n opacity: 0.9;\n position: absolute;\n top: 149px;\n\n /* spchc’s height */\n width: 100%;\n }\n#spch.spch.disable-blur-overlay #spch-overlay {\n background-color: transparent;\n -webkit-backdrop-filter: none;\n backdrop-filter: none;\n }\n#spch.spch.disable-blur-overlay .spcho {\n height: 27px;\n padding-bottom: 20px;\n background: #fff;\n background-image: none;\n box-shadow: 0 8px 6px -6px rgb(0 0 0 / 20%);\n }\n#spch.spch.s2tb-h {\n background: rgba(255, 255, 255, 0);\n opacity: 0;\n visibility: hidden;\n }\n\n@-webkit-keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@-webkit-keyframes ripple {\n 0% {\n opacity: 1;\n transform: scale(0.7);\n }\n\n 100% {\n opacity: 0;\n transform: scale(1);\n }\n}\n\n@keyframes ripple {\n 0% {\n opacity: 1;\n transform: scale(0.7);\n }\n\n 100% {\n opacity: 0;\n transform: scale(1);\n }\n}\n\n@-webkit-keyframes speakingRipple1 {\n 0%,\n 100% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\”);\n }\n\n 25%,\n 75% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\”);\n transform: scale(1.1);\n }\n\n 50% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\”);\n transform: scale(0.9);\n }\n}\n\n@keyframes speakingRipple1 {\n 0%,\n 100% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple1-1-202105260611.png\”);\n }\n\n 25%,\n 75% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple1-2-202105260611.png\”);\n transform: scale(1.1);\n }\n\n 50% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple1-3-202105260611.png\”);\n transform: scale(0.9);\n }\n}\n\n@-webkit-keyframes speakingRipple2 {\n 0%,\n 100% {\n background-image: none;\n }\n\n 25%,\n 75% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\”);\n transform: scale(1.1);\n }\n\n 50% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\”);\n transform: scale(0.9);\n }\n}\n\n@keyframes speakingRipple2 {\n 0%,\n 100% {\n background-image: none;\n }\n\n 25%,\n 75% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple2-2-202105260611.png\”);\n transform: scale(1.1);\n }\n\n 50% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple2-3-202105260611.png\”);\n transform: scale(0.9);\n }\n}\n\n@-webkit-keyframes speakingRipple3 {\n 0%,\n 25%,\n 75%,\n 100% {\n background-image: none;\n }\n\n 50% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\”);\n transform: scale(0.9);\n }\n}\n\n@keyframes speakingRipple3 {\n 0%,\n 25%,\n 75%,\n 100% {\n background-image: none;\n }\n\n 50% {\n background-image: url(\”https://s.yimg.com/pv/static/img/ripple3-3-202105260611.png\”);\n transform: scale(0.9);\n }\n}\n”, “”]);n// Exportsn/* harmony default export */ __webpack_exports__[“default”] = (___CSS_LOADER_EXPORT___);nnn//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js’)},”./node_modules/css-loader/dist/runtime/api.js”:
/*!*****************************************************!*
!*** ./node_modules/css-loader/dist/runtime/api.js ***!
*****************************************************/function(module){eval(‘nn/*n MIT License http://www.opensource.org/licenses/mit-license.phpn Author Tobias Koppers @sokran*/n// css base code, injected by the css-loadern// eslint-disable-next-line func-namesnmodule.exports = function (cssWithMappingToString) {n var list = []; // return the list of modules as css stringnn list.toString = function toString() {n return this.map(function (item) {n var content = cssWithMappingToString(item);nn if (item[2]) {n return “@media “.concat(item[2], ” {“).concat(content, “}”);n }nn return content;n }).join(“”);n }; // import a list of modules into the listn // eslint-disable-next-line func-namesnnn list.i = function (modules, mediaQuery, dedupe) {n if (typeof modules === “string”) {n // eslint-disable-next-line no-param-reassignn modules = [[null, modules, “”]];n }nn var alreadyImportedModules = {};nn if (dedupe) {n for (var i = 0; i < this.length; i++) {n // eslint-disable-next-line prefer-destructuringn var id = this[i][0];nn if (id != null) {n alreadyImportedModules[id] = true;n }n }n }nn for (var _i = 0; _i < modules.length; _i++) {n var item = [].concat(modules[_i]);nn if (dedupe && alreadyImportedModules[item[0]]) {n // eslint-disable-next-line no-continuen continue;n }nn if (mediaQuery) {n if (!item[2]) {n item[2] = mediaQuery;n } else {n item[2] = “”.concat(mediaQuery, ” and “).concat(item[2]);n }n }nn list.push(item);n }n };nn return list;n};nn//# sourceURL=webpack://@vzmi/voicejs/./node_modules/css-loader/dist/runtime/api.js?’)},”./src/index.css”:
/*!***********************!*
!*** ./src/index.css ***!
***********************/function(module,__unused_webpack_exports,__webpack_require__){eval(‘var api = __webpack_require__(/*! !../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ “./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js”);n var content = __webpack_require__(/*! !!../node_modules/css-loader/dist/cjs.js!../node_modules/postcss-loader/dist/cjs.js!./index.css */ “./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/dist/cjs.js!./src/index.css”);nn content = content.__esModule ? content.default : content;nn if (typeof content === ‘string’) {n content = [[module.id, content, ”]];n }nnvar options = {};nnoptions.insert = “head”;noptions.singleton = false;nnvar update = api(content, options);nnnnmodule.exports = content.locals || {};nn//# sourceURL=webpack://@vzmi/voicejs/./src/index.css?’)},”./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js”:
/*!****************************************************************************!*
!*** ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js ***!
****************************************************************************/function(module,__unused_webpack_exports,__webpack_require__){eval(“nnvar isOldIE = function isOldIE() {n var memo;n return function memorize() {n if (typeof memo === ‘undefined’) {n // Test for IE <= 9 as proposed by Browserhacksn // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805n // Tests for existence of standard globals is to allow style-loadern // to operate correctly into non-standard environmentsn // @see https://github.com/webpack-contrib/style-loader/issues/177n memo = Boolean(window && document && document.all && !window.atob);n }nn return memo;n };n}();nnvar getTarget = function getTarget() {n var memo = {};n return function memorize(target) {n if (typeof memo[target] === ‘undefined’) {n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itselfnn if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {n try {n // This will throw an exception if access to iframe is blockedn // due to cross-origin restrictionsn styleTarget = styleTarget.contentDocument.head;n } catch (e) {n // istanbul ignore nextn styleTarget = null;n }n }nn memo[target] = styleTarget;n }nn return memo[target];n };n}();nnvar stylesInDom = [];nnfunction getIndexByIdentifier(identifier) {n var result = -1;nn for (var i = 0; i < stylesInDom.length; i++) {n if (stylesInDom[i].identifier === identifier) {n result = i;n break;n }n }nn return result;n}nnfunction modulesToDom(list, options) {n var idCountMap = {};n var identifiers = [];nn for (var i = 0; i < list.length; i++) {n var item = list[i];n var id = options.base ? item[0] + options.base : item[0];n var count = idCountMap[id] || 0;n var identifier = “”.concat(id, ” “).concat(count);n idCountMap[id] = count + 1;n var index = getIndexByIdentifier(identifier);n var obj = {n css: item[1],n media: item[2],n sourceMap: item[3]n };nn if (index !== -1) {n stylesInDom[index].references++;n stylesInDom[index].updater(obj);n } else {n stylesInDom.push({n identifier: identifier,n updater: addStyle(obj, options),n references: 1n });n }nn identifiers.push(identifier);n }nn return identifiers;n}nnfunction insertStyleElement(options) {n var style = document.createElement(‘style’);n var attributes = options.attributes || {};nn if (typeof attributes.nonce === ‘undefined’) {n var nonce = true ? __webpack_require__.nc : 0;nn if (nonce) {n attributes.nonce = nonce;n }n }nn Object.keys(attributes).forEach(function (key) {n style.setAttribute(key, attributes[key]);n });nn if (typeof options.insert === ‘function’) {n options.insert(style);n } else {n var target = getTarget(options.insert || ‘head’);nn if (!target) {n throw new Error(“Couldn’t find a style target. This probably means that the value for the ‘insert’ parameter is invalid.”);n }nn target.appendChild(style);n }nn return style;n}nnfunction removeStyleElement(style) {n // istanbul ignore ifn if (style.parentNode === null) {n return false;n }nn style.parentNode.removeChild(style);n}n/* istanbul ignore next */nnnvar replaceText = function replaceText() {n var textStore = [];n return function replace(index, replacement) {n textStore[index] = replacement;n return textStore.filter(Boolean).join(‘\n’);n };n}();nnfunction applyToSingletonTag(style, index, remove, obj) {n var css = remove ? ” : obj.media ? “@media “.concat(obj.media, ” {“).concat(obj.css, “}”) : obj.css; // For old IEnn /* istanbul ignore if */nn if (style.styleSheet) {n style.styleSheet.cssText = replaceText(index, css);n } else {n var cssNode = document.createTextNode(css);n var childNodes = style.childNodes;nn if (childNodes[index]) {n style.removeChild(childNodes[index]);n }nn if (childNodes.length) {n style.insertBefore(cssNode, childNodes[index]);n } else {n style.appendChild(cssNode);n }n }n}nnfunction applyToTag(style, options, obj) {n var css = obj.css;n var media = obj.media;n var sourceMap = obj.sourceMap;nn if (media) {n style.setAttribute(‘media’, media);n } else {n style.removeAttribute(‘media’);n }nn if (sourceMap && typeof btoa !== ‘undefined’) {n css += “\n/*# sourceMappingURL=data:application/json;base64,”.concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), ” */”);n } // For old IEnn /* istanbul ignore if */nnn if (style.styleSheet) {n style.styleSheet.cssText = css;n } else {n while (style.firstChild) {n style.removeChild(style.firstChild);n }nn style.appendChild(document.createTextNode(css));n }n}nnvar singleton = null;nvar singletonCounter = 0;nnfunction addStyle(obj, options) {n var style;n var update;n var remove;nn if (options.singleton) {n var styleIndex = singletonCounter++;n style = singleton || (singleton = insertStyleElement(options));n update = applyToSingletonTag.bind(null, style, styleIndex, false);n remove = applyToSingletonTag.bind(null, style, styleIndex, true);n } else {n style = insertStyleElement(options);n update = applyToTag.bind(null, style, options);nn remove = function remove() {n removeStyleElement(style);n };n }nn update(obj);n return function updateStyle(newObj) {n if (newObj) {n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {n return;n }nn update(obj = newObj);n } else {n remove();n }n };n}nnmodule.exports = function (list, options) {n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of

S&P 500

4,067.36

+61.18(+1.53%)

 

Dow 30

32,151.71

+377.19(+1.19%)

 

Nasdaq

12,112.31

+250.18(+2.11%)

 

Russell 2000

1,882.85

+35.94(+1.95%)

 

Crude Oil

86.10

+2.56(+3.06%)

 

Gold

1,727.60

+7.40(+0.43%)

 

Silver

18.78

+0.34(+1.86%)

 

EUR/USD

1.0046

+0.0044(+0.44%)

 

10-Yr Bond

3.3210

+0.0290(+0.88%)

 

GBP/USD

1.1587

+0.0086(+0.74%)

 

USD/JPY

142.5700

-1.5170(-1.05%)

 

BTC-USD

21,429.31

+239.01(+1.13%)

 

CMC Crypto 200

510.42

+21.82(+4.46%)

 

FTSE 100

7,351.07

+89.01(+1.23%)

 

Nikkei 225

28,214.75

+149.47(+0.53%)

 

Avoid Capital Gains Taxes When Selling a House

There’s a lot of pride associated with owning property, whether it’s a primary home or a vacation bungalow. It’s especially rewarding when real estate is properly compensated for. But while a high selling price may be exciting in the moment, it typically comes with a potential drawback. As a capital asset, any gains you make on the sale of your real estate are taxable. It’s important to understand how capital gains apply to a home and how you can lower their sting. A financial advisor may be able to help you if you’re selling property, so consider using SmartAsset’s free advisor matching tool today.

What Are Capital Gains Taxes?

From personal items to investment products, almost all of your possessions are capital assets.  That includes property like cars or real estate and investments like stocks or bonds. Let’s say you decide to sell one of these assets, such as your home. The profit you make from the sale can potentially incur a tax called a capital gains tax.

Long-term capital gains occur when you sell an asset that you’ve held for more than one calendar year. Short-term capital gains occur upon the sale of an asset that’s been held for less than a year. While tax rates vary, long-term capital gains are typically taxed less than short-term capital gains.

When Do You Have to Pay Capital Gains Taxes?

It’s important to note that capital gains taxes only kick in for realized gains. That means it applies once you sell the asset for more than its basis. If a gain is unrealized, meaning you still own the item, then this specific tax does not come into play.

The long-term capital gains tax rate varies between 0%, 15% and 20%. There are a few higher rates for particular items, but they don’t apply to a home sale. In contrast, short-term capital gains are taxed as normal income, which can be a much higher rate. Income tax rates vary between 12% and 37%.

Do You Have to Pay Capital Gains Tax on Real Estate?

Avoid Capital Gains Taxes When Selling a House

Taxes come into play almost any time you make money. So, if you make a profit off the sale of your property, you’ll probably run into capital gains tax. For example, if you purchased a property six years ago for $200,000 and sold it today for $300,000, your profit would be $100,000. You would have to report that sale and possibly pay a capital gains tax on the resulting profit. The exact amount of tax would then depend on your adjusted gross income (AGI), filing status and length of ownership.

But before you can even calculate the taxes you owe, you need to determine your tax basis. The basis is the amount of money you’ve put into the property, otherwise known as your capital investment. For a home sale, the tax basis depends on the circumstances in which you came to own your home. There are three scenarios:

If you bought your home: Cost basis begins with the purchase price and includes specific closing costs. Remodeling and construction expenses that add to the property value or longevity also contribute to the cost basis. Lastly, if you paid any taxes intended for the seller, those add on as well.

If you inherited your home: Cost basis begins with the home’s value at the time of the previous owner’s passing. This is what’s known as a step up in basis. That’s because you don’t have to account for gains taxes dating all the way back to the property’s purchase.

If your home was a gift: Cost basis for a gifted home stays consistent. So, the cost basis for the previous owner remains the basis for the new owner. However, there may be some exceptions. There are also potential gift tax consequences since you must report any gifts over $16,000 (as of 2022) to the IRS. This is the annual gift tax exclusion amount, which goes toward the lifetime gift and estate tax exclusion limit. As of 2022, that’s $12.06 million for individuals and $24.12 million for couples.

One caveat, though, is that the IRS offers a tax exclusion if the property is your primary residence. However, you need to prove you owned and lived at the house for at least two years. The latter does not need to be consecutive.

How to Avoid Capital Gains Taxes When Selling a House

If you want to make a profit from the sale of your house, you will owe capital gains taxes. However, there are some legal methods to minimize those taxes, such as:

The 2-out-of-5-year rule: You don’t have to live in the house for years consecutively, but cumulatively. That helps you meet the use and ownership tests. As a result, you may qualify for an exclusion up to $250,000 as an individual or $500,000 as a joint filer.

Qualify for a partial exclusion: According to IRS Publication 523, certain situations may make you eligible for an exclusion of gain. As long as you sold the home because of work, your health or an “unforeseeable event,” you can exclude some of your taxable gains.

Hold on to home improvement receipts: The cost basis of your property involves more than its purchase price. It includes any improvements you made as well. The higher your cost basis is, the lower your potential exposure to the capital gains tax.

Bottom Line

Avoid Capital Gains Taxes When Selling a House

Everyone wants to make a profit when they sell their home. However, there are expenses to account for, including the capital gains tax. A short-term gains tax will likely result in a higher tax rate, though. So, it may be worthwhile to hold on to a property long enough to qualify for the long-term gains tax. But keep in mind that rules vary. Different types of properties may also result in changes to your potential taxes, so make sure you’ve done your research before making a decision.

Tips for Investing

Navigating the ins and outs of capital gains taxes can be challenging. If you want to understand your tax responsibility while selling your home, seek professional guidance. Finding a qualified financial advisor doesn’t have to be hard. SmartAsset’s free tool matches you with up to three financial advisors who serve your area, and you can interview your advisor matches at no cost to decide which one is right for you. If you’re ready to find an advisor who can help you achieve your financial goals, get started now.

At one point or another, you’ll face capital gains taxes. But that doesn’t mean you can’t find other areas in your life to cut back costs. If you’re an investor looking to minimize expenses, consider checking out online brokerages. They often offer low investment fees, helping you maximize your profit.

Photo credit: ©iStock.com/sturti, ©iStock.com/guvendemir, ©iStock.com/Feverpitched

The post How to Avoid Capital Gains Tax When Selling a House appeared first on SmartAsset Blog.

Advertisement

SmartAsset

Smart Ways to Avoid Capital Gains Tax on Stocks

Capital gains taxes are a tax on the profits you make on investments, which you might owe if you are investing through a taxable brokerage account. The good news is that there are strategies investors can use to eliminate or … Continue reading → The post How to Avoid Capital Gains Tax on Stocks appeared first on SmartAsset Blog.

SmartAsset

Vanguard Digital Advisor vs. Personal Advisor: Which Has More Bang for Your Buck?

Over the past few years, robo-advisors have emerged as viable alternatives to human financial advisors. However, instead of seeing this dynamic as a threat, some companies wasted no time incorporating robo-advisors into their suite of services. Vanguard is a perfect … Continue reading → The post Vanguard Digital Advisor vs. Personal Advisor appeared first on SmartAsset Blog.

GOBankingRates

College Football’s 25 Most Valuable Teams

College football isn’t only exciting, it’s also big business. With the title game coming up, can you guess which teams are the most valuable?

Motley Fool

A Bull Market Is Coming. Here’s How Investors Can Take Advantage of It.

The S&P 500 is down more than 17% since the beginning of the year, and many people are concerned that a market crash is on the horizon. When will the stock market recover? The bad news is that the stock market can be unpredictable, and nobody knows exactly how it will perform over the short term.

Bloomberg

Forced Buying Puts a Floor Under Stocks Nobody Else Wants to Own

(Bloomberg) — In a week that saw discretionary buyers beat a quick retreat from risky assets, another set of traders stood up to halt a three-week plunge in the S&P 500: those with little choice but to buy.Most Read from BloombergCharles Becomes King as the Face of a Nation ChangesUkraine Army’s Breakthrough in North Threatens Russian GripDouble Rainbow Appears Over Buckingham Palace as Crowd Gathers to Mourn QueenForced Buying Puts a Floor Under Stocks Nobody Else Wants to OwnRussia Confirms F

Consumer Reports

7 Places to Put Your Cash Now

With inflation spiking and the Fed raising interest rates, it’s time to rethink your savings strategyBy Penelope WangInflation isn’t just making everything you buy more expensive. It’s also takin…

Associated Press

High court blocks recognition of LGBTQ campus at Yeshiva U

The Supreme Court has temporarily blocked a court order that would have forced Yeshiva University to recognize an LGBTQ group as an official campus club. The court acted Friday in a brief order signed by Justice Sonia Sotomayor that indicated the court would have more to say on the topic at some point. The university, an Orthodox Jewish institution in New York, argued that granting recognition to the group, the YU Pride Alliance, “would violate its sincere religious beliefs.”

TipRanks

Down More Than 40%: These 2 ‘Strong Buy’ Stocks Are Trading at Rock-Bottom Prices

A strong bearish trend defined the markets in the first half of the year; since then, the key point has been volatility. Stocks hit a bottom back in June, when the S&P 500 dropped into the 3,600s. That has proven to be a support level in the last two months, and at least one strategist believes that the market won’t be testing those lows again this year. JPMorgan’s Jason Hunter believes that inflation may have peaked, and that the upcoming CPI report will provide additional evidence of that. “We

Associated Press

Raiders agree to contract extension with TE Darren Waller

Star tight end Darren Waller has agreed on a three-year contract extension with the Las Vegas Raiders. Agent Drew Rosenhaus said the sides reached the deal on Saturday that adds $51 million to Waller’s existing contract that was previously set to pay him about $7 million in each of the next two seasons. The reworked deal will pay Waller an average of a little more than $13 million a season through 2026.

Benzinga

3 High-Dividend REITs For Steady Passive Income

Equities are more volatile than ever as macroeconomic headwinds pile on. The recent data revealing slowing economic activity in China has raised major concerns regarding a global economic slowdown, as China is the manufacturing hub of the world. The major U.S. benchmark indexes are currently down more than 13% year to date. As the Fed gears up to execute another 75 basis point rate hike this month, the real estate market is expected to remain strong. The rising federal funds’ rates are likely to

You may also like

Leave a reply

Your email address will not be published. Required fields are marked *

More in Latest News