/*! elementor-pro - v3.26.0 - 17-12-2024 */ (()=>{"use strict";class Screenshot extends elementorModules.ViewModule{getDefaultSettings(){return{empty_content_headline:"Empty Content.",crop:{width:1200,height:1500},excluded_external_css_urls:["https://kit-pro.fontawesome.com"],external_images_urls:["https://i.ytimg.com"],timeout:15e3,render_timeout:5e3,timerLabel:null,timer_label:`${ElementorScreenshotConfig.post_id} - timer`,image_placeholder:"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=",isDebug:elementorCommonConfig.isElementorDebug,isDebugSvg:!1,...ElementorScreenshotConfig}}getDefaultElements(){const e=jQuery(ElementorScreenshotConfig.selector),t=e.find(".elementor-section-wrap > .elementor-section, .elementor > .elementor-section");return{$elementor:e,$sections:t,$firstSection:t.first(),$notElementorElements:elementorCommon.elements.$body.find("> *:not(style, link)").not(e),$head:jQuery("head")}}onInit(){return super.onInit(),this.log("Screenshot init","time"),this.timeoutTimer=setTimeout(this.screenshotFailed.bind(this),this.getSettings("timeout")),this.captureScreenshot()}captureScreenshot(){return this.elements.$elementor.length||(elementorCommon.helpers.consoleWarn("Screenshots: The content of this page is empty, the module will create a fake conent just for this screenshot."),this.createFakeContent()),this.removeUnnecessaryElements(),this.handleIFrames(),this.removeFirstSectionMargin(),this.handleLinks(),this.loadExternalCss(),this.loadExternalImages(),Promise.resolve().then(this.createImage.bind(this)).then(this.createImageElement.bind(this)).then(this.cropCanvas.bind(this)).then(this.save.bind(this)).then(this.screenshotSucceed.bind(this)).catch(this.screenshotFailed.bind(this))}createFakeContent(){this.elements.$elementor=jQuery("
").css({height:this.getSettings("crop.height"),width:this.getSettings("crop.width"),display:"flex",alignItems:"center",justifyContent:"center"}),this.elements.$elementor.append(jQuery("

").css({fontSize:"85px"}).html(this.getSettings("empty_content_headline"))),document.body.prepend(this.elements.$elementor)}loadExternalCss(){const e=[this.getSettings("home_url"),...this.getSettings("excluded_external_css_urls")].map((e=>`[href^="${e}"]`)).join(", ");jQuery("link").not(e).each(((e,t)=>{const s=jQuery(t),n=s.clone();n.attr("href",this.getScreenshotProxyUrl(s.attr("href"))),this.elements.$head.append(n),s.remove()}))}loadExternalImages(){const e=this.getSettings("external_images_urls").map((e=>`img[src^="${e}"]`)).join(", ");jQuery(e).each(((e,t)=>{const s=jQuery(t);s.attr("src",this.getScreenshotProxyUrl(s.attr("src")))}))}handleIFrames(){this.elements.$elementor.find("iframe").each(((e,t)=>{const s=jQuery(t),n=jQuery("
",{css:{background:"gray",width:s.width(),height:s.height()}});s.before(n),s.remove()}))}removeUnnecessaryElements(){let e=0;this.elements.$sections.filter(((t,s)=>{let n=!1;return e>=this.getSettings("crop.height")&&(n=!0),e+=jQuery(s).outerHeight(),n})).each(((e,t)=>{t.remove()})),this.elements.$notElementorElements.remove()}handleLinks(){elementorCommon.elements.$body.find("a").attr("href","/")}removeFirstSectionMargin(){this.elements.$firstSection.css({marginTop:0})}createImage(){const e=new Promise((e=>{window.addEventListener("load",(()=>{e()}))})),t=new Promise((e=>{setTimeout((()=>{e()}),this.getSettings("render_timeout"))}));return Promise.race([e,t]).then((()=>{if(this.log("Start creating screenshot."),this.getSettings("isDebugSvg"))return domtoimage.toSvg(document.body,{imagePlaceholder:this.getSettings("image_placeholder")}).then((e=>this.download(e))),Promise.reject("Debug SVG.");return/^((?!chrome|android).)*safari/i.test(window.userAgent)?(this.log('Creating screenshot with "html2canvas"'),html2canvas(document.body).then((e=>e.toDataURL("image/png")))):(this.log('Creating screenshot with "dom-to-image"'),domtoimage.toPng(document.body,{imagePlaceholder:this.getSettings("image_placeholder")}))}))}download(e){const t=jQuery("",{href:e,download:"debugSvg.svg",html:"Download SVG"});elementorCommon.elements.$body.append(t),t.trigger("click")}createImageElement(e){const t=new Image;return t.src=e,new Promise((e=>{t.onload=()=>e(t)}))}cropCanvas(e){const t=this.getSettings("crop.width"),s=this.getSettings("crop.height"),n=document.createElement("canvas"),i=n.getContext("2d"),o=t/e.width;return n.width=t,n.height=s>e.height?e.height:s,i.drawImage(e,0,0,e.width,e.height,0,0,e.width*o,e.height*o),Promise.resolve(n)}save(e){return new Promise(((t,s)=>{elementorCommon.ajax.addRequest("screenshot_save",{data:{post_id:this.getSettings("post_id"),screenshot:e.toDataURL("image/png")},success:e=>{this.log(`Screenshot created: ${encodeURI(e)}`),t(e)},error:()=>{this.log("Failed to create screenshot."),s()}})}))}markAsFailed(){return new Promise(((e,t)=>{elementorCommon.ajax.addRequest("screenshot_failed",{data:{post_id:this.getSettings("post_id")},success:()=>{this.log("Marked as failed."),e()},error:()=>{this.log("Failed to mark this screenshot as failed."),t()}})}))}getScreenshotProxyUrl(e){return`${this.getSettings("home_url")}?screenshot_proxy&nonce=${this.getSettings("nonce")}&href=${e}`}screenshotSucceed(e){this.screenshotDone(!0,e)}screenshotFailed(e){this.log(e,null),this.markAsFailed().then((()=>this.screenshotDone(!1)))}screenshotDone(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;clearTimeout(this.timeoutTimer),this.timeoutTimer=null,window.parent.postMessage({name:"capture-screenshot-done",success:e,id:this.getSettings("post_id"),imageUrl:t},"*"),this.log(`Screenshot ${e?"Succeed":"Failed"}.`,"timeEnd")}log(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"timeLog";this.getSettings("isDebug")&&(console.log("string"==typeof e?`${this.getSettings("post_id")} - ${e}`:e),t&&console[t](this.getSettings("timer_label")))}}jQuery((()=>{new Screenshot}))})(); The Tach - Page 5 of 14 -

Phil Spencer Discusses Why Xbox Doesn’t Have a PS5 Pro Equivalent

Phil Spencer

In this article, Phil Spencer addresses why Xbox has no direct PS5 Pro equivalent. He talks about Microsoft’s strategy and plans for the console. Discover why Xbox is taking a different route and how this impacts gamers. Introduction: In gaming, there is a lot of rivalry that is evident most especially between Xbox and PlayStation. … Read more

FoodTech: Transforming the Future of Food Through Technology

FoodTech

The first thought that one can associate with food is hardly going to be technology. Despite this, two significant innovations in foodtech have radically altered the cultures of growing, transporting, and eating food across the world. In this paper, improvements in robotics, data analysis, and processing have enabled the food industry to revolutionize and meet … Read more

European Club, Media Giant Quit X Over Hate Speech Concerns

hate

Hate speech on social media continues to disrupt its ecosystem, forcing organizations to reconsider their participation. Recently, a European club left X, alongside a major media giant abandoning X, citing rising toxicity concerns. These moves mark a significant shift in how brands approach their presence on digital platforms. 1. Growing Concerns About Hate Speech on … Read more

Halliburton Cyberattack Update: Firm Suffers $35 Million Loss

Halliburton Cyberattack

The case of the Halliburton Cyberattack is a clear illustration of how hackers operate against large multinational firms. This ransomware attack was in August of 2024 leaving a great impression, and financial hits of $35 million. Halliburton is an Oil and Gas and Energy sector organization that has to address a multitude of problems. Halliburton … Read more

ASI Introduces AIRIS: An AI That ‘Learns’ Through Minecraft

ASI

The ASI Alliance recently launched AIRIS AI, an innovative artificial intelligence designed to learn by interacting within Minecraft. This groundbreaking development explores how virtual environments can foster advanced machine learning in games, where AI can adapt, respond, and even strategize within complex worlds. The use of Minecraft as a training ground for AI innovation opens … Read more

Pokémon TCG Pocket’s Major New Feature Release: What Fans Can Expect

Pokémon TCG Pocket

Currently, there may not be an official Pokémon TCG Pocket but, in the wake of it being launched as a mobile app earlier this month, the decks are set for its popularity to skyrocket. This last edition has let the fans enjoy a new way of catching and fighting with digital Pokémon cards on their … Read more

NatWest Restricts Employee Use of WhatsApp and Facebook Messenger 

NatWest restricts messaging apps

An important aspect of the company related to policy news is the measures concerning limiting access to popular messengers such as WhatsApp, Facebook Messenger, or Skype in the company-owned equipment in the United Kingdom for the sake of internal communication security and compliance strengthening. This looks to stop the staff from using un authorised messaging … Read more

An AI Robot’s Painting Sells at Auction for Over $1 Million

AI robot painting

The artistic capabilities of AI were recently given a closer look by a humanoid AI robot named Ai-Da who recently sold artwork for 1.08 million dollars which made record sales for AI-art. This astonishing sale proves that AI has already entered the sphere of art and has accelerated discussions about the nature of art in … Read more

AI-Enhanced Song “Now and Then” Receives Two Grammy Nominations

now vs then

The AI-enhanced song “Now and Then” by The Beatles is a landmark in the history of music. The song, which combines contemporary AI music technology with traditional talent, has received two coveted Grammy nominations for 2024. This brand-new Beatles song has enthralled listeners everywhere, igniting both reminiscence and enthusiasm for new developments in the music … Read more

How Tech is Transforming Puzzle Games to Make More Engaging

Puzzle

Because they provide mental difficulties and rewarding cognitive progress, puzzle games consistently draw players. Recent developments in technology have made puzzle games more interesting and customizable. These modifications are producing more engaging active puzzle gaming that adapts to the individual style and ability level of each player.  1. Enhancing Puzzle Game Innovation The world of … Read more