{"version":3,"file":"email-subscribe-abc3e1fdeab5ed694b31.js","mappings":"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","sources":["webpack://voresby.web/./Scripts/api/index.ts","webpack://voresby.web/./Scripts/components/email-subscribe.tsx","webpack://voresby.web/./Scripts/components/forms/email-subscribe-form.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 React from \"react\";\r\nimport { EmailSubscribeForm } from \"./forms/email-subscribe-form\";\r\nimport { createRoot } from \"react-dom/client\";\r\n\r\nconst EmailSubscribe = (props: {\r\n location: string;\r\n headline?: string;\r\n onSubscribed?: () => void;\r\n mini?: boolean;\r\n}) => {\r\n return (\r\n
\r\n
{props.headline || \"Få lokale nyheder GRATIS\"}
\r\n \r\n
\r\n );\r\n};\r\n\r\nconst emailSignupWidgets = document.getElementsByTagName(\"email-signup-widget\");\r\n\r\nfor (let i = 0; i < emailSignupWidgets.length; i++) {\r\n const element = emailSignupWidgets.item(i) as HTMLElement;\r\n const location = element.dataset.location;\r\n const root = createRoot(element);\r\n root.render(\r\n \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({\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
\r\n {submitState != SubmitState.Submitted && (\r\n
\r\n \r\n Email\r\n \r\n \r\n \r\n Tilmeld\r\n \r\n \r\n )}\r\n {submitState == SubmitState.Error && (\r\n
\r\n Ups, der opstod en fejl.\r\n
\r\n submitForm()}>\r\n Prøv igen...\r\n \r\n
\r\n )}\r\n {submitState == SubmitState.Submitted && (\r\n
Tak for din tilmelding.
\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","EmailSubscribe","props","React","className","headline","EmailSubscribeForm","onSubscribed","hasAutofocus","emailSignupWidgets","document","getElementsByTagName","i","length","element","item","dataset","createRoot","render","SubmitState","_onSubmit","submitState","setSubmitState","useState","None","errors","isSubmitting","handleChange","handleSubmit","submitForm","useFormik","initialValues","validationSchema","object","string","required","max","onSubmit","Submitted","e","Error","Form","Group","controlId","Label","srOnly","Control","isInvalid","type","placeholder","value","disabled","onChange","autoFocus","Button","variant","block","onClick","category","window","fbq","content_category","parameters","userData","callback","dataLayer","event","_objectSpread","Object","fromEntries","entries","map","_ref","key","concat","convertParams","user_data","eventCallback","push","toPropertyKey","definePropertyModule","createPropertyDescriptor","module","exports","propertyKey","f","$","iterate","createProperty","target","stat","iterable","obj","k","v","AS_ENTRIES"],"sourceRoot":""}