{
  "version": 3,
  "sources": ["framer:toplevel:framer:toplevel/default/0"],
  "sourcesContent": ["\n        import * as React from \"react\"\n        import * as ReactDOM from \"react-dom/client\"\n        import * as Framer from \"framer\"\n\n        window.__framer_importFromPackage = (packageAndFilename, exportIdentifier) => () => {\n            return React.createElement(Framer.ErrorPlaceholder, { error: 'Package component not supported: \"' + exportIdentifier + '\" in \"' + packageAndFilename + '\"' })\n        }\n\n        // A lot of libraries assume process.env.NODE_ENV is present in runtime/buildtime, so we are polyfilling it\n        window.process = {\n            ...window.process,\n            env: {\n                ...(window.process ? window.process.env: undefined),\n                NODE_ENV: \"production\"\n            }\n        }\n\n        // Fallback support for stack gaps\n        Framer.installFlexboxGapWorkaroundIfNeeded()\n\n        ;(async () => {\n            const routes = {augiA20Il: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/y1N2jkCSoIznw2Yz59EK/4SzNPzW8p2wocng4p01q/augiA20Il.js\")), path: \"/\"}, BLeMZC9d8: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/HBH6Lr9GEwR4xaXT8efe/3TQ642mtlbYXTimksH6z/BLeMZC9d8.js\")), path: \"/premium\"}, A7n36Fr_l: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/14u5ASCV7voZeclUZyVJ/h6hGjeZ3chAm2q7Wqz19/A7n36Fr_l.js\")), path: \"/standard\"}, baP8edAEZ: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/ic387twq2urbTrDK1Irp/jZHMtFIMZ9jF0cRZLIF2/baP8edAEZ.js\")), path: \"/easy\"}, FGolIUy0u: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/wTleljkWSWubtSCQSK7N/eHnV4vCx5mqnZ4Ut2T02/FGolIUy0u.js\")), path: \"/Hollantilaiset-ikkunat\"}, vaNno5QHS: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/lvEqPnSDadKTQMqD014j/NedGi76wtwFZ77RCI6HI/vaNno5QHS.js\")), path: \"/terassi-ja-ulko-ovet\"}, ADpcTs93Y: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/MVK47X8W1xlzVmtKsW7K/K11KsTrcDx5q3QADGS4Q/ADpcTs93Y.js\")), path: \"/pvc-alumiini\"}, n6dlLGRxP: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/51Aa5ne2JYVuKy9fJJly/7w20JcEHIRzf4LKSwaN1/n6dlLGRxP.js\")), path: \"/Liukuovet\"}, c5w5OWrrr: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/FlQfCeUGyhB21gOF4Gka/ZPkQ6QUAxTuEW4i7W3ws/c5w5OWrrr.js\")), path: \"/Ikkunat\"}, tW_IohXqm: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/dQonFgzzrcCpJwLVbQqd/0jBYXt5uNDZAzU1UGsNH/tW_IohXqm.js\")), path: \"/autotallin-nosto-ovet\"}, zQ58v6c21: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/rBTwh64Xyn9hS7QhrQLN/ORL1hmS4qa2BNOf1uXJt/zQ58v6c21.js\")), path: \"/kattoikkunat\"}, xi2u_g0cL: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/npxOoAeRVL4GG477W0zF/BdBe0n3bUPgVu7n27DVJ/xi2u_g0cL.js\")), path: \"/kaihtimet\"}, yAsZQCote: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/lcykGdTgvkdgahb4M8ZT/Bw795yjszrpRfUtJ5n2P/yAsZQCote.js\")), path: \"/tilaus-ja-toimitus\"}, tGRlEQ1So: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/mjuWs2kDOwuOrCOyMKSF/CFbZVj3A9zkAUSA2VhFf/tGRlEQ1So.js\")), path: \"/hinnasto\"}, HwGy_G1cL: {elements: {}, page: Framer.lazy(() => import(\"https://framerusercontent.com/modules/GGzcYlBEH6RSIy39nCTE/R6SGg12EYDd4GkIA4E9P/HwGy_G1cL.js\")), path: \"/yhteystiedot\"}}\n            const collectionUtils = {}\n            const locales = [{code: \"fi-FI\", id: \"default\", name: \"Finnish\", slug: \"\"}, {code: \"fi\", id: \"ePZyHjyGx\", name: \"Finnish\", slug: \"fi\"}]\n            const notFoundPage = Framer.lazy(() => import(\"__framer-not-found-page\"))\n            const container = document.getElementById(\"main\")\n\n            let routeId, localeId, pathVariables, shouldHydrate = false\n            if (\"framerHydrateV2\" in container.dataset) {\n                const routeData = JSON.parse(container.dataset.framerHydrateV2)\n                routeId = routeData.routeId\n                localeId = routeData.localeId\n                pathVariables = routeData.pathVariables\n                shouldHydrate = true\n            } else {\n                const routeData = Framer.inferInitialRouteFromPath(routes, decodeURIComponent(location.pathname), true, locales)\n                routeId = routeData.routeId\n                localeId = routeData.localeId\n                pathVariables = routeData.pathVariables\n            }\n\n            const route = routes[routeId]\n            const RootComponent = await route.page.preload()\n            routes[routeId].page = RootComponent\n\n            const content = React.createElement(\n                Framer.PageRoot,\n                {\n                    RootComponent,\n                    isWebsite: true,\n                    routeId,\n                    pathVariables,\n                    routes,\n                    collectionUtils,\n                    notFoundPage,\n                    isReducedMotion: undefined,\n                    localeId,\n                    locales,\n                    preserveQueryParams: undefined,\n                }\n            )\n\n            const contentWithFeaturesContext = React.createElement(\n                Framer.LibraryFeaturesProvider,\n                {\n                    children: content,\n                    value: {imgSizesWorkaroundEnabled: false}\n                }\n            )\n\n\n            const page = React.createElement(Framer.PageEffectsProvider, {\n                children: contentWithFeaturesContext,\n                value: {routes: {}}\n            })\n\n            window.__framer_events = window.__framer_events || []\n            function track() {\n                window.__framer_events.push(arguments)\n            }\n\n            function handleRecoverableError(error, { componentStack }) {\n                track(\"published_site_load_recoverable_error\", {\n                    message: String(error),\n                    stack: error instanceof Error && typeof error.stack === \"string\" ? error.stack : null,\n                    componentStack: componentStack\n                })\n\n                console.error(error)\n            }\n\n            if (shouldHydrate) {\n                React.startTransition(() => {\n                    ReactDOM.hydrateRoot(container, page, {\n                        onRecoverableError: handleRecoverableError\n                    })\n                })\n            } else {\n                ReactDOM.createRoot(container, { onRecoverableError: handleRecoverableError }).render(page)\n            }\n        })().catch(error => {\n            track(\"published_site_load_error\", {\n                message: String(error),\n                stack: error instanceof Error && typeof error.stack === \"string\" ? error.stack : null\n            })\n            throw error\n        })\n\n        \n        ;(async () => {\n            const { default: Badge } = await import(\"__framer-badge\")\n            const ContainerWithStyleAppearEffect = Framer.withStyleAppearEffect(Framer.Container)\n            React.startTransition(() => {\n                ReactDOM.createRoot(document.getElementById(\"__framer-badge-container\"))\n                    .render(React.createElement(ContainerWithStyleAppearEffect, {\n                        className: \"__framer-badge\",\n                        __framer__threshold: 0.5,\n                        __framer__animateOnce: true,\n                        __framer__opacity: 0,\n                        __framer__targetOpacity: 1,\n                        __framer__rotate: 0,\n                        __framer__x: 0,\n                        __framer__y: 10,\n                        __framer__scale: 1,\n                        __framer__transition: {\n                            \"type\": \"spring\",\n                            \"ease\": [0.44, 0, 0.56, 1],\n                            \"duration\": 0.3,\n                            \"delay\": 1,\n                            \"stiffness\": 350,\n                            \"damping\": 40,\n                            \"mass\": 1.5\n                        },\n                        __framer__rotateX: 0,\n                        __framer__rotateY: 0,\n                        __framer__perspective: 1200,\n                    }, React.createElement(Badge)))\n                })\n        })()\n    "],
  "mappings": "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",
  "names": ["window", "packageAndFilename", "exportIdentifier", "B", "ErrorPlaceholder", "installFlexboxGapWorkaroundIfNeeded", "routes", "lazy", "collectionUtils", "locales", "notFoundPage", "container", "routeId", "localeId", "pathVariables", "shouldHydrate", "routeData", "inferInitialRouteFromPath", "RootComponent", "content", "PageRoot", "contentWithFeaturesContext", "LibraryFeaturesProvider", "page", "PageEffectsProvider", "track", "handleRecoverableError", "error", "componentStack", "Z", "d", "r", "Badge", "ContainerWithStyleAppearEffect", "withStyleAppearEffect", "Container"]
}
