{"version":3,"sources":["../../Areas/Consumer/Static/LandingPage.ts"],"names":[],"mappings":"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","file":"LandingPage.min.js","sourcesContent":["import {\r\n\tBaseURL,\r\n\tShouldLaunchApp,\r\n\tShouldLaunchAppClip,\r\n\tShouldAppClipsLaunchViaAppleLinks,\r\n\tlaunchApp,\r\n\tlaunchAppClip,\r\n\tViewUtils,\r\n\tappClipsCapability,\r\n\tAppClipsCapability,\r\n} from './Core'\r\nimport{ AppType, GLOBAL_AppPlatform, Metrics, Page, Platform, TriggerPoint } from './Metrics'\r\nimport{ RegionVM } from './Models/RegionVM'\r\n\r\n\r\n//\r\n// region constants\r\n//\r\n\r\ndeclare const _region:RegionVM\r\ndeclare const DEBUG_IncludePreviewData:boolean|undefined\r\n\r\nlet DEBUG_includePreviewData:boolean = (typeof(DEBUG_IncludePreviewData) !== 'undefined') && DEBUG_IncludePreviewData\r\n\r\n// endregion\r\n\r\n\r\n$( function () {\r\n\t// observe history state\r\n\twindow.addEventListener( 'popstate', (e:PopStateEvent) => {\r\n\t\tconst state = e.state\r\n \t\tif( state?.region !== null && state?.region !== undefined ){\r\n\t\t\tfetchRegion( state.region, true )\r\n\t\t} else {\r\n\t\t\tfetchRegion(/*default region:*/'Spain', true )\r\n\t\t}\r\n\t})\r\n\t\r\n\t// init\r\n\t$('.launchButtonContainer > .action-button').on( 'click', async event => {\r\n\t\tlet ctaButton:JQuery = $(event.currentTarget)\r\n\t\tlet href:string = ctaButton.attr( 'data-href' )\r\n\r\n\t\tawait launchAppOrClip( href, TriggerPoint.PrimaryCTA )\r\n\t})\r\n\t\r\n\t$('.market-button').on( 'click', (e) => {\r\n\t\tlet marketButton:JQuery = $(e.currentTarget)\r\n\t\t\r\n\t\t$('#destinations-container').hide()\r\n\t\t$('#destinations-loader').removeClass( 'd-none' )\r\n\r\n\t\tconst region:string = marketButton.attr( 'data-id' )\r\n\t\tfetchRegion( region, false )\r\n\t})\r\n\t$('#mainCTA > a').on( 'click', async () => {\r\n\t\tlet appType:AppType = (appClipsCapability == AppClipsCapability.Full) ? AppType.Transient : AppType.Permanent\r\n\t\tif( GLOBAL_AppPlatform == Platform.iOS ) // TEMP: workaround for Amplitude bug where filters are not respected when synching\r\n\t\t\tawait Metrics.logNAV_launchApp( appType, Page.RegionPage, TriggerPoint.SecondaryCTA )\r\n\r\n\t\t// navigate\r\n\t\tlet href:string = $(`#mainCTA > a`).attr( 'data-href' )\r\n\t\t// console.debug( `CTA HREF: ${href}` )\r\n\t\tawait Metrics.flush() // NOTE: ensure metrics are pushed before navigating away\r\n\t\twindow.location.href = href\r\n\t})\r\n\t$('#destinations-list .destination-card .cta-button').on( 'click', async (e) => {\r\n\t\tlet destinationLaunchButton:JQuery = $(e.currentTarget)\r\n\t\te.stopPropagation() // NOTE: needed to prevent parent card click\r\n\r\n\t\t// launch event\r\n\t\tlet appType:AppType = (appClipsCapability == AppClipsCapability.Full) ? AppType.Transient : AppType.Permanent\r\n\t\tif( GLOBAL_AppPlatform == Platform.iOS ) // TEMP: workaround for Amplitude bug where filters are not respected when synching\r\n\t\t\tawait Metrics.logNAV_launchApp( appType, Page.LandingPage, TriggerPoint.ListItem )\r\n\r\n\t\t// navigate\r\n\t\tlet href:string = destinationLaunchButton.attr( 'data-href' )\r\n\t\t// console.debug( `LIST ITEM HREF: ${href}` )\r\n\t\tawait Metrics.flush() // NOTE: ensure metrics are pushed before navigating away\r\n\t\twindow.location.href = href\r\n\t})\r\n\tfetchPosts()\r\n\t\r\n\tfunction fetchRegion( region:string, isHistoryPop:boolean ) {\r\n\t\tfor( const marketButtonElement of $('.market-button') ){\r\n\t\t\tlet marketButton:JQuery = $(marketButtonElement)\r\n\t\t\tif( marketButton.attr( 'data-id' ) !== region ){\r\n\t\t\t\tmarketButton.removeClass( 'active' )\r\n\t\t\t} else {\r\n\t\t\t\tmarketButton.addClass( 'active' )\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// fetch data\r\n\t\tconst previewPart:string = (DEBUG_includePreviewData) ? '&preview=true' : ''\r\n\t\tconst url:string = `${BaseURL}/part/destinations-list?region=${region}${previewPart}`\r\n\t\tconst historyURLParams:string = `?r=${region}${previewPart}`\r\n\t\tfetch( url, { method: 'GET' })\r\n\t\t\t.then( (result:Response) => result.text())\r\n\t\t\t.then( (htmlBlock:string) => {\r\n\t\t\t\t$('#destinations-list').html( htmlBlock )\r\n\t\t\t\tif( !isHistoryPop )\r\n\t\t\t\t\thistory.pushState({ 'region': region }, null, historyURLParams )\r\n\t\t\t})\r\n\t\t\t.catch( (errorMessage:string) => {\r\n\t\t\t\tlet snackbar:HTMLElement = document.getElementById( 'snackbar' )\r\n\t\t\t\tsnackbar.classList.add( 'show' )\r\n\t\t\t\tsetTimeout( () => {\r\n\t\t\t\t\tsnackbar.classList.remove('show' )\r\n\t\t\t\t}, 3000 )\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\t// deactivate async UI\r\n\t\t\t\t$('#destinations-loader').addClass( 'd-none' )\r\n\t\t\t\t$('#destinations-container').show()\r\n\t\t\t})\r\n\t}\r\n\r\n\t// TODO(DRY): move into social posts component\r\n\tfunction fetchPosts( /*isHistoryPop:boolean*/ ) {\r\n\t\tconst previewPart:string = (DEBUG_includePreviewData) ? '&preview=true' : ''\r\n\t\tconst url:string = `${BaseURL}/part/social-posts?pageSize=16${previewPart}`\r\n\t\tfetch( url, { method: 'GET' })\r\n\t\t\t.then( (result:Response) => result.text())\r\n\t\t\t.then( (htmlBlock:string) => {\r\n\t\t\t\t$('#social-posts').html( htmlBlock )\r\n\t\t\t\t// if( !isHistoryPop )\r\n\t\t\t\t// \thistory.pushState({ 'region': region }, null, historyURLParams )\r\n\t\t\t})\r\n\t\t\t.catch( (errorMessage:string) => {\r\n\t\t\t\tlet snackbar:HTMLElement = document.getElementById( 'snackbar' )\r\n\t\t\t\tsnackbar.classList.add( 'show' )\r\n\t\t\t\tsetTimeout( () => {\r\n\t\t\t\t\tsnackbar.classList.remove('show' )\r\n\t\t\t\t}, 3000 )\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\t// deactivate async UI\r\n\t\t\t\t$('#posts-loader').addClass( 'd-none' )\r\n\t\t\t\t$('#posts-container').show()\r\n\t\r\n\t\t\t\tinitPosts()\r\n\t\t\t})\r\n\t}\r\n\t\r\n\r\n\t//\r\n\t// scroll triggers\r\n\t//\r\n\tconst logoView:HTMLElement = $('#topLogo')[0]\r\n\tconst destinationsHeadingView:HTMLElement = $('main > h1')[0]\r\n\tconst preFooterView:HTMLElement = $('#__preFooter')[0]\r\n\tconst footerView:HTMLElement = $('footer')[0]\r\n\tconst valuePropsSection:HTMLElement = $('#value-props')[0]\r\n\t// CTA (top)\r\n\tViewUtils.performWhenScrollingIntoView( destinationsHeadingView, () => {\r\n\t\tshowActionBar()\r\n\t})\r\n\tViewUtils.performWhenScrollingIntoView( logoView, () => {\r\n\t\t// console.debug( 'Hide action bar (top)' )\r\n\t\thideActionBar()\r\n\t})\r\n\t// CTA (bottom)\r\n\tViewUtils.performWhenScrollingIntoView( valuePropsSection, () => {\r\n\t\tshowActionBar()\r\n\t})\r\n\tViewUtils.performWhenScrollingIntoView( [preFooterView, footerView], () => {\r\n\t\tconsole.debug( 'Hide action bar (bottom)' )\r\n\t\thideActionBar()\r\n\t})\r\n\r\n\r\n\t// TODO(DRY): move into social posts component\r\n\tfunction initPosts() {\r\n\t\t$('.post-item').on( 'click', async (e) => {\r\n\t\t\tlet postItem:JQuery = $(e.currentTarget)\r\n\r\n\t\t\tlet appType:AppType = (appClipsCapability == AppClipsCapability.Full) ? AppType.Transient : AppType.Permanent\r\n\t\t\tif( appType == AppType.Transient ) // NOTE: behaviour is only to launch for transient apps – otherwise continue to destination page\r\n\t\t\t\tawait Metrics.logNAV_launchApp( appType, Page.LandingPage, TriggerPoint.ListItem )\r\n\r\n\t\t\t// navigate\r\n\t\t\tlet href:string = postItem.attr( 'data-href' )\r\n\t\t\t// console.debug( `HREF: ${href}` )\r\n\t\t\tawait Metrics.flush() // NOTE: ensure metrics are pushed before navigating away\r\n\t\t\twindow.location.href = href\r\n\t\t})\r\n\t}\r\n\r\n\tfunction showActionBar() {\r\n\t\t$('#actionBar').addClass( 'is-active' )\r\n\t}\r\n\tfunction hideActionBar() {\r\n\t\t$('#actionBar').removeClass( 'is-active' )\r\n\t}\r\n\r\n\tasync function launchAppOrClip( href:string, triggerPoint:TriggerPoint ){\r\n\t\tlet appType:AppType = (appClipsCapability == AppClipsCapability.Full) ? AppType.Transient : AppType.Permanent\r\n\t\tif( GLOBAL_AppPlatform == Platform.iOS ) // TEMP: workaround for Amplitude bug where filters are not respected when synching\r\n\t\t\tawait Metrics.logNAV_launchApp( appType, Page.RegionPage, triggerPoint )\r\n\r\n\t\t// navigate\r\n\t\tconsole.debug( `Launching app (HREF: ${href}, trigger: ${triggerPoint})...` )\r\n\t\tawait Metrics.flush() // NOTE: ensure metrics are pushed before navigating away\r\n\t\twindow.location.href = href\r\n\t}\r\n\t\r\n\r\n\t// metrics\r\n\tMetrics.logLandingPageViewed( _region.Identifier )\r\n\r\n\t// app launch\r\n\t// TODO(DRY): generalize across pages\r\n\tMetrics.logAppClipsCapability()\r\n\tif( ShouldLaunchAppClip ){\r\n\t\tif( ShouldAppClipsLaunchViaAppleLinks ){\r\n\t\t\t/*NOTE: ignore async*/launchAppClip()\r\n\t\t} else { /*do nothing – handled via param*/ }\r\n\t} else if( ShouldLaunchApp ){\r\n\t\t/*NOTE: ignore async*/launchApp()\r\n\t}\r\n})\r\n"]}