{"version":3,"file":"593-58d3e1685be085ae07a6.js","mappings":"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","sources":["webpack://voresby.web/./Scripts/api/index.ts","webpack://voresby.web/./Scripts/components/forms/email-subscribe-form.tsx","webpack://voresby.web/./Scripts/components/subscribe-modal.tsx","webpack://voresby.web/./Scripts/cookieconsent.ts","webpack://voresby.web/./node_modules/jose/dist/browser/lib/buffer_utils.js","webpack://voresby.web/./node_modules/jose/dist/browser/util/errors.js","webpack://voresby.web/./node_modules/jose/dist/browser/runtime/webcrypto.js","webpack://voresby.web/./node_modules/jose/dist/browser/jwks/remote.js","webpack://voresby.web/./node_modules/jose/dist/browser/runtime/random.js","webpack://voresby.web/./node_modules/jose/dist/browser/jwe/flattened/encrypt.js","webpack://voresby.web/./node_modules/jose/dist/browser/util/decode_jwt.js","webpack://voresby.web/./node_modules/jose/dist/browser/runtime/base64url.js","webpack://voresby.web/./node_modules/jose/dist/browser/lib/is_object.js","webpack://voresby.web/./Scripts/components/forms/confirm-subscription-form.tsx","webpack://voresby.web/./Scripts/components/email-subscription/confirm-subscription-modal.tsx","webpack://voresby.web/./Scripts/util/is-first-page-view.ts","webpack://voresby.web/./Scripts/features/newsletter-popups/index.ts","webpack://voresby.web/./Scripts/features/newsletter-popups/one-tap/google-one-tap.tsx","webpack://voresby.web/./Scripts/util/fb.ts","webpack://voresby.web/./Scripts/util/gtm.ts","webpack://voresby.web/./node_modules/core-js/internals/create-property.js","webpack://voresby.web/./node_modules/core-js/modules/es.object.from-entries.js"],"sourcesContent":["import Cookies from \"js-cookie\";\r\nimport { SubscribeForm, SubscriptionApi } from \"../lib-api\";\r\nimport { CookieKeys } from \"../util/cookie\";\r\nimport { trackGaEvent } from \"../util/gtm\";\r\nimport { trackEventFbLead } from \"../util/fb\";\r\nimport { apiConfiguration } from \"../api-configuration\";\r\nimport clientConfiguration from \"../client-configuration\";\r\n\r\nconst subscriptionApi = new SubscriptionApi(apiConfiguration);\r\n\r\nexport const api = {\r\n subscribeToNewsletter: async (values: SubscribeForm, location: string) => {\r\n await subscriptionApi.apiSubscriptionsPut({\r\n subscribeForm: values,\r\n });\r\n Cookies.set(CookieKeys.EmailSubscribed, \"true\", { expires: 365 });\r\n\r\n trackGaEvent(\r\n \"on_newsletter_subscribe\",\r\n {\r\n in_section: location,\r\n },\r\n {\r\n email: values.email,\r\n city: clientConfiguration.site.name,\r\n country: \"Danmark\",\r\n }\r\n );\r\n trackEventFbLead(\"Newsletter\");\r\n },\r\n};\r\n","import { SubscribeForm } from \"../../lib-api\";\r\nimport React, { useState } from \"react\";\r\nimport { useFormik } from \"formik\";\r\nimport { object, string } from \"yup\";\r\nimport { Form, Button } from \"react-bootstrap\";\r\nimport { api } from \"../../api\";\r\n\r\nenum SubmitState {\r\n None,\r\n Submitted,\r\n Error,\r\n}\r\n\r\nexport const EmailSubscribeForm = (props: {\r\n location: string;\r\n onSubscribed?: () => void;\r\n hasAutofocus: boolean;\r\n}) => {\r\n const [submitState, setSubmitState] = useState(SubmitState.None);\r\n\r\n const {\r\n values,\r\n errors,\r\n isSubmitting,\r\n handleChange,\r\n handleSubmit,\r\n submitForm,\r\n } = useFormik<SubscribeForm>({\r\n initialValues: {\r\n name: \"\",\r\n email: \"\",\r\n },\r\n validationSchema: object({\r\n email: string().required().email(),\r\n name: string().max(100),\r\n }),\r\n onSubmit: async (values) => {\r\n try {\r\n await api.subscribeToNewsletter(values, props.location);\r\n setSubmitState(SubmitState.Submitted);\r\n if (props.onSubscribed != null) {\r\n props.onSubscribed();\r\n }\r\n } catch (e) {\r\n setSubmitState(SubmitState.Error);\r\n }\r\n },\r\n });\r\n\r\n return (\r\n <div>\r\n {submitState != SubmitState.Submitted && (\r\n <Form onSubmit={handleSubmit}>\r\n <Form.Group controlId=\"formSubscribeEmail\">\r\n <Form.Label srOnly={true}>Email</Form.Label>\r\n <Form.Control\r\n isInvalid={errors.email != null}\r\n name=\"email\"\r\n type=\"email\"\r\n placeholder=\"E-mail\"\r\n value={values.email}\r\n disabled={isSubmitting}\r\n onChange={handleChange}\r\n autoFocus={props.hasAutofocus}\r\n />\r\n </Form.Group>\r\n <Button\r\n disabled={isSubmitting}\r\n variant=\"primary\"\r\n block={true}\r\n type=\"submit\"\r\n >\r\n Tilmeld\r\n </Button>\r\n </Form>\r\n )}\r\n {submitState == SubmitState.Error && (\r\n <div>\r\n Ups, der opstod en fejl.\r\n <br />\r\n <a className=\"text-primary\" onClick={() => submitForm()}>\r\n Prøv igen...\r\n </a>\r\n </div>\r\n )}\r\n {submitState == SubmitState.Submitted && (\r\n <div>Tak for din tilmelding.</div>\r\n )}\r\n </div>\r\n );\r\n};\r\n","import React, { useState, useEffect } from \"react\";\r\nimport styled from \"styled-components\";\r\nimport clientConfiguration from \"../client-configuration\";\r\nimport Cookies from \"js-cookie\";\r\nimport { EmailSubscribeForm } from \"../components/forms/email-subscribe-form\";\r\nimport { CookieKeys } from \"../util/cookie\";\r\nimport { CampaignApi } from \"../lib-api/apis/CampaignApi\";\r\nimport { apiConfiguration } from \"../api-configuration\";\r\nimport { CampaignBookingDto } from \"../lib-api\";\r\nimport { createRoot, Root } from \"react-dom/client\";\r\n\r\nconst SlideUpContainer = styled(\"div\")({\r\n position: \"fixed\",\r\n zIndex: 20,\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n transition: \"linear 0.1s\",\r\n pointerEvents: \"none\",\r\n});\r\n\r\nconst BoxContainer = styled.div({\r\n margin: \"auto\",\r\n maxWidth: \"400px\",\r\n});\r\n\r\nconst SlideUpBox = styled.div({\r\n backgroundColor: \"white\",\r\n pointerEvents: \"all\",\r\n border: \"1px solid #333\",\r\n position: \"relative\",\r\n marginLeft: \"25px\",\r\n marginRight: \"25px\",\r\n});\r\n\r\nconst CornerIcon = styled.div({\r\n border: \"0\",\r\n borderRadius: \"50%\",\r\n backgroundColor: \"#D03822\",\r\n color: \"#FFF\",\r\n padding: \"10px\",\r\n position: \"absolute\",\r\n top: \"-30px\",\r\n left: \"-30px\",\r\n fontSize: \"12px\",\r\n textAlign: \"center\",\r\n});\r\n\r\nconst api = new CampaignApi(apiConfiguration);\r\n\r\nconst getPreview = async (id: string) => {\r\n const preview = await api.getCampaignBookingAsync({ id });\r\n if (preview) {\r\n return preview;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst getCampaign = async () => {\r\n const campaign = await api.getActiveCampaignBookingBySiteAsync();\r\n\r\n if (campaign) {\r\n return campaign;\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst SubscribeModal: React.FC<{\r\n root: Root;\r\n container: HTMLElement;\r\n onDismiss: (didSubscribe: boolean) => void;\r\n location?: string;\r\n campaignId?: string;\r\n}> = (props) => {\r\n const [shown, setShown] = useState(false);\r\n\r\n const detach = (didSubscribe: boolean) => {\r\n props.root.unmount();\r\n props.container.parentNode?.removeChild(props.container);\r\n\r\n if (didSubscribe) {\r\n Cookies.set(CookieKeys.EmailSubscribed, \"true\", { expires: 365 });\r\n } else {\r\n Cookies.set(CookieKeys.SuppressSlideUp, \"true\", { expires: 3 });\r\n }\r\n\r\n props.onDismiss(didSubscribe);\r\n };\r\n\r\n const [campaign, setCampaign] = useState<CampaignBookingDto | undefined>();\r\n\r\n useEffect(() => {\r\n (async () => {\r\n try {\r\n if (props.campaignId) {\r\n const result = await getPreview(props.campaignId);\r\n\r\n if (result) {\r\n setCampaign(result);\r\n }\r\n } else {\r\n //ID is not set\r\n //setCampaign(await getCampaign());\r\n }\r\n } catch (e) {\r\n //ID is invalid\r\n try {\r\n //setCampaign(await getCampaign());\r\n } catch (e) {\r\n setCampaign(undefined);\r\n }\r\n }\r\n setShown(true);\r\n })();\r\n }, [props.campaignId]);\r\n\r\n return (\r\n <>\r\n <SlideUpContainer\r\n style={{ transform: shown ? `translateY(10%)` : `translateY(-100%)` }}\r\n onClick={(e) => e.stopPropagation()}\r\n >\r\n <BoxContainer>\r\n <SlideUpBox className=\"shadow p-4\">\r\n {campaign ? (\r\n <CornerIcon\r\n className=\"shadow\"\r\n dangerouslySetInnerHTML={{ __html: campaign.prize! }}\r\n ></CornerIcon>\r\n ) : (\r\n <></>\r\n )}\r\n <button\r\n type=\"button\"\r\n onClick={() => detach(false)}\r\n className=\"close pl-3 pb-3 text-primary\"\r\n style={{ opacity: 1 }}\r\n aria-label=\"Close\"\r\n >\r\n <span aria-hidden=\"true\">×</span>\r\n </button>\r\n {campaign ? (\r\n <h5 dangerouslySetInnerHTML={{ __html: campaign.title! }}></h5>\r\n ) : (\r\n <h5>Modtag gratis nyheder fra {clientConfiguration.site.name}</h5>\r\n )}\r\n\r\n {campaign ? (\r\n <p dangerouslySetInnerHTML={{ __html: campaign.body! }}></p>\r\n ) : (\r\n <p>\r\n Tilmeld dig VORES nyhedsbrev og fÃ¥ nyheder og lokaltilbud\r\n direkte i indbakken hver uge.\r\n </p>\r\n )}\r\n <EmailSubscribeForm\r\n location={props.location || \"SlideUp\"}\r\n onSubscribed={() => {\r\n setTimeout(() => {\r\n detach(true);\r\n }, 1500);\r\n }}\r\n hasAutofocus={true}\r\n />\r\n </SlideUpBox>\r\n </BoxContainer>\r\n </SlideUpContainer>\r\n </>\r\n );\r\n};\r\n\r\nlet isModalVisible = false;\r\n\r\nexport const showSubscribeModal = (\r\n location?: string,\r\n onDismis?: (didSubscribe: boolean) => void,\r\n campaignId?: string\r\n) => {\r\n if (!isModalVisible) {\r\n const containerElement = document.createElement(\"div\");\r\n document.body.appendChild(containerElement);\r\n const root = createRoot(containerElement);\r\n root.render(\r\n <SubscribeModal\r\n root={root}\r\n container={containerElement}\r\n onDismiss={(didSubscribe: boolean) => {\r\n isModalVisible = false;\r\n if (onDismis) {\r\n onDismis(didSubscribe);\r\n }\r\n }}\r\n location={location}\r\n campaignId={campaignId}\r\n />\r\n );\r\n\r\n isModalVisible = true;\r\n }\r\n};\r\n","/* eslint-disable @typescript-eslint/ban-types */\r\n/* eslint-disable @typescript-eslint/no-unused-vars */\r\n/* eslint-disable no-var */\r\nimport clientConfiguration from \"./client-configuration\";\r\nimport { isNo3rdparty } from \"./util/browser-detection\";\r\n\r\nlet fbLoaded = false;\r\nlet gtmLoaded = false;\r\n\r\ndeclare const fbq: any;\r\nconst loadFb = () => {\r\n console.log(\"loadFb\");\r\n if (fbLoaded) return;\r\n (function (f: any, b: any, e: any, v: any, n?: any, t?: any, s?: any) {\r\n if (f.fbq) return;\r\n n = f.fbq = function () {\r\n n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\r\n };\r\n if (!f._fbq) f._fbq = n;\r\n n.push = n;\r\n n.loaded = !0;\r\n n.version = \"2.0\";\r\n n.queue = [];\r\n t = b.createElement(e);\r\n t.async = !0;\r\n t.src = v;\r\n s = b.getElementsByTagName(e)[0];\r\n s.parentNode.insertBefore(t, s);\r\n })(\r\n window,\r\n document,\r\n \"script\",\r\n \"https://connect.facebook.net/en_US/fbevents.js\"\r\n );\r\n fbq(\"init\", \"653644375453926\");\r\n fbq(\"track\", \"PageView\", { hostname: location.hostname });\r\n\r\n //const appId = \"603210533761694\";\r\n //const script = document.createElement(\"script\");\r\n //script.async = true;\r\n //script.crossOrigin = \"anonymous\"\r\n //script.src = `https://connect.facebook.net/da_DK/sdk.js#xfbml=1&version=v6.0&appId=${appId}&autoLogAppEvents=1`\r\n //document.getElementsByTagName(\"script\")[0].parentNode.insertBefore(script, document.getElementsByTagName(\"script\")[0]);\r\n fbLoaded = true;\r\n};\r\n\r\ninterface Window {\r\n _sp_queue: any[];\r\n _sp_: {\r\n config: {\r\n accountId: number;\r\n baseEndpoint: string;\r\n propertyHref: string;\r\n gdpr: any;\r\n events: {\r\n onMessageChoiceSelect: Function;\r\n onMessageReady: Function;\r\n onMessageChoiceError: Function;\r\n onPrivacyManagerAction: Function;\r\n onPMCancel: Function;\r\n onMessageReceiveData: Function;\r\n onSPPMObjectReady: Function;\r\n onConsentReady: (consentUUID: string, euconsent: string) => void;\r\n onError: Function;\r\n };\r\n };\r\n };\r\n}\r\n\r\ninterface SpecificConsent {\r\n purpose?: string;\r\n allowed: boolean;\r\n}\r\n\r\ninterface Concept {\r\n specificConsent: SpecificConsent[];\r\n}\r\n\r\nconst loadGtm = () => {\r\n if (gtmLoaded) return;\r\n\r\n (function (w, d, s, l, i) {\r\n w[l] = w[l] || [];\r\n w[l].push({\r\n \"gtm.start\": new Date().getTime(),\r\n event: \"gtm.js\",\r\n });\r\n const f = d.getElementsByTagName(s)[0],\r\n j: any = d.createElement(s),\r\n dl = l != \"dataLayer\" ? \"&l=\" + l : \"\";\r\n j.async = true;\r\n j.src = \"https://www.googletagmanager.com/gtm.js?id=\" + i + dl;\r\n f.parentNode!.insertBefore(j, f);\r\n })(window, document, \"script\", \"dataLayer\", clientConfiguration.gtmId);\r\n gtmLoaded = true;\r\n};\r\n\r\nfunction generateDeferredPromise() {\r\n let resolve, reject;\r\n const promise = new Promise((res, rej) => {\r\n [resolve, reject] = [res, rej];\r\n });\r\n return { promise, reject, resolve };\r\n}\r\n\r\nconst { promise, resolve } = generateDeferredPromise();\r\n\r\nexport const cookieDecision = promise;\r\n\r\ndeclare const concept: Concept;\r\n\r\ndeclare const window: Window;\r\n\r\nwindow._sp_queue = [];\r\nwindow._sp_ = {\r\n config: {\r\n accountId: 1423,\r\n baseEndpoint: \"https://cdn.privacy-mgmt.com\",\r\n propertyHref: \"https://vores.dk\",\r\n gdpr: {},\r\n events: {\r\n onMessageChoiceSelect: function () {\r\n //console.log(\"[event] onMessageChoiceSelect\", arguments);\r\n },\r\n onMessageReady: function () {\r\n //console.log(\"[event] onMessageReady\", arguments);\r\n },\r\n onMessageChoiceError: function () {\r\n //console.log(\"[event] onMessageChoiceError\", arguments);\r\n },\r\n onPrivacyManagerAction: function () {\r\n //console.log(\"[event] onPrivacyManagerAction\", arguments);\r\n },\r\n onPMCancel: function () {\r\n //console.log(\"[event] onPMCancel\", arguments);\r\n },\r\n onMessageReceiveData: function () {\r\n //console.log(\"[event] onMessageReceiveData\", arguments);\r\n },\r\n onSPPMObjectReady: function () {\r\n //console.log(\"[event] onSPPMObjectReady\", arguments);\r\n },\r\n onConsentReady: function (consentUUID, euconsent) {\r\n //console.log(\"[event] onConsentReady\", arguments);\r\n //console.log(consentUUID);\r\n //console.log(euconsent);\r\n\r\n const fbConsent = concept.specificConsent.find(\r\n (c) => c.purpose === \"Measure content performance\"\r\n );\r\n\r\n if (fbConsent) {\r\n loadFb();\r\n }\r\n\r\n //Always load gtm\r\n if (!isNo3rdparty()) {\r\n loadGtm();\r\n }\r\n\r\n resolve();\r\n },\r\n onError: function () {\r\n //console.log(\"[event] onError\", arguments);\r\n },\r\n },\r\n },\r\n};\r\n\r\n// loadGtm();\r\n\r\nconst script = document.createElement(\"script\");\r\nscript.src =\r\n \"https://cdn.privacy-mgmt.com/unified/wrapperMessagingWithoutDetection.js\";\r\nscript.async = true;\r\ndocument.head.appendChild(script);\r\n","import digest from '../runtime/digest.js';\nexport const encoder = new TextEncoder();\nexport const decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nexport function concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n buffers.forEach((buffer) => {\n buf.set(buffer, i);\n i += buffer.length;\n });\n return buf;\n}\nexport function p2s(alg, p2sInput) {\n return concat(encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nexport function uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nexport function uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nexport function lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nexport async function concatKdf(secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n const res = new Uint8Array(iterations * 32);\n for (let iter = 0; iter < iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter + 1));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n res.set(await digest('sha256', buf), iter * 32);\n }\n return res.slice(0, bits >> 3);\n}\n","export class JOSEError extends Error {\n static get code() {\n return 'ERR_JOSE_GENERIC';\n }\n constructor(message) {\n super(message);\n this.code = 'ERR_JOSE_GENERIC';\n this.name = this.constructor.name;\n Error.captureStackTrace?.(this, this.constructor);\n }\n}\nexport class JWTClaimValidationFailed extends JOSEError {\n static get code() {\n return 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JWTExpired extends JOSEError {\n static get code() {\n return 'ERR_JWT_EXPIRED';\n }\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = 'ERR_JWT_EXPIRED';\n this.claim = claim;\n this.reason = reason;\n }\n}\nexport class JOSEAlgNotAllowed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n static get code() {\n return 'ERR_JOSE_ALG_NOT_ALLOWED';\n }\n}\nexport class JOSENotSupported extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JOSE_NOT_SUPPORTED';\n }\n static get code() {\n return 'ERR_JOSE_NOT_SUPPORTED';\n }\n}\nexport class JWEDecryptionFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_DECRYPTION_FAILED';\n this.message = 'decryption operation failed';\n }\n static get code() {\n return 'ERR_JWE_DECRYPTION_FAILED';\n }\n}\nexport class JWEInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWE_INVALID';\n }\n static get code() {\n return 'ERR_JWE_INVALID';\n }\n}\nexport class JWSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_INVALID';\n }\n static get code() {\n return 'ERR_JWS_INVALID';\n }\n}\nexport class JWTInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWT_INVALID';\n }\n static get code() {\n return 'ERR_JWT_INVALID';\n }\n}\nexport class JWKInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWK_INVALID';\n }\n static get code() {\n return 'ERR_JWK_INVALID';\n }\n}\nexport class JWKSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_INVALID';\n }\n static get code() {\n return 'ERR_JWKS_INVALID';\n }\n}\nexport class JWKSNoMatchingKey extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_NO_MATCHING_KEY';\n this.message = 'no applicable key found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_NO_MATCHING_KEY';\n }\n}\nexport class JWKSMultipleMatchingKeys extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n this.message = 'multiple matching keys found in the JSON Web Key Set';\n }\n static get code() {\n return 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\n }\n}\nSymbol.asyncIterator;\nexport class JWKSTimeout extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWKS_TIMEOUT';\n this.message = 'request timed out';\n }\n static get code() {\n return 'ERR_JWKS_TIMEOUT';\n }\n}\nexport class JWSSignatureVerificationFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n this.message = 'signature verification failed';\n }\n static get code() {\n return 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\n }\n}\n","export default crypto;\nexport const isCryptoKey = (key) => key instanceof CryptoKey;\n","import fetchJwks from '../runtime/fetch_jwks.js';\nimport { JWKSInvalid, JWKSNoMatchingKey } from '../util/errors.js';\nimport { isJWKSLike, LocalJWKSet } from './local.js';\nfunction isCloudflareWorkers() {\n return (typeof WebSocketPair !== 'undefined' ||\n (typeof navigator !== 'undefined' && navigator.userAgent === 'Cloudflare-Workers') ||\n (typeof EdgeRuntime !== 'undefined' && EdgeRuntime === 'vercel'));\n}\nlet USER_AGENT;\nif (typeof navigator === 'undefined' || !navigator.userAgent?.startsWith?.('Mozilla/5.0 ')) {\n const NAME = 'jose';\n const VERSION = 'v5.2.0';\n USER_AGENT = `${NAME}/${VERSION}`;\n}\nclass RemoteJWKSet extends LocalJWKSet {\n constructor(url, options) {\n super({ keys: [] });\n this._jwks = undefined;\n if (!(url instanceof URL)) {\n throw new TypeError('url must be an instance of URL');\n }\n this._url = new URL(url.href);\n this._options = { agent: options?.agent, headers: options?.headers };\n this._timeoutDuration =\n typeof options?.timeoutDuration === 'number' ? options?.timeoutDuration : 5000;\n this._cooldownDuration =\n typeof options?.cooldownDuration === 'number' ? options?.cooldownDuration : 30000;\n this._cacheMaxAge = typeof options?.cacheMaxAge === 'number' ? options?.cacheMaxAge : 600000;\n }\n coolingDown() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cooldownDuration\n : false;\n }\n fresh() {\n return typeof this._jwksTimestamp === 'number'\n ? Date.now() < this._jwksTimestamp + this._cacheMaxAge\n : false;\n }\n async getKey(protectedHeader, token) {\n if (!this._jwks || !this.fresh()) {\n await this.reload();\n }\n try {\n return await super.getKey(protectedHeader, token);\n }\n catch (err) {\n if (err instanceof JWKSNoMatchingKey) {\n if (this.coolingDown() === false) {\n await this.reload();\n return super.getKey(protectedHeader, token);\n }\n }\n throw err;\n }\n }\n async reload() {\n if (this._pendingFetch && isCloudflareWorkers()) {\n this._pendingFetch = undefined;\n }\n const headers = new Headers(this._options.headers);\n if (USER_AGENT && !headers.has('User-Agent')) {\n headers.set('User-Agent', USER_AGENT);\n this._options.headers = Object.fromEntries(headers.entries());\n }\n this._pendingFetch || (this._pendingFetch = fetchJwks(this._url, this._timeoutDuration, this._options)\n .then((json) => {\n if (!isJWKSLike(json)) {\n throw new JWKSInvalid('JSON Web Key Set malformed');\n }\n this._jwks = { keys: json.keys };\n this._jwksTimestamp = Date.now();\n this._pendingFetch = undefined;\n })\n .catch((err) => {\n this._pendingFetch = undefined;\n throw err;\n }));\n await this._pendingFetch;\n }\n}\nexport function createRemoteJWKSet(url, options) {\n const set = new RemoteJWKSet(url, options);\n return async function (protectedHeader, token) {\n return set.getKey(protectedHeader, token);\n };\n}\n","import crypto from './webcrypto.js';\nexport default crypto.getRandomValues.bind(crypto);\n","import { encode as base64url } from '../../runtime/base64url.js';\nimport encrypt from '../../runtime/encrypt.js';\nimport generateIv from '../../lib/iv.js';\nimport encryptKeyManagement from '../../lib/encrypt_key_management.js';\nimport { JOSENotSupported, JWEInvalid } from '../../util/errors.js';\nimport isDisjoint from '../../lib/is_disjoint.js';\nimport { encoder, decoder, concat } from '../../lib/buffer_utils.js';\nimport validateCrit from '../../lib/validate_crit.js';\nexport const unprotected = Symbol();\nexport class FlattenedEncrypt {\n constructor(plaintext) {\n if (!(plaintext instanceof Uint8Array)) {\n throw new TypeError('plaintext must be an instance of Uint8Array');\n }\n this._plaintext = plaintext;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n if (this._sharedUnprotectedHeader) {\n throw new TypeError('setSharedUnprotectedHeader can only be called once');\n }\n this._sharedUnprotectedHeader = sharedUnprotectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n setAdditionalAuthenticatedData(aad) {\n this._aad = aad;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n async encrypt(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {\n throw new JWEInvalid('either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()');\n }\n if (!isDisjoint(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {\n throw new JWEInvalid('JWE Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...this._sharedUnprotectedHeader,\n };\n validateCrit(JWEInvalid, new Map(), options?.crit, this._protectedHeader, joseHeader);\n if (joseHeader.zip !== undefined) {\n throw new JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported.');\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n }\n let encryptedKey;\n if (alg === 'dir') {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey cannot be called when using Direct Encryption');\n }\n }\n else if (alg === 'ECDH-ES') {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey cannot be called when using Direct Key Agreement');\n }\n }\n let cek;\n {\n let parameters;\n ({ cek, encryptedKey, parameters } = await encryptKeyManagement(alg, enc, key, this._cek, this._keyManagementParameters));\n if (parameters) {\n if (options && unprotected in options) {\n if (!this._unprotectedHeader) {\n this.setUnprotectedHeader(parameters);\n }\n else {\n this._unprotectedHeader = { ...this._unprotectedHeader, ...parameters };\n }\n }\n else {\n if (!this._protectedHeader) {\n this.setProtectedHeader(parameters);\n }\n else {\n this._protectedHeader = { ...this._protectedHeader, ...parameters };\n }\n }\n }\n }\n this._iv || (this._iv = generateIv(enc));\n let additionalData;\n let protectedHeader;\n let aadMember;\n if (this._protectedHeader) {\n protectedHeader = encoder.encode(base64url(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = encoder.encode('');\n }\n if (this._aad) {\n aadMember = base64url(this._aad);\n additionalData = concat(protectedHeader, encoder.encode('.'), encoder.encode(aadMember));\n }\n else {\n additionalData = protectedHeader;\n }\n const { ciphertext, tag } = await encrypt(enc, this._plaintext, cek, this._iv, additionalData);\n const jwe = {\n ciphertext: base64url(ciphertext),\n iv: base64url(this._iv),\n tag: base64url(tag),\n };\n if (encryptedKey) {\n jwe.encrypted_key = base64url(encryptedKey);\n }\n if (aadMember) {\n jwe.aad = aadMember;\n }\n if (this._protectedHeader) {\n jwe.protected = decoder.decode(protectedHeader);\n }\n if (this._sharedUnprotectedHeader) {\n jwe.unprotected = this._sharedUnprotectedHeader;\n }\n if (this._unprotectedHeader) {\n jwe.header = this._unprotectedHeader;\n }\n return jwe;\n }\n}\n","import { decode as base64url } from './base64url.js';\nimport { decoder } from '../lib/buffer_utils.js';\nimport isObject from '../lib/is_object.js';\nimport { JWTInvalid } from './errors.js';\nexport function decodeJwt(jwt) {\n if (typeof jwt !== 'string')\n throw new JWTInvalid('JWTs must use Compact JWS serialization, JWT must be a string');\n const { 1: payload, length } = jwt.split('.');\n if (length === 5)\n throw new JWTInvalid('Only JWTs using Compact JWS serialization can be decoded');\n if (length !== 3)\n throw new JWTInvalid('Invalid JWT');\n if (!payload)\n throw new JWTInvalid('JWTs must contain a payload');\n let decoded;\n try {\n decoded = base64url(payload);\n }\n catch {\n throw new JWTInvalid('Failed to base64url decode the payload');\n }\n let result;\n try {\n result = JSON.parse(decoder.decode(decoded));\n }\n catch {\n throw new JWTInvalid('Failed to parse the decoded payload as JSON');\n }\n if (!isObject(result))\n throw new JWTInvalid('Invalid JWT Claims Set');\n return result;\n}\n","import { encoder, decoder } from '../lib/buffer_utils.js';\nexport const encodeBase64 = (input) => {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < unencoded.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE)));\n }\n return btoa(arr.join(''));\n};\nexport const encode = (input) => {\n return encodeBase64(input).replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nexport const decodeBase64 = (encoded) => {\n const binary = atob(encoded);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i++) {\n bytes[i] = binary.charCodeAt(i);\n }\n return bytes;\n};\nexport const decode = (input) => {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, '');\n try {\n return decodeBase64(encoded);\n }\n catch {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n};\n","function isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nexport default function isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n","import { useFormik } from \"formik\";\r\nimport React, { } from \"react\";\r\nimport { Button, Form } from \"react-bootstrap\";\r\nimport { Schema, object, string } from \"yup\";\r\nimport voresConfiguration from \"../../client-configuration\";\r\nimport { api } from \"../../api\";\r\nimport { SubscribeForm } from \"../../lib-api\";\r\n\r\n\r\n\r\nconst validationSchema: Schema<SubscribeForm> = object().shape({\r\n email: string().required(),\r\n name: string(),\r\n source: string()\r\n});\r\n\r\nexport const ConfirmSubscriptionForm: React.FC<{ name: string; email: string; close: (confirmed: boolean) => void }> = ({ name, email, close }) => {\r\n\r\n const { handleSubmit, isSubmitting } = useFormik<SubscribeForm>({\r\n initialValues: {\r\n email: email,\r\n name: name,\r\n source: \"Website-OneTap\"\r\n },\r\n validationSchema: validationSchema,\r\n onSubmit: async (values) => {\r\n await api.subscribeToNewsletter(values, \"one-tap\");\r\n close(true);\r\n }\r\n })\r\n\r\n return (\r\n <Form onSubmit={handleSubmit}>\r\n <Form.Group>\r\n <p>\r\n Hej {name}<br />\r\n <br />\r\n Du modtager fremover nyhedsbrevet for {voresConfiguration.site.name}. Nyhedsbrevet er gratis, og kan til enhver tid afmeldes.\r\n </p>\r\n </Form.Group>\r\n <Form.Group>\r\n <Form.Text className=\"font-weight-light\">\r\n Nyhedsbrevet kan indeholde tilbud fra lokale erhvervsdrivende, og partnere. \r\n <a href=\"https://voresdigital.dk/privatlivspolitik/\" target=\"_blank\" className=\"text-primary\" rel=\"noreferrer\">Læs brugerbetingelser</a>\r\n </Form.Text>\r\n </Form.Group>\r\n <Form.Group className=\"d-flex justify-content-between mt-4\">\r\n <Button className=\"mr-3\" variant=\"outline-primary\" onClick={() => close(false)}>\r\n Afmeld\r\n </Button>\r\n <Button type=\"submit\" disabled={isSubmitting} className=\"px-5\">\r\n OK\r\n </Button>\r\n </Form.Group>\r\n </Form>\r\n );\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport { Modal } from \"react-bootstrap\";\r\nimport { ConfirmSubscriptionForm } from \"../forms/confirm-subscription-form\";\r\n\r\n\r\nexport const ConfirmSubscriptionModal: React.FC<{ name: string; email: string; onDecision: (confirmed: boolean) => void }> = ({ name, email, onDecision }) => {\r\n const [show, setShow] = useState(true);\r\n\r\n const handleClose = useCallback((confirmed: boolean) => {\r\n setShow(false);\r\n onDecision(confirmed);\r\n }, [setShow]);\r\n\r\n return (\r\n <Modal size=\"sm\" show={show} onHide={() => handleClose(false)} backdrop=\"static\">\r\n <Modal.Header closeButton>\r\n <Modal.Title>Bekræft tilmelding</Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body>\r\n <ConfirmSubscriptionForm name={name} email={email} close={handleClose} />\r\n </Modal.Body>\r\n </Modal>\r\n );\r\n};\r\n","import { Cookie, CookieKeys } from \"../util/cookie\";\r\n\r\nlet _firstPageView = true;\r\nif (Cookie.get(CookieKeys.IsNewVisitor) == \"false\") {\r\n _firstPageView = false;\r\n}\r\nCookie.set(CookieKeys.IsNewVisitor, \"false\", { expires: 365 });\r\n\r\nexport const isFirstPageView = () => {\r\n return _firstPageView;\r\n}","import { cookieDecision } from \"../../cookieconsent\";\r\nimport { Cookie, CookieKeys } from \"../../util/cookie\";\r\nimport { loadOneTap } from \"./one-tap/google-one-tap\";\r\nimport { showSubscribeModal } from \"../../components/subscribe-modal\";\r\nimport { isFirstPageView } from \"../../util/is-first-page-view\";\r\n\r\n\r\nconst shouldSuppress = Cookie.get(CookieKeys.SuppressSlideUp) == \"true\";\r\nconst alreadySubscribed = (Cookie.get(CookieKeys.EmailSubscribed) == \"true\");\r\nconst query = new URLSearchParams(window.location.search);\r\nconst forceShow = query.get(\"showsub\") !== null;\r\n//const previewId = query.get(\"id\");\r\n\r\ncookieDecision.then(() => {\r\n if (forceShow) {\r\n return showSubscribeModal();\r\n }\r\n\r\n if (!shouldSuppress && !alreadySubscribed) {\r\n if (isFirstPageView()) {\r\n loadOneTap();\r\n }\r\n else {\r\n setTimeout(() => {\r\n showSubscribeModal();\r\n }, 16 * 1000);\r\n }\r\n }\r\n});\r\n\r\n\r\n","import React from \"react\";\r\nimport * as jose from 'jose';\r\nimport { createRoot } from \"react-dom/client\";\r\nimport { JWTPayload } from \"jose\";\r\nimport { trackGaEvent } from \"../../../util/gtm\";\r\nimport voresConfiguration from \"../../../client-configuration\";\r\nimport { Cookie, CookieKeys } from \"../../../util/cookie\";\r\nimport { ConfirmSubscriptionModal } from \"../../../components/email-subscription/confirm-subscription-modal\";\r\n\r\nconst loadModal = (name: string, email: string) => {\r\n const container = document.createElement(\"div\");\r\n container.id = \"onetap-subscribe-modal\";\r\n\r\n const root = createRoot(container);\r\n\r\n const onDecision = (confirmed: boolean) => {\r\n trackGaEvent(\"on_one_tap\", {\r\n action: confirmed ? \"confirm_subscription\" : \"deny_subscription\"\r\n });\r\n\r\n root.unmount();\r\n\r\n Cookie.set(CookieKeys.SuppressSlideUp, \"true\", { expires: 3 });\r\n }\r\n\r\n root.render(<ConfirmSubscriptionModal name={name} email={email} onDecision={onDecision} />);\r\n\r\n document.body.appendChild(container);\r\n\r\n trackGaEvent(\"on_one_tap\", {\r\n action: \"show_confirm_modal\"\r\n });\r\n}\r\n\r\nexport const loadOneTap = () => {\r\n const scriptSrc = \"https://accounts.google.com/gsi/client\";\r\n\r\n const scriptElement = document.createElement(\"script\");\r\n scriptElement.defer = true;\r\n scriptElement.async = true;\r\n\r\n const handleCredentialResponse = (e) => {\r\n const data = jose.decodeJwt(e.credential) as JWTPayload & { given_name: string; email: string };\r\n loadModal(data.given_name, data.email);\r\n\r\n }\r\n\r\n scriptElement.onload = () => {\r\n window.google?.accounts?.id?.initialize({\r\n client_id: voresConfiguration.googleSignInClientId,\r\n callback: handleCredentialResponse,\r\n context: \"use\",\r\n cancel_on_tap_outside: false,\r\n use_fedcm_for_prompt: true\r\n });\r\n window.google?.accounts?.id?.prompt((moment) => {\r\n console.log(moment);\r\n });\r\n\r\n trackGaEvent(\"on_one_tap\", {\r\n action: \"prompt\"\r\n });\r\n }\r\n\r\n scriptElement.src = scriptSrc;\r\n document.body.appendChild(scriptElement);\r\n}\r\n\r\n\r\n\r\n","declare const window: {\r\n fbq: any;\r\n};\r\n\r\nexport function trackEventFbLead(\r\n category?: any\r\n) {\r\n if (\"fbq\" in window) {\r\n window.fbq('track', \"Lead\", { content_category: category });\r\n }\r\n}","declare const window: {\r\n dataLayer: any[];\r\n};\r\n\r\n/* If you add new ones here. Remeber to add them in Google Tag Manager GA4 Event Tag */\r\ntype validEvents =\r\n | \"on_cookie_consent\"\r\n | \"on_company_contact\"\r\n | \"on_facebook_carousel_clicked\"\r\n | \"on_shared_with_friend\"\r\n | \"on_content_task_feedback\"\r\n | \"on_newsletter_subscribe\"\r\n | \"on_external_link_clicked\"\r\n | \"on_questionnaire_submitted\"\r\n | \"on_one_tap\"\r\n | \"on_kpi\"\r\n | \"lead_generated\";\r\n\r\n/* If you add new ones here. Remeber to add them in Google Tag Manager GA4 Event Tag, And in CustomDefinitions IN GA4 */\r\ntype validParameters =\r\n | \"in_section\"\r\n | \"action\"\r\n | \"href\"\r\n | \"variant\"\r\n | \"lead_type\"\r\n | \"customer_id\"\r\n | \"customer_name\"\r\n | \"user_data\";\r\n\r\ntype validUserData = \"email\" | \"phone\" | \"zip\" | \"city\" | \"country\";\r\n\r\nexport function trackGaEvent(\r\n type: validEvents,\r\n parameters?: { [key in validParameters]?: string | number },\r\n userData?: { [key in validUserData]?: string | number },\r\n callback?: (id: string) => void\r\n) {\r\n window.dataLayer = window.dataLayer || [];\r\n //convert parameter keys to dlv_* for Tag Manager.\r\n const convertedParams = convertParams(parameters);\r\n\r\n const event: any = {\r\n event: type,\r\n ...convertedParams,\r\n };\r\n\r\n if (userData) {\r\n event.user_data = userData;\r\n }\r\n\r\n if (callback) {\r\n event.eventCallback = callback;\r\n }\r\n\r\n window.dataLayer.push(event);\r\n}\r\n\r\n/* If you add new ones here. Remeber to add them in Google Tag Manager GA4 DLV */\r\ntype validDataLayerVariables = \"page_type\" | \"category\";\r\n\r\nexport function setDataLayerVariables(parameters: {\r\n [key in validDataLayerVariables]?: string | number;\r\n}) {\r\n window.dataLayer = window.dataLayer || [];\r\n //convert parameter keys to dlv_* for Tag Manager.\r\n const convertedParams = convertParams(parameters);\r\n window.dataLayer.push({\r\n ...convertedParams,\r\n });\r\n}\r\n\r\nfunction convertParams(parameters?: { [key: string]: string | number }) {\r\n return parameters\r\n ? Object.fromEntries(\r\n Object.entries(parameters).map(([key, value]) => [`dlv_${key}`, value])\r\n )\r\n : {};\r\n}\r\n\r\nexport function trackVirtualPageView(url: string) {\r\n window.dataLayer = window.dataLayer || [];\r\n window.dataLayer.push({\r\n event: \"GAVirtualPageView\",\r\n virtualPageUrl: url,\r\n });\r\n}\r\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n"],"names":["_subscribeToNewsletter","subscriptionApi","SubscriptionApi","apiConfiguration","api","subscribeToNewsletter","values","location","apiSubscriptionsPut","subscribeForm","Cookies","set","CookieKeys","EmailSubscribed","expires","trackGaEvent","in_section","email","city","clientConfiguration","site","name","country","trackEventFbLead","_x","_x2","apply","arguments","SubmitState","EmailSubscribeForm","props","_onSubmit","submitState","setSubmitState","useState","None","errors","isSubmitting","handleChange","handleSubmit","submitForm","useFormik","initialValues","validationSchema","object","string","required","max","onSubmit","Submitted","onSubscribed","e","Error","React","Form","Group","controlId","Label","srOnly","Control","isInvalid","type","placeholder","value","disabled","onChange","autoFocus","hasAutofocus","Button","variant","block","className","onClick","SlideUpContainer","styled","position","zIndex","left","right","top","transition","pointerEvents","BoxContainer","div","margin","maxWidth","SlideUpBox","backgroundColor","border","marginLeft","marginRight","CornerIcon","borderRadius","color","padding","fontSize","textAlign","CampaignApi","getPreview","_ref","_asyncToGenerator","id","getCampaignBookingAsync","SubscribeModal","shown","setShown","detach","didSubscribe","_props$container$pare","root","unmount","container","parentNode","removeChild","SuppressSlideUp","onDismiss","campaign","setCampaign","useEffect","campaignId","result","style","transform","stopPropagation","dangerouslySetInnerHTML","__html","prize","opacity","title","body","setTimeout","isModalVisible","showSubscribeModal","onDismis","containerElement","document","createElement","appendChild","createRoot","render","fbLoaded","gtmLoaded","promise","resolve","reject","Promise","res","rej","generateDeferredPromise","cookieDecision","window","_sp_queue","_sp_","config","accountId","baseEndpoint","propertyHref","gdpr","events","onMessageChoiceSelect","onMessageReady","onMessageChoiceError","onPrivacyManagerAction","onPMCancel","onMessageReceiveData","onSPPMObjectReady","onConsentReady","consentUUID","euconsent","f","b","n","t","s","concept","specificConsent","find","c","purpose","console","log","fbq","callMethod","queue","push","_fbq","loaded","version","async","src","getElementsByTagName","insertBefore","hostname","isNo3rdparty","w","d","l","i","Date","getTime","event","j","gtmId","onError","script","head","TextEncoder","TextDecoder","code","constructor","message","super","this","captureStackTrace","Symbol","asyncIterator","USER_AGENT","getRandomValues","bind","navigator","userAgent","startsWith","decodeJwt","jwt","payload","length","split","decoded","input","encoded","Uint8Array","decode","replace","binary","atob","bytes","charCodeAt","TypeError","JSON","parse","Object","prototype","toString","call","getPrototypeOf","proto","shape","source","ConfirmSubscriptionForm","close","voresConfiguration","Text","href","target","rel","ConfirmSubscriptionModal","onDecision","show","setShow","handleClose","useCallback","confirmed","Modal","size","onHide","backdrop","Header","closeButton","Title","Body","_firstPageView","Cookie","get","IsNewVisitor","shouldSuppress","alreadySubscribed","forceShow","URLSearchParams","search","then","loadOneTap","scriptElement","defer","handleCredentialResponse","data","jose","credential","loadModal","action","given_name","onload","_window$google","_window$google2","google","accounts","initialize","client_id","googleSignInClientId","callback","context","cancel_on_tap_outside","use_fedcm_for_prompt","prompt","moment","category","content_category","parameters","userData","dataLayer","_objectSpread","fromEntries","entries","map","key","concat","convertParams","user_data","eventCallback","toPropertyKey","definePropertyModule","createPropertyDescriptor","module","exports","propertyKey","$","iterate","createProperty","stat","iterable","obj","k","v","AS_ENTRIES"],"sourceRoot":""}