{"version":3,"file":"appassets/js/1711445012732_low-priority-components.2bf89afe.js","sources":["webpack:///./src/helpers/composables/useArbitrage.ts","webpack:///./src/components/modals/account/VerifyEmailBannerDataProvider.vue","webpack:///./src/components/modals/account/VerifyEmailBannerDataProvider.vue?28e7","webpack:///./src/components/modals/account/VerifyEmailBannerDataProvider.vue?b1ec","webpack:///./src/components/modals/account/VerifyEmailBannerDataProvider.vue?0347","webpack:///./src/helpers/ad/talent-ad.ts","webpack:///./src/components/LowPriorityComponents.vue","webpack:///./src/components/LowPriorityComponents.vue?934f","webpack:///./src/components/LowPriorityComponents.vue?2f8a","webpack:///./src/components/banners/TitleRemovalBanner.vue","webpack:///./src/components/banners/TitleRemovalBanner.vue?ec7c","webpack:///./src/components/banners/TitleRemovalBanner.vue?e40a","webpack:///./src/components/banners/TitleRemovalBanner.vue?49ab","webpack:///./src/components/banners/TitleRemovalBanner.vue?3e98","webpack:///./src/components/banners/TitleRemovalBanner.vue?be0e","webpack:///./src/components/LowPriorityComponents.vue?ecc7","webpack:///./src/components/banners/TitleRemovalBanner.vue?596c"],"sourceRoot":"","sourcesContent":["import { computed, onMounted, readonly, ref } from 'vue';\nimport { useRoute } from 'vue-router/composables';\nimport { useLanguageStore, useTitleDetailsStore } from '@/helpers/composables/useStores';\nimport { useUserAgent } from '@/helpers/composables/useUserAgent';\n\nimport { toValue, type MaybeRefOrGetter } from '@vueuse/core';\n\nimport type { ClickoutUrl } from '@/helpers/clickout-helper';\nimport type { TitleOfferFragment } from '@/components/buybox/graphql/fragments/Offer.fragment';\n\nconst sessionStorage = process.client && window != undefined ? window.sessionStorage : null;\n\n// prettier-ignore\nconst ArbitrationCountries = [\n\t'AR', 'AT', 'AU', 'BE', 'BR', 'CA', 'CH', 'CL', 'CO', 'CZ', 'DE', 'DK', 'ES', 'FI', 'FR', 'GB', 'IE', 'IL', 'IN', 'IT', 'MX', 'NL', 'NO', 'NZ', 'PH', 'PL', 'PT', 'SA', 'SE', 'US', 'ZA',\n] as const;\n\nconst EMPTY = '$' as const;\n\ntype ArbitrageParam = 'utm_campaign' | 'utm_content' | 'utm_medium';\nconst utmParams: ArbitrageParam[] = ['utm_campaign', 'utm_content', 'utm_medium'];\n\nconst _isArbitrating = ref(false);\n\nexport const isArbitrating = readonly(_isArbitrating);\n\nexport function useArbitrage({ packageIds }: { packageIds?: number[] } = {}) {\n\tconst route = useRoute();\n\tconst { country } = useLanguageStore();\n\tconst { titleContext } = useTitleDetailsStore();\n\n\tonMounted(() => {\n\t\tif (!ArbitrationCountries.includes(country.value)) return;\n\t\tif (_isArbitrating.value || process.server) return;\n\n\t\ttype UTMQueryParams = [string, string | null][];\n\t\tconst utmValues = utmParams\n\t\t\t.map(param => [param, route.query[param] as string | null])\n\t\t\t.filter(([, value]) => value != null) as UTMQueryParams;\n\t\tif (utmValues.length === 0) return;\n\n\t\tutmValues.forEach(([key, value]) => sessionStorage?.setItem(key, value!));\n\n\t\t_isArbitrating.value = true;\n\t});\n\n\tconst clearArbitration = () => {\n\t\tutmParams.forEach(param => sessionStorage?.removeItem(param));\n\n\t\t_isArbitrating.value = false;\n\t};\n\n\tconst { deviceInfo, deviceType } = useUserAgent();\n\n\tconst arbitrationValue = computed(() => {\n\t\tif (!isArbitrating.value) return null;\n\n\t\tconst utm = utmParams.map(param => sessionStorage?.getItem(param) ?? undefined);\n\t\tif (utm.every(param => param == null)) return null;\n\n\t\tconst [utm_campaign = EMPTY, utm_content = EMPTY, utm_medium = EMPTY] = utm;\n\t\tconst device = `${deviceType.value === 'mobile' ? 'm' : 'd'}`;\n\t\tconst titleid: string = titleContext.value?.jwEntityId ?? EMPTY;\n\n\t\t/* ct=--<device>-<utm_content>-<utm_campaign> */\n\t\treturn [utm_medium, titleid, device, utm_content, utm_campaign].join('-');\n\t});\n\n\t/** Sets the 'uct_ct' query on the Offer URL if needed. */\n\tfunction withArbitrageTracking(url: ClickoutUrl, offer: TitleOfferFragment) {\n\t\tif (packageIds?.length === 0) {\n\t\t\tconsole.warn('[useArbitrage]: Cannot add offer tracking without a package id.');\n\t\t}\n\n\t\tif (packageIds?.includes(offer.package.packageId)) {\n\t\t\treturn url.set('uct_ct', arbitrationValue.value);\n\t\t}\n\n\t\treturn url;\n\t}\n\n\tfunction trackTagEvent(offer: MaybeRefOrGetter<TitleOfferFragment | null>) {\n\t\tif (!window || !window.dataLayer) return;\n\t\tif (!isArbitrating.value) return;\n\n\t\tif (packageIds?.includes(toValue(offer)?.package.packageId ?? 0)) {\n\t\t\twindow.dataLayer.push({\n\t\t\t\tevent: 'interaction',\n\t\t\t\t// event category\n\t\t\t\ttarget: 'clickout',\n\t\t\t\t// event label\n\t\t\t\t'target-properties': 'Apple TV Plus',\n\t\t\t\tdevice: deviceInfo.value,\n\t\t\t});\n\t\t}\n\t}\n\n\treturn {\n\t\tisArbitrating,\n\t\tarbitrationValue,\n\t\tclearArbitration,\n\t\twithArbitrageTracking,\n\t\ttrackTagEvent,\n\t};\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.showBanner)?_c('VerifyEmailBanner',{attrs:{\"userCreationTime\":_vm.userCreationTime}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\nimport Vue from 'vue';\nimport { Component, Watch } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\nimport 'localforage-getitems';\n\nconst VerifyEmailBanner = () =>\n\timport(/* webpackChunkName: \"verify-email-banner\" */ '@/components/modals/account/VerifyEmailBanner.vue');\n\nimport { UserInfo as StoreUserInfo } from '@/stores/user.store';\nimport { LoginProvider } from '@/enums/login';\n\nconst User = namespace('user');\n\n@Component({\n\tname: 'VerifyEmailDataProvider',\n\tcomponents: { VerifyEmailBanner },\n})\nexport default class VerifyEmailDataProvider extends Vue {\n\tshowBanner = false;\n\n\t@User.Action loadInfo: () => void;\n\t@User.Getter userInfo: StoreUserInfo;\n\t@User.Getter isLoggedIn: () => boolean;\n\n\t@Watch('userLoggedIn', { immediate: true })\n\tasync onUserLoggedIn(isLoggedIn: boolean) {\n\t\tawait this.loadInfo();\n\n\t\tif (!isLoggedIn || this.userEmailVerified) {\n\t\t\tthis.showBanner = false;\n\t\t}\n\n\t\tif (isLoggedIn && this.isAuthenticatedWithEmail && !this.userEmailVerified && !this.showBanner) {\n\t\t\tthis.showBanner = true;\n\t\t}\n\t}\n\n\tget userLoggedIn(): boolean {\n\t\treturn this.isLoggedIn();\n\t}\n\n\tget userEmailVerified() {\n\t\treturn this.userInfo.emailVerified;\n\t}\n\n\tget isAuthenticatedWithEmail() {\n\t\treturn this.userInfo.loginProvider === LoginProvider.JUSTWATCH;\n\t}\n\n\tget userCreationTime() {\n\t\treturn this.userInfo.creationTime;\n\t}\n}\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyEmailBannerDataProvider.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--15-2!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyEmailBannerDataProvider.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./VerifyEmailBannerDataProvider.vue?vue&type=template&id=18d322f0&\"\nimport script from \"./VerifyEmailBannerDataProvider.vue?vue&type=script&lang=ts&\"\nexport * from \"./VerifyEmailBannerDataProvider.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export async function logTalentAd() {\n\tconst talentPageLink = 'www.justwatch.com/us/talent';\n\tconst talentAdBody = `\n JustWatch is looking for talented engineers and many other roles across the team. \n If you're interested, read more on our talent page: ${talentPageLink}\n\n We're excited to hear from you!\n `;\n\tconsole.log(\"%c We're hiring!\", 'font-size: 72px; color: #1f9a48;');\n\tconsole.log(talentAdBody);\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('NoSSR',[(_vm.shouldRenderMenu)?_c('FilterMenu',{attrs:{\"collectionType\":_vm.lastActiveCollectionType}}):_vm._e()],1),_c('NoSSR',[_c(_vm.consentComponent,{tag:\"component\"}),(_vm.showMobileAppBanner)?_c('MobileBanner'):_vm._e(),_c('TitleRemovalBanner'),_c('VerifyEmailBannerDataProvider'),(!_vm.isLoggedIn())?_c('ListsForSignedInUsersOnboarding'):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LowPriorityComponents.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--15-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LowPriorityComponents.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./LowPriorityComponents.vue?vue&type=template&id=763220be&\"\nimport script from \"./LowPriorityComponents.vue?vue&type=script&lang=ts&\"\nexport * from \"./LowPriorityComponents.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"banner-wrapper\"},[(_setup.showBanner)?_c('div',{staticClass:\"banner\"},[_vm._m(0),_c('div',{staticClass:\"col2\"},[_c('p',[_vm._v(\"Download the mobile app to continue having full functionality!\")]),_c('a',{attrs:{\"href\":_setup.applicationUrl,\"target\":\"_blank\"}},[_c(_setup.BasicButton,{attrs:{\"color\":\"primary\"}},[_vm._v(\"Download now\")])],1)])]):_vm._e()])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"col1\"},[_c('img',{staticClass:\"banner-img\",attrs:{\"src\":\"/appassets/img/banner/title-removal-banner.png\",\"alt\":\"Title removal banner\"}})])\n}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleRemovalBanner.vue?vue&type=script&setup=true&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleRemovalBanner.vue?vue&type=script&setup=true&lang=ts&\"","import { defineComponent as _defineComponent } from 'vue'\nimport BasicButton from '@/ui-components/BasicButton.vue';\nimport { COUNTRY_WITHOUT_TITLEDETAIL } from '@/constants/web-locales.constant';\nimport { useLanguageStore } from '@/helpers/composables/useStores';\nimport { computed } from 'vue';\n\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'TitleRemovalBanner',\n setup(__props) {\n\nconst { webLocale } = useLanguageStore();\n\nconst showBanner = computed(() => {\n\treturn COUNTRY_WITHOUT_TITLEDETAIL.includes(webLocale.value);\n});\n\nconst appLink = {\n\tios: 'https://apps.apple.com/app/apple-store/id979227482',\n\tandroid: 'https://play.google.com/store/apps/details?id=com.justwatch.justwatch',\n};\n\nconst deviceType = computed(() => {\n\tconst userAgent = window.navigator.userAgent;\n\n\tif (!userAgent) {\n\t\treturn undefined;\n\t}\n\tif (userAgent.match(/Windows|Linux/i)) {\n\t\treturn 'android';\n\t} else if (userAgent.match(/Macintosh/i)) {\n\t\treturn 'ios';\n\t}\n\n\treturn [\n\t\t{ name: 'ios', matcher: /(iPhone|iPad)/i },\n\t\t{ name: 'android', matcher: /android/i },\n\t].reduce((root, item) => {\n\t\treturn userAgent?.match(item.matcher) ? item.name : root;\n\t}, undefined);\n});\n\nconst applicationUrl = computed(() => {\n\treturn deviceType.value ? appLink[deviceType.value] : '';\n});\n\nreturn { __sfc: true,webLocale, showBanner, appLink, deviceType, applicationUrl, BasicButton }\n}\n\n})","import { render, staticRenderFns } from \"./TitleRemovalBanner.vue?vue&type=template&id=6ec6e9e2&scoped=true&\"\nimport script from \"./TitleRemovalBanner.vue?vue&type=script&setup=true&lang=ts&\"\nexport * from \"./TitleRemovalBanner.vue?vue&type=script&setup=true&lang=ts&\"\nimport style0 from \"./TitleRemovalBanner.vue?vue&type=style&index=0&id=6ec6e9e2&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ec6e9e2\",\n null\n \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleRemovalBanner.vue?vue&type=style&index=0&id=6ec6e9e2&prod&lang=scss&scoped=true&\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"81e15856\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","export * from \"-!../../../node_modules/vue-style-loader/index.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TitleRemovalBanner.vue?vue&type=style&index=0&id=6ec6e9e2&prod&lang=scss&scoped=true&\"","\nimport Vue from 'vue';\nimport { Component, Inject, Watch } from 'vue-property-decorator';\nimport { namespace } from 'vuex-class';\n\nimport type { Consent, UserSettings } from '@/stores/user.store';\n\nimport VerifyEmailBannerDataProvider from '@/components/modals/account/VerifyEmailBannerDataProvider.vue';\nimport { initTrackers } from '@/main.common';\n\nconst ConsentBanner = () => import(/* webpackChunkName: \"consent-banner\" */ '@/components/consent/ConsentBanner.vue');\nconst ListsForSignedInUsersOnboarding = () =>\n\timport(/* webpackChunkName: \"consent-banner\" */ '@/components/modals/ListsForSignedInUsersOnboarding.vue');\nconst ConsentOverlay = () =>\n\timport(/* webpackChunkName: \"consent-overlay\" */ '@/components/consent/ConsentOverlay.vue');\nconst FilterMenu = () => import(/* webpackChunkName: \"filter-menu\" */ '@/components/filter-bar/FilterMenu.vue');\nconst MobileBanner = () => import(/* webpackChunkName: \"mobile-banner\" */ '@/components/MobileBanner.vue');\n\nimport { CollectionType } from '@/enums/collection-type';\nimport type { WebLocale } from '@/enums/web-locale';\n\nimport { logTalentAd } from '@/helpers/ad/talent-ad';\nimport { TrackingHelper } from '@/helpers/tracking/tracking-helper';\n\nimport { isSameWeek } from '@/helpers/date-helper';\nimport { updateUserProfile } from '@/helpers/id-helper';\nimport { initSentry } from '@/helpers/sentry-helper';\nimport { hasUCConsentBanner } from '@/helpers/tracking';\nimport { isMobile } from '@/helpers/ui-helper';\nimport { isArbitrating } from '@/helpers/composables/useArbitrage';\nimport TitleRemovalBanner from '@/components/banners/TitleRemovalBanner.vue';\n\nconst Language = namespace('language');\nconst Routing = namespace('routing');\nconst User = namespace('user');\nconst App = namespace('app');\n\n@Component({\n\tcomponents: {\n\t\tConsentBanner,\n\t\tFilterMenu,\n\t\tListsForSignedInUsersOnboarding,\n\t\tMobileBanner,\n\t\tVerifyEmailBannerDataProvider,\n\t\tTitleRemovalBanner,\n\t},\n})\nexport default class LowPriorityComponents extends Vue {\n\tshouldRenderMenu = false;\n\n\t@Language.Getter country: string;\n\t@Language.Getter language: string;\n\t@Language.State webLocale: WebLocale;\n\n\t@Routing.Getter lastActiveCollectionType: null | CollectionType;\n\t@Routing.Getter activeCollectionType: null | CollectionType;\n\n\t@User.Action saveSettings: (partialSettings: Partial<UserSettings>) => Promise<void>;\n\t@User.Getter isLoggedIn: () => boolean;\n\t@User.State jwId: string;\n\t@User.State lastTimeMobileAppBannerWasClosedTS: number;\n\n\t@App.Action fetchJwSession: () => void;\n\n\t// it shouldn't go back to `false` anymore, so the filter menu is still available even after page navigations to the title detail.\n\t@Watch('activeCollectionType', { immediate: true })\n\tonActiveCollectionChange() {\n\t\tconst { activeCollectionType } = this;\n\t\tif (\n\t\t\t!this.shouldRenderMenu &&\n\t\t\t!!activeCollectionType &&\n\t\t\t[\n\t\t\t\tCollectionType.NEW,\n\t\t\t\tCollectionType.POPULAR,\n\t\t\t\tCollectionType.SEARCH,\n\t\t\t\tCollectionType.MY_LISTS,\n\t\t\t\tCollectionType.TV_SHOW_TRACKING,\n\t\t\t\tCollectionType.PUBLIC_LISTS,\n\t\t\t\tCollectionType.TITLELIST,\n\t\t\t].includes(activeCollectionType)\n\t\t) {\n\t\t\tthis.shouldRenderMenu = true;\n\t\t}\n\t}\n\n\tget consentComponent() {\n\t\tif (hasUCConsentBanner(this.webLocale) && !global.VUE_APP_TESTS_E2E) {\n\t\t\treturn ConsentOverlay;\n\t\t}\n\n\t\treturn ConsentBanner;\n\t}\n\n\tget showMobileAppBanner() {\n\t\treturn (\n\t\t\t!this.isLoggedIn() &&\n\t\t\t!isSameWeek(new Date(this.lastTimeMobileAppBannerWasClosedTS), new Date()) &&\n\t\t\t!isArbitrating.value\n\t\t);\n\t}\n\n\t/**\n\t * Inject lowPriorityCallback from App.vue\n\t */\n\t@Inject() lowPriorityCallback: any;\n\n\tmounted() {\n\t\tif (process.env.NODE_ENV !== 'development') {\n\t\t\tlogTalentAd();\n\t\t}\n\n\t\tthis.lowPriorityCallback(() => initTrackers(this.$store));\n\t\tthis.lowPriorityCallback(() => initSentry());\n\t\t// make sure we preload the jwSession token already before it's needed in a page navigation\n\t\tthis.lowPriorityCallback(() => this.fetchJwSession());\n\n\t\tif (isMobile()) {\n\t\t\t// @ts-ignore\n\t\t\timport('long-press-event/dist/long-press-event.min.js');\n\t\t}\n\n\t\t// NOTE This is only for testing (otherwise we have no way to force old consents)\n\t\t(window as any).saveSettings = async (consents: Record<Consent, boolean>) => {\n\t\t\tawait this.saveSettings({ jw_consents: consents });\n\t\t};\n\n\t\tif (this.country) {\n\t\t\ttry {\n\t\t\t\tupdateUserProfile(this.jwId, this.country, this.language);\n\t\t\t} catch (error: any) {\n\t\t\t\tTrackingHelper.trackEvent('app_error', {\n\t\t\t\t\taction: 'update_user_profile_failure',\n\t\t\t\t\tlabel: error,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n}\n","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../../node_modules/css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \".banner-wrapper[data-v-6ec6e9e2]{position:fixed;bottom:10px;left:0;right:0}.banner[data-v-6ec6e9e2],.banner-wrapper[data-v-6ec6e9e2]{display:flex;z-index:999}.banner[data-v-6ec6e9e2]{background:#111924;border-radius:8px;width:100%;overflow:hidden;color:#c6c8cd;max-height:80px;max-width:864px;margin:0 auto;bottom:0}.banner .col2[data-v-6ec6e9e2]{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:20px}@media(max-width:768px){.banner-wrapper[data-v-6ec6e9e2]{margin:20px}.banner-wrapper .banner[data-v-6ec6e9e2]{max-height:275px;padding:20px}.banner-wrapper .banner .col2[data-v-6ec6e9e2]{display:flex;flex-direction:column;font-weight:700;max-width:550px;align-items:flex-start}.banner-wrapper .banner .col2 p[data-v-6ec6e9e2]{margin:0;padding:0;font-size:16px}.banner-wrapper .banner .col2 button[data-v-6ec6e9e2]{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;margin:20px 0;font-size:16px}}\", \"\"]);\n// Exports\nmodule.exports = exports;\n"],"names":["sessionStorage","undefined","window","ArbitrationCountries","EMPTY","utmParams","_isArbitrating","ref","isArbitrating","readonly","useArbitrage","packageIds","route","useRoute","country","useLanguageStore","titleContext","useTitleDetailsStore","onMounted","includes","value","utmValues","map","param","query","filter","length","forEach","key","setItem","deviceInfo","deviceType","useUserAgent","arbitrationValue","computed","_titleContext$value$j","_titleContext$value","utm","_sessionStorage$getIt","getItem","every","utm_campaign","utm_content","utm_medium","device","jwEntityId","join","clearArbitration","removeItem","withArbitrageTracking","url","offer","console","warn","package","packageId","set","trackTagEvent","_toValue$package$pack","_toValue","dataLayer","toValue","push","event","target","User","namespace","VerifyEmailDataProvider","Vue","constructor","args","_defineProperty","isLoggedIn","this","loadInfo","userEmailVerified","showBanner","isAuthenticatedWithEmail","userInfo","emailVerified","loginProvider","LoginProvider","JUSTWATCH","creationTime","__decorate","Action","Getter","Watch","immediate","Component","name","components","VerifyEmailBanner","component","_c","_self","_setupProxy","attrs","userCreationTime","_e","async","logTalentAd","log","_vm","shouldRenderMenu","lastActiveCollectionType","consentComponent","tag","showMobileAppBanner","_defineComponent","__name","setup","__props","webLocale","COUNTRY_WITHOUT_TITLEDETAIL","appLink","ios","android","userAgent","navigator","match","matcher","reduce","root","item","applicationUrl","__sfc","BasicButton","_setup","staticClass","_m","_v","content","__esModule","default","module","i","locals","exports","add","ConsentBanner","ConsentOverlay","Language","Routing","App","LowPriorityComponents","onActiveCollectionChange","activeCollectionType","CollectionType","NEW","POPULAR","SEARCH","MY_LISTS","TV_SHOW_TRACKING","PUBLIC_LISTS","TITLELIST","hasUCConsentBanner","global","VUE_APP_TESTS_E2E","isSameWeek","Date","lastTimeMobileAppBannerWasClosedTS","mounted","_this","lowPriorityCallback","initTrackers","$store","initSentry","fetchJwSession","isMobile","saveSettings","consents","jw_consents","updateUserProfile","jwId","language","error","TrackingHelper","trackEvent","action","label","State","Inject","FilterMenu","ListsForSignedInUsersOnboarding","MobileBanner","VerifyEmailBannerDataProvider","TitleRemovalBanner","___CSS_LOADER_API_IMPORT___"],"mappings":"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","debug_id":"6e0df490-e732-560f-9cb0-e7d358832dad"}