{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/o8j9LrpztKzVDKzMZNeZ/6gziPF7ldveRPxcaWXgf/siteMetadata.js"],
  "sourcesContent": ["const metadata = params => ({\n  customHTMLBodyEnd: \"<script>\\n  class QuotabookUtils {\\n  static addMonth(date, month) {\\n    return new Date(date.setMonth(date.getMonth() + month));\\n  }\\n  static getLocalStorageItem(key) {\\n    const value = localStorage.getItem(key);\\n    if (value == null) {\\n      return null;\\n    }\\n    return JSON.parse(value);\\n  }\\n  static setStorageItem(key, value, expiryMonth) {\\n    const now = new Date();\\n    const stringified = JSON.stringify({\\n      value,\\n      createdAt: now.toISOString(),\\n      expiredAt: expiryMonth == null ? null : this.addMonth(now, expiryMonth).toISOString(),\\n    });\\n    localStorage.setItem(key, stringified);\\n  }\\n  static getStorageItem(key) {\\n    const value = this.getLocalStorageItem(key);\\n    if (value == null) {\\n      return null;\\n    }\\n    if (value.expiredAt == null) {\\n      return value.value;\\n    }\\n    const now = new Date();\\n    const expiredAt = new Date(value.expiredAt);\\n    if (expiredAt < now) {\\n      return null;\\n    }\\n    return value.value;\\n  }\\n  static setPersistentStorageItem(key, value, expiryMonth) {\\n    const savedValue = this.getStorageItem(key);\\n    if (savedValue != null) {\\n      return;\\n    }\\n    this.setStorageItem(key, value, expiryMonth);\\n  }\\n  static convertSearchParamsToObject(searchParams) {\\n    const result = {};\\n    const entries = searchParams.entries();\\n    for (const [key, value] of entries) {\\n      result[key] = value;\\n    }\\n    return result;\\n  }\\n  static isEmptyObject(object) {\\n    const values = Object.values(object || {});\\n    return values.filter((v) => v != null && v !== '').length === 0;\\n  }\\n}\\n  \\n\\nconst keys = {\\n  utm: 'QT_LANDING_UTM_PARAMS',\\n  initialUtm: 'INITIAL_QT_LANDING_UTM_PARAMS',\\n  lastQueryParams: 'QT_QUERY_PARAMS',\\n  lastHashParams: 'QT_HASH_PARAMS',\\n  quotabookLandingId: 'QUOTABOOK_LANDING_ID',\\n};\\n    \\nfunction generateQuotabookLandingId() {\\n  return String(performance.timing.connectStart) + '-' + String(Date.now());\\n}\\n\\nfunction getReferrer() {\\n  const referrerURL = new URL(document.referrer || location.origin);\\n  const referrer = referrerURL.origin + referrerURL.pathname;\\n  if (referrer.includes(location.origin) === false && referrer != null && referrer !== '') {\\n    return referrer;\\n  }\\n  const lastData = QuotabookUtils.getStorageItem(keys.utm);\\n  if (lastData != null && lastData.referrer != null) {\\n    return lastData.referrer;\\n  }\\n  const inititalData = QuotabookUtils.getStorageItem(keys.initialUtm);\\n  if (inititalData != null && inititalData.referrer != null) {\\n    return inititalData.referrer;\\n  }\\n  return null;\\n}\\n\\nfunction getPathParmas() {\\n  const queryParams = QuotabookUtils.convertSearchParamsToObject(\\n    new URLSearchParams(location.search),\\n  );\\n  const savedQueryParams = QuotabookUtils.getStorageItem(keys.utm);\\n  const currentHashParams = QuotabookUtils.convertSearchParamsToObject(\\n    new URLSearchParams(location.hash.replace('#', '')),\\n  );\\n  const lastSavedHashParams = QuotabookUtils.getStorageItem(keys.lastHashParams);\\n  return {\\n    queryParams: QuotabookUtils.isEmptyObject(queryParams) ? savedQueryParams : queryParams,\\n    hashParams: {\\n      current: currentHashParams,\\n      merged:\\n        lastSavedHashParams != null\\n          ? { ...lastSavedHashParams, ...currentHashParams }\\n          : currentHashParams,\\n    },\\n  };\\n}\\n\\nfunction saveParams(expiryMonth) {\\n  QuotabookUtils.setPersistentStorageItem(keys.quotabookLandingId, generateQuotabookLandingId());\\n  const {\\n    queryParams,\\n    hashParams: { current: currentHashParams, merged: mergedHashParams },\\n  } = getPathParmas();\\n  const hasNoParams =\\n    QuotabookUtils.isEmptyObject(queryParams) && QuotabookUtils.isEmptyObject(currentHashParams);\\n  if (hasNoParams === true) {\\n    return;\\n  }\\n  const referrer = getReferrer();\\n  const data = { ...queryParams, ...mergedHashParams, referrer };\\n  QuotabookUtils.setPersistentStorageItem(keys.initialUtm, data);\\n  QuotabookUtils.setStorageItem(keys.utm, data, expiryMonth);\\n  QuotabookUtils.setStorageItem(keys.lastQueryParams, queryParams, expiryMonth);\\n  QuotabookUtils.setStorageItem(keys.lastHashParams, mergedHashParams, expiryMonth);\\n}\\n\\nfunction injectValuesToInput(values) {\\n  if (values == null) {\\n    return;\\n  }\\n  const isObject = typeof values === 'object' && Array.isArray(values) === false;\\n  if (isObject === false) {\\n    console.warn('stored data is not object type');\\n    return;\\n  }\\n  try {\\n    for (const [key, value] of Object.entries(values)) {\\n      if (value == null) {\\n        continue;\\n      }\\n      const targetEl = document.querySelector('.' + key);\\n      if (targetEl == null) {\\n        return;\\n      }\\n      targetEl.value = value;\\n    }\\n  } catch (e) {\\n    console.error(e);\\n  }\\n}\\nfunction loadParams() {\\n  injectValuesToInput({\\n    quotabook_landing_id: QuotabookUtils.getStorageItem(keys.quotabookLandingId),\\n  });\\n  injectValuesToInput(QuotabookUtils.getStorageItem(keys.lastHashParams));\\n  injectValuesToInput(QuotabookUtils.getStorageItem(keys.utm));\\n  const intitalData = QuotabookUtils.getStorageItem(keys.initialUtm) || {};\\n  const convertedInitialData = Object.fromEntries(\\n    Object.entries(intitalData).map(([key, value]) => ['initial_' + key, value]),\\n  );\\n  injectValuesToInput(convertedInitialData);\\n}\\n\\nsaveParams(6);\\n</script>\",\n  customHTMLBodyStart: '<!-- Google Tag Manager (noscript) -->\\n<noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-KB6W432\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\\n<!-- End Google Tag Manager (noscript) -->\\n\\n<script>\\n  (function(){var w=window;if(w.ChannelIO){return w.console.error(\"ChannelIO script included twice.\");}var ch=function(){ch.c(arguments);};ch.q=[];ch.c=function(args){ch.q.push(args);};w.ChannelIO=ch;function l(){if(w.ChannelIOInitialized){return;}w.ChannelIOInitialized=true;var s=document.createElement(\"script\");s.type=\"text/javascript\";s.async=true;s.src=\"https://cdn.channel.io/plugin/ch-plugin-web.js\";var x=document.getElementsByTagName(\"script\")[0];if(x.parentNode){x.parentNode.insertBefore(s,x);}}if(document.readyState===\"complete\"){l();}else{w.addEventListener(\"DOMContentLoaded\",l);w.addEventListener(\"load\",l);}})();\\n</script>\\n<script>\\n    ChannelIO(\\'boot\\', {\\n  \"pluginKey\":  \"a2418fd1-d75d-4862-906a-136419c0dce7\" // fill your plugin key\\n});\\n</script>\\n',\n  customHTMLHeadEnd: '<script src=\"https://unpkg.com/@formspark/formtrack\" async=\"\"></script>\\n',\n  customHTMLHeadStart: \"<!-- Google Tag Manager -->\\n<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':\\nnew Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],\\nj=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=\\n'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);\\n})(window,document,'script','dataLayer','GTM-KB6W432');</script>\\n<!-- End Google Tag Manager -->\\n\\n<!-- Start Sentry -->\\n<script src=\\\"https://js.sentry-cdn.com/fc42c0ce38593da35fbab9d7540955c4.min.js\\\" crossorigin=\\\"anonymous\\\"></script>\\n<!-- End Sentry -->\",\n  description: \"\uC8FC\uC8FC\uBA85\uBD80, \uC2A4\uD1A1\uC635\uC158, \uC8FC\uC8FC\uCD1D\uD68C, \uC804\uC790\uACC4\uC57D, \uB3D9\uC758\uAD8C \uD611\uC758\uAD8C\uAE4C\uC9C0 \uCFFC\uD0C0\uBD81\uC5D0\uC11C \uBAA8\uB4E0 \uC99D\uAD8C \uAD00\uB9AC\uB97C \uD574\uACB0\uD558\uC138\uC694\",\n  favicon: new URL(\"https://framerusercontent.com/images/xxv5v8yvfJJtJ9qa2OqbbVMDj3w.svg\").href,\n  socialImage: new URL(\"https://framerusercontent.com/images/NJt2EcBKUgRAZrKmWnR1YYmKV4.png\").href,\n  title: \"QuotaBook \uFF5C \uC99D\uAD8C \uAD00\uB9AC\uC758 \uD45C\uC900\"\n});\nexport default metadata;\nexport const metadataVersion = 1;\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"metadataVersion\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"default\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};"],
  "mappings": "AAAA,IAAMA,EAAWC,IAAW,CAC1B,kBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YACnB,oBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EACrB,kBAAmB;AAAA,EACnB,oBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBACrB,YAAa,uQACb,QAAS,IAAI,IAAI,sEAAsE,EAAE,KACzF,YAAa,IAAI,IAAI,qEAAqE,EAAE,KAC5F,MAAO,+DACT,GACOC,EAAQF",
  "names": ["metadata", "params", "siteMetadata_default"]
}
