{"version":3,"file":"111-625c99dc77209ba2e3cc.js","mappings":"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","sources":["webpack://voresby.web/./Scripts/components/map/business-vip-map.tsx","webpack://voresby.web/./Scripts/components/map/leaflet-extended.css?6808","webpack://voresby.web/./Scripts/components/map/default-map.tsx","webpack://voresby.web/./Scripts/util/gtm.ts","webpack://voresby.web/./Scripts/components/map/leaflet-extended.css"],"sourcesContent":["import React, { useLayoutEffect, useState } from \"react\";\r\nimport { createRoot } from \"react-dom/client\";\r\nimport { DefaultMap, DefaultMarker } from \"./default-map\";\r\n\r\nconst BusinessVipMap: React.FC<{\r\n name: string;\r\n address: string;\r\n zipcode: string;\r\n city: string;\r\n latitude: number;\r\n longitude: number;\r\n}> = (props) => {\r\n const [markers, setMarkers] = useState();\r\n\r\n useLayoutEffect(() => {\r\n const marker: DefaultMarker[] = [\r\n {\r\n data: [props.name, props.address, `${props.zipcode} ${props.city}`],\r\n position: [props.latitude, props.longitude],\r\n url: \"\",\r\n },\r\n ];\r\n\r\n setMarkers(marker);\r\n }, []);\r\n\r\n return (\r\n <>\r\n {markers && markers.length > 0 && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst elements = document.getElementsByTagName(\"business-vip-map\");\r\nif (elements.length == 1) {\r\n const element = elements[0];\r\n const root = createRoot(element);\r\n root.render(\r\n \r\n );\r\n}\r\n","\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./leaflet-extended.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/sass-loader/dist/cjs.js!./leaflet-extended.css\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useCallback } from \"react\";\r\nimport { Button } from \"react-bootstrap\";\r\nimport { MapContainer, TileLayer, Marker, Popup } from \"react-leaflet\";\r\nimport { divIcon, LatLngExpression } from \"leaflet\";\r\nimport \"leaflet/dist/leaflet.css\";\r\nimport \"./leaflet-extended.css\";\r\nimport { trackGaEvent } from \"../../util/gtm\";\r\n\r\nexport interface DefaultMarker {\r\n position: LatLngExpression;\r\n data: string[];\r\n url: string;\r\n}\r\n\r\nconst generateIcon = () => {\r\n return divIcon({\r\n iconAnchor: [18, 45],\r\n iconSize: [35, 45],\r\n html: \"\",\r\n });\r\n};\r\n\r\nconst generateMarkers = (item: DefaultMarker, index: number): JSX.Element => (\r\n \r\n \r\n \r\n {item.data.map((item, i) => (\r\n
\r\n {item}\r\n
\r\n
\r\n ))}\r\n
\r\n \r\n);\r\n\r\nexport const DefaultMap: React.FC<{\r\n markers?: DefaultMarker[];\r\n latitude: number;\r\n longitude: number;\r\n}> = (props) => {\r\n //const navUrl = `https://www.google.com/maps/search/?api=1&query=${props.latitude},${props.longitude}`;\r\n const navUrl = `https://www.google.com/maps/dir/?api=1&destination=${props.latitude},${props.longitude}`;\r\n\r\n const trackKpi = useCallback(() => {\r\n trackGaEvent(\"on_kpi\", {\r\n action: \"click_map\"\r\n });\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n {props.markers && <>{props.markers.map(generateMarkers)}}\r\n \r\n \r\n Rutevejledning\r\n \r\n
\r\n );\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","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./marker-red-35.png\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_0___});background-color:transparent;border:none;display:flex;justify-content:center}.leaflet-marker-icon.leaflet-interactive,.leaflet-image-layer.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive span{height:fit-content;color:#fff;padding-top:5px}.leaflet-popup-content p{margin:0px}.leaflet-container{z-index:0}\n`, \"\",{\"version\":3,\"sources\":[\"webpack://./Scripts/components/map/leaflet-extended.css\"],\"names\":[],\"mappings\":\"AACA,6HAGC,wDAA0C,CAC1C,4BAA6B,CAC7B,WAAY,CACZ,YAAa,CACb,sBAAuB,CACvB,kIAIC,kBAAmB,CACnB,UAAW,CACX,eAAgB,CACjB,yBAEC,UAAW,CACZ,mBAEC,SAAU\",\"sourcesContent\":[\"/* Default icon URLs */\\r\\n.leaflet-marker-icon.leaflet-interactive,\\r\\n.leaflet-image-layer.leaflet-interactive,\\r\\n.leaflet-pane > svg path.leaflet-interactive {\\r\\n\\tbackground-image: url(./marker-red-35.png);\\r\\n\\tbackground-color: transparent;\\r\\n\\tborder: none;\\r\\n\\tdisplay: flex;\\r\\n\\tjustify-content: center;\\r\\n}\\r\\n.leaflet-marker-icon.leaflet-interactive,\\r\\n.leaflet-image-layer.leaflet-interactive,\\r\\n.leaflet-pane > svg path.leaflet-interactive span {\\r\\n height: fit-content;\\r\\n color: #fff;\\r\\n padding-top: 5px;\\r\\n}\\r\\n.leaflet-popup-content p {\\r\\n margin: 0px;\\r\\n}\\r\\n.leaflet-container{\\r\\n z-index: 0;\\r\\n}\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["BusinessVipMap","props","markers","setMarkers","useState","useLayoutEffect","marker","data","name","address","concat","zipcode","city","position","latitude","longitude","url","React","length","DefaultMap","elements","document","getElementsByTagName","element","createRoot","render","getAttribute","valueOf","Number","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","generateMarkers","item","index","Marker","key","icon","divIcon","iconAnchor","iconSize","html","Popup","href","style","textDecoration","map","i","navUrl","trackKpi","useCallback","trackGaEvent","action","className","MapContainer","center","zoom","scrollWheelZoom","height","TileLayer","attribution","Button","variant","size","target","onClick","type","parameters","userData","callback","window","dataLayer","event","_objectSpread","Object","fromEntries","entries","_ref","value","convertParams","user_data","eventCallback","push","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","module","id"],"sourceRoot":""}