/*! elementor-pro - v3.21.0 - 20-05-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,t=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,t="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}))})();{"id":1748,"date":"2023-05-17T20:02:07","date_gmt":"2023-05-17T20:02:07","guid":{"rendered":"https:\/\/ktjkrug.com\/?p=1748"},"modified":"2023-09-29T11:31:05","modified_gmt":"2023-09-29T11:31:05","slug":"vuelo-mas-hotel-todo-incluido-puerto-rico","status":"publish","type":"post","link":"https:\/\/ktjkrug.com\/vuelo-mas-hotel-todo-incluido-puerto-rico\/","title":{"rendered":"vuelo mas hotel todo incluido puerto rico"},"content":{"rendered":"

Flights and Hotels in Puerto Rico<\/h2>\n

To plan your trip to Puerto Rico, you need the perfect package deal that includes vuelo mas hotel todo incluido puerto rico. This section on Flights and Hotels in Puerto Rico will provide you with the information required to make an informed decision. It includes an overview of Puerto Rico as a tourist destination and emphasizes the importance of getting a flight and hotel package deal.<\/p>\n

Overview of Puerto Rico as a Tourist Destination<\/h3>\n

Puerto Rico is a fascinating tourist destination that boasts of captivating landscapes, diverse culture and stunning beaches. This tropical paradise is a blend of old-world charm and modern-day conveniences, with something for everyone. The island’s vibrant nightlife, delicious cuisine, and friendly locals make it an excellent place to visit<\/a>.<\/p>\n

Besides the beach activities such as surfing, snorkeling, and kiteboarding, Puerto Rico<\/a> offers visitors a chance to explore the El Yunque Rainforest<\/b> and the historic Old San Juan<\/b>. Don’t miss out on touring Castillo San Felipe<\/a> del Morro<\/b> or visiting Cueva Ventana<\/b> \u2014 a natural wonder showcasing impressive views of the Arecibo Valley.<\/p>\n

Puerto Rico’s<\/a> unique history as a Spanish territory before becoming a US Commonwealth in 1952 has had a profound influence on its food, architecture and music scene. Visitors can enjoy eating traditional dishes such as mofongo<\/b>, flavoured with plantains while listening to salsa music at La Placita de Santurce<\/b>.<\/p>\n

Getting a flight and hotel package<\/a> is like killing two birds with one stone<\/em>, except in this case, the birds are your travel arrangements and the stone is the convenience of not having to worry about them separately.<\/p>\n

Importance of Getting a Flight and Hotel Package<\/h3>\n

When organizing a trip to Puerto Rico<\/a>, it is crucial to consider getting a flight and hotel package<\/b>. This option saves you time, money, and hassle by bundling the cost of both essentials together. With an all-inclusive deal, you will save on expenses that crop up while traveling and guarantee your travel plans at an affordable price.<\/p>\n

With a flight and hotel package<\/b>, you can select from a vast number of options offered by different providers. You might get perks like free transportation, complementary breakfasts, among other benefits; hence it helps to reduce expenses during your trip. This approach is perfect if you aim to have a hassle-free vacation on the beautiful island of Puerto Rico<\/a>.<\/p>\n

It’s worth noting that most hotels in Puerto Rico are located in tourist hotspots near stunning beaches<\/a> or historic sites. When choosing your package deal, keep in mind the attractions where you wish to spend most of your vacation time.<\/p>\n

To maximize savings when traveling to Puerto Rico<\/a>, it is necessary to plan well ahead; this will give you ample time to look around for available offers from airlines and hotels. Ensure your bookings are done promptly as peak times tend to record high demand for such deals.<\/p>\n

Why settle for just a vacation when you can have a whole package deal and bring back<\/a> a tan AND a great Instagram post?<\/em><\/p>\n

What is Included in a Flight + Hotel Package in Puerto Rico?<\/h2>\n

To understand what your flight and hotel package to Puerto Rico<\/a> includes, check out the following sub-sections: Flight Options, Hotel Options, and Inclusions in a Flight and Hotel Package. Discover the different types of flights available and where you can stay on your trip. We\u2019ll also go over everything you\u2019ll have access to with a Puerto Rico flight and hotel package<\/a>.<\/p>\n

Flight Options for Puerto Rico<\/h3>\n

Puerto Rico Flight<\/a> Options<\/b><\/p>\n

Flying to Puerto Rico<\/a> is easy, with plenty of flight options to choose from. Here are six points to consider when selecting your flight:<\/p>\n