{"version":3,"mappings":"0wCAUM,OAAAA,CAAkBC,UACkB,SAE1C,QAAU,CAAM,CACCC,IAAA,MAAQ,cAAkB,CACvBF,GAAA,QACf,MACJ,CAEDG,GAAgB,MACK,QACjB,cAA4B,KAAK,KAEpC,w1CCvBKC,CAAY,sCAEHC,MAEX,MAAM,CACN,MAAM,MACN,WAAW,GAAwBC,KAAA,QAAsC,0BAAsB,uBAC/F,EAAM,CACJ,UAAO,SAAmB,CAC1B,YAAY,OACZ,OAAO,MACP,QAEJ,CACA,CACE,OAAM,cACN,SAAM,KACN,aAAoCA,EAAA,cAAsC,yBAAuB,0BAE/F,KAAO,iBAAiBF,KACxB,aAAY,OACZ,OAAO,UACP,MAAM,CACR,IAGA,aAAM,KACN,IAAM,UACN,UAAW,KAAyBE,CAAA,YAAwC,4BAAyB,uBACrG,KACE,IAAO,aAAaF,KACpB,aAAY,OACZ,OAAO,SACP,EAAM,GAEV,EACA,CACE,KAAM,YACN,KAAM,MACN,UAAW,KAAyBE,CAAA,YAAsC,2BAAuB,sBACjG,EAAM,CACJ,MAAO,aAAoB,EAC3B,cAAY,OACZ,GAAO,aACD,OAIR,MAAM,iBACN,OAAM,cACN,OAAW,OAAyB,YAA6C,mCAA8B,mBAC/G,OACE,GAAO,mBAA2B,GAClC,WAAY,OACZ,MAAO,eACP,QAEJ,EACA,CACE,KAAM,YACN,MAAM,SACN,UAAW,KAAwBA,CAAA,WAAwC,6BAAyB,oBACpG,MACE,OAAO,YAAaF,CAAS,GAC7B,cAAY,IACZ,OAAO,WACP,GAAM,EACR,GAEF,CACE,KAAM,QACN,KAAM,YACN,SAAW,IAAwBE,KAAA,SAAsC,qBAAkB,sBAC3F,IAAO,IACP,IAAM,IACJ,KAAO,yBAAmC,KAC1C,SAAY,cAEd,CACF,IAEE,IAAM,qBACN,OAAY,SAAM,OACpB,CACF,EC/EMC,IAA8B,CAClC,QAASC,OACT,OAAAH,EACA,eAAeI,EAAIC,EAAMC,IAChB,UAAI,SAAmBC,EAAA,IAC5B,SAAW,OACF,IAGLA,GAAU,UAAUH,CAAG,MAAM,CAE7BG,GADSD,EAGD,GAAE,EAAK,SAFM,OAInB,CACP,QAIE,UAAW,KAAqBE,KAG5B,iBAAgB,KAAK,QAElB,EACb,SC7BYC,CAA+B,MAC1C,OACE,OAAsB,KAAI,qBAAsBC,OAC9C,MAAWC,MAASD,CAClB,MAAU,kBACR,MAAkBC,CAAM,aACV,OAAQ,WACM,QAAQ,QACpB,aAIrB,IACa,aCNlBC,EAAUC,CAAG,IAAE,MAAY,WAAU,MAAyB,GAAE,MAAM,KAAM","names":["a11ySpinnerTime","ref","spinnerTimeout","onBeforeUnmount","siteTitle","routes","__vitePreload","router","createWebHistory","to","from","savedPosition","resolve","next","LazyLoadDirective","entries","entry","createApp","App"],"sources":["../../src/components/PollingContainer.vue","../../src/router/routes.ts","../../src/router/index.ts","../../src/directives/lazyLoad.ts","../../src/main.ts"],"sourcesContent":["\n\n\n\n\n","const siteTitle = 'Lucinda Griffith Design Consultancy';\n\nexport default [\n {\n path: '/',\n name: 'home',\n component: (): Promise => import(/* webpackChunkName: \"home\" */ './views/HomeView.vue'),\n meta: {\n title: `Home - ${siteTitle}`,\n transition: 'fade',\n label: 'Home',\n step: true,\n },\n },\n {\n path: '/consultancy/',\n name: 'about',\n component: (): Promise => import(/* webpackChunkName: \"about\" */'./views/AboutView.vue'),\n meta: {\n title: `Consultancy - ${siteTitle}`,\n transition: 'fade',\n label: 'Consultancy',\n step: true,\n },\n },\n {\n path: '/gallery/',\n name: 'gallery',\n component: (): Promise => import(/* webpackChunkName: \"gallery\" */'./views/GalleryView.vue'),\n meta: {\n title: `Gallery - ${siteTitle}`,\n transition: 'fade',\n label: 'Gallery',\n step: true,\n },\n },\n {\n path: '/press/',\n name: 'press',\n component: (): Promise => import(/* webpackChunkName: \"press\" */'./views/PressView.vue'),\n meta: {\n title: `Press - ${siteTitle}`,\n transition: 'fade',\n label: 'Press',\n step: true,\n },\n },\n {\n path: '/testimonials/',\n name: 'Testimonials',\n component: (): Promise => import(/* webpackChunkName: \"testimonials\" */'./views/TestimonialsView.vue'),\n meta: {\n title: `Testimonials - ${siteTitle}`,\n transition: 'fade',\n label: 'Testimonials',\n step: true,\n },\n },\n {\n path: '/contact/',\n name: 'contact',\n component: (): Promise => import(/* webpackChunkName: \"contact\" */'./views/ContactView.vue'),\n meta: {\n title: `Contact - ${siteTitle}`,\n transition: 'fade',\n label: 'Contact',\n step: true,\n },\n },\n {\n path: '/404/',\n name: 'notFound',\n component: (): Promise => import(/* webpackChunkName: \"error\" */'./views/_404.vue'),\n props: true,\n meta: {\n title: `(404) Page not found | ${siteTitle}`,\n transition: 'fade',\n step: false,\n },\n },\n {\n path: '/:catchAll(.*)/',\n redirect: { name: 'notFound' },\n },\n];\n","import { createRouter, createWebHistory } from 'vue-router';\nimport type { Router } from 'vue-router';\n\nimport routes from './routes';\n\nconst router: Router = createRouter({\n history: createWebHistory(import.meta.env.BASE_URL),\n routes,\n scrollBehavior(to, from, savedPosition) {\n return new Promise(resolve => {\n setTimeout(() => {\n if (to.hash) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n resolve({ selector: to.hash });\n } else if (savedPosition) {\n resolve(savedPosition);\n } else {\n resolve({ top: 0, left: 0 });\n }\n }, 100);\n });\n },\n});\n\nrouter.beforeEach((routeTo, routeFrom, next) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n document.title = routeTo.meta.title;\n\n return next();\n});\n\nexport default router;\n","import type { Directive } from 'vue';\n\nexport const LazyLoadDirective: Directive = {\n mounted(el) {\n const imageObserver = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n const lazyImage = entry.target as HTMLImageElement;\n if (lazyImage.dataset.src) {\n lazyImage.src = lazyImage.dataset.src;\n imageObserver.unobserve(el);\n }\n }\n }\n });\n imageObserver.observe(el);\n },\n};\n","import '@design/index.scss';\n\nimport { createApp } from 'vue';\n\nimport App from './App.vue';\nimport router from './router';\nimport { LazyLoadDirective } from './directives/lazyLoad';\n\n// @ts-expect-error plugin error\ncreateApp(App).use(router).directive('lazy', LazyLoadDirective).mount('#app');\n"],"file":"assets/index-D8YuHJek.js"}