var __defProp = Object.defineProperty;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __publicField = (obj, key, value) => {
  __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
  return value;
};
(function polyfill() {
  const relList = document.createElement("link").relList;
  if (relList && relList.supports && relList.supports("modulepreload")) {
    return;
  }
  for (const link of document.querySelectorAll('link[rel="modulepreload"]')) {
    processPreload(link);
  }
  new MutationObserver((mutations) => {
    for (const mutation of mutations) {
      if (mutation.type !== "childList") {
        continue;
      }
      for (const node of mutation.addedNodes) {
        if (node.tagName === "LINK" && node.rel === "modulepreload")
          processPreload(node);
      }
    }
  }).observe(document, { childList: true, subtree: true });
  function getFetchOpts(link) {
    const fetchOpts = {};
    if (link.integrity)
      fetchOpts.integrity = link.integrity;
    if (link.referrerPolicy)
      fetchOpts.referrerPolicy = link.referrerPolicy;
    if (link.crossOrigin === "use-credentials")
      fetchOpts.credentials = "include";
    else if (link.crossOrigin === "anonymous")
      fetchOpts.credentials = "omit";
    else
      fetchOpts.credentials = "same-origin";
    return fetchOpts;
  }
  function processPreload(link) {
    if (link.ep)
      return;
    link.ep = true;
    const fetchOpts = getFetchOpts(link);
    fetch(link.href, fetchOpts);
  }
})();
const bootstrap_min = "";
const material_indigoPink_min = "";
const all_min = "";
const remixicon = "";
const kendo_commonMaterial_min = "";
const kendo_material_min = "";
const kendo_default_mobile_min = "";
const vba = "";
/*! Capacitor: https://capacitorjs.com/ - MIT License */
const createCapacitorPlatforms = (win) => {
  const defaultPlatformMap = /* @__PURE__ */ new Map();
  defaultPlatformMap.set("web", { name: "web" });
  const capPlatforms = win.CapacitorPlatforms || {
    currentPlatform: { name: "web" },
    platforms: defaultPlatformMap
  };
  const addPlatform = (name, platform) => {
    capPlatforms.platforms.set(name, platform);
  };
  const setPlatform = (name) => {
    if (capPlatforms.platforms.has(name)) {
      capPlatforms.currentPlatform = capPlatforms.platforms.get(name);
    }
  };
  capPlatforms.addPlatform = addPlatform;
  capPlatforms.setPlatform = setPlatform;
  return capPlatforms;
};
const initPlatforms = (win) => win.CapacitorPlatforms = createCapacitorPlatforms(win);
const CapacitorPlatforms = /* @__PURE__ */ initPlatforms(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
CapacitorPlatforms.addPlatform;
CapacitorPlatforms.setPlatform;
var ExceptionCode;
(function(ExceptionCode2) {
  ExceptionCode2["Unimplemented"] = "UNIMPLEMENTED";
  ExceptionCode2["Unavailable"] = "UNAVAILABLE";
})(ExceptionCode || (ExceptionCode = {}));
class CapacitorException extends Error {
  constructor(message, code, data) {
    super(message);
    this.message = message;
    this.code = code;
    this.data = data;
  }
}
const getPlatformId = (win) => {
  var _a, _b;
  if (win === null || win === void 0 ? void 0 : win.androidBridge) {
    return "android";
  } else if ((_b = (_a = win === null || win === void 0 ? void 0 : win.webkit) === null || _a === void 0 ? void 0 : _a.messageHandlers) === null || _b === void 0 ? void 0 : _b.bridge) {
    return "ios";
  } else {
    return "web";
  }
};
const createCapacitor = (win) => {
  var _a, _b, _c, _d, _e;
  const capCustomPlatform = win.CapacitorCustomPlatform || null;
  const cap = win.Capacitor || {};
  const Plugins = cap.Plugins = cap.Plugins || {};
  const capPlatforms = win.CapacitorPlatforms;
  const defaultGetPlatform = () => {
    return capCustomPlatform !== null ? capCustomPlatform.name : getPlatformId(win);
  };
  const getPlatform = ((_a = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _a === void 0 ? void 0 : _a.getPlatform) || defaultGetPlatform;
  const defaultIsNativePlatform = () => getPlatform() !== "web";
  const isNativePlatform = ((_b = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _b === void 0 ? void 0 : _b.isNativePlatform) || defaultIsNativePlatform;
  const defaultIsPluginAvailable = (pluginName) => {
    const plugin = registeredPlugins.get(pluginName);
    if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {
      return true;
    }
    if (getPluginHeader(pluginName)) {
      return true;
    }
    return false;
  };
  const isPluginAvailable = ((_c = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _c === void 0 ? void 0 : _c.isPluginAvailable) || defaultIsPluginAvailable;
  const defaultGetPluginHeader = (pluginName) => {
    var _a2;
    return (_a2 = cap.PluginHeaders) === null || _a2 === void 0 ? void 0 : _a2.find((h2) => h2.name === pluginName);
  };
  const getPluginHeader = ((_d = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _d === void 0 ? void 0 : _d.getPluginHeader) || defaultGetPluginHeader;
  const handleError2 = (err) => win.console.error(err);
  const pluginMethodNoop = (_target, prop, pluginName) => {
    return Promise.reject(`${pluginName} does not have an implementation of "${prop}".`);
  };
  const registeredPlugins = /* @__PURE__ */ new Map();
  const defaultRegisterPlugin = (pluginName, jsImplementations = {}) => {
    const registeredPlugin = registeredPlugins.get(pluginName);
    if (registeredPlugin) {
      console.warn(`Capacitor plugin "${pluginName}" already registered. Cannot register plugins twice.`);
      return registeredPlugin.proxy;
    }
    const platform = getPlatform();
    const pluginHeader = getPluginHeader(pluginName);
    let jsImplementation;
    const loadPluginImplementation = async () => {
      if (!jsImplementation && platform in jsImplementations) {
        jsImplementation = typeof jsImplementations[platform] === "function" ? jsImplementation = await jsImplementations[platform]() : jsImplementation = jsImplementations[platform];
      } else if (capCustomPlatform !== null && !jsImplementation && "web" in jsImplementations) {
        jsImplementation = typeof jsImplementations["web"] === "function" ? jsImplementation = await jsImplementations["web"]() : jsImplementation = jsImplementations["web"];
      }
      return jsImplementation;
    };
    const createPluginMethod = (impl, prop) => {
      var _a2, _b2;
      if (pluginHeader) {
        const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find((m) => prop === m.name);
        if (methodHeader) {
          if (methodHeader.rtype === "promise") {
            return (options) => cap.nativePromise(pluginName, prop.toString(), options);
          } else {
            return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);
          }
        } else if (impl) {
          return (_a2 = impl[prop]) === null || _a2 === void 0 ? void 0 : _a2.bind(impl);
        }
      } else if (impl) {
        return (_b2 = impl[prop]) === null || _b2 === void 0 ? void 0 : _b2.bind(impl);
      } else {
        throw new CapacitorException(`"${pluginName}" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);
      }
    };
    const createPluginMethodWrapper = (prop) => {
      let remove2;
      const wrapper = (...args) => {
        const p2 = loadPluginImplementation().then((impl) => {
          const fn = createPluginMethod(impl, prop);
          if (fn) {
            const p3 = fn(...args);
            remove2 = p3 === null || p3 === void 0 ? void 0 : p3.remove;
            return p3;
          } else {
            throw new CapacitorException(`"${pluginName}.${prop}()" is not implemented on ${platform}`, ExceptionCode.Unimplemented);
          }
        });
        if (prop === "addListener") {
          p2.remove = async () => remove2();
        }
        return p2;
      };
      wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;
      Object.defineProperty(wrapper, "name", {
        value: prop,
        writable: false,
        configurable: false
      });
      return wrapper;
    };
    const addListener = createPluginMethodWrapper("addListener");
    const removeListener = createPluginMethodWrapper("removeListener");
    const addListenerNative = (eventName, callback) => {
      const call = addListener({ eventName }, callback);
      const remove2 = async () => {
        const callbackId = await call;
        removeListener({
          eventName,
          callbackId
        }, callback);
      };
      const p2 = new Promise((resolve2) => call.then(() => resolve2({ remove: remove2 })));
      p2.remove = async () => {
        console.warn(`Using addListener() without 'await' is deprecated.`);
        await remove2();
      };
      return p2;
    };
    const proxy = new Proxy({}, {
      get(_, prop) {
        switch (prop) {
          case "$$typeof":
            return void 0;
          case "toJSON":
            return () => ({});
          case "addListener":
            return pluginHeader ? addListenerNative : addListener;
          case "removeListener":
            return removeListener;
          default:
            return createPluginMethodWrapper(prop);
        }
      }
    });
    Plugins[pluginName] = proxy;
    registeredPlugins.set(pluginName, {
      name: pluginName,
      proxy,
      platforms: /* @__PURE__ */ new Set([
        ...Object.keys(jsImplementations),
        ...pluginHeader ? [platform] : []
      ])
    });
    return proxy;
  };
  const registerPlugin2 = ((_e = capPlatforms === null || capPlatforms === void 0 ? void 0 : capPlatforms.currentPlatform) === null || _e === void 0 ? void 0 : _e.registerPlugin) || defaultRegisterPlugin;
  if (!cap.convertFileSrc) {
    cap.convertFileSrc = (filePath) => filePath;
  }
  cap.getPlatform = getPlatform;
  cap.handleError = handleError2;
  cap.isNativePlatform = isNativePlatform;
  cap.isPluginAvailable = isPluginAvailable;
  cap.pluginMethodNoop = pluginMethodNoop;
  cap.registerPlugin = registerPlugin2;
  cap.Exception = CapacitorException;
  cap.DEBUG = !!cap.DEBUG;
  cap.isLoggingEnabled = !!cap.isLoggingEnabled;
  cap.platform = cap.getPlatform();
  cap.isNative = cap.isNativePlatform();
  return cap;
};
const initCapacitorGlobal = (win) => win.Capacitor = createCapacitor(win);
const Capacitor = /* @__PURE__ */ initCapacitorGlobal(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
const registerPlugin = Capacitor.registerPlugin;
Capacitor.Plugins;
class WebPlugin {
  constructor(config) {
    this.listeners = {};
    this.retainedEventArguments = {};
    this.windowListeners = {};
    if (config) {
      console.warn(`Capacitor WebPlugin "${config.name}" config object was deprecated in v3 and will be removed in v4.`);
      this.config = config;
    }
  }
  addListener(eventName, listenerFunc) {
    let firstListener = false;
    const listeners = this.listeners[eventName];
    if (!listeners) {
      this.listeners[eventName] = [];
      firstListener = true;
    }
    this.listeners[eventName].push(listenerFunc);
    const windowListener = this.windowListeners[eventName];
    if (windowListener && !windowListener.registered) {
      this.addWindowListener(windowListener);
    }
    if (firstListener) {
      this.sendRetainedArgumentsForEvent(eventName);
    }
    const remove2 = async () => this.removeListener(eventName, listenerFunc);
    const p2 = Promise.resolve({ remove: remove2 });
    return p2;
  }
  async removeAllListeners() {
    this.listeners = {};
    for (const listener in this.windowListeners) {
      this.removeWindowListener(this.windowListeners[listener]);
    }
    this.windowListeners = {};
  }
  notifyListeners(eventName, data, retainUntilConsumed) {
    const listeners = this.listeners[eventName];
    if (!listeners) {
      if (retainUntilConsumed) {
        let args = this.retainedEventArguments[eventName];
        if (!args) {
          args = [];
        }
        args.push(data);
        this.retainedEventArguments[eventName] = args;
      }
      return;
    }
    listeners.forEach((listener) => listener(data));
  }
  hasListeners(eventName) {
    return !!this.listeners[eventName].length;
  }
  registerWindowListener(windowEventName, pluginEventName) {
    this.windowListeners[pluginEventName] = {
      registered: false,
      windowEventName,
      pluginEventName,
      handler: (event) => {
        this.notifyListeners(pluginEventName, event);
      }
    };
  }
  unimplemented(msg = "not implemented") {
    return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);
  }
  unavailable(msg = "not available") {
    return new Capacitor.Exception(msg, ExceptionCode.Unavailable);
  }
  async removeListener(eventName, listenerFunc) {
    const listeners = this.listeners[eventName];
    if (!listeners) {
      return;
    }
    const index2 = listeners.indexOf(listenerFunc);
    this.listeners[eventName].splice(index2, 1);
    if (!this.listeners[eventName].length) {
      this.removeWindowListener(this.windowListeners[eventName]);
    }
  }
  addWindowListener(handle) {
    window.addEventListener(handle.windowEventName, handle.handler);
    handle.registered = true;
  }
  removeWindowListener(handle) {
    if (!handle) {
      return;
    }
    window.removeEventListener(handle.windowEventName, handle.handler);
    handle.registered = false;
  }
  sendRetainedArgumentsForEvent(eventName) {
    const args = this.retainedEventArguments[eventName];
    if (!args) {
      return;
    }
    delete this.retainedEventArguments[eventName];
    args.forEach((arg) => {
      this.notifyListeners(eventName, arg);
    });
  }
}
const encode = (str) => encodeURIComponent(str).replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent).replace(/[()]/g, escape);
const decode$1 = (str) => str.replace(/(%[\dA-F]{2})+/gi, decodeURIComponent);
class CapacitorCookiesPluginWeb extends WebPlugin {
  async getCookies() {
    const cookies = document.cookie;
    const cookieMap = {};
    cookies.split(";").forEach((cookie) => {
      if (cookie.length <= 0)
        return;
      let [key, value] = cookie.replace(/=/, "CAP_COOKIE").split("CAP_COOKIE");
      key = decode$1(key).trim();
      value = decode$1(value).trim();
      cookieMap[key] = value;
    });
    return cookieMap;
  }
  async setCookie(options) {
    try {
      const encodedKey = encode(options.key);
      const encodedValue = encode(options.value);
      const expires = `; expires=${(options.expires || "").replace("expires=", "")}`;
      const path = (options.path || "/").replace("path=", "");
      const domain = options.url != null && options.url.length > 0 ? `domain=${options.url}` : "";
      document.cookie = `${encodedKey}=${encodedValue || ""}${expires}; path=${path}; ${domain};`;
    } catch (error) {
      return Promise.reject(error);
    }
  }
  async deleteCookie(options) {
    try {
      document.cookie = `${options.key}=; Max-Age=0`;
    } catch (error) {
      return Promise.reject(error);
    }
  }
  async clearCookies() {
    try {
      const cookies = document.cookie.split(";") || [];
      for (const cookie of cookies) {
        document.cookie = cookie.replace(/^ +/, "").replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);
      }
    } catch (error) {
      return Promise.reject(error);
    }
  }
  async clearAllCookies() {
    try {
      await this.clearCookies();
    } catch (error) {
      return Promise.reject(error);
    }
  }
}
registerPlugin("CapacitorCookies", {
  web: () => new CapacitorCookiesPluginWeb()
});
const readBlobAsBase64 = async (blob) => new Promise((resolve2, reject) => {
  const reader = new FileReader();
  reader.onload = () => {
    const base64String = reader.result;
    resolve2(base64String.indexOf(",") >= 0 ? base64String.split(",")[1] : base64String);
  };
  reader.onerror = (error) => reject(error);
  reader.readAsDataURL(blob);
});
const normalizeHttpHeaders = (headers = {}) => {
  const originalKeys = Object.keys(headers);
  const loweredKeys = Object.keys(headers).map((k) => k.toLocaleLowerCase());
  const normalized = loweredKeys.reduce((acc, key, index2) => {
    acc[key] = headers[originalKeys[index2]];
    return acc;
  }, {});
  return normalized;
};
const buildUrlParams = (params, shouldEncode = true) => {
  if (!params)
    return null;
  const output = Object.entries(params).reduce((accumulator, entry) => {
    const [key, value] = entry;
    let encodedValue;
    let item;
    if (Array.isArray(value)) {
      item = "";
      value.forEach((str) => {
        encodedValue = shouldEncode ? encodeURIComponent(str) : str;
        item += `${key}=${encodedValue}&`;
      });
      item.slice(0, -1);
    } else {
      encodedValue = shouldEncode ? encodeURIComponent(value) : value;
      item = `${key}=${encodedValue}`;
    }
    return `${accumulator}&${item}`;
  }, "");
  return output.substr(1);
};
const buildRequestInit = (options, extra = {}) => {
  const output = Object.assign({ method: options.method || "GET", headers: options.headers }, extra);
  const headers = normalizeHttpHeaders(options.headers);
  const type = headers["content-type"] || "";
  if (typeof options.data === "string") {
    output.body = options.data;
  } else if (type.includes("application/x-www-form-urlencoded")) {
    const params = new URLSearchParams();
    for (const [key, value] of Object.entries(options.data || {})) {
      params.set(key, value);
    }
    output.body = params.toString();
  } else if (type.includes("multipart/form-data") || options.data instanceof FormData) {
    const form = new FormData();
    if (options.data instanceof FormData) {
      options.data.forEach((value, key) => {
        form.append(key, value);
      });
    } else {
      for (const key of Object.keys(options.data)) {
        form.append(key, options.data[key]);
      }
    }
    output.body = form;
    const headers2 = new Headers(output.headers);
    headers2.delete("content-type");
    output.headers = headers2;
  } else if (type.includes("application/json") || typeof options.data === "object") {
    output.body = JSON.stringify(options.data);
  }
  return output;
};
class CapacitorHttpPluginWeb extends WebPlugin {
  /**
   * Perform an Http request given a set of options
   * @param options Options to build the HTTP request
   */
  async request(options) {
    const requestInit = buildRequestInit(options, options.webFetchExtra);
    const urlParams = buildUrlParams(options.params, options.shouldEncodeUrlParams);
    const url = urlParams ? `${options.url}?${urlParams}` : options.url;
    const response = await fetch(url, requestInit);
    const contentType = response.headers.get("content-type") || "";
    let { responseType = "text" } = response.ok ? options : {};
    if (contentType.includes("application/json")) {
      responseType = "json";
    }
    let data;
    let blob;
    switch (responseType) {
      case "arraybuffer":
      case "blob":
        blob = await response.blob();
        data = await readBlobAsBase64(blob);
        break;
      case "json":
        data = await response.json();
        break;
      case "document":
      case "text":
      default:
        data = await response.text();
    }
    const headers = {};
    response.headers.forEach((value, key) => {
      headers[key] = value;
    });
    return {
      data,
      headers,
      status: response.status,
      url: response.url
    };
  }
  /**
   * Perform an Http GET request given a set of options
   * @param options Options to build the HTTP request
   */
  async get(options) {
    return this.request(Object.assign(Object.assign({}, options), { method: "GET" }));
  }
  /**
   * Perform an Http POST request given a set of options
   * @param options Options to build the HTTP request
   */
  async post(options) {
    return this.request(Object.assign(Object.assign({}, options), { method: "POST" }));
  }
  /**
   * Perform an Http PUT request given a set of options
   * @param options Options to build the HTTP request
   */
  async put(options) {
    return this.request(Object.assign(Object.assign({}, options), { method: "PUT" }));
  }
  /**
   * Perform an Http PATCH request given a set of options
   * @param options Options to build the HTTP request
   */
  async patch(options) {
    return this.request(Object.assign(Object.assign({}, options), { method: "PATCH" }));
  }
  /**
   * Perform an Http DELETE request given a set of options
   * @param options Options to build the HTTP request
   */
  async delete(options) {
    return this.request(Object.assign(Object.assign({}, options), { method: "DELETE" }));
  }
}
const CapacitorHttp = registerPlugin("CapacitorHttp", {
  web: () => new CapacitorHttpPluginWeb()
});
const scriptRel = "modulepreload";
const assetsURL = function(dep) {
  return "/" + dep;
};
const seen$2 = {};
const __vitePreload = function preload(baseModule, deps, importerUrl) {
  if (!deps || deps.length === 0) {
    return baseModule();
  }
  const links = document.getElementsByTagName("link");
  return Promise.all(deps.map((dep) => {
    dep = assetsURL(dep);
    if (dep in seen$2)
      return;
    seen$2[dep] = true;
    const isCss = dep.endsWith(".css");
    const cssSelector = isCss ? '[rel="stylesheet"]' : "";
    const isBaseRelative = !!importerUrl;
    if (isBaseRelative) {
      for (let i = links.length - 1; i >= 0; i--) {
        const link2 = links[i];
        if (link2.href === dep && (!isCss || link2.rel === "stylesheet")) {
          return;
        }
      }
    } else if (document.querySelector(`link[href="${dep}"]${cssSelector}`)) {
      return;
    }
    const link = document.createElement("link");
    link.rel = isCss ? "stylesheet" : scriptRel;
    if (!isCss) {
      link.as = "script";
      link.crossOrigin = "";
    }
    link.href = dep;
    document.head.appendChild(link);
    if (isCss) {
      return new Promise((res, rej) => {
        link.addEventListener("load", res);
        link.addEventListener("error", () => rej(new Error(`Unable to preload CSS for ${dep}`)));
      });
    }
  })).then(() => baseModule());
};
const Browser = registerPlugin("Browser", {
  web: () => __vitePreload(() => import("./web-e45a9e8a.js"), true ? [] : void 0).then((m) => new m.BrowserWeb())
});
var Directory;
(function(Directory2) {
  Directory2["Documents"] = "DOCUMENTS";
  Directory2["Data"] = "DATA";
  Directory2["Library"] = "LIBRARY";
  Directory2["Cache"] = "CACHE";
  Directory2["External"] = "EXTERNAL";
  Directory2["ExternalStorage"] = "EXTERNAL_STORAGE";
})(Directory || (Directory = {}));
var Encoding;
(function(Encoding2) {
  Encoding2["UTF8"] = "utf8";
  Encoding2["ASCII"] = "ascii";
  Encoding2["UTF16"] = "utf16";
})(Encoding || (Encoding = {}));
const Filesystem = registerPlugin("Filesystem", {
  web: () => __vitePreload(() => import("./web-a1d5e30f.js"), true ? [] : void 0).then((m) => new m.FilesystemWeb())
});
const FileOpener = registerPlugin("FileOpener");
var getAuthorizationToken, getSessionToken, getCookie;
getAuthorizationToken = function() {
  var authToken = getCookie("vba-user");
  return authToken;
};
getSessionToken = function() {
  var sessToken = getCookie("vba-sess");
  return sessToken;
};
getCookie = function(name) {
  return $.cookie(name);
};
window.isCapacitor = () => {
  return Capacitor.isNativePlatform();
};
window.openCapacitorSite = (urlToOpen) => Browser.open({ url: urlToOpen });
window.downloadCapacitorFile = async (urlToDownload, params, fileName) => {
  const options = {
    url: urlToDownload,
    responseType: "blob",
    headers: {
      "Authorization-Token": getAuthorizationToken(),
      "Session-Token": getSessionToken()
    },
    params
  };
  const { data, headers } = await CapacitorHttp.get(options);
  const { uri } = await Filesystem.writeFile({ directory: Directory.Documents, path: `${fileName}.pdf`, data });
  await FileOpener.open({
    filePath: uri,
    openWithDefault: true
  });
};
function makeMap(str, expectsLowerCase) {
  const map = /* @__PURE__ */ Object.create(null);
  const list = str.split(",");
  for (let i = 0; i < list.length; i++) {
    map[list[i]] = true;
  }
  return expectsLowerCase ? (val) => !!map[val.toLowerCase()] : (val) => !!map[val];
}
const GLOBALS_WHITE_LISTED = "Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt";
const isGloballyWhitelisted = /* @__PURE__ */ makeMap(GLOBALS_WHITE_LISTED);
function normalizeStyle(value) {
  if (isArray$1(value)) {
    const res = {};
    for (let i = 0; i < value.length; i++) {
      const item = value[i];
      const normalized = isString$1(item) ? parseStringStyle(item) : normalizeStyle(item);
      if (normalized) {
        for (const key in normalized) {
          res[key] = normalized[key];
        }
      }
    }
    return res;
  } else if (isString$1(value)) {
    return value;
  } else if (isObject$2(value)) {
    return value;
  }
}
const listDelimiterRE = /;(?![^(]*\))/g;
const propertyDelimiterRE = /:([^]+)/;
const styleCommentRE = /\/\*.*?\*\//gs;
function parseStringStyle(cssText) {
  const ret = {};
  cssText.replace(styleCommentRE, "").split(listDelimiterRE).forEach((item) => {
    if (item) {
      const tmp = item.split(propertyDelimiterRE);
      tmp.length > 1 && (ret[tmp[0].trim()] = tmp[1].trim());
    }
  });
  return ret;
}
function normalizeClass(value) {
  let res = "";
  if (isString$1(value)) {
    res = value;
  } else if (isArray$1(value)) {
    for (let i = 0; i < value.length; i++) {
      const normalized = normalizeClass(value[i]);
      if (normalized) {
        res += normalized + " ";
      }
    }
  } else if (isObject$2(value)) {
    for (const name in value) {
      if (value[name]) {
        res += name + " ";
      }
    }
  }
  return res.trim();
}
function normalizeProps(props) {
  if (!props)
    return null;
  let { class: klass, style } = props;
  if (klass && !isString$1(klass)) {
    props.class = normalizeClass(klass);
  }
  if (style) {
    props.style = normalizeStyle(style);
  }
  return props;
}
const HTML_TAGS = "html,body,base,head,link,meta,style,title,address,article,aside,footer,header,hgroup,h1,h2,h3,h4,h5,h6,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,summary,template,blockquote,iframe,tfoot";
const SVG_TAGS = "svg,animate,animateMotion,animateTransform,circle,clipPath,color-profile,defs,desc,discard,ellipse,feBlend,feColorMatrix,feComponentTransfer,feComposite,feConvolveMatrix,feDiffuseLighting,feDisplacementMap,feDistantLight,feDropShadow,feFlood,feFuncA,feFuncB,feFuncG,feFuncR,feGaussianBlur,feImage,feMerge,feMergeNode,feMorphology,feOffset,fePointLight,feSpecularLighting,feSpotLight,feTile,feTurbulence,filter,foreignObject,g,hatch,hatchpath,image,line,linearGradient,marker,mask,mesh,meshgradient,meshpatch,meshrow,metadata,mpath,path,pattern,polygon,polyline,radialGradient,rect,set,solidcolor,stop,switch,symbol,text,textPath,title,tspan,unknown,use,view";
const VOID_TAGS = "area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr";
const isHTMLTag = /* @__PURE__ */ makeMap(HTML_TAGS);
const isSVGTag = /* @__PURE__ */ makeMap(SVG_TAGS);
const isVoidTag = /* @__PURE__ */ makeMap(VOID_TAGS);
const specialBooleanAttrs = `itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly`;
const isSpecialBooleanAttr = /* @__PURE__ */ makeMap(specialBooleanAttrs);
function includeBooleanAttr(value) {
  return !!value || value === "";
}
function looseCompareArrays(a, b) {
  if (a.length !== b.length)
    return false;
  let equal = true;
  for (let i = 0; equal && i < a.length; i++) {
    equal = looseEqual(a[i], b[i]);
  }
  return equal;
}
function looseEqual(a, b) {
  if (a === b)
    return true;
  let aValidType = isDate(a);
  let bValidType = isDate(b);
  if (aValidType || bValidType) {
    return aValidType && bValidType ? a.getTime() === b.getTime() : false;
  }
  aValidType = isSymbol(a);
  bValidType = isSymbol(b);
  if (aValidType || bValidType) {
    return a === b;
  }
  aValidType = isArray$1(a);
  bValidType = isArray$1(b);
  if (aValidType || bValidType) {
    return aValidType && bValidType ? looseCompareArrays(a, b) : false;
  }
  aValidType = isObject$2(a);
  bValidType = isObject$2(b);
  if (aValidType || bValidType) {
    if (!aValidType || !bValidType) {
      return false;
    }
    const aKeysCount = Object.keys(a).length;
    const bKeysCount = Object.keys(b).length;
    if (aKeysCount !== bKeysCount) {
      return false;
    }
    for (const key in a) {
      const aHasKey = a.hasOwnProperty(key);
      const bHasKey = b.hasOwnProperty(key);
      if (aHasKey && !bHasKey || !aHasKey && bHasKey || !looseEqual(a[key], b[key])) {
        return false;
      }
    }
  }
  return String(a) === String(b);
}
function looseIndexOf(arr, val) {
  return arr.findIndex((item) => looseEqual(item, val));
}
const toDisplayString = (val) => {
  return isString$1(val) ? val : val == null ? "" : isArray$1(val) || isObject$2(val) && (val.toString === objectToString || !isFunction$3(val.toString)) ? JSON.stringify(val, replacer, 2) : String(val);
};
const replacer = (_key, val) => {
  if (val && val.__v_isRef) {
    return replacer(_key, val.value);
  } else if (isMap(val)) {
    return {
      [`Map(${val.size})`]: [...val.entries()].reduce((entries, [key, val2]) => {
        entries[`${key} =>`] = val2;
        return entries;
      }, {})
    };
  } else if (isSet(val)) {
    return {
      [`Set(${val.size})`]: [...val.values()]
    };
  } else if (isObject$2(val) && !isArray$1(val) && !isPlainObject$1(val)) {
    return String(val);
  }
  return val;
};
const EMPTY_OBJ = {};
const EMPTY_ARR = [];
const NOOP = () => {
};
const NO = () => false;
const onRE = /^on[^a-z]/;
const isOn = (key) => onRE.test(key);
const isModelListener = (key) => key.startsWith("onUpdate:");
const extend = Object.assign;
const remove = (arr, el) => {
  const i = arr.indexOf(el);
  if (i > -1) {
    arr.splice(i, 1);
  }
};
const hasOwnProperty$2 = Object.prototype.hasOwnProperty;
const hasOwn = (val, key) => hasOwnProperty$2.call(val, key);
const isArray$1 = Array.isArray;
const isMap = (val) => toTypeString(val) === "[object Map]";
const isSet = (val) => toTypeString(val) === "[object Set]";
const isDate = (val) => toTypeString(val) === "[object Date]";
const isRegExp = (val) => toTypeString(val) === "[object RegExp]";
const isFunction$3 = (val) => typeof val === "function";
const isString$1 = (val) => typeof val === "string";
const isSymbol = (val) => typeof val === "symbol";
const isObject$2 = (val) => val !== null && typeof val === "object";
const isPromise = (val) => {
  return isObject$2(val) && isFunction$3(val.then) && isFunction$3(val.catch);
};
const objectToString = Object.prototype.toString;
const toTypeString = (value) => objectToString.call(value);
const toRawType = (value) => {
  return toTypeString(value).slice(8, -1);
};
const isPlainObject$1 = (val) => toTypeString(val) === "[object Object]";
const isIntegerKey = (key) => isString$1(key) && key !== "NaN" && key[0] !== "-" && "" + parseInt(key, 10) === key;
const isReservedProp = /* @__PURE__ */ makeMap(
  // the leading comma is intentional so empty string "" is also included
  ",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"
);
const isBuiltInDirective = /* @__PURE__ */ makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo");
const cacheStringFunction$1 = (fn) => {
  const cache = /* @__PURE__ */ Object.create(null);
  return (str) => {
    const hit = cache[str];
    return hit || (cache[str] = fn(str));
  };
};
const camelizeRE$1 = /-(\w)/g;
const camelize$1 = cacheStringFunction$1((str) => {
  return str.replace(camelizeRE$1, (_, c) => c ? c.toUpperCase() : "");
});
const hyphenateRE = /\B([A-Z])/g;
const hyphenate = cacheStringFunction$1((str) => str.replace(hyphenateRE, "-$1").toLowerCase());
const capitalize = cacheStringFunction$1((str) => str.charAt(0).toUpperCase() + str.slice(1));
const toHandlerKey = cacheStringFunction$1((str) => str ? `on${capitalize(str)}` : ``);
const hasChanged = (value, oldValue) => !Object.is(value, oldValue);
const invokeArrayFns = (fns, arg) => {
  for (let i = 0; i < fns.length; i++) {
    fns[i](arg);
  }
};
const def = (obj, key, value) => {
  Object.defineProperty(obj, key, {
    configurable: true,
    enumerable: false,
    value
  });
};
const looseToNumber = (val) => {
  const n = parseFloat(val);
  return isNaN(n) ? val : n;
};
const toNumber = (val) => {
  const n = isString$1(val) ? Number(val) : NaN;
  return isNaN(n) ? val : n;
};
let _globalThis;
const getGlobalThis = () => {
  return _globalThis || (_globalThis = typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : {});
};
let activeEffectScope;
class EffectScope {
  constructor(detached = false) {
    this.detached = detached;
    this._active = true;
    this.effects = [];
    this.cleanups = [];
    this.parent = activeEffectScope;
    if (!detached && activeEffectScope) {
      this.index = (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;
    }
  }
  get active() {
    return this._active;
  }
  run(fn) {
    if (this._active) {
      const currentEffectScope = activeEffectScope;
      try {
        activeEffectScope = this;
        return fn();
      } finally {
        activeEffectScope = currentEffectScope;
      }
    }
  }
  /**
   * This should only be called on non-detached scopes
   * @internal
   */
  on() {
    activeEffectScope = this;
  }
  /**
   * This should only be called on non-detached scopes
   * @internal
   */
  off() {
    activeEffectScope = this.parent;
  }
  stop(fromParent) {
    if (this._active) {
      let i, l;
      for (i = 0, l = this.effects.length; i < l; i++) {
        this.effects[i].stop();
      }
      for (i = 0, l = this.cleanups.length; i < l; i++) {
        this.cleanups[i]();
      }
      if (this.scopes) {
        for (i = 0, l = this.scopes.length; i < l; i++) {
          this.scopes[i].stop(true);
        }
      }
      if (!this.detached && this.parent && !fromParent) {
        const last2 = this.parent.scopes.pop();
        if (last2 && last2 !== this) {
          this.parent.scopes[this.index] = last2;
          last2.index = this.index;
        }
      }
      this.parent = void 0;
      this._active = false;
    }
  }
}
function effectScope(detached) {
  return new EffectScope(detached);
}
function recordEffectScope(effect2, scope = activeEffectScope) {
  if (scope && scope.active) {
    scope.effects.push(effect2);
  }
}
function getCurrentScope() {
  return activeEffectScope;
}
function onScopeDispose(fn) {
  if (activeEffectScope) {
    activeEffectScope.cleanups.push(fn);
  }
}
const createDep = (effects) => {
  const dep = new Set(effects);
  dep.w = 0;
  dep.n = 0;
  return dep;
};
const wasTracked = (dep) => (dep.w & trackOpBit) > 0;
const newTracked = (dep) => (dep.n & trackOpBit) > 0;
const initDepMarkers = ({ deps }) => {
  if (deps.length) {
    for (let i = 0; i < deps.length; i++) {
      deps[i].w |= trackOpBit;
    }
  }
};
const finalizeDepMarkers = (effect2) => {
  const { deps } = effect2;
  if (deps.length) {
    let ptr = 0;
    for (let i = 0; i < deps.length; i++) {
      const dep = deps[i];
      if (wasTracked(dep) && !newTracked(dep)) {
        dep.delete(effect2);
      } else {
        deps[ptr++] = dep;
      }
      dep.w &= ~trackOpBit;
      dep.n &= ~trackOpBit;
    }
    deps.length = ptr;
  }
};
const targetMap = /* @__PURE__ */ new WeakMap();
let effectTrackDepth = 0;
let trackOpBit = 1;
const maxMarkerBits = 30;
let activeEffect;
const ITERATE_KEY = Symbol("");
const MAP_KEY_ITERATE_KEY = Symbol("");
class ReactiveEffect {
  constructor(fn, scheduler = null, scope) {
    this.fn = fn;
    this.scheduler = scheduler;
    this.active = true;
    this.deps = [];
    this.parent = void 0;
    recordEffectScope(this, scope);
  }
  run() {
    if (!this.active) {
      return this.fn();
    }
    let parent = activeEffect;
    let lastShouldTrack = shouldTrack;
    while (parent) {
      if (parent === this) {
        return;
      }
      parent = parent.parent;
    }
    try {
      this.parent = activeEffect;
      activeEffect = this;
      shouldTrack = true;
      trackOpBit = 1 << ++effectTrackDepth;
      if (effectTrackDepth <= maxMarkerBits) {
        initDepMarkers(this);
      } else {
        cleanupEffect(this);
      }
      return this.fn();
    } finally {
      if (effectTrackDepth <= maxMarkerBits) {
        finalizeDepMarkers(this);
      }
      trackOpBit = 1 << --effectTrackDepth;
      activeEffect = this.parent;
      shouldTrack = lastShouldTrack;
      this.parent = void 0;
      if (this.deferStop) {
        this.stop();
      }
    }
  }
  stop() {
    if (activeEffect === this) {
      this.deferStop = true;
    } else if (this.active) {
      cleanupEffect(this);
      if (this.onStop) {
        this.onStop();
      }
      this.active = false;
    }
  }
}
function cleanupEffect(effect2) {
  const { deps } = effect2;
  if (deps.length) {
    for (let i = 0; i < deps.length; i++) {
      deps[i].delete(effect2);
    }
    deps.length = 0;
  }
}
function effect(fn, options) {
  if (fn.effect) {
    fn = fn.effect.fn;
  }
  const _effect = new ReactiveEffect(fn);
  if (options) {
    extend(_effect, options);
    if (options.scope)
      recordEffectScope(_effect, options.scope);
  }
  if (!options || !options.lazy) {
    _effect.run();
  }
  const runner = _effect.run.bind(_effect);
  runner.effect = _effect;
  return runner;
}
function stop(runner) {
  runner.effect.stop();
}
let shouldTrack = true;
const trackStack = [];
function pauseTracking() {
  trackStack.push(shouldTrack);
  shouldTrack = false;
}
function resetTracking() {
  const last2 = trackStack.pop();
  shouldTrack = last2 === void 0 ? true : last2;
}
function track(target, type, key) {
  if (shouldTrack && activeEffect) {
    let depsMap = targetMap.get(target);
    if (!depsMap) {
      targetMap.set(target, depsMap = /* @__PURE__ */ new Map());
    }
    let dep = depsMap.get(key);
    if (!dep) {
      depsMap.set(key, dep = createDep());
    }
    trackEffects(dep);
  }
}
function trackEffects(dep, debuggerEventExtraInfo) {
  let shouldTrack2 = false;
  if (effectTrackDepth <= maxMarkerBits) {
    if (!newTracked(dep)) {
      dep.n |= trackOpBit;
      shouldTrack2 = !wasTracked(dep);
    }
  } else {
    shouldTrack2 = !dep.has(activeEffect);
  }
  if (shouldTrack2) {
    dep.add(activeEffect);
    activeEffect.deps.push(dep);
  }
}
function trigger(target, type, key, newValue, oldValue, oldTarget) {
  const depsMap = targetMap.get(target);
  if (!depsMap) {
    return;
  }
  let deps = [];
  if (type === "clear") {
    deps = [...depsMap.values()];
  } else if (key === "length" && isArray$1(target)) {
    const newLength = Number(newValue);
    depsMap.forEach((dep, key2) => {
      if (key2 === "length" || key2 >= newLength) {
        deps.push(dep);
      }
    });
  } else {
    if (key !== void 0) {
      deps.push(depsMap.get(key));
    }
    switch (type) {
      case "add":
        if (!isArray$1(target)) {
          deps.push(depsMap.get(ITERATE_KEY));
          if (isMap(target)) {
            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
          }
        } else if (isIntegerKey(key)) {
          deps.push(depsMap.get("length"));
        }
        break;
      case "delete":
        if (!isArray$1(target)) {
          deps.push(depsMap.get(ITERATE_KEY));
          if (isMap(target)) {
            deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));
          }
        }
        break;
      case "set":
        if (isMap(target)) {
          deps.push(depsMap.get(ITERATE_KEY));
        }
        break;
    }
  }
  if (deps.length === 1) {
    if (deps[0]) {
      {
        triggerEffects(deps[0]);
      }
    }
  } else {
    const effects = [];
    for (const dep of deps) {
      if (dep) {
        effects.push(...dep);
      }
    }
    {
      triggerEffects(createDep(effects));
    }
  }
}
function triggerEffects(dep, debuggerEventExtraInfo) {
  const effects = isArray$1(dep) ? dep : [...dep];
  for (const effect2 of effects) {
    if (effect2.computed) {
      triggerEffect(effect2);
    }
  }
  for (const effect2 of effects) {
    if (!effect2.computed) {
      triggerEffect(effect2);
    }
  }
}
function triggerEffect(effect2, debuggerEventExtraInfo) {
  if (effect2 !== activeEffect || effect2.allowRecurse) {
    if (effect2.scheduler) {
      effect2.scheduler();
    } else {
      effect2.run();
    }
  }
}
function getDepFromReactive(object, key) {
  var _a;
  return (_a = targetMap.get(object)) === null || _a === void 0 ? void 0 : _a.get(key);
}
const isNonTrackableKeys = /* @__PURE__ */ makeMap(`__proto__,__v_isRef,__isVue`);
const builtInSymbols = new Set(
  /* @__PURE__ */ Object.getOwnPropertyNames(Symbol).filter((key) => key !== "arguments" && key !== "caller").map((key) => Symbol[key]).filter(isSymbol)
);
const get$1 = /* @__PURE__ */ createGetter();
const shallowGet = /* @__PURE__ */ createGetter(false, true);
const readonlyGet = /* @__PURE__ */ createGetter(true);
const shallowReadonlyGet = /* @__PURE__ */ createGetter(true, true);
const arrayInstrumentations = /* @__PURE__ */ createArrayInstrumentations();
function createArrayInstrumentations() {
  const instrumentations = {};
  ["includes", "indexOf", "lastIndexOf"].forEach((key) => {
    instrumentations[key] = function(...args) {
      const arr = toRaw(this);
      for (let i = 0, l = this.length; i < l; i++) {
        track(arr, "get", i + "");
      }
      const res = arr[key](...args);
      if (res === -1 || res === false) {
        return arr[key](...args.map(toRaw));
      } else {
        return res;
      }
    };
  });
  ["push", "pop", "shift", "unshift", "splice"].forEach((key) => {
    instrumentations[key] = function(...args) {
      pauseTracking();
      const res = toRaw(this)[key].apply(this, args);
      resetTracking();
      return res;
    };
  });
  return instrumentations;
}
function hasOwnProperty$1(key) {
  const obj = toRaw(this);
  track(obj, "has", key);
  return obj.hasOwnProperty(key);
}
function createGetter(isReadonly2 = false, shallow = false) {
  return function get2(target, key, receiver) {
    if (key === "__v_isReactive") {
      return !isReadonly2;
    } else if (key === "__v_isReadonly") {
      return isReadonly2;
    } else if (key === "__v_isShallow") {
      return shallow;
    } else if (key === "__v_raw" && receiver === (isReadonly2 ? shallow ? shallowReadonlyMap : readonlyMap : shallow ? shallowReactiveMap : reactiveMap).get(target)) {
      return target;
    }
    const targetIsArray = isArray$1(target);
    if (!isReadonly2) {
      if (targetIsArray && hasOwn(arrayInstrumentations, key)) {
        return Reflect.get(arrayInstrumentations, key, receiver);
      }
      if (key === "hasOwnProperty") {
        return hasOwnProperty$1;
      }
    }
    const res = Reflect.get(target, key, receiver);
    if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {
      return res;
    }
    if (!isReadonly2) {
      track(target, "get", key);
    }
    if (shallow) {
      return res;
    }
    if (isRef(res)) {
      return targetIsArray && isIntegerKey(key) ? res : res.value;
    }
    if (isObject$2(res)) {
      return isReadonly2 ? readonly(res) : reactive(res);
    }
    return res;
  };
}
const set$1 = /* @__PURE__ */ createSetter();
const shallowSet = /* @__PURE__ */ createSetter(true);
function createSetter(shallow = false) {
  return function set2(target, key, value, receiver) {
    let oldValue = target[key];
    if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {
      return false;
    }
    if (!shallow) {
      if (!isShallow(value) && !isReadonly(value)) {
        oldValue = toRaw(oldValue);
        value = toRaw(value);
      }
      if (!isArray$1(target) && isRef(oldValue) && !isRef(value)) {
        oldValue.value = value;
        return true;
      }
    }
    const hadKey = isArray$1(target) && isIntegerKey(key) ? Number(key) < target.length : hasOwn(target, key);
    const result = Reflect.set(target, key, value, receiver);
    if (target === toRaw(receiver)) {
      if (!hadKey) {
        trigger(target, "add", key, value);
      } else if (hasChanged(value, oldValue)) {
        trigger(target, "set", key, value);
      }
    }
    return result;
  };
}
function deleteProperty(target, key) {
  const hadKey = hasOwn(target, key);
  target[key];
  const result = Reflect.deleteProperty(target, key);
  if (result && hadKey) {
    trigger(target, "delete", key, void 0);
  }
  return result;
}
function has$1(target, key) {
  const result = Reflect.has(target, key);
  if (!isSymbol(key) || !builtInSymbols.has(key)) {
    track(target, "has", key);
  }
  return result;
}
function ownKeys$2(target) {
  track(target, "iterate", isArray$1(target) ? "length" : ITERATE_KEY);
  return Reflect.ownKeys(target);
}
const mutableHandlers = {
  get: get$1,
  set: set$1,
  deleteProperty,
  has: has$1,
  ownKeys: ownKeys$2
};
const readonlyHandlers = {
  get: readonlyGet,
  set(target, key) {
    return true;
  },
  deleteProperty(target, key) {
    return true;
  }
};
const shallowReactiveHandlers = /* @__PURE__ */ extend({}, mutableHandlers, {
  get: shallowGet,
  set: shallowSet
});
const shallowReadonlyHandlers = /* @__PURE__ */ extend({}, readonlyHandlers, {
  get: shallowReadonlyGet
});
const toShallow = (value) => value;
const getProto = (v) => Reflect.getPrototypeOf(v);
function get$2(target, key, isReadonly2 = false, isShallow2 = false) {
  target = target[
    "__v_raw"
    /* ReactiveFlags.RAW */
  ];
  const rawTarget = toRaw(target);
  const rawKey = toRaw(key);
  if (!isReadonly2) {
    if (key !== rawKey) {
      track(rawTarget, "get", key);
    }
    track(rawTarget, "get", rawKey);
  }
  const { has: has2 } = getProto(rawTarget);
  const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
  if (has2.call(rawTarget, key)) {
    return wrap(target.get(key));
  } else if (has2.call(rawTarget, rawKey)) {
    return wrap(target.get(rawKey));
  } else if (target !== rawTarget) {
    target.get(key);
  }
}
function has(key, isReadonly2 = false) {
  const target = this[
    "__v_raw"
    /* ReactiveFlags.RAW */
  ];
  const rawTarget = toRaw(target);
  const rawKey = toRaw(key);
  if (!isReadonly2) {
    if (key !== rawKey) {
      track(rawTarget, "has", key);
    }
    track(rawTarget, "has", rawKey);
  }
  return key === rawKey ? target.has(key) : target.has(key) || target.has(rawKey);
}
function size(target, isReadonly2 = false) {
  target = target[
    "__v_raw"
    /* ReactiveFlags.RAW */
  ];
  !isReadonly2 && track(toRaw(target), "iterate", ITERATE_KEY);
  return Reflect.get(target, "size", target);
}
function add(value) {
  value = toRaw(value);
  const target = toRaw(this);
  const proto = getProto(target);
  const hadKey = proto.has.call(target, value);
  if (!hadKey) {
    target.add(value);
    trigger(target, "add", value, value);
  }
  return this;
}
function set(key, value) {
  value = toRaw(value);
  const target = toRaw(this);
  const { has: has2, get: get2 } = getProto(target);
  let hadKey = has2.call(target, key);
  if (!hadKey) {
    key = toRaw(key);
    hadKey = has2.call(target, key);
  }
  const oldValue = get2.call(target, key);
  target.set(key, value);
  if (!hadKey) {
    trigger(target, "add", key, value);
  } else if (hasChanged(value, oldValue)) {
    trigger(target, "set", key, value);
  }
  return this;
}
function deleteEntry(key) {
  const target = toRaw(this);
  const { has: has2, get: get2 } = getProto(target);
  let hadKey = has2.call(target, key);
  if (!hadKey) {
    key = toRaw(key);
    hadKey = has2.call(target, key);
  }
  get2 ? get2.call(target, key) : void 0;
  const result = target.delete(key);
  if (hadKey) {
    trigger(target, "delete", key, void 0);
  }
  return result;
}
function clear() {
  const target = toRaw(this);
  const hadItems = target.size !== 0;
  const result = target.clear();
  if (hadItems) {
    trigger(target, "clear", void 0, void 0);
  }
  return result;
}
function createForEach(isReadonly2, isShallow2) {
  return function forEach2(callback, thisArg) {
    const observed = this;
    const target = observed[
      "__v_raw"
      /* ReactiveFlags.RAW */
    ];
    const rawTarget = toRaw(target);
    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
    !isReadonly2 && track(rawTarget, "iterate", ITERATE_KEY);
    return target.forEach((value, key) => {
      return callback.call(thisArg, wrap(value), wrap(key), observed);
    });
  };
}
function createIterableMethod(method, isReadonly2, isShallow2) {
  return function(...args) {
    const target = this[
      "__v_raw"
      /* ReactiveFlags.RAW */
    ];
    const rawTarget = toRaw(target);
    const targetIsMap = isMap(rawTarget);
    const isPair = method === "entries" || method === Symbol.iterator && targetIsMap;
    const isKeyOnly = method === "keys" && targetIsMap;
    const innerIterator = target[method](...args);
    const wrap = isShallow2 ? toShallow : isReadonly2 ? toReadonly : toReactive;
    !isReadonly2 && track(rawTarget, "iterate", isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);
    return {
      // iterator protocol
      next() {
        const { value, done } = innerIterator.next();
        return done ? { value, done } : {
          value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),
          done
        };
      },
      // iterable protocol
      [Symbol.iterator]() {
        return this;
      }
    };
  };
}
function createReadonlyMethod(type) {
  return function(...args) {
    return type === "delete" ? false : this;
  };
}
function createInstrumentations() {
  const mutableInstrumentations2 = {
    get(key) {
      return get$2(this, key);
    },
    get size() {
      return size(this);
    },
    has,
    add,
    set,
    delete: deleteEntry,
    clear,
    forEach: createForEach(false, false)
  };
  const shallowInstrumentations2 = {
    get(key) {
      return get$2(this, key, false, true);
    },
    get size() {
      return size(this);
    },
    has,
    add,
    set,
    delete: deleteEntry,
    clear,
    forEach: createForEach(false, true)
  };
  const readonlyInstrumentations2 = {
    get(key) {
      return get$2(this, key, true);
    },
    get size() {
      return size(this, true);
    },
    has(key) {
      return has.call(this, key, true);
    },
    add: createReadonlyMethod(
      "add"
      /* TriggerOpTypes.ADD */
    ),
    set: createReadonlyMethod(
      "set"
      /* TriggerOpTypes.SET */
    ),
    delete: createReadonlyMethod(
      "delete"
      /* TriggerOpTypes.DELETE */
    ),
    clear: createReadonlyMethod(
      "clear"
      /* TriggerOpTypes.CLEAR */
    ),
    forEach: createForEach(true, false)
  };
  const shallowReadonlyInstrumentations2 = {
    get(key) {
      return get$2(this, key, true, true);
    },
    get size() {
      return size(this, true);
    },
    has(key) {
      return has.call(this, key, true);
    },
    add: createReadonlyMethod(
      "add"
      /* TriggerOpTypes.ADD */
    ),
    set: createReadonlyMethod(
      "set"
      /* TriggerOpTypes.SET */
    ),
    delete: createReadonlyMethod(
      "delete"
      /* TriggerOpTypes.DELETE */
    ),
    clear: createReadonlyMethod(
      "clear"
      /* TriggerOpTypes.CLEAR */
    ),
    forEach: createForEach(true, true)
  };
  const iteratorMethods = ["keys", "values", "entries", Symbol.iterator];
  iteratorMethods.forEach((method) => {
    mutableInstrumentations2[method] = createIterableMethod(method, false, false);
    readonlyInstrumentations2[method] = createIterableMethod(method, true, false);
    shallowInstrumentations2[method] = createIterableMethod(method, false, true);
    shallowReadonlyInstrumentations2[method] = createIterableMethod(method, true, true);
  });
  return [
    mutableInstrumentations2,
    readonlyInstrumentations2,
    shallowInstrumentations2,
    shallowReadonlyInstrumentations2
  ];
}
const [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* @__PURE__ */ createInstrumentations();
function createInstrumentationGetter(isReadonly2, shallow) {
  const instrumentations = shallow ? isReadonly2 ? shallowReadonlyInstrumentations : shallowInstrumentations : isReadonly2 ? readonlyInstrumentations : mutableInstrumentations;
  return (target, key, receiver) => {
    if (key === "__v_isReactive") {
      return !isReadonly2;
    } else if (key === "__v_isReadonly") {
      return isReadonly2;
    } else if (key === "__v_raw") {
      return target;
    }
    return Reflect.get(hasOwn(instrumentations, key) && key in target ? instrumentations : target, key, receiver);
  };
}
const mutableCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(false, false)
};
const shallowCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(false, true)
};
const readonlyCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(true, false)
};
const shallowReadonlyCollectionHandlers = {
  get: /* @__PURE__ */ createInstrumentationGetter(true, true)
};
const reactiveMap = /* @__PURE__ */ new WeakMap();
const shallowReactiveMap = /* @__PURE__ */ new WeakMap();
const readonlyMap = /* @__PURE__ */ new WeakMap();
const shallowReadonlyMap = /* @__PURE__ */ new WeakMap();
function targetTypeMap(rawType) {
  switch (rawType) {
    case "Object":
    case "Array":
      return 1;
    case "Map":
    case "Set":
    case "WeakMap":
    case "WeakSet":
      return 2;
    default:
      return 0;
  }
}
function getTargetType(value) {
  return value[
    "__v_skip"
    /* ReactiveFlags.SKIP */
  ] || !Object.isExtensible(value) ? 0 : targetTypeMap(toRawType(value));
}
function reactive(target) {
  if (isReadonly(target)) {
    return target;
  }
  return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);
}
function shallowReactive(target) {
  return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);
}
function readonly(target) {
  return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);
}
function shallowReadonly(target) {
  return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);
}
function createReactiveObject(target, isReadonly2, baseHandlers, collectionHandlers, proxyMap) {
  if (!isObject$2(target)) {
    return target;
  }
  if (target[
    "__v_raw"
    /* ReactiveFlags.RAW */
  ] && !(isReadonly2 && target[
    "__v_isReactive"
    /* ReactiveFlags.IS_REACTIVE */
  ])) {
    return target;
  }
  const existingProxy = proxyMap.get(target);
  if (existingProxy) {
    return existingProxy;
  }
  const targetType = getTargetType(target);
  if (targetType === 0) {
    return target;
  }
  const proxy = new Proxy(target, targetType === 2 ? collectionHandlers : baseHandlers);
  proxyMap.set(target, proxy);
  return proxy;
}
function isReactive(value) {
  if (isReadonly(value)) {
    return isReactive(value[
      "__v_raw"
      /* ReactiveFlags.RAW */
    ]);
  }
  return !!(value && value[
    "__v_isReactive"
    /* ReactiveFlags.IS_REACTIVE */
  ]);
}
function isReadonly(value) {
  return !!(value && value[
    "__v_isReadonly"
    /* ReactiveFlags.IS_READONLY */
  ]);
}
function isShallow(value) {
  return !!(value && value[
    "__v_isShallow"
    /* ReactiveFlags.IS_SHALLOW */
  ]);
}
function isProxy$1(value) {
  return isReactive(value) || isReadonly(value);
}
function toRaw(observed) {
  const raw = observed && observed[
    "__v_raw"
    /* ReactiveFlags.RAW */
  ];
  return raw ? toRaw(raw) : observed;
}
function markRaw(value) {
  def(value, "__v_skip", true);
  return value;
}
const toReactive = (value) => isObject$2(value) ? reactive(value) : value;
const toReadonly = (value) => isObject$2(value) ? readonly(value) : value;
function trackRefValue(ref2) {
  if (shouldTrack && activeEffect) {
    ref2 = toRaw(ref2);
    {
      trackEffects(ref2.dep || (ref2.dep = createDep()));
    }
  }
}
function triggerRefValue(ref2, newVal) {
  ref2 = toRaw(ref2);
  const dep = ref2.dep;
  if (dep) {
    {
      triggerEffects(dep);
    }
  }
}
function isRef(r) {
  return !!(r && r.__v_isRef === true);
}
function ref(value) {
  return createRef(value, false);
}
function shallowRef(value) {
  return createRef(value, true);
}
function createRef(rawValue, shallow) {
  if (isRef(rawValue)) {
    return rawValue;
  }
  return new RefImpl(rawValue, shallow);
}
class RefImpl {
  constructor(value, __v_isShallow) {
    this.__v_isShallow = __v_isShallow;
    this.dep = void 0;
    this.__v_isRef = true;
    this._rawValue = __v_isShallow ? value : toRaw(value);
    this._value = __v_isShallow ? value : toReactive(value);
  }
  get value() {
    trackRefValue(this);
    return this._value;
  }
  set value(newVal) {
    const useDirectValue = this.__v_isShallow || isShallow(newVal) || isReadonly(newVal);
    newVal = useDirectValue ? newVal : toRaw(newVal);
    if (hasChanged(newVal, this._rawValue)) {
      this._rawValue = newVal;
      this._value = useDirectValue ? newVal : toReactive(newVal);
      triggerRefValue(this);
    }
  }
}
function triggerRef(ref2) {
  triggerRefValue(ref2);
}
function unref(ref2) {
  return isRef(ref2) ? ref2.value : ref2;
}
const shallowUnwrapHandlers = {
  get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),
  set: (target, key, value, receiver) => {
    const oldValue = target[key];
    if (isRef(oldValue) && !isRef(value)) {
      oldValue.value = value;
      return true;
    } else {
      return Reflect.set(target, key, value, receiver);
    }
  }
};
function proxyRefs(objectWithRefs) {
  return isReactive(objectWithRefs) ? objectWithRefs : new Proxy(objectWithRefs, shallowUnwrapHandlers);
}
class CustomRefImpl {
  constructor(factory) {
    this.dep = void 0;
    this.__v_isRef = true;
    const { get: get2, set: set2 } = factory(() => trackRefValue(this), () => triggerRefValue(this));
    this._get = get2;
    this._set = set2;
  }
  get value() {
    return this._get();
  }
  set value(newVal) {
    this._set(newVal);
  }
}
function customRef(factory) {
  return new CustomRefImpl(factory);
}
function toRefs(object) {
  const ret = isArray$1(object) ? new Array(object.length) : {};
  for (const key in object) {
    ret[key] = toRef(object, key);
  }
  return ret;
}
class ObjectRefImpl {
  constructor(_object, _key, _defaultValue) {
    this._object = _object;
    this._key = _key;
    this._defaultValue = _defaultValue;
    this.__v_isRef = true;
  }
  get value() {
    const val = this._object[this._key];
    return val === void 0 ? this._defaultValue : val;
  }
  set value(newVal) {
    this._object[this._key] = newVal;
  }
  get dep() {
    return getDepFromReactive(toRaw(this._object), this._key);
  }
}
function toRef(object, key, defaultValue) {
  const val = object[key];
  return isRef(val) ? val : new ObjectRefImpl(object, key, defaultValue);
}
var _a$1;
class ComputedRefImpl {
  constructor(getter, _setter, isReadonly2, isSSR) {
    this._setter = _setter;
    this.dep = void 0;
    this.__v_isRef = true;
    this[_a$1] = false;
    this._dirty = true;
    this.effect = new ReactiveEffect(getter, () => {
      if (!this._dirty) {
        this._dirty = true;
        triggerRefValue(this);
      }
    });
    this.effect.computed = this;
    this.effect.active = this._cacheable = !isSSR;
    this[
      "__v_isReadonly"
      /* ReactiveFlags.IS_READONLY */
    ] = isReadonly2;
  }
  get value() {
    const self2 = toRaw(this);
    trackRefValue(self2);
    if (self2._dirty || !self2._cacheable) {
      self2._dirty = false;
      self2._value = self2.effect.run();
    }
    return self2._value;
  }
  set value(newValue) {
    this._setter(newValue);
  }
}
_a$1 = "__v_isReadonly";
function computed$1(getterOrOptions, debugOptions, isSSR = false) {
  let getter;
  let setter;
  const onlyGetter = isFunction$3(getterOrOptions);
  if (onlyGetter) {
    getter = getterOrOptions;
    setter = NOOP;
  } else {
    getter = getterOrOptions.get;
    setter = getterOrOptions.set;
  }
  const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);
  return cRef;
}
function warn(msg, ...args) {
  return;
}
function assertNumber(val, type) {
  return;
}
function callWithErrorHandling(fn, instance, type, args) {
  let res;
  try {
    res = args ? fn(...args) : fn();
  } catch (err) {
    handleError(err, instance, type);
  }
  return res;
}
function callWithAsyncErrorHandling(fn, instance, type, args) {
  if (isFunction$3(fn)) {
    const res = callWithErrorHandling(fn, instance, type, args);
    if (res && isPromise(res)) {
      res.catch((err) => {
        handleError(err, instance, type);
      });
    }
    return res;
  }
  const values = [];
  for (let i = 0; i < fn.length; i++) {
    values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));
  }
  return values;
}
function handleError(err, instance, type, throwInDev = true) {
  const contextVNode = instance ? instance.vnode : null;
  if (instance) {
    let cur = instance.parent;
    const exposedInstance = instance.proxy;
    const errorInfo = type;
    while (cur) {
      const errorCapturedHooks = cur.ec;
      if (errorCapturedHooks) {
        for (let i = 0; i < errorCapturedHooks.length; i++) {
          if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {
            return;
          }
        }
      }
      cur = cur.parent;
    }
    const appErrorHandler = instance.appContext.config.errorHandler;
    if (appErrorHandler) {
      callWithErrorHandling(appErrorHandler, null, 10, [err, exposedInstance, errorInfo]);
      return;
    }
  }
  logError(err, type, contextVNode, throwInDev);
}
function logError(err, type, contextVNode, throwInDev = true) {
  {
    console.error(err);
  }
}
let isFlushing = false;
let isFlushPending = false;
const queue = [];
let flushIndex = 0;
const pendingPostFlushCbs = [];
let activePostFlushCbs = null;
let postFlushIndex = 0;
const resolvedPromise = /* @__PURE__ */ Promise.resolve();
let currentFlushPromise = null;
function nextTick(fn) {
  const p2 = currentFlushPromise || resolvedPromise;
  return fn ? p2.then(this ? fn.bind(this) : fn) : p2;
}
function findInsertionIndex(id) {
  let start = flushIndex + 1;
  let end = queue.length;
  while (start < end) {
    const middle = start + end >>> 1;
    const middleJobId = getId$1(queue[middle]);
    middleJobId < id ? start = middle + 1 : end = middle;
  }
  return start;
}
function queueJob(job) {
  if (!queue.length || !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) {
    if (job.id == null) {
      queue.push(job);
    } else {
      queue.splice(findInsertionIndex(job.id), 0, job);
    }
    queueFlush();
  }
}
function queueFlush() {
  if (!isFlushing && !isFlushPending) {
    isFlushPending = true;
    currentFlushPromise = resolvedPromise.then(flushJobs);
  }
}
function invalidateJob(job) {
  const i = queue.indexOf(job);
  if (i > flushIndex) {
    queue.splice(i, 1);
  }
}
function queuePostFlushCb(cb) {
  if (!isArray$1(cb)) {
    if (!activePostFlushCbs || !activePostFlushCbs.includes(cb, cb.allowRecurse ? postFlushIndex + 1 : postFlushIndex)) {
      pendingPostFlushCbs.push(cb);
    }
  } else {
    pendingPostFlushCbs.push(...cb);
  }
  queueFlush();
}
function flushPreFlushCbs(seen2, i = isFlushing ? flushIndex + 1 : 0) {
  for (; i < queue.length; i++) {
    const cb = queue[i];
    if (cb && cb.pre) {
      queue.splice(i, 1);
      i--;
      cb();
    }
  }
}
function flushPostFlushCbs(seen2) {
  if (pendingPostFlushCbs.length) {
    const deduped = [...new Set(pendingPostFlushCbs)];
    pendingPostFlushCbs.length = 0;
    if (activePostFlushCbs) {
      activePostFlushCbs.push(...deduped);
      return;
    }
    activePostFlushCbs = deduped;
    activePostFlushCbs.sort((a, b) => getId$1(a) - getId$1(b));
    for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {
      activePostFlushCbs[postFlushIndex]();
    }
    activePostFlushCbs = null;
    postFlushIndex = 0;
  }
}
const getId$1 = (job) => job.id == null ? Infinity : job.id;
const comparator = (a, b) => {
  const diff = getId$1(a) - getId$1(b);
  if (diff === 0) {
    if (a.pre && !b.pre)
      return -1;
    if (b.pre && !a.pre)
      return 1;
  }
  return diff;
};
function flushJobs(seen2) {
  isFlushPending = false;
  isFlushing = true;
  queue.sort(comparator);
  const check = NOOP;
  try {
    for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {
      const job = queue[flushIndex];
      if (job && job.active !== false) {
        if (false)
          ;
        callWithErrorHandling(
          job,
          null,
          14
          /* ErrorCodes.SCHEDULER */
        );
      }
    }
  } finally {
    flushIndex = 0;
    queue.length = 0;
    flushPostFlushCbs();
    isFlushing = false;
    currentFlushPromise = null;
    if (queue.length || pendingPostFlushCbs.length) {
      flushJobs();
    }
  }
}
let devtools;
let buffer = [];
function setDevtoolsHook(hook, target) {
  var _a, _b;
  devtools = hook;
  if (devtools) {
    devtools.enabled = true;
    buffer.forEach(({ event, args }) => devtools.emit(event, ...args));
    buffer = [];
  } else if (
    // handle late devtools injection - only do this if we are in an actual
    // browser environment to avoid the timer handle stalling test runner exit
    // (#4815)
    typeof window !== "undefined" && // some envs mock window but not fully
    window.HTMLElement && // also exclude jsdom
    !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes("jsdom"))
  ) {
    const replay = target.__VUE_DEVTOOLS_HOOK_REPLAY__ = target.__VUE_DEVTOOLS_HOOK_REPLAY__ || [];
    replay.push((newHook) => {
      setDevtoolsHook(newHook, target);
    });
    setTimeout(() => {
      if (!devtools) {
        target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;
        buffer = [];
      }
    }, 3e3);
  } else {
    buffer = [];
  }
}
function emit(instance, event, ...rawArgs) {
  if (instance.isUnmounted)
    return;
  const props = instance.vnode.props || EMPTY_OBJ;
  let args = rawArgs;
  const isModelListener2 = event.startsWith("update:");
  const modelArg = isModelListener2 && event.slice(7);
  if (modelArg && modelArg in props) {
    const modifiersKey = `${modelArg === "modelValue" ? "model" : modelArg}Modifiers`;
    const { number, trim } = props[modifiersKey] || EMPTY_OBJ;
    if (trim) {
      args = rawArgs.map((a) => isString$1(a) ? a.trim() : a);
    }
    if (number) {
      args = rawArgs.map(looseToNumber);
    }
  }
  let handlerName;
  let handler = props[handlerName = toHandlerKey(event)] || // also try camelCase event handler (#2249)
  props[handlerName = toHandlerKey(camelize$1(event))];
  if (!handler && isModelListener2) {
    handler = props[handlerName = toHandlerKey(hyphenate(event))];
  }
  if (handler) {
    callWithAsyncErrorHandling(handler, instance, 6, args);
  }
  const onceHandler = props[handlerName + `Once`];
  if (onceHandler) {
    if (!instance.emitted) {
      instance.emitted = {};
    } else if (instance.emitted[handlerName]) {
      return;
    }
    instance.emitted[handlerName] = true;
    callWithAsyncErrorHandling(onceHandler, instance, 6, args);
  }
}
function normalizeEmitsOptions(comp, appContext, asMixin = false) {
  const cache = appContext.emitsCache;
  const cached = cache.get(comp);
  if (cached !== void 0) {
    return cached;
  }
  const raw = comp.emits;
  let normalized = {};
  let hasExtends = false;
  if (!isFunction$3(comp)) {
    const extendEmits = (raw2) => {
      const normalizedFromExtend = normalizeEmitsOptions(raw2, appContext, true);
      if (normalizedFromExtend) {
        hasExtends = true;
        extend(normalized, normalizedFromExtend);
      }
    };
    if (!asMixin && appContext.mixins.length) {
      appContext.mixins.forEach(extendEmits);
    }
    if (comp.extends) {
      extendEmits(comp.extends);
    }
    if (comp.mixins) {
      comp.mixins.forEach(extendEmits);
    }
  }
  if (!raw && !hasExtends) {
    if (isObject$2(comp)) {
      cache.set(comp, null);
    }
    return null;
  }
  if (isArray$1(raw)) {
    raw.forEach((key) => normalized[key] = null);
  } else {
    extend(normalized, raw);
  }
  if (isObject$2(comp)) {
    cache.set(comp, normalized);
  }
  return normalized;
}
function isEmitListener(options, key) {
  if (!options || !isOn(key)) {
    return false;
  }
  key = key.slice(2).replace(/Once$/, "");
  return hasOwn(options, key[0].toLowerCase() + key.slice(1)) || hasOwn(options, hyphenate(key)) || hasOwn(options, key);
}
let currentRenderingInstance = null;
let currentScopeId = null;
function setCurrentRenderingInstance(instance) {
  const prev = currentRenderingInstance;
  currentRenderingInstance = instance;
  currentScopeId = instance && instance.type.__scopeId || null;
  return prev;
}
function pushScopeId(id) {
  currentScopeId = id;
}
function popScopeId() {
  currentScopeId = null;
}
const withScopeId = (_id) => withCtx;
function withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot) {
  if (!ctx)
    return fn;
  if (fn._n) {
    return fn;
  }
  const renderFnWithContext = (...args) => {
    if (renderFnWithContext._d) {
      setBlockTracking(-1);
    }
    const prevInstance = setCurrentRenderingInstance(ctx);
    let res;
    try {
      res = fn(...args);
    } finally {
      setCurrentRenderingInstance(prevInstance);
      if (renderFnWithContext._d) {
        setBlockTracking(1);
      }
    }
    return res;
  };
  renderFnWithContext._n = true;
  renderFnWithContext._c = true;
  renderFnWithContext._d = true;
  return renderFnWithContext;
}
function markAttrsAccessed() {
}
function renderComponentRoot(instance) {
  const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit: emit2, render: render11, renderCache, data, setupState, ctx, inheritAttrs } = instance;
  let result;
  let fallthroughAttrs;
  const prev = setCurrentRenderingInstance(instance);
  try {
    if (vnode.shapeFlag & 4) {
      const proxyToUse = withProxy || proxy;
      result = normalizeVNode(render11.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));
      fallthroughAttrs = attrs;
    } else {
      const render12 = Component;
      if (false)
        ;
      result = normalizeVNode(render12.length > 1 ? render12(props, false ? {
        get attrs() {
          markAttrsAccessed();
          return attrs;
        },
        slots,
        emit: emit2
      } : { attrs, slots, emit: emit2 }) : render12(
        props,
        null
        /* we know it doesn't need it */
      ));
      fallthroughAttrs = Component.props ? attrs : getFunctionalFallthrough(attrs);
    }
  } catch (err) {
    blockStack.length = 0;
    handleError(
      err,
      instance,
      1
      /* ErrorCodes.RENDER_FUNCTION */
    );
    result = createVNode(Comment);
  }
  let root = result;
  if (fallthroughAttrs && inheritAttrs !== false) {
    const keys = Object.keys(fallthroughAttrs);
    const { shapeFlag } = root;
    if (keys.length) {
      if (shapeFlag & (1 | 6)) {
        if (propsOptions && keys.some(isModelListener)) {
          fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);
        }
        root = cloneVNode(root, fallthroughAttrs);
      }
    }
  }
  if (vnode.dirs) {
    root = cloneVNode(root);
    root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;
  }
  if (vnode.transition) {
    root.transition = vnode.transition;
  }
  {
    result = root;
  }
  setCurrentRenderingInstance(prev);
  return result;
}
function filterSingleRoot(children) {
  let singleRoot;
  for (let i = 0; i < children.length; i++) {
    const child = children[i];
    if (isVNode(child)) {
      if (child.type !== Comment || child.children === "v-if") {
        if (singleRoot) {
          return;
        } else {
          singleRoot = child;
        }
      }
    } else {
      return;
    }
  }
  return singleRoot;
}
const getFunctionalFallthrough = (attrs) => {
  let res;
  for (const key in attrs) {
    if (key === "class" || key === "style" || isOn(key)) {
      (res || (res = {}))[key] = attrs[key];
    }
  }
  return res;
};
const filterModelListeners = (attrs, props) => {
  const res = {};
  for (const key in attrs) {
    if (!isModelListener(key) || !(key.slice(9) in props)) {
      res[key] = attrs[key];
    }
  }
  return res;
};
function shouldUpdateComponent(prevVNode, nextVNode, optimized) {
  const { props: prevProps, children: prevChildren, component } = prevVNode;
  const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;
  const emits = component.emitsOptions;
  if (nextVNode.dirs || nextVNode.transition) {
    return true;
  }
  if (optimized && patchFlag >= 0) {
    if (patchFlag & 1024) {
      return true;
    }
    if (patchFlag & 16) {
      if (!prevProps) {
        return !!nextProps;
      }
      return hasPropsChanged(prevProps, nextProps, emits);
    } else if (patchFlag & 8) {
      const dynamicProps = nextVNode.dynamicProps;
      for (let i = 0; i < dynamicProps.length; i++) {
        const key = dynamicProps[i];
        if (nextProps[key] !== prevProps[key] && !isEmitListener(emits, key)) {
          return true;
        }
      }
    }
  } else {
    if (prevChildren || nextChildren) {
      if (!nextChildren || !nextChildren.$stable) {
        return true;
      }
    }
    if (prevProps === nextProps) {
      return false;
    }
    if (!prevProps) {
      return !!nextProps;
    }
    if (!nextProps) {
      return true;
    }
    return hasPropsChanged(prevProps, nextProps, emits);
  }
  return false;
}
function hasPropsChanged(prevProps, nextProps, emitsOptions) {
  const nextKeys = Object.keys(nextProps);
  if (nextKeys.length !== Object.keys(prevProps).length) {
    return true;
  }
  for (let i = 0; i < nextKeys.length; i++) {
    const key = nextKeys[i];
    if (nextProps[key] !== prevProps[key] && !isEmitListener(emitsOptions, key)) {
      return true;
    }
  }
  return false;
}
function updateHOCHostEl({ vnode, parent }, el) {
  while (parent && parent.subTree === vnode) {
    (vnode = parent.vnode).el = el;
    parent = parent.parent;
  }
}
const isSuspense = (type) => type.__isSuspense;
const SuspenseImpl = {
  name: "Suspense",
  // In order to make Suspense tree-shakable, we need to avoid importing it
  // directly in the renderer. The renderer checks for the __isSuspense flag
  // on a vnode's type and calls the `process` method, passing in renderer
  // internals.
  __isSuspense: true,
  process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
    if (n1 == null) {
      mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);
    } else {
      patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);
    }
  },
  hydrate: hydrateSuspense,
  create: createSuspenseBoundary,
  normalize: normalizeSuspenseChildren
};
const Suspense = SuspenseImpl;
function triggerEvent(vnode, name) {
  const eventListener = vnode.props && vnode.props[name];
  if (isFunction$3(eventListener)) {
    eventListener();
  }
}
function mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {
  const { p: patch, o: { createElement } } = rendererInternals;
  const hiddenContainer = createElement("div");
  const suspense = vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals);
  patch(null, suspense.pendingBranch = vnode.ssContent, hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);
  if (suspense.deps > 0) {
    triggerEvent(vnode, "onPending");
    triggerEvent(vnode, "onFallback");
    patch(
      null,
      vnode.ssFallback,
      container,
      anchor,
      parentComponent,
      null,
      // fallback tree will not have suspense context
      isSVG,
      slotScopeIds
    );
    setActiveBranch(suspense, vnode.ssFallback);
  } else {
    suspense.resolve();
  }
}
function patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {
  const suspense = n2.suspense = n1.suspense;
  suspense.vnode = n2;
  n2.el = n1.el;
  const newBranch = n2.ssContent;
  const newFallback = n2.ssFallback;
  const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;
  if (pendingBranch) {
    suspense.pendingBranch = newBranch;
    if (isSameVNodeType(newBranch, pendingBranch)) {
      patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
      if (suspense.deps <= 0) {
        suspense.resolve();
      } else if (isInFallback) {
        patch(
          activeBranch,
          newFallback,
          container,
          anchor,
          parentComponent,
          null,
          // fallback tree will not have suspense context
          isSVG,
          slotScopeIds,
          optimized
        );
        setActiveBranch(suspense, newFallback);
      }
    } else {
      suspense.pendingId++;
      if (isHydrating) {
        suspense.isHydrating = false;
        suspense.activeBranch = pendingBranch;
      } else {
        unmount(pendingBranch, parentComponent, suspense);
      }
      suspense.deps = 0;
      suspense.effects.length = 0;
      suspense.hiddenContainer = createElement("div");
      if (isInFallback) {
        patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
        if (suspense.deps <= 0) {
          suspense.resolve();
        } else {
          patch(
            activeBranch,
            newFallback,
            container,
            anchor,
            parentComponent,
            null,
            // fallback tree will not have suspense context
            isSVG,
            slotScopeIds,
            optimized
          );
          setActiveBranch(suspense, newFallback);
        }
      } else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
        patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);
        suspense.resolve(true);
      } else {
        patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
        if (suspense.deps <= 0) {
          suspense.resolve();
        }
      }
    }
  } else {
    if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {
      patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);
      setActiveBranch(suspense, newBranch);
    } else {
      triggerEvent(n2, "onPending");
      suspense.pendingBranch = newBranch;
      suspense.pendingId++;
      patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);
      if (suspense.deps <= 0) {
        suspense.resolve();
      } else {
        const { timeout, pendingId } = suspense;
        if (timeout > 0) {
          setTimeout(() => {
            if (suspense.pendingId === pendingId) {
              suspense.fallback(newFallback);
            }
          }, timeout);
        } else if (timeout === 0) {
          suspense.fallback(newFallback);
        }
      }
    }
  }
}
function createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {
  const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove: remove2 } } = rendererInternals;
  const timeout = vnode.props ? toNumber(vnode.props.timeout) : void 0;
  const suspense = {
    vnode,
    parent,
    parentComponent,
    isSVG,
    container,
    hiddenContainer,
    anchor,
    deps: 0,
    pendingId: 0,
    timeout: typeof timeout === "number" ? timeout : -1,
    activeBranch: null,
    pendingBranch: null,
    isInFallback: true,
    isHydrating,
    isUnmounted: false,
    effects: [],
    resolve(resume = false) {
      const { vnode: vnode2, activeBranch, pendingBranch, pendingId, effects, parentComponent: parentComponent2, container: container2 } = suspense;
      if (suspense.isHydrating) {
        suspense.isHydrating = false;
      } else if (!resume) {
        const delayEnter = activeBranch && pendingBranch.transition && pendingBranch.transition.mode === "out-in";
        if (delayEnter) {
          activeBranch.transition.afterLeave = () => {
            if (pendingId === suspense.pendingId) {
              move(
                pendingBranch,
                container2,
                anchor2,
                0
                /* MoveType.ENTER */
              );
            }
          };
        }
        let { anchor: anchor2 } = suspense;
        if (activeBranch) {
          anchor2 = next(activeBranch);
          unmount(activeBranch, parentComponent2, suspense, true);
        }
        if (!delayEnter) {
          move(
            pendingBranch,
            container2,
            anchor2,
            0
            /* MoveType.ENTER */
          );
        }
      }
      setActiveBranch(suspense, pendingBranch);
      suspense.pendingBranch = null;
      suspense.isInFallback = false;
      let parent2 = suspense.parent;
      let hasUnresolvedAncestor = false;
      while (parent2) {
        if (parent2.pendingBranch) {
          parent2.effects.push(...effects);
          hasUnresolvedAncestor = true;
          break;
        }
        parent2 = parent2.parent;
      }
      if (!hasUnresolvedAncestor) {
        queuePostFlushCb(effects);
      }
      suspense.effects = [];
      triggerEvent(vnode2, "onResolve");
    },
    fallback(fallbackVNode) {
      if (!suspense.pendingBranch) {
        return;
      }
      const { vnode: vnode2, activeBranch, parentComponent: parentComponent2, container: container2, isSVG: isSVG2 } = suspense;
      triggerEvent(vnode2, "onFallback");
      const anchor2 = next(activeBranch);
      const mountFallback = () => {
        if (!suspense.isInFallback) {
          return;
        }
        patch(
          null,
          fallbackVNode,
          container2,
          anchor2,
          parentComponent2,
          null,
          // fallback tree will not have suspense context
          isSVG2,
          slotScopeIds,
          optimized
        );
        setActiveBranch(suspense, fallbackVNode);
      };
      const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === "out-in";
      if (delayEnter) {
        activeBranch.transition.afterLeave = mountFallback;
      }
      suspense.isInFallback = true;
      unmount(
        activeBranch,
        parentComponent2,
        null,
        // no suspense so unmount hooks fire now
        true
        // shouldRemove
      );
      if (!delayEnter) {
        mountFallback();
      }
    },
    move(container2, anchor2, type) {
      suspense.activeBranch && move(suspense.activeBranch, container2, anchor2, type);
      suspense.container = container2;
    },
    next() {
      return suspense.activeBranch && next(suspense.activeBranch);
    },
    registerDep(instance, setupRenderEffect) {
      const isInPendingSuspense = !!suspense.pendingBranch;
      if (isInPendingSuspense) {
        suspense.deps++;
      }
      const hydratedEl = instance.vnode.el;
      instance.asyncDep.catch((err) => {
        handleError(
          err,
          instance,
          0
          /* ErrorCodes.SETUP_FUNCTION */
        );
      }).then((asyncSetupResult) => {
        if (instance.isUnmounted || suspense.isUnmounted || suspense.pendingId !== instance.suspenseId) {
          return;
        }
        instance.asyncResolved = true;
        const { vnode: vnode2 } = instance;
        handleSetupResult(instance, asyncSetupResult, false);
        if (hydratedEl) {
          vnode2.el = hydratedEl;
        }
        const placeholder = !hydratedEl && instance.subTree.el;
        setupRenderEffect(
          instance,
          vnode2,
          // component may have been moved before resolve.
          // if this is not a hydration, instance.subTree will be the comment
          // placeholder.
          parentNode(hydratedEl || instance.subTree.el),
          // anchor will not be used if this is hydration, so only need to
          // consider the comment placeholder case.
          hydratedEl ? null : next(instance.subTree),
          suspense,
          isSVG,
          optimized
        );
        if (placeholder) {
          remove2(placeholder);
        }
        updateHOCHostEl(instance, vnode2.el);
        if (isInPendingSuspense && --suspense.deps === 0) {
          suspense.resolve();
        }
      });
    },
    unmount(parentSuspense, doRemove) {
      suspense.isUnmounted = true;
      if (suspense.activeBranch) {
        unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);
      }
      if (suspense.pendingBranch) {
        unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);
      }
    }
  };
  return suspense;
}
function hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {
  const suspense = vnode.suspense = createSuspenseBoundary(
    vnode,
    parentSuspense,
    parentComponent,
    node.parentNode,
    document.createElement("div"),
    null,
    isSVG,
    slotScopeIds,
    optimized,
    rendererInternals,
    true
    /* hydrating */
  );
  const result = hydrateNode(node, suspense.pendingBranch = vnode.ssContent, parentComponent, suspense, slotScopeIds, optimized);
  if (suspense.deps === 0) {
    suspense.resolve();
  }
  return result;
}
function normalizeSuspenseChildren(vnode) {
  const { shapeFlag, children } = vnode;
  const isSlotChildren = shapeFlag & 32;
  vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);
  vnode.ssFallback = isSlotChildren ? normalizeSuspenseSlot(children.fallback) : createVNode(Comment);
}
function normalizeSuspenseSlot(s) {
  let block;
  if (isFunction$3(s)) {
    const trackBlock = isBlockTreeEnabled && s._c;
    if (trackBlock) {
      s._d = false;
      openBlock();
    }
    s = s();
    if (trackBlock) {
      s._d = true;
      block = currentBlock;
      closeBlock();
    }
  }
  if (isArray$1(s)) {
    const singleChild = filterSingleRoot(s);
    s = singleChild;
  }
  s = normalizeVNode(s);
  if (block && !s.dynamicChildren) {
    s.dynamicChildren = block.filter((c) => c !== s);
  }
  return s;
}
function queueEffectWithSuspense(fn, suspense) {
  if (suspense && suspense.pendingBranch) {
    if (isArray$1(fn)) {
      suspense.effects.push(...fn);
    } else {
      suspense.effects.push(fn);
    }
  } else {
    queuePostFlushCb(fn);
  }
}
function setActiveBranch(suspense, branch) {
  suspense.activeBranch = branch;
  const { vnode, parentComponent } = suspense;
  const el = vnode.el = branch.el;
  if (parentComponent && parentComponent.subTree === vnode) {
    parentComponent.vnode.el = el;
    updateHOCHostEl(parentComponent, el);
  }
}
function provide(key, value) {
  if (!currentInstance)
    ;
  else {
    let provides = currentInstance.provides;
    const parentProvides = currentInstance.parent && currentInstance.parent.provides;
    if (parentProvides === provides) {
      provides = currentInstance.provides = Object.create(parentProvides);
    }
    provides[key] = value;
  }
}
function inject(key, defaultValue, treatDefaultAsFactory = false) {
  const instance = currentInstance || currentRenderingInstance;
  if (instance) {
    const provides = instance.parent == null ? instance.vnode.appContext && instance.vnode.appContext.provides : instance.parent.provides;
    if (provides && key in provides) {
      return provides[key];
    } else if (arguments.length > 1) {
      return treatDefaultAsFactory && isFunction$3(defaultValue) ? defaultValue.call(instance.proxy) : defaultValue;
    } else
      ;
  }
}
function watchEffect(effect2, options) {
  return doWatch(effect2, null, options);
}
function watchPostEffect(effect2, options) {
  return doWatch(effect2, null, { flush: "post" });
}
function watchSyncEffect(effect2, options) {
  return doWatch(effect2, null, { flush: "sync" });
}
const INITIAL_WATCHER_VALUE = {};
function watch(source, cb, options) {
  return doWatch(source, cb, options);
}
function doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {
  const instance = getCurrentScope() === (currentInstance === null || currentInstance === void 0 ? void 0 : currentInstance.scope) ? currentInstance : null;
  let getter;
  let forceTrigger = false;
  let isMultiSource = false;
  if (isRef(source)) {
    getter = () => source.value;
    forceTrigger = isShallow(source);
  } else if (isReactive(source)) {
    getter = () => source;
    deep = true;
  } else if (isArray$1(source)) {
    isMultiSource = true;
    forceTrigger = source.some((s) => isReactive(s) || isShallow(s));
    getter = () => source.map((s) => {
      if (isRef(s)) {
        return s.value;
      } else if (isReactive(s)) {
        return traverse(s);
      } else if (isFunction$3(s)) {
        return callWithErrorHandling(
          s,
          instance,
          2
          /* ErrorCodes.WATCH_GETTER */
        );
      } else
        ;
    });
  } else if (isFunction$3(source)) {
    if (cb) {
      getter = () => callWithErrorHandling(
        source,
        instance,
        2
        /* ErrorCodes.WATCH_GETTER */
      );
    } else {
      getter = () => {
        if (instance && instance.isUnmounted) {
          return;
        }
        if (cleanup) {
          cleanup();
        }
        return callWithAsyncErrorHandling(source, instance, 3, [onCleanup]);
      };
    }
  } else {
    getter = NOOP;
  }
  if (cb && deep) {
    const baseGetter = getter;
    getter = () => traverse(baseGetter());
  }
  let cleanup;
  let onCleanup = (fn) => {
    cleanup = effect2.onStop = () => {
      callWithErrorHandling(
        fn,
        instance,
        4
        /* ErrorCodes.WATCH_CLEANUP */
      );
    };
  };
  let ssrCleanup;
  if (isInSSRComponentSetup) {
    onCleanup = NOOP;
    if (!cb) {
      getter();
    } else if (immediate) {
      callWithAsyncErrorHandling(cb, instance, 3, [
        getter(),
        isMultiSource ? [] : void 0,
        onCleanup
      ]);
    }
    if (flush === "sync") {
      const ctx = useSSRContext();
      ssrCleanup = ctx.__watcherHandles || (ctx.__watcherHandles = []);
    } else {
      return NOOP;
    }
  }
  let oldValue = isMultiSource ? new Array(source.length).fill(INITIAL_WATCHER_VALUE) : INITIAL_WATCHER_VALUE;
  const job = () => {
    if (!effect2.active) {
      return;
    }
    if (cb) {
      const newValue = effect2.run();
      if (deep || forceTrigger || (isMultiSource ? newValue.some((v, i) => hasChanged(v, oldValue[i])) : hasChanged(newValue, oldValue)) || false) {
        if (cleanup) {
          cleanup();
        }
        callWithAsyncErrorHandling(cb, instance, 3, [
          newValue,
          // pass undefined as the old value when it's changed for the first time
          oldValue === INITIAL_WATCHER_VALUE ? void 0 : isMultiSource && oldValue[0] === INITIAL_WATCHER_VALUE ? [] : oldValue,
          onCleanup
        ]);
        oldValue = newValue;
      }
    } else {
      effect2.run();
    }
  };
  job.allowRecurse = !!cb;
  let scheduler;
  if (flush === "sync") {
    scheduler = job;
  } else if (flush === "post") {
    scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);
  } else {
    job.pre = true;
    if (instance)
      job.id = instance.uid;
    scheduler = () => queueJob(job);
  }
  const effect2 = new ReactiveEffect(getter, scheduler);
  if (cb) {
    if (immediate) {
      job();
    } else {
      oldValue = effect2.run();
    }
  } else if (flush === "post") {
    queuePostRenderEffect(effect2.run.bind(effect2), instance && instance.suspense);
  } else {
    effect2.run();
  }
  const unwatch = () => {
    effect2.stop();
    if (instance && instance.scope) {
      remove(instance.scope.effects, effect2);
    }
  };
  if (ssrCleanup)
    ssrCleanup.push(unwatch);
  return unwatch;
}
function instanceWatch(source, value, options) {
  const publicThis = this.proxy;
  const getter = isString$1(source) ? source.includes(".") ? createPathGetter(publicThis, source) : () => publicThis[source] : source.bind(publicThis, publicThis);
  let cb;
  if (isFunction$3(value)) {
    cb = value;
  } else {
    cb = value.handler;
    options = value;
  }
  const cur = currentInstance;
  setCurrentInstance(this);
  const res = doWatch(getter, cb.bind(publicThis), options);
  if (cur) {
    setCurrentInstance(cur);
  } else {
    unsetCurrentInstance();
  }
  return res;
}
function createPathGetter(ctx, path) {
  const segments = path.split(".");
  return () => {
    let cur = ctx;
    for (let i = 0; i < segments.length && cur; i++) {
      cur = cur[segments[i]];
    }
    return cur;
  };
}
function traverse(value, seen2) {
  if (!isObject$2(value) || value[
    "__v_skip"
    /* ReactiveFlags.SKIP */
  ]) {
    return value;
  }
  seen2 = seen2 || /* @__PURE__ */ new Set();
  if (seen2.has(value)) {
    return value;
  }
  seen2.add(value);
  if (isRef(value)) {
    traverse(value.value, seen2);
  } else if (isArray$1(value)) {
    for (let i = 0; i < value.length; i++) {
      traverse(value[i], seen2);
    }
  } else if (isSet(value) || isMap(value)) {
    value.forEach((v) => {
      traverse(v, seen2);
    });
  } else if (isPlainObject$1(value)) {
    for (const key in value) {
      traverse(value[key], seen2);
    }
  }
  return value;
}
function useTransitionState() {
  const state = {
    isMounted: false,
    isLeaving: false,
    isUnmounting: false,
    leavingVNodes: /* @__PURE__ */ new Map()
  };
  onMounted(() => {
    state.isMounted = true;
  });
  onBeforeUnmount(() => {
    state.isUnmounting = true;
  });
  return state;
}
const TransitionHookValidator = [Function, Array];
const BaseTransitionImpl = {
  name: `BaseTransition`,
  props: {
    mode: String,
    appear: Boolean,
    persisted: Boolean,
    // enter
    onBeforeEnter: TransitionHookValidator,
    onEnter: TransitionHookValidator,
    onAfterEnter: TransitionHookValidator,
    onEnterCancelled: TransitionHookValidator,
    // leave
    onBeforeLeave: TransitionHookValidator,
    onLeave: TransitionHookValidator,
    onAfterLeave: TransitionHookValidator,
    onLeaveCancelled: TransitionHookValidator,
    // appear
    onBeforeAppear: TransitionHookValidator,
    onAppear: TransitionHookValidator,
    onAfterAppear: TransitionHookValidator,
    onAppearCancelled: TransitionHookValidator
  },
  setup(props, { slots }) {
    const instance = getCurrentInstance();
    const state = useTransitionState();
    let prevTransitionKey;
    return () => {
      const children = slots.default && getTransitionRawChildren(slots.default(), true);
      if (!children || !children.length) {
        return;
      }
      let child = children[0];
      if (children.length > 1) {
        for (const c of children) {
          if (c.type !== Comment) {
            child = c;
            break;
          }
        }
      }
      const rawProps = toRaw(props);
      const { mode } = rawProps;
      if (state.isLeaving) {
        return emptyPlaceholder(child);
      }
      const innerChild = getKeepAliveChild(child);
      if (!innerChild) {
        return emptyPlaceholder(child);
      }
      const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);
      setTransitionHooks(innerChild, enterHooks);
      const oldChild = instance.subTree;
      const oldInnerChild = oldChild && getKeepAliveChild(oldChild);
      let transitionKeyChanged = false;
      const { getTransitionKey } = innerChild.type;
      if (getTransitionKey) {
        const key = getTransitionKey();
        if (prevTransitionKey === void 0) {
          prevTransitionKey = key;
        } else if (key !== prevTransitionKey) {
          prevTransitionKey = key;
          transitionKeyChanged = true;
        }
      }
      if (oldInnerChild && oldInnerChild.type !== Comment && (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {
        const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);
        setTransitionHooks(oldInnerChild, leavingHooks);
        if (mode === "out-in") {
          state.isLeaving = true;
          leavingHooks.afterLeave = () => {
            state.isLeaving = false;
            if (instance.update.active !== false) {
              instance.update();
            }
          };
          return emptyPlaceholder(child);
        } else if (mode === "in-out" && innerChild.type !== Comment) {
          leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {
            const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);
            leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;
            el._leaveCb = () => {
              earlyRemove();
              el._leaveCb = void 0;
              delete enterHooks.delayedLeave;
            };
            enterHooks.delayedLeave = delayedLeave;
          };
        }
      }
      return child;
    };
  }
};
const BaseTransition = BaseTransitionImpl;
function getLeavingNodesForType(state, vnode) {
  const { leavingVNodes } = state;
  let leavingVNodesCache = leavingVNodes.get(vnode.type);
  if (!leavingVNodesCache) {
    leavingVNodesCache = /* @__PURE__ */ Object.create(null);
    leavingVNodes.set(vnode.type, leavingVNodesCache);
  }
  return leavingVNodesCache;
}
function resolveTransitionHooks(vnode, props, state, instance) {
  const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;
  const key = String(vnode.key);
  const leavingVNodesCache = getLeavingNodesForType(state, vnode);
  const callHook2 = (hook, args) => {
    hook && callWithAsyncErrorHandling(hook, instance, 9, args);
  };
  const callAsyncHook = (hook, args) => {
    const done = args[1];
    callHook2(hook, args);
    if (isArray$1(hook)) {
      if (hook.every((hook2) => hook2.length <= 1))
        done();
    } else if (hook.length <= 1) {
      done();
    }
  };
  const hooks = {
    mode,
    persisted,
    beforeEnter(el) {
      let hook = onBeforeEnter;
      if (!state.isMounted) {
        if (appear) {
          hook = onBeforeAppear || onBeforeEnter;
        } else {
          return;
        }
      }
      if (el._leaveCb) {
        el._leaveCb(
          true
          /* cancelled */
        );
      }
      const leavingVNode = leavingVNodesCache[key];
      if (leavingVNode && isSameVNodeType(vnode, leavingVNode) && leavingVNode.el._leaveCb) {
        leavingVNode.el._leaveCb();
      }
      callHook2(hook, [el]);
    },
    enter(el) {
      let hook = onEnter;
      let afterHook = onAfterEnter;
      let cancelHook = onEnterCancelled;
      if (!state.isMounted) {
        if (appear) {
          hook = onAppear || onEnter;
          afterHook = onAfterAppear || onAfterEnter;
          cancelHook = onAppearCancelled || onEnterCancelled;
        } else {
          return;
        }
      }
      let called = false;
      const done = el._enterCb = (cancelled) => {
        if (called)
          return;
        called = true;
        if (cancelled) {
          callHook2(cancelHook, [el]);
        } else {
          callHook2(afterHook, [el]);
        }
        if (hooks.delayedLeave) {
          hooks.delayedLeave();
        }
        el._enterCb = void 0;
      };
      if (hook) {
        callAsyncHook(hook, [el, done]);
      } else {
        done();
      }
    },
    leave(el, remove2) {
      const key2 = String(vnode.key);
      if (el._enterCb) {
        el._enterCb(
          true
          /* cancelled */
        );
      }
      if (state.isUnmounting) {
        return remove2();
      }
      callHook2(onBeforeLeave, [el]);
      let called = false;
      const done = el._leaveCb = (cancelled) => {
        if (called)
          return;
        called = true;
        remove2();
        if (cancelled) {
          callHook2(onLeaveCancelled, [el]);
        } else {
          callHook2(onAfterLeave, [el]);
        }
        el._leaveCb = void 0;
        if (leavingVNodesCache[key2] === vnode) {
          delete leavingVNodesCache[key2];
        }
      };
      leavingVNodesCache[key2] = vnode;
      if (onLeave) {
        callAsyncHook(onLeave, [el, done]);
      } else {
        done();
      }
    },
    clone(vnode2) {
      return resolveTransitionHooks(vnode2, props, state, instance);
    }
  };
  return hooks;
}
function emptyPlaceholder(vnode) {
  if (isKeepAlive(vnode)) {
    vnode = cloneVNode(vnode);
    vnode.children = null;
    return vnode;
  }
}
function getKeepAliveChild(vnode) {
  return isKeepAlive(vnode) ? vnode.children ? vnode.children[0] : void 0 : vnode;
}
function setTransitionHooks(vnode, hooks) {
  if (vnode.shapeFlag & 6 && vnode.component) {
    setTransitionHooks(vnode.component.subTree, hooks);
  } else if (vnode.shapeFlag & 128) {
    vnode.ssContent.transition = hooks.clone(vnode.ssContent);
    vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);
  } else {
    vnode.transition = hooks;
  }
}
function getTransitionRawChildren(children, keepComment = false, parentKey) {
  let ret = [];
  let keyedFragmentCount = 0;
  for (let i = 0; i < children.length; i++) {
    let child = children[i];
    const key = parentKey == null ? child.key : String(parentKey) + String(child.key != null ? child.key : i);
    if (child.type === Fragment) {
      if (child.patchFlag & 128)
        keyedFragmentCount++;
      ret = ret.concat(getTransitionRawChildren(child.children, keepComment, key));
    } else if (keepComment || child.type !== Comment) {
      ret.push(key != null ? cloneVNode(child, { key }) : child);
    }
  }
  if (keyedFragmentCount > 1) {
    for (let i = 0; i < ret.length; i++) {
      ret[i].patchFlag = -2;
    }
  }
  return ret;
}
function defineComponent(options) {
  return isFunction$3(options) ? { setup: options, name: options.name } : options;
}
const isAsyncWrapper = (i) => !!i.type.__asyncLoader;
function defineAsyncComponent(source) {
  if (isFunction$3(source)) {
    source = { loader: source };
  }
  const {
    loader,
    loadingComponent,
    errorComponent,
    delay = 200,
    timeout,
    // undefined = never times out
    suspensible = true,
    onError: userOnError
  } = source;
  let pendingRequest = null;
  let resolvedComp;
  let retries = 0;
  const retry = () => {
    retries++;
    pendingRequest = null;
    return load();
  };
  const load = () => {
    let thisRequest;
    return pendingRequest || (thisRequest = pendingRequest = loader().catch((err) => {
      err = err instanceof Error ? err : new Error(String(err));
      if (userOnError) {
        return new Promise((resolve2, reject) => {
          const userRetry = () => resolve2(retry());
          const userFail = () => reject(err);
          userOnError(err, userRetry, userFail, retries + 1);
        });
      } else {
        throw err;
      }
    }).then((comp) => {
      if (thisRequest !== pendingRequest && pendingRequest) {
        return pendingRequest;
      }
      if (comp && (comp.__esModule || comp[Symbol.toStringTag] === "Module")) {
        comp = comp.default;
      }
      resolvedComp = comp;
      return comp;
    }));
  };
  return defineComponent({
    name: "AsyncComponentWrapper",
    __asyncLoader: load,
    get __asyncResolved() {
      return resolvedComp;
    },
    setup() {
      const instance = currentInstance;
      if (resolvedComp) {
        return () => createInnerComp(resolvedComp, instance);
      }
      const onError = (err) => {
        pendingRequest = null;
        handleError(
          err,
          instance,
          13,
          !errorComponent
          /* do not throw in dev if user provided error component */
        );
      };
      if (suspensible && instance.suspense || isInSSRComponentSetup) {
        return load().then((comp) => {
          return () => createInnerComp(comp, instance);
        }).catch((err) => {
          onError(err);
          return () => errorComponent ? createVNode(errorComponent, {
            error: err
          }) : null;
        });
      }
      const loaded = ref(false);
      const error = ref();
      const delayed = ref(!!delay);
      if (delay) {
        setTimeout(() => {
          delayed.value = false;
        }, delay);
      }
      if (timeout != null) {
        setTimeout(() => {
          if (!loaded.value && !error.value) {
            const err = new Error(`Async component timed out after ${timeout}ms.`);
            onError(err);
            error.value = err;
          }
        }, timeout);
      }
      load().then(() => {
        loaded.value = true;
        if (instance.parent && isKeepAlive(instance.parent.vnode)) {
          queueJob(instance.parent.update);
        }
      }).catch((err) => {
        onError(err);
        error.value = err;
      });
      return () => {
        if (loaded.value && resolvedComp) {
          return createInnerComp(resolvedComp, instance);
        } else if (error.value && errorComponent) {
          return createVNode(errorComponent, {
            error: error.value
          });
        } else if (loadingComponent && !delayed.value) {
          return createVNode(loadingComponent);
        }
      };
    }
  });
}
function createInnerComp(comp, parent) {
  const { ref: ref2, props, children, ce } = parent.vnode;
  const vnode = createVNode(comp, props, children);
  vnode.ref = ref2;
  vnode.ce = ce;
  delete parent.vnode.ce;
  return vnode;
}
const isKeepAlive = (vnode) => vnode.type.__isKeepAlive;
const KeepAliveImpl = {
  name: `KeepAlive`,
  // Marker for special handling inside the renderer. We are not using a ===
  // check directly on KeepAlive in the renderer, because importing it directly
  // would prevent it from being tree-shaken.
  __isKeepAlive: true,
  props: {
    include: [String, RegExp, Array],
    exclude: [String, RegExp, Array],
    max: [String, Number]
  },
  setup(props, { slots }) {
    const instance = getCurrentInstance();
    const sharedContext = instance.ctx;
    if (!sharedContext.renderer) {
      return () => {
        const children = slots.default && slots.default();
        return children && children.length === 1 ? children[0] : children;
      };
    }
    const cache = /* @__PURE__ */ new Map();
    const keys = /* @__PURE__ */ new Set();
    let current = null;
    const parentSuspense = instance.suspense;
    const { renderer: { p: patch, m: move, um: _unmount, o: { createElement } } } = sharedContext;
    const storageContainer = createElement("div");
    sharedContext.activate = (vnode, container, anchor, isSVG, optimized) => {
      const instance2 = vnode.component;
      move(vnode, container, anchor, 0, parentSuspense);
      patch(instance2.vnode, vnode, container, anchor, instance2, parentSuspense, isSVG, vnode.slotScopeIds, optimized);
      queuePostRenderEffect(() => {
        instance2.isDeactivated = false;
        if (instance2.a) {
          invokeArrayFns(instance2.a);
        }
        const vnodeHook = vnode.props && vnode.props.onVnodeMounted;
        if (vnodeHook) {
          invokeVNodeHook(vnodeHook, instance2.parent, vnode);
        }
      }, parentSuspense);
    };
    sharedContext.deactivate = (vnode) => {
      const instance2 = vnode.component;
      move(vnode, storageContainer, null, 1, parentSuspense);
      queuePostRenderEffect(() => {
        if (instance2.da) {
          invokeArrayFns(instance2.da);
        }
        const vnodeHook = vnode.props && vnode.props.onVnodeUnmounted;
        if (vnodeHook) {
          invokeVNodeHook(vnodeHook, instance2.parent, vnode);
        }
        instance2.isDeactivated = true;
      }, parentSuspense);
    };
    function unmount(vnode) {
      resetShapeFlag(vnode);
      _unmount(vnode, instance, parentSuspense, true);
    }
    function pruneCache(filter) {
      cache.forEach((vnode, key) => {
        const name = getComponentName(vnode.type);
        if (name && (!filter || !filter(name))) {
          pruneCacheEntry(key);
        }
      });
    }
    function pruneCacheEntry(key) {
      const cached = cache.get(key);
      if (!current || !isSameVNodeType(cached, current)) {
        unmount(cached);
      } else if (current) {
        resetShapeFlag(current);
      }
      cache.delete(key);
      keys.delete(key);
    }
    watch(
      () => [props.include, props.exclude],
      ([include, exclude]) => {
        include && pruneCache((name) => matches(include, name));
        exclude && pruneCache((name) => !matches(exclude, name));
      },
      // prune post-render after `current` has been updated
      { flush: "post", deep: true }
    );
    let pendingCacheKey = null;
    const cacheSubtree = () => {
      if (pendingCacheKey != null) {
        cache.set(pendingCacheKey, getInnerChild(instance.subTree));
      }
    };
    onMounted(cacheSubtree);
    onUpdated(cacheSubtree);
    onBeforeUnmount(() => {
      cache.forEach((cached) => {
        const { subTree, suspense } = instance;
        const vnode = getInnerChild(subTree);
        if (cached.type === vnode.type && cached.key === vnode.key) {
          resetShapeFlag(vnode);
          const da = vnode.component.da;
          da && queuePostRenderEffect(da, suspense);
          return;
        }
        unmount(cached);
      });
    });
    return () => {
      pendingCacheKey = null;
      if (!slots.default) {
        return null;
      }
      const children = slots.default();
      const rawVNode = children[0];
      if (children.length > 1) {
        current = null;
        return children;
      } else if (!isVNode(rawVNode) || !(rawVNode.shapeFlag & 4) && !(rawVNode.shapeFlag & 128)) {
        current = null;
        return rawVNode;
      }
      let vnode = getInnerChild(rawVNode);
      const comp = vnode.type;
      const name = getComponentName(isAsyncWrapper(vnode) ? vnode.type.__asyncResolved || {} : comp);
      const { include, exclude, max } = props;
      if (include && (!name || !matches(include, name)) || exclude && name && matches(exclude, name)) {
        current = vnode;
        return rawVNode;
      }
      const key = vnode.key == null ? comp : vnode.key;
      const cachedVNode = cache.get(key);
      if (vnode.el) {
        vnode = cloneVNode(vnode);
        if (rawVNode.shapeFlag & 128) {
          rawVNode.ssContent = vnode;
        }
      }
      pendingCacheKey = key;
      if (cachedVNode) {
        vnode.el = cachedVNode.el;
        vnode.component = cachedVNode.component;
        if (vnode.transition) {
          setTransitionHooks(vnode, vnode.transition);
        }
        vnode.shapeFlag |= 512;
        keys.delete(key);
        keys.add(key);
      } else {
        keys.add(key);
        if (max && keys.size > parseInt(max, 10)) {
          pruneCacheEntry(keys.values().next().value);
        }
      }
      vnode.shapeFlag |= 256;
      current = vnode;
      return isSuspense(rawVNode.type) ? rawVNode : vnode;
    };
  }
};
const KeepAlive = KeepAliveImpl;
function matches(pattern, name) {
  if (isArray$1(pattern)) {
    return pattern.some((p2) => matches(p2, name));
  } else if (isString$1(pattern)) {
    return pattern.split(",").includes(name);
  } else if (isRegExp(pattern)) {
    return pattern.test(name);
  }
  return false;
}
function onActivated(hook, target) {
  registerKeepAliveHook(hook, "a", target);
}
function onDeactivated(hook, target) {
  registerKeepAliveHook(hook, "da", target);
}
function registerKeepAliveHook(hook, type, target = currentInstance) {
  const wrappedHook = hook.__wdc || (hook.__wdc = () => {
    let current = target;
    while (current) {
      if (current.isDeactivated) {
        return;
      }
      current = current.parent;
    }
    return hook();
  });
  injectHook(type, wrappedHook, target);
  if (target) {
    let current = target.parent;
    while (current && current.parent) {
      if (isKeepAlive(current.parent.vnode)) {
        injectToKeepAliveRoot(wrappedHook, type, target, current);
      }
      current = current.parent;
    }
  }
}
function injectToKeepAliveRoot(hook, type, target, keepAliveRoot) {
  const injected = injectHook(
    type,
    hook,
    keepAliveRoot,
    true
    /* prepend */
  );
  onUnmounted(() => {
    remove(keepAliveRoot[type], injected);
  }, target);
}
function resetShapeFlag(vnode) {
  vnode.shapeFlag &= ~256;
  vnode.shapeFlag &= ~512;
}
function getInnerChild(vnode) {
  return vnode.shapeFlag & 128 ? vnode.ssContent : vnode;
}
function injectHook(type, hook, target = currentInstance, prepend = false) {
  if (target) {
    const hooks = target[type] || (target[type] = []);
    const wrappedHook = hook.__weh || (hook.__weh = (...args) => {
      if (target.isUnmounted) {
        return;
      }
      pauseTracking();
      setCurrentInstance(target);
      const res = callWithAsyncErrorHandling(hook, target, type, args);
      unsetCurrentInstance();
      resetTracking();
      return res;
    });
    if (prepend) {
      hooks.unshift(wrappedHook);
    } else {
      hooks.push(wrappedHook);
    }
    return wrappedHook;
  }
}
const createHook = (lifecycle) => (hook, target = currentInstance) => (
  // post-create lifecycle registrations are noops during SSR (except for serverPrefetch)
  (!isInSSRComponentSetup || lifecycle === "sp") && injectHook(lifecycle, (...args) => hook(...args), target)
);
const onBeforeMount = createHook(
  "bm"
  /* LifecycleHooks.BEFORE_MOUNT */
);
const onMounted = createHook(
  "m"
  /* LifecycleHooks.MOUNTED */
);
const onBeforeUpdate = createHook(
  "bu"
  /* LifecycleHooks.BEFORE_UPDATE */
);
const onUpdated = createHook(
  "u"
  /* LifecycleHooks.UPDATED */
);
const onBeforeUnmount = createHook(
  "bum"
  /* LifecycleHooks.BEFORE_UNMOUNT */
);
const onUnmounted = createHook(
  "um"
  /* LifecycleHooks.UNMOUNTED */
);
const onServerPrefetch = createHook(
  "sp"
  /* LifecycleHooks.SERVER_PREFETCH */
);
const onRenderTriggered = createHook(
  "rtg"
  /* LifecycleHooks.RENDER_TRIGGERED */
);
const onRenderTracked = createHook(
  "rtc"
  /* LifecycleHooks.RENDER_TRACKED */
);
function onErrorCaptured(hook, target = currentInstance) {
  injectHook("ec", hook, target);
}
function withDirectives(vnode, directives) {
  const internalInstance = currentRenderingInstance;
  if (internalInstance === null) {
    return vnode;
  }
  const instance = getExposeProxy(internalInstance) || internalInstance.proxy;
  const bindings = vnode.dirs || (vnode.dirs = []);
  for (let i = 0; i < directives.length; i++) {
    let [dir, value, arg, modifiers = EMPTY_OBJ] = directives[i];
    if (dir) {
      if (isFunction$3(dir)) {
        dir = {
          mounted: dir,
          updated: dir
        };
      }
      if (dir.deep) {
        traverse(value);
      }
      bindings.push({
        dir,
        instance,
        value,
        oldValue: void 0,
        arg,
        modifiers
      });
    }
  }
  return vnode;
}
function invokeDirectiveHook(vnode, prevVNode, instance, name) {
  const bindings = vnode.dirs;
  const oldBindings = prevVNode && prevVNode.dirs;
  for (let i = 0; i < bindings.length; i++) {
    const binding = bindings[i];
    if (oldBindings) {
      binding.oldValue = oldBindings[i].value;
    }
    let hook = binding.dir[name];
    if (hook) {
      pauseTracking();
      callWithAsyncErrorHandling(hook, instance, 8, [
        vnode.el,
        binding,
        vnode,
        prevVNode
      ]);
      resetTracking();
    }
  }
}
const COMPONENTS = "components";
const DIRECTIVES = "directives";
function resolveComponent(name, maybeSelfReference) {
  return resolveAsset(COMPONENTS, name, true, maybeSelfReference) || name;
}
const NULL_DYNAMIC_COMPONENT = Symbol();
function resolveDynamicComponent(component) {
  if (isString$1(component)) {
    return resolveAsset(COMPONENTS, component, false) || component;
  } else {
    return component || NULL_DYNAMIC_COMPONENT;
  }
}
function resolveDirective(name) {
  return resolveAsset(DIRECTIVES, name);
}
function resolveAsset(type, name, warnMissing = true, maybeSelfReference = false) {
  const instance = currentRenderingInstance || currentInstance;
  if (instance) {
    const Component = instance.type;
    if (type === COMPONENTS) {
      const selfName = getComponentName(
        Component,
        false
        /* do not include inferred name to avoid breaking existing code */
      );
      if (selfName && (selfName === name || selfName === camelize$1(name) || selfName === capitalize(camelize$1(name)))) {
        return Component;
      }
    }
    const res = (
      // local registration
      // check instance[type] first which is resolved for options API
      resolve(instance[type] || Component[type], name) || // global registration
      resolve(instance.appContext[type], name)
    );
    if (!res && maybeSelfReference) {
      return Component;
    }
    return res;
  }
}
function resolve(registry, name) {
  return registry && (registry[name] || registry[camelize$1(name)] || registry[capitalize(camelize$1(name))]);
}
function renderList(source, renderItem, cache, index2) {
  let ret;
  const cached = cache && cache[index2];
  if (isArray$1(source) || isString$1(source)) {
    ret = new Array(source.length);
    for (let i = 0, l = source.length; i < l; i++) {
      ret[i] = renderItem(source[i], i, void 0, cached && cached[i]);
    }
  } else if (typeof source === "number") {
    ret = new Array(source);
    for (let i = 0; i < source; i++) {
      ret[i] = renderItem(i + 1, i, void 0, cached && cached[i]);
    }
  } else if (isObject$2(source)) {
    if (source[Symbol.iterator]) {
      ret = Array.from(source, (item, i) => renderItem(item, i, void 0, cached && cached[i]));
    } else {
      const keys = Object.keys(source);
      ret = new Array(keys.length);
      for (let i = 0, l = keys.length; i < l; i++) {
        const key = keys[i];
        ret[i] = renderItem(source[key], key, i, cached && cached[i]);
      }
    }
  } else {
    ret = [];
  }
  if (cache) {
    cache[index2] = ret;
  }
  return ret;
}
function createSlots(slots, dynamicSlots) {
  for (let i = 0; i < dynamicSlots.length; i++) {
    const slot = dynamicSlots[i];
    if (isArray$1(slot)) {
      for (let j = 0; j < slot.length; j++) {
        slots[slot[j].name] = slot[j].fn;
      }
    } else if (slot) {
      slots[slot.name] = slot.key ? (...args) => {
        const res = slot.fn(...args);
        if (res)
          res.key = slot.key;
        return res;
      } : slot.fn;
    }
  }
  return slots;
}
function renderSlot(slots, name, props = {}, fallback, noSlotted) {
  if (currentRenderingInstance.isCE || currentRenderingInstance.parent && isAsyncWrapper(currentRenderingInstance.parent) && currentRenderingInstance.parent.isCE) {
    if (name !== "default")
      props.name = name;
    return createVNode("slot", props, fallback && fallback());
  }
  let slot = slots[name];
  if (slot && slot._c) {
    slot._d = false;
  }
  openBlock();
  const validSlotContent = slot && ensureValidVNode(slot(props));
  const rendered = createBlock(
    Fragment,
    {
      key: props.key || // slot content array of a dynamic conditional slot may have a branch
      // key attached in the `createSlots` helper, respect that
      validSlotContent && validSlotContent.key || `_${name}`
    },
    validSlotContent || (fallback ? fallback() : []),
    validSlotContent && slots._ === 1 ? 64 : -2
    /* PatchFlags.BAIL */
  );
  if (!noSlotted && rendered.scopeId) {
    rendered.slotScopeIds = [rendered.scopeId + "-s"];
  }
  if (slot && slot._c) {
    slot._d = true;
  }
  return rendered;
}
function ensureValidVNode(vnodes) {
  return vnodes.some((child) => {
    if (!isVNode(child))
      return true;
    if (child.type === Comment)
      return false;
    if (child.type === Fragment && !ensureValidVNode(child.children))
      return false;
    return true;
  }) ? vnodes : null;
}
function toHandlers(obj, preserveCaseIfNecessary) {
  const ret = {};
  for (const key in obj) {
    ret[preserveCaseIfNecessary && /[A-Z]/.test(key) ? `on:${key}` : toHandlerKey(key)] = obj[key];
  }
  return ret;
}
const getPublicInstance = (i) => {
  if (!i)
    return null;
  if (isStatefulComponent(i))
    return getExposeProxy(i) || i.proxy;
  return getPublicInstance(i.parent);
};
const publicPropertiesMap = (
  // Move PURE marker to new line to workaround compiler discarding it
  // due to type annotation
  /* @__PURE__ */ extend(/* @__PURE__ */ Object.create(null), {
    $: (i) => i,
    $el: (i) => i.vnode.el,
    $data: (i) => i.data,
    $props: (i) => i.props,
    $attrs: (i) => i.attrs,
    $slots: (i) => i.slots,
    $refs: (i) => i.refs,
    $parent: (i) => getPublicInstance(i.parent),
    $root: (i) => getPublicInstance(i.root),
    $emit: (i) => i.emit,
    $options: (i) => resolveMergedOptions(i),
    $forceUpdate: (i) => i.f || (i.f = () => queueJob(i.update)),
    $nextTick: (i) => i.n || (i.n = nextTick.bind(i.proxy)),
    $watch: (i) => instanceWatch.bind(i)
  })
);
const hasSetupBinding = (state, key) => state !== EMPTY_OBJ && !state.__isScriptSetup && hasOwn(state, key);
const PublicInstanceProxyHandlers = {
  get({ _: instance }, key) {
    const { ctx, setupState, data, props, accessCache, type, appContext } = instance;
    let normalizedProps;
    if (key[0] !== "$") {
      const n = accessCache[key];
      if (n !== void 0) {
        switch (n) {
          case 1:
            return setupState[key];
          case 2:
            return data[key];
          case 4:
            return ctx[key];
          case 3:
            return props[key];
        }
      } else if (hasSetupBinding(setupState, key)) {
        accessCache[key] = 1;
        return setupState[key];
      } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
        accessCache[key] = 2;
        return data[key];
      } else if (
        // only cache other properties when instance has declared (thus stable)
        // props
        (normalizedProps = instance.propsOptions[0]) && hasOwn(normalizedProps, key)
      ) {
        accessCache[key] = 3;
        return props[key];
      } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
        accessCache[key] = 4;
        return ctx[key];
      } else if (shouldCacheAccess) {
        accessCache[key] = 0;
      }
    }
    const publicGetter = publicPropertiesMap[key];
    let cssModule, globalProperties2;
    if (publicGetter) {
      if (key === "$attrs") {
        track(instance, "get", key);
      }
      return publicGetter(instance);
    } else if (
      // css module (injected by vue-loader)
      (cssModule = type.__cssModules) && (cssModule = cssModule[key])
    ) {
      return cssModule;
    } else if (ctx !== EMPTY_OBJ && hasOwn(ctx, key)) {
      accessCache[key] = 4;
      return ctx[key];
    } else if (
      // global properties
      globalProperties2 = appContext.config.globalProperties, hasOwn(globalProperties2, key)
    ) {
      {
        return globalProperties2[key];
      }
    } else
      ;
  },
  set({ _: instance }, key, value) {
    const { data, setupState, ctx } = instance;
    if (hasSetupBinding(setupState, key)) {
      setupState[key] = value;
      return true;
    } else if (data !== EMPTY_OBJ && hasOwn(data, key)) {
      data[key] = value;
      return true;
    } else if (hasOwn(instance.props, key)) {
      return false;
    }
    if (key[0] === "$" && key.slice(1) in instance) {
      return false;
    } else {
      {
        ctx[key] = value;
      }
    }
    return true;
  },
  has({ _: { data, setupState, accessCache, ctx, appContext, propsOptions } }, key) {
    let normalizedProps;
    return !!accessCache[key] || data !== EMPTY_OBJ && hasOwn(data, key) || hasSetupBinding(setupState, key) || (normalizedProps = propsOptions[0]) && hasOwn(normalizedProps, key) || hasOwn(ctx, key) || hasOwn(publicPropertiesMap, key) || hasOwn(appContext.config.globalProperties, key);
  },
  defineProperty(target, key, descriptor) {
    if (descriptor.get != null) {
      target._.accessCache[key] = 0;
    } else if (hasOwn(descriptor, "value")) {
      this.set(target, key, descriptor.value, null);
    }
    return Reflect.defineProperty(target, key, descriptor);
  }
};
const RuntimeCompiledPublicInstanceProxyHandlers = /* @__PURE__ */ extend({}, PublicInstanceProxyHandlers, {
  get(target, key) {
    if (key === Symbol.unscopables) {
      return;
    }
    return PublicInstanceProxyHandlers.get(target, key, target);
  },
  has(_, key) {
    const has2 = key[0] !== "_" && !isGloballyWhitelisted(key);
    return has2;
  }
});
let shouldCacheAccess = true;
function applyOptions(instance) {
  const options = resolveMergedOptions(instance);
  const publicThis = instance.proxy;
  const ctx = instance.ctx;
  shouldCacheAccess = false;
  if (options.beforeCreate) {
    callHook$1(
      options.beforeCreate,
      instance,
      "bc"
      /* LifecycleHooks.BEFORE_CREATE */
    );
  }
  const {
    // state
    data: dataOptions,
    computed: computedOptions,
    methods,
    watch: watchOptions,
    provide: provideOptions,
    inject: injectOptions,
    // lifecycle
    created,
    beforeMount,
    mounted,
    beforeUpdate,
    updated,
    activated,
    deactivated,
    beforeDestroy,
    beforeUnmount,
    destroyed,
    unmounted,
    render: render11,
    renderTracked,
    renderTriggered,
    errorCaptured,
    serverPrefetch,
    // public API
    expose,
    inheritAttrs,
    // assets
    components,
    directives,
    filters
  } = options;
  const checkDuplicateProperties = null;
  if (injectOptions) {
    resolveInjections(injectOptions, ctx, checkDuplicateProperties, instance.appContext.config.unwrapInjectedRef);
  }
  if (methods) {
    for (const key in methods) {
      const methodHandler = methods[key];
      if (isFunction$3(methodHandler)) {
        {
          ctx[key] = methodHandler.bind(publicThis);
        }
      }
    }
  }
  if (dataOptions) {
    const data = dataOptions.call(publicThis, publicThis);
    if (!isObject$2(data))
      ;
    else {
      instance.data = reactive(data);
    }
  }
  shouldCacheAccess = true;
  if (computedOptions) {
    for (const key in computedOptions) {
      const opt = computedOptions[key];
      const get2 = isFunction$3(opt) ? opt.bind(publicThis, publicThis) : isFunction$3(opt.get) ? opt.get.bind(publicThis, publicThis) : NOOP;
      const set2 = !isFunction$3(opt) && isFunction$3(opt.set) ? opt.set.bind(publicThis) : NOOP;
      const c = computed({
        get: get2,
        set: set2
      });
      Object.defineProperty(ctx, key, {
        enumerable: true,
        configurable: true,
        get: () => c.value,
        set: (v) => c.value = v
      });
    }
  }
  if (watchOptions) {
    for (const key in watchOptions) {
      createWatcher(watchOptions[key], ctx, publicThis, key);
    }
  }
  if (provideOptions) {
    const provides = isFunction$3(provideOptions) ? provideOptions.call(publicThis) : provideOptions;
    Reflect.ownKeys(provides).forEach((key) => {
      provide(key, provides[key]);
    });
  }
  if (created) {
    callHook$1(
      created,
      instance,
      "c"
      /* LifecycleHooks.CREATED */
    );
  }
  function registerLifecycleHook(register, hook) {
    if (isArray$1(hook)) {
      hook.forEach((_hook) => register(_hook.bind(publicThis)));
    } else if (hook) {
      register(hook.bind(publicThis));
    }
  }
  registerLifecycleHook(onBeforeMount, beforeMount);
  registerLifecycleHook(onMounted, mounted);
  registerLifecycleHook(onBeforeUpdate, beforeUpdate);
  registerLifecycleHook(onUpdated, updated);
  registerLifecycleHook(onActivated, activated);
  registerLifecycleHook(onDeactivated, deactivated);
  registerLifecycleHook(onErrorCaptured, errorCaptured);
  registerLifecycleHook(onRenderTracked, renderTracked);
  registerLifecycleHook(onRenderTriggered, renderTriggered);
  registerLifecycleHook(onBeforeUnmount, beforeUnmount);
  registerLifecycleHook(onUnmounted, unmounted);
  registerLifecycleHook(onServerPrefetch, serverPrefetch);
  if (isArray$1(expose)) {
    if (expose.length) {
      const exposed = instance.exposed || (instance.exposed = {});
      expose.forEach((key) => {
        Object.defineProperty(exposed, key, {
          get: () => publicThis[key],
          set: (val) => publicThis[key] = val
        });
      });
    } else if (!instance.exposed) {
      instance.exposed = {};
    }
  }
  if (render11 && instance.render === NOOP) {
    instance.render = render11;
  }
  if (inheritAttrs != null) {
    instance.inheritAttrs = inheritAttrs;
  }
  if (components)
    instance.components = components;
  if (directives)
    instance.directives = directives;
}
function resolveInjections(injectOptions, ctx, checkDuplicateProperties = NOOP, unwrapRef = false) {
  if (isArray$1(injectOptions)) {
    injectOptions = normalizeInject(injectOptions);
  }
  for (const key in injectOptions) {
    const opt = injectOptions[key];
    let injected;
    if (isObject$2(opt)) {
      if ("default" in opt) {
        injected = inject(
          opt.from || key,
          opt.default,
          true
          /* treat default function as factory */
        );
      } else {
        injected = inject(opt.from || key);
      }
    } else {
      injected = inject(opt);
    }
    if (isRef(injected)) {
      if (unwrapRef) {
        Object.defineProperty(ctx, key, {
          enumerable: true,
          configurable: true,
          get: () => injected.value,
          set: (v) => injected.value = v
        });
      } else {
        ctx[key] = injected;
      }
    } else {
      ctx[key] = injected;
    }
  }
}
function callHook$1(hook, instance, type) {
  callWithAsyncErrorHandling(isArray$1(hook) ? hook.map((h2) => h2.bind(instance.proxy)) : hook.bind(instance.proxy), instance, type);
}
function createWatcher(raw, ctx, publicThis, key) {
  const getter = key.includes(".") ? createPathGetter(publicThis, key) : () => publicThis[key];
  if (isString$1(raw)) {
    const handler = ctx[raw];
    if (isFunction$3(handler)) {
      watch(getter, handler);
    }
  } else if (isFunction$3(raw)) {
    watch(getter, raw.bind(publicThis));
  } else if (isObject$2(raw)) {
    if (isArray$1(raw)) {
      raw.forEach((r) => createWatcher(r, ctx, publicThis, key));
    } else {
      const handler = isFunction$3(raw.handler) ? raw.handler.bind(publicThis) : ctx[raw.handler];
      if (isFunction$3(handler)) {
        watch(getter, handler, raw);
      }
    }
  } else
    ;
}
function resolveMergedOptions(instance) {
  const base = instance.type;
  const { mixins, extends: extendsOptions } = base;
  const { mixins: globalMixins, optionsCache: cache, config: { optionMergeStrategies } } = instance.appContext;
  const cached = cache.get(base);
  let resolved;
  if (cached) {
    resolved = cached;
  } else if (!globalMixins.length && !mixins && !extendsOptions) {
    {
      resolved = base;
    }
  } else {
    resolved = {};
    if (globalMixins.length) {
      globalMixins.forEach((m) => mergeOptions$1(resolved, m, optionMergeStrategies, true));
    }
    mergeOptions$1(resolved, base, optionMergeStrategies);
  }
  if (isObject$2(base)) {
    cache.set(base, resolved);
  }
  return resolved;
}
function mergeOptions$1(to, from, strats, asMixin = false) {
  const { mixins, extends: extendsOptions } = from;
  if (extendsOptions) {
    mergeOptions$1(to, extendsOptions, strats, true);
  }
  if (mixins) {
    mixins.forEach((m) => mergeOptions$1(to, m, strats, true));
  }
  for (const key in from) {
    if (asMixin && key === "expose")
      ;
    else {
      const strat = internalOptionMergeStrats[key] || strats && strats[key];
      to[key] = strat ? strat(to[key], from[key]) : from[key];
    }
  }
  return to;
}
const internalOptionMergeStrats = {
  data: mergeDataFn,
  props: mergeObjectOptions,
  emits: mergeObjectOptions,
  // objects
  methods: mergeObjectOptions,
  computed: mergeObjectOptions,
  // lifecycle
  beforeCreate: mergeAsArray$1,
  created: mergeAsArray$1,
  beforeMount: mergeAsArray$1,
  mounted: mergeAsArray$1,
  beforeUpdate: mergeAsArray$1,
  updated: mergeAsArray$1,
  beforeDestroy: mergeAsArray$1,
  beforeUnmount: mergeAsArray$1,
  destroyed: mergeAsArray$1,
  unmounted: mergeAsArray$1,
  activated: mergeAsArray$1,
  deactivated: mergeAsArray$1,
  errorCaptured: mergeAsArray$1,
  serverPrefetch: mergeAsArray$1,
  // assets
  components: mergeObjectOptions,
  directives: mergeObjectOptions,
  // watch
  watch: mergeWatchOptions,
  // provide / inject
  provide: mergeDataFn,
  inject: mergeInject
};
function mergeDataFn(to, from) {
  if (!from) {
    return to;
  }
  if (!to) {
    return from;
  }
  return function mergedDataFn() {
    return extend(isFunction$3(to) ? to.call(this, this) : to, isFunction$3(from) ? from.call(this, this) : from);
  };
}
function mergeInject(to, from) {
  return mergeObjectOptions(normalizeInject(to), normalizeInject(from));
}
function normalizeInject(raw) {
  if (isArray$1(raw)) {
    const res = {};
    for (let i = 0; i < raw.length; i++) {
      res[raw[i]] = raw[i];
    }
    return res;
  }
  return raw;
}
function mergeAsArray$1(to, from) {
  return to ? [...new Set([].concat(to, from))] : from;
}
function mergeObjectOptions(to, from) {
  return to ? extend(extend(/* @__PURE__ */ Object.create(null), to), from) : from;
}
function mergeWatchOptions(to, from) {
  if (!to)
    return from;
  if (!from)
    return to;
  const merged = extend(/* @__PURE__ */ Object.create(null), to);
  for (const key in from) {
    merged[key] = mergeAsArray$1(to[key], from[key]);
  }
  return merged;
}
function initProps(instance, rawProps, isStateful, isSSR = false) {
  const props = {};
  const attrs = {};
  def(attrs, InternalObjectKey, 1);
  instance.propsDefaults = /* @__PURE__ */ Object.create(null);
  setFullProps(instance, rawProps, props, attrs);
  for (const key in instance.propsOptions[0]) {
    if (!(key in props)) {
      props[key] = void 0;
    }
  }
  if (isStateful) {
    instance.props = isSSR ? props : shallowReactive(props);
  } else {
    if (!instance.type.props) {
      instance.props = attrs;
    } else {
      instance.props = props;
    }
  }
  instance.attrs = attrs;
}
function updateProps(instance, rawProps, rawPrevProps, optimized) {
  const { props, attrs, vnode: { patchFlag } } = instance;
  const rawCurrentProps = toRaw(props);
  const [options] = instance.propsOptions;
  let hasAttrsChanged = false;
  if (
    // always force full diff in dev
    // - #1942 if hmr is enabled with sfc component
    // - vite#872 non-sfc component used by sfc component
    (optimized || patchFlag > 0) && !(patchFlag & 16)
  ) {
    if (patchFlag & 8) {
      const propsToUpdate = instance.vnode.dynamicProps;
      for (let i = 0; i < propsToUpdate.length; i++) {
        let key = propsToUpdate[i];
        if (isEmitListener(instance.emitsOptions, key)) {
          continue;
        }
        const value = rawProps[key];
        if (options) {
          if (hasOwn(attrs, key)) {
            if (value !== attrs[key]) {
              attrs[key] = value;
              hasAttrsChanged = true;
            }
          } else {
            const camelizedKey = camelize$1(key);
            props[camelizedKey] = resolvePropValue(
              options,
              rawCurrentProps,
              camelizedKey,
              value,
              instance,
              false
              /* isAbsent */
            );
          }
        } else {
          if (value !== attrs[key]) {
            attrs[key] = value;
            hasAttrsChanged = true;
          }
        }
      }
    }
  } else {
    if (setFullProps(instance, rawProps, props, attrs)) {
      hasAttrsChanged = true;
    }
    let kebabKey;
    for (const key in rawCurrentProps) {
      if (!rawProps || // for camelCase
      !hasOwn(rawProps, key) && // it's possible the original props was passed in as kebab-case
      // and converted to camelCase (#955)
      ((kebabKey = hyphenate(key)) === key || !hasOwn(rawProps, kebabKey))) {
        if (options) {
          if (rawPrevProps && // for camelCase
          (rawPrevProps[key] !== void 0 || // for kebab-case
          rawPrevProps[kebabKey] !== void 0)) {
            props[key] = resolvePropValue(
              options,
              rawCurrentProps,
              key,
              void 0,
              instance,
              true
              /* isAbsent */
            );
          }
        } else {
          delete props[key];
        }
      }
    }
    if (attrs !== rawCurrentProps) {
      for (const key in attrs) {
        if (!rawProps || !hasOwn(rawProps, key) && true) {
          delete attrs[key];
          hasAttrsChanged = true;
        }
      }
    }
  }
  if (hasAttrsChanged) {
    trigger(instance, "set", "$attrs");
  }
}
function setFullProps(instance, rawProps, props, attrs) {
  const [options, needCastKeys] = instance.propsOptions;
  let hasAttrsChanged = false;
  let rawCastValues;
  if (rawProps) {
    for (let key in rawProps) {
      if (isReservedProp(key)) {
        continue;
      }
      const value = rawProps[key];
      let camelKey;
      if (options && hasOwn(options, camelKey = camelize$1(key))) {
        if (!needCastKeys || !needCastKeys.includes(camelKey)) {
          props[camelKey] = value;
        } else {
          (rawCastValues || (rawCastValues = {}))[camelKey] = value;
        }
      } else if (!isEmitListener(instance.emitsOptions, key)) {
        if (!(key in attrs) || value !== attrs[key]) {
          attrs[key] = value;
          hasAttrsChanged = true;
        }
      }
    }
  }
  if (needCastKeys) {
    const rawCurrentProps = toRaw(props);
    const castValues = rawCastValues || EMPTY_OBJ;
    for (let i = 0; i < needCastKeys.length; i++) {
      const key = needCastKeys[i];
      props[key] = resolvePropValue(options, rawCurrentProps, key, castValues[key], instance, !hasOwn(castValues, key));
    }
  }
  return hasAttrsChanged;
}
function resolvePropValue(options, props, key, value, instance, isAbsent) {
  const opt = options[key];
  if (opt != null) {
    const hasDefault = hasOwn(opt, "default");
    if (hasDefault && value === void 0) {
      const defaultValue = opt.default;
      if (opt.type !== Function && isFunction$3(defaultValue)) {
        const { propsDefaults } = instance;
        if (key in propsDefaults) {
          value = propsDefaults[key];
        } else {
          setCurrentInstance(instance);
          value = propsDefaults[key] = defaultValue.call(null, props);
          unsetCurrentInstance();
        }
      } else {
        value = defaultValue;
      }
    }
    if (opt[
      0
      /* BooleanFlags.shouldCast */
    ]) {
      if (isAbsent && !hasDefault) {
        value = false;
      } else if (opt[
        1
        /* BooleanFlags.shouldCastTrue */
      ] && (value === "" || value === hyphenate(key))) {
        value = true;
      }
    }
  }
  return value;
}
function normalizePropsOptions(comp, appContext, asMixin = false) {
  const cache = appContext.propsCache;
  const cached = cache.get(comp);
  if (cached) {
    return cached;
  }
  const raw = comp.props;
  const normalized = {};
  const needCastKeys = [];
  let hasExtends = false;
  if (!isFunction$3(comp)) {
    const extendProps = (raw2) => {
      hasExtends = true;
      const [props, keys] = normalizePropsOptions(raw2, appContext, true);
      extend(normalized, props);
      if (keys)
        needCastKeys.push(...keys);
    };
    if (!asMixin && appContext.mixins.length) {
      appContext.mixins.forEach(extendProps);
    }
    if (comp.extends) {
      extendProps(comp.extends);
    }
    if (comp.mixins) {
      comp.mixins.forEach(extendProps);
    }
  }
  if (!raw && !hasExtends) {
    if (isObject$2(comp)) {
      cache.set(comp, EMPTY_ARR);
    }
    return EMPTY_ARR;
  }
  if (isArray$1(raw)) {
    for (let i = 0; i < raw.length; i++) {
      const normalizedKey = camelize$1(raw[i]);
      if (validatePropName(normalizedKey)) {
        normalized[normalizedKey] = EMPTY_OBJ;
      }
    }
  } else if (raw) {
    for (const key in raw) {
      const normalizedKey = camelize$1(key);
      if (validatePropName(normalizedKey)) {
        const opt = raw[key];
        const prop = normalized[normalizedKey] = isArray$1(opt) || isFunction$3(opt) ? { type: opt } : Object.assign({}, opt);
        if (prop) {
          const booleanIndex = getTypeIndex(Boolean, prop.type);
          const stringIndex = getTypeIndex(String, prop.type);
          prop[
            0
            /* BooleanFlags.shouldCast */
          ] = booleanIndex > -1;
          prop[
            1
            /* BooleanFlags.shouldCastTrue */
          ] = stringIndex < 0 || booleanIndex < stringIndex;
          if (booleanIndex > -1 || hasOwn(prop, "default")) {
            needCastKeys.push(normalizedKey);
          }
        }
      }
    }
  }
  const res = [normalized, needCastKeys];
  if (isObject$2(comp)) {
    cache.set(comp, res);
  }
  return res;
}
function validatePropName(key) {
  if (key[0] !== "$") {
    return true;
  }
  return false;
}
function getType(ctor) {
  const match = ctor && ctor.toString().match(/^\s*(function|class) (\w+)/);
  return match ? match[2] : ctor === null ? "null" : "";
}
function isSameType(a, b) {
  return getType(a) === getType(b);
}
function getTypeIndex(type, expectedTypes) {
  if (isArray$1(expectedTypes)) {
    return expectedTypes.findIndex((t) => isSameType(t, type));
  } else if (isFunction$3(expectedTypes)) {
    return isSameType(expectedTypes, type) ? 0 : -1;
  }
  return -1;
}
const isInternalKey = (key) => key[0] === "_" || key === "$stable";
const normalizeSlotValue = (value) => isArray$1(value) ? value.map(normalizeVNode) : [normalizeVNode(value)];
const normalizeSlot$1 = (key, rawSlot, ctx) => {
  if (rawSlot._n) {
    return rawSlot;
  }
  const normalized = withCtx((...args) => {
    if (false)
      ;
    return normalizeSlotValue(rawSlot(...args));
  }, ctx);
  normalized._c = false;
  return normalized;
};
const normalizeObjectSlots = (rawSlots, slots, instance) => {
  const ctx = rawSlots._ctx;
  for (const key in rawSlots) {
    if (isInternalKey(key))
      continue;
    const value = rawSlots[key];
    if (isFunction$3(value)) {
      slots[key] = normalizeSlot$1(key, value, ctx);
    } else if (value != null) {
      const normalized = normalizeSlotValue(value);
      slots[key] = () => normalized;
    }
  }
};
const normalizeVNodeSlots = (instance, children) => {
  const normalized = normalizeSlotValue(children);
  instance.slots.default = () => normalized;
};
const initSlots = (instance, children) => {
  if (instance.vnode.shapeFlag & 32) {
    const type = children._;
    if (type) {
      instance.slots = toRaw(children);
      def(children, "_", type);
    } else {
      normalizeObjectSlots(children, instance.slots = {});
    }
  } else {
    instance.slots = {};
    if (children) {
      normalizeVNodeSlots(instance, children);
    }
  }
  def(instance.slots, InternalObjectKey, 1);
};
const updateSlots = (instance, children, optimized) => {
  const { vnode, slots } = instance;
  let needDeletionCheck = true;
  let deletionComparisonTarget = EMPTY_OBJ;
  if (vnode.shapeFlag & 32) {
    const type = children._;
    if (type) {
      if (optimized && type === 1) {
        needDeletionCheck = false;
      } else {
        extend(slots, children);
        if (!optimized && type === 1) {
          delete slots._;
        }
      }
    } else {
      needDeletionCheck = !children.$stable;
      normalizeObjectSlots(children, slots);
    }
    deletionComparisonTarget = children;
  } else if (children) {
    normalizeVNodeSlots(instance, children);
    deletionComparisonTarget = { default: 1 };
  }
  if (needDeletionCheck) {
    for (const key in slots) {
      if (!isInternalKey(key) && !(key in deletionComparisonTarget)) {
        delete slots[key];
      }
    }
  }
};
function createAppContext() {
  return {
    app: null,
    config: {
      isNativeTag: NO,
      performance: false,
      globalProperties: {},
      optionMergeStrategies: {},
      errorHandler: void 0,
      warnHandler: void 0,
      compilerOptions: {}
    },
    mixins: [],
    components: {},
    directives: {},
    provides: /* @__PURE__ */ Object.create(null),
    optionsCache: /* @__PURE__ */ new WeakMap(),
    propsCache: /* @__PURE__ */ new WeakMap(),
    emitsCache: /* @__PURE__ */ new WeakMap()
  };
}
let uid$1 = 0;
function createAppAPI(render11, hydrate2) {
  return function createApp2(rootComponent, rootProps = null) {
    if (!isFunction$3(rootComponent)) {
      rootComponent = Object.assign({}, rootComponent);
    }
    if (rootProps != null && !isObject$2(rootProps)) {
      rootProps = null;
    }
    const context = createAppContext();
    const installedPlugins = /* @__PURE__ */ new Set();
    let isMounted = false;
    const app2 = context.app = {
      _uid: uid$1++,
      _component: rootComponent,
      _props: rootProps,
      _container: null,
      _context: context,
      _instance: null,
      version,
      get config() {
        return context.config;
      },
      set config(v) {
      },
      use(plugin, ...options) {
        if (installedPlugins.has(plugin))
          ;
        else if (plugin && isFunction$3(plugin.install)) {
          installedPlugins.add(plugin);
          plugin.install(app2, ...options);
        } else if (isFunction$3(plugin)) {
          installedPlugins.add(plugin);
          plugin(app2, ...options);
        } else
          ;
        return app2;
      },
      mixin(mixin) {
        {
          if (!context.mixins.includes(mixin)) {
            context.mixins.push(mixin);
          }
        }
        return app2;
      },
      component(name, component) {
        if (!component) {
          return context.components[name];
        }
        context.components[name] = component;
        return app2;
      },
      directive(name, directive) {
        if (!directive) {
          return context.directives[name];
        }
        context.directives[name] = directive;
        return app2;
      },
      mount(rootContainer, isHydrate, isSVG) {
        if (!isMounted) {
          const vnode = createVNode(rootComponent, rootProps);
          vnode.appContext = context;
          if (isHydrate && hydrate2) {
            hydrate2(vnode, rootContainer);
          } else {
            render11(vnode, rootContainer, isSVG);
          }
          isMounted = true;
          app2._container = rootContainer;
          rootContainer.__vue_app__ = app2;
          return getExposeProxy(vnode.component) || vnode.component.proxy;
        }
      },
      unmount() {
        if (isMounted) {
          render11(null, app2._container);
          delete app2._container.__vue_app__;
        }
      },
      provide(key, value) {
        context.provides[key] = value;
        return app2;
      }
    };
    return app2;
  };
}
function setRef(rawRef, oldRawRef, parentSuspense, vnode, isUnmount = false) {
  if (isArray$1(rawRef)) {
    rawRef.forEach((r, i) => setRef(r, oldRawRef && (isArray$1(oldRawRef) ? oldRawRef[i] : oldRawRef), parentSuspense, vnode, isUnmount));
    return;
  }
  if (isAsyncWrapper(vnode) && !isUnmount) {
    return;
  }
  const refValue = vnode.shapeFlag & 4 ? getExposeProxy(vnode.component) || vnode.component.proxy : vnode.el;
  const value = isUnmount ? null : refValue;
  const { i: owner, r: ref2 } = rawRef;
  const oldRef = oldRawRef && oldRawRef.r;
  const refs = owner.refs === EMPTY_OBJ ? owner.refs = {} : owner.refs;
  const setupState = owner.setupState;
  if (oldRef != null && oldRef !== ref2) {
    if (isString$1(oldRef)) {
      refs[oldRef] = null;
      if (hasOwn(setupState, oldRef)) {
        setupState[oldRef] = null;
      }
    } else if (isRef(oldRef)) {
      oldRef.value = null;
    }
  }
  if (isFunction$3(ref2)) {
    callWithErrorHandling(ref2, owner, 12, [value, refs]);
  } else {
    const _isString = isString$1(ref2);
    const _isRef = isRef(ref2);
    if (_isString || _isRef) {
      const doSet = () => {
        if (rawRef.f) {
          const existing = _isString ? hasOwn(setupState, ref2) ? setupState[ref2] : refs[ref2] : ref2.value;
          if (isUnmount) {
            isArray$1(existing) && remove(existing, refValue);
          } else {
            if (!isArray$1(existing)) {
              if (_isString) {
                refs[ref2] = [refValue];
                if (hasOwn(setupState, ref2)) {
                  setupState[ref2] = refs[ref2];
                }
              } else {
                ref2.value = [refValue];
                if (rawRef.k)
                  refs[rawRef.k] = ref2.value;
              }
            } else if (!existing.includes(refValue)) {
              existing.push(refValue);
            }
          }
        } else if (_isString) {
          refs[ref2] = value;
          if (hasOwn(setupState, ref2)) {
            setupState[ref2] = value;
          }
        } else if (_isRef) {
          ref2.value = value;
          if (rawRef.k)
            refs[rawRef.k] = value;
        } else
          ;
      };
      if (value) {
        doSet.id = -1;
        queuePostRenderEffect(doSet, parentSuspense);
      } else {
        doSet();
      }
    }
  }
}
let hasMismatch = false;
const isSVGContainer = (container) => /svg/.test(container.namespaceURI) && container.tagName !== "foreignObject";
const isComment = (node) => node.nodeType === 8;
function createHydrationFunctions(rendererInternals) {
  const { mt: mountComponent, p: patch, o: { patchProp: patchProp2, createText, nextSibling, parentNode, remove: remove2, insert, createComment } } = rendererInternals;
  const hydrate2 = (vnode, container) => {
    if (!container.hasChildNodes()) {
      patch(null, vnode, container);
      flushPostFlushCbs();
      container._vnode = vnode;
      return;
    }
    hasMismatch = false;
    hydrateNode(container.firstChild, vnode, null, null, null);
    flushPostFlushCbs();
    container._vnode = vnode;
    if (hasMismatch && true) {
      console.error(`Hydration completed but contains mismatches.`);
    }
  };
  const hydrateNode = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized = false) => {
    const isFragmentStart = isComment(node) && node.data === "[";
    const onMismatch = () => handleMismatch(node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragmentStart);
    const { type, ref: ref2, shapeFlag, patchFlag } = vnode;
    let domType = node.nodeType;
    vnode.el = node;
    if (patchFlag === -2) {
      optimized = false;
      vnode.dynamicChildren = null;
    }
    let nextNode = null;
    switch (type) {
      case Text:
        if (domType !== 3) {
          if (vnode.children === "") {
            insert(vnode.el = createText(""), parentNode(node), node);
            nextNode = node;
          } else {
            nextNode = onMismatch();
          }
        } else {
          if (node.data !== vnode.children) {
            hasMismatch = true;
            node.data = vnode.children;
          }
          nextNode = nextSibling(node);
        }
        break;
      case Comment:
        if (domType !== 8 || isFragmentStart) {
          nextNode = onMismatch();
        } else {
          nextNode = nextSibling(node);
        }
        break;
      case Static:
        if (isFragmentStart) {
          node = nextSibling(node);
          domType = node.nodeType;
        }
        if (domType === 1 || domType === 3) {
          nextNode = node;
          const needToAdoptContent = !vnode.children.length;
          for (let i = 0; i < vnode.staticCount; i++) {
            if (needToAdoptContent)
              vnode.children += nextNode.nodeType === 1 ? nextNode.outerHTML : nextNode.data;
            if (i === vnode.staticCount - 1) {
              vnode.anchor = nextNode;
            }
            nextNode = nextSibling(nextNode);
          }
          return isFragmentStart ? nextSibling(nextNode) : nextNode;
        } else {
          onMismatch();
        }
        break;
      case Fragment:
        if (!isFragmentStart) {
          nextNode = onMismatch();
        } else {
          nextNode = hydrateFragment(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
        }
        break;
      default:
        if (shapeFlag & 1) {
          if (domType !== 1 || vnode.type.toLowerCase() !== node.tagName.toLowerCase()) {
            nextNode = onMismatch();
          } else {
            nextNode = hydrateElement(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
          }
        } else if (shapeFlag & 6) {
          vnode.slotScopeIds = slotScopeIds;
          const container = parentNode(node);
          mountComponent(vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), optimized);
          nextNode = isFragmentStart ? locateClosingAsyncAnchor(node) : nextSibling(node);
          if (nextNode && isComment(nextNode) && nextNode.data === "teleport end") {
            nextNode = nextSibling(nextNode);
          }
          if (isAsyncWrapper(vnode)) {
            let subTree;
            if (isFragmentStart) {
              subTree = createVNode(Fragment);
              subTree.anchor = nextNode ? nextNode.previousSibling : container.lastChild;
            } else {
              subTree = node.nodeType === 3 ? createTextVNode("") : createVNode("div");
            }
            subTree.el = node;
            vnode.component.subTree = subTree;
          }
        } else if (shapeFlag & 64) {
          if (domType !== 8) {
            nextNode = onMismatch();
          } else {
            nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, rendererInternals, hydrateChildren);
          }
        } else if (shapeFlag & 128) {
          nextNode = vnode.type.hydrate(node, vnode, parentComponent, parentSuspense, isSVGContainer(parentNode(node)), slotScopeIds, optimized, rendererInternals, hydrateNode);
        } else
          ;
    }
    if (ref2 != null) {
      setRef(ref2, null, parentSuspense, vnode);
    }
    return nextNode;
  };
  const hydrateElement = (el, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
    optimized = optimized || !!vnode.dynamicChildren;
    const { type, props, patchFlag, shapeFlag, dirs } = vnode;
    const forcePatchValue = type === "input" && dirs || type === "option";
    if (forcePatchValue || patchFlag !== -1) {
      if (dirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "created");
      }
      if (props) {
        if (forcePatchValue || !optimized || patchFlag & (16 | 32)) {
          for (const key in props) {
            if (forcePatchValue && key.endsWith("value") || isOn(key) && !isReservedProp(key)) {
              patchProp2(el, key, null, props[key], false, void 0, parentComponent);
            }
          }
        } else if (props.onClick) {
          patchProp2(el, "onClick", null, props.onClick, false, void 0, parentComponent);
        }
      }
      let vnodeHooks;
      if (vnodeHooks = props && props.onVnodeBeforeMount) {
        invokeVNodeHook(vnodeHooks, parentComponent, vnode);
      }
      if (dirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
      }
      if ((vnodeHooks = props && props.onVnodeMounted) || dirs) {
        queueEffectWithSuspense(() => {
          vnodeHooks && invokeVNodeHook(vnodeHooks, parentComponent, vnode);
          dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
        }, parentSuspense);
      }
      if (shapeFlag & 16 && // skip if element has innerHTML / textContent
      !(props && (props.innerHTML || props.textContent))) {
        let next = hydrateChildren(el.firstChild, vnode, el, parentComponent, parentSuspense, slotScopeIds, optimized);
        while (next) {
          hasMismatch = true;
          const cur = next;
          next = next.nextSibling;
          remove2(cur);
        }
      } else if (shapeFlag & 8) {
        if (el.textContent !== vnode.children) {
          hasMismatch = true;
          el.textContent = vnode.children;
        }
      }
    }
    return el.nextSibling;
  };
  const hydrateChildren = (node, parentVNode, container, parentComponent, parentSuspense, slotScopeIds, optimized) => {
    optimized = optimized || !!parentVNode.dynamicChildren;
    const children = parentVNode.children;
    const l = children.length;
    for (let i = 0; i < l; i++) {
      const vnode = optimized ? children[i] : children[i] = normalizeVNode(children[i]);
      if (node) {
        node = hydrateNode(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized);
      } else if (vnode.type === Text && !vnode.children) {
        continue;
      } else {
        hasMismatch = true;
        patch(null, vnode, container, null, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);
      }
    }
    return node;
  };
  const hydrateFragment = (node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized) => {
    const { slotScopeIds: fragmentSlotScopeIds } = vnode;
    if (fragmentSlotScopeIds) {
      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
    }
    const container = parentNode(node);
    const next = hydrateChildren(nextSibling(node), vnode, container, parentComponent, parentSuspense, slotScopeIds, optimized);
    if (next && isComment(next) && next.data === "]") {
      return nextSibling(vnode.anchor = next);
    } else {
      hasMismatch = true;
      insert(vnode.anchor = createComment(`]`), container, next);
      return next;
    }
  };
  const handleMismatch = (node, vnode, parentComponent, parentSuspense, slotScopeIds, isFragment) => {
    hasMismatch = true;
    vnode.el = null;
    if (isFragment) {
      const end = locateClosingAsyncAnchor(node);
      while (true) {
        const next2 = nextSibling(node);
        if (next2 && next2 !== end) {
          remove2(next2);
        } else {
          break;
        }
      }
    }
    const next = nextSibling(node);
    const container = parentNode(node);
    remove2(node);
    patch(null, vnode, container, next, parentComponent, parentSuspense, isSVGContainer(container), slotScopeIds);
    return next;
  };
  const locateClosingAsyncAnchor = (node) => {
    let match = 0;
    while (node) {
      node = nextSibling(node);
      if (node && isComment(node)) {
        if (node.data === "[")
          match++;
        if (node.data === "]") {
          if (match === 0) {
            return nextSibling(node);
          } else {
            match--;
          }
        }
      }
    }
    return node;
  };
  return [hydrate2, hydrateNode];
}
const queuePostRenderEffect = queueEffectWithSuspense;
function createRenderer(options) {
  return baseCreateRenderer(options);
}
function createHydrationRenderer(options) {
  return baseCreateRenderer(options, createHydrationFunctions);
}
function baseCreateRenderer(options, createHydrationFns) {
  const target = getGlobalThis();
  target.__VUE__ = true;
  const { insert: hostInsert, remove: hostRemove, patchProp: hostPatchProp, createElement: hostCreateElement, createText: hostCreateText, createComment: hostCreateComment, setText: hostSetText, setElementText: hostSetElementText, parentNode: hostParentNode, nextSibling: hostNextSibling, setScopeId: hostSetScopeId = NOOP, insertStaticContent: hostInsertStaticContent } = options;
  const patch = (n1, n2, container, anchor = null, parentComponent = null, parentSuspense = null, isSVG = false, slotScopeIds = null, optimized = !!n2.dynamicChildren) => {
    if (n1 === n2) {
      return;
    }
    if (n1 && !isSameVNodeType(n1, n2)) {
      anchor = getNextHostNode(n1);
      unmount(n1, parentComponent, parentSuspense, true);
      n1 = null;
    }
    if (n2.patchFlag === -2) {
      optimized = false;
      n2.dynamicChildren = null;
    }
    const { type, ref: ref2, shapeFlag } = n2;
    switch (type) {
      case Text:
        processText(n1, n2, container, anchor);
        break;
      case Comment:
        processCommentNode(n1, n2, container, anchor);
        break;
      case Static:
        if (n1 == null) {
          mountStaticNode(n2, container, anchor, isSVG);
        }
        break;
      case Fragment:
        processFragment(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        break;
      default:
        if (shapeFlag & 1) {
          processElement(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        } else if (shapeFlag & 6) {
          processComponent(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        } else if (shapeFlag & 64) {
          type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);
        } else if (shapeFlag & 128) {
          type.process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals);
        } else
          ;
    }
    if (ref2 != null && parentComponent) {
      setRef(ref2, n1 && n1.ref, parentSuspense, n2 || n1, !n2);
    }
  };
  const processText = (n1, n2, container, anchor) => {
    if (n1 == null) {
      hostInsert(n2.el = hostCreateText(n2.children), container, anchor);
    } else {
      const el = n2.el = n1.el;
      if (n2.children !== n1.children) {
        hostSetText(el, n2.children);
      }
    }
  };
  const processCommentNode = (n1, n2, container, anchor) => {
    if (n1 == null) {
      hostInsert(n2.el = hostCreateComment(n2.children || ""), container, anchor);
    } else {
      n2.el = n1.el;
    }
  };
  const mountStaticNode = (n2, container, anchor, isSVG) => {
    [n2.el, n2.anchor] = hostInsertStaticContent(n2.children, container, anchor, isSVG, n2.el, n2.anchor);
  };
  const moveStaticNode = ({ el, anchor }, container, nextSibling) => {
    let next;
    while (el && el !== anchor) {
      next = hostNextSibling(el);
      hostInsert(el, container, nextSibling);
      el = next;
    }
    hostInsert(anchor, container, nextSibling);
  };
  const removeStaticNode = ({ el, anchor }) => {
    let next;
    while (el && el !== anchor) {
      next = hostNextSibling(el);
      hostRemove(el);
      el = next;
    }
    hostRemove(anchor);
  };
  const processElement = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
    isSVG = isSVG || n2.type === "svg";
    if (n1 == null) {
      mountElement(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
    } else {
      patchElement(n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
    }
  };
  const mountElement = (vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
    let el;
    let vnodeHook;
    const { type, props, shapeFlag, transition, dirs } = vnode;
    el = vnode.el = hostCreateElement(vnode.type, isSVG, props && props.is, props);
    if (shapeFlag & 8) {
      hostSetElementText(el, vnode.children);
    } else if (shapeFlag & 16) {
      mountChildren(vnode.children, el, null, parentComponent, parentSuspense, isSVG && type !== "foreignObject", slotScopeIds, optimized);
    }
    if (dirs) {
      invokeDirectiveHook(vnode, null, parentComponent, "created");
    }
    setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent);
    if (props) {
      for (const key in props) {
        if (key !== "value" && !isReservedProp(key)) {
          hostPatchProp(el, key, null, props[key], isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);
        }
      }
      if ("value" in props) {
        hostPatchProp(el, "value", null, props.value);
      }
      if (vnodeHook = props.onVnodeBeforeMount) {
        invokeVNodeHook(vnodeHook, parentComponent, vnode);
      }
    }
    if (dirs) {
      invokeDirectiveHook(vnode, null, parentComponent, "beforeMount");
    }
    const needCallTransitionHooks = (!parentSuspense || parentSuspense && !parentSuspense.pendingBranch) && transition && !transition.persisted;
    if (needCallTransitionHooks) {
      transition.beforeEnter(el);
    }
    hostInsert(el, container, anchor);
    if ((vnodeHook = props && props.onVnodeMounted) || needCallTransitionHooks || dirs) {
      queuePostRenderEffect(() => {
        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
        needCallTransitionHooks && transition.enter(el);
        dirs && invokeDirectiveHook(vnode, null, parentComponent, "mounted");
      }, parentSuspense);
    }
  };
  const setScopeId = (el, vnode, scopeId, slotScopeIds, parentComponent) => {
    if (scopeId) {
      hostSetScopeId(el, scopeId);
    }
    if (slotScopeIds) {
      for (let i = 0; i < slotScopeIds.length; i++) {
        hostSetScopeId(el, slotScopeIds[i]);
      }
    }
    if (parentComponent) {
      let subTree = parentComponent.subTree;
      if (vnode === subTree) {
        const parentVNode = parentComponent.vnode;
        setScopeId(el, parentVNode, parentVNode.scopeId, parentVNode.slotScopeIds, parentComponent.parent);
      }
    }
  };
  const mountChildren = (children, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, start = 0) => {
    for (let i = start; i < children.length; i++) {
      const child = children[i] = optimized ? cloneIfMounted(children[i]) : normalizeVNode(children[i]);
      patch(null, child, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
    }
  };
  const patchElement = (n1, n2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
    const el = n2.el = n1.el;
    let { patchFlag, dynamicChildren, dirs } = n2;
    patchFlag |= n1.patchFlag & 16;
    const oldProps = n1.props || EMPTY_OBJ;
    const newProps = n2.props || EMPTY_OBJ;
    let vnodeHook;
    parentComponent && toggleRecurse(parentComponent, false);
    if (vnodeHook = newProps.onVnodeBeforeUpdate) {
      invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
    }
    if (dirs) {
      invokeDirectiveHook(n2, n1, parentComponent, "beforeUpdate");
    }
    parentComponent && toggleRecurse(parentComponent, true);
    const areChildrenSVG = isSVG && n2.type !== "foreignObject";
    if (dynamicChildren) {
      patchBlockChildren(n1.dynamicChildren, dynamicChildren, el, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds);
    } else if (!optimized) {
      patchChildren(n1, n2, el, null, parentComponent, parentSuspense, areChildrenSVG, slotScopeIds, false);
    }
    if (patchFlag > 0) {
      if (patchFlag & 16) {
        patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);
      } else {
        if (patchFlag & 2) {
          if (oldProps.class !== newProps.class) {
            hostPatchProp(el, "class", null, newProps.class, isSVG);
          }
        }
        if (patchFlag & 4) {
          hostPatchProp(el, "style", oldProps.style, newProps.style, isSVG);
        }
        if (patchFlag & 8) {
          const propsToUpdate = n2.dynamicProps;
          for (let i = 0; i < propsToUpdate.length; i++) {
            const key = propsToUpdate[i];
            const prev = oldProps[key];
            const next = newProps[key];
            if (next !== prev || key === "value") {
              hostPatchProp(el, key, prev, next, isSVG, n1.children, parentComponent, parentSuspense, unmountChildren);
            }
          }
        }
      }
      if (patchFlag & 1) {
        if (n1.children !== n2.children) {
          hostSetElementText(el, n2.children);
        }
      }
    } else if (!optimized && dynamicChildren == null) {
      patchProps(el, n2, oldProps, newProps, parentComponent, parentSuspense, isSVG);
    }
    if ((vnodeHook = newProps.onVnodeUpdated) || dirs) {
      queuePostRenderEffect(() => {
        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, n2, n1);
        dirs && invokeDirectiveHook(n2, n1, parentComponent, "updated");
      }, parentSuspense);
    }
  };
  const patchBlockChildren = (oldChildren, newChildren, fallbackContainer, parentComponent, parentSuspense, isSVG, slotScopeIds) => {
    for (let i = 0; i < newChildren.length; i++) {
      const oldVNode = oldChildren[i];
      const newVNode = newChildren[i];
      const container = (
        // oldVNode may be an errored async setup() component inside Suspense
        // which will not have a mounted element
        oldVNode.el && // - In the case of a Fragment, we need to provide the actual parent
        // of the Fragment itself so it can move its children.
        (oldVNode.type === Fragment || // - In the case of different nodes, there is going to be a replacement
        // which also requires the correct parent container
        !isSameVNodeType(oldVNode, newVNode) || // - In the case of a component, it could contain anything.
        oldVNode.shapeFlag & (6 | 64)) ? hostParentNode(oldVNode.el) : (
          // In other cases, the parent container is not actually used so we
          // just pass the block element here to avoid a DOM parentNode call.
          fallbackContainer
        )
      );
      patch(oldVNode, newVNode, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, true);
    }
  };
  const patchProps = (el, vnode, oldProps, newProps, parentComponent, parentSuspense, isSVG) => {
    if (oldProps !== newProps) {
      if (oldProps !== EMPTY_OBJ) {
        for (const key in oldProps) {
          if (!isReservedProp(key) && !(key in newProps)) {
            hostPatchProp(el, key, oldProps[key], null, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);
          }
        }
      }
      for (const key in newProps) {
        if (isReservedProp(key))
          continue;
        const next = newProps[key];
        const prev = oldProps[key];
        if (next !== prev && key !== "value") {
          hostPatchProp(el, key, prev, next, isSVG, vnode.children, parentComponent, parentSuspense, unmountChildren);
        }
      }
      if ("value" in newProps) {
        hostPatchProp(el, "value", oldProps.value, newProps.value);
      }
    }
  };
  const processFragment = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
    const fragmentStartAnchor = n2.el = n1 ? n1.el : hostCreateText("");
    const fragmentEndAnchor = n2.anchor = n1 ? n1.anchor : hostCreateText("");
    let { patchFlag, dynamicChildren, slotScopeIds: fragmentSlotScopeIds } = n2;
    if (fragmentSlotScopeIds) {
      slotScopeIds = slotScopeIds ? slotScopeIds.concat(fragmentSlotScopeIds) : fragmentSlotScopeIds;
    }
    if (n1 == null) {
      hostInsert(fragmentStartAnchor, container, anchor);
      hostInsert(fragmentEndAnchor, container, anchor);
      mountChildren(n2.children, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
    } else {
      if (patchFlag > 0 && patchFlag & 64 && dynamicChildren && // #2715 the previous fragment could've been a BAILed one as a result
      // of renderSlot() with no valid children
      n1.dynamicChildren) {
        patchBlockChildren(n1.dynamicChildren, dynamicChildren, container, parentComponent, parentSuspense, isSVG, slotScopeIds);
        if (
          // #2080 if the stable fragment has a key, it's a <template v-for> that may
          //  get moved around. Make sure all root level vnodes inherit el.
          // #2134 or if it's a component root, it may also get moved around
          // as the component is being moved.
          n2.key != null || parentComponent && n2 === parentComponent.subTree
        ) {
          traverseStaticChildren(
            n1,
            n2,
            true
            /* shallow */
          );
        }
      } else {
        patchChildren(n1, n2, container, fragmentEndAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
      }
    }
  };
  const processComponent = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
    n2.slotScopeIds = slotScopeIds;
    if (n1 == null) {
      if (n2.shapeFlag & 512) {
        parentComponent.ctx.activate(n2, container, anchor, isSVG, optimized);
      } else {
        mountComponent(n2, container, anchor, parentComponent, parentSuspense, isSVG, optimized);
      }
    } else {
      updateComponent(n1, n2, optimized);
    }
  };
  const mountComponent = (initialVNode, container, anchor, parentComponent, parentSuspense, isSVG, optimized) => {
    const instance = initialVNode.component = createComponentInstance(initialVNode, parentComponent, parentSuspense);
    if (isKeepAlive(initialVNode)) {
      instance.ctx.renderer = internals;
    }
    {
      setupComponent(instance);
    }
    if (instance.asyncDep) {
      parentSuspense && parentSuspense.registerDep(instance, setupRenderEffect);
      if (!initialVNode.el) {
        const placeholder = instance.subTree = createVNode(Comment);
        processCommentNode(null, placeholder, container, anchor);
      }
      return;
    }
    setupRenderEffect(instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized);
  };
  const updateComponent = (n1, n2, optimized) => {
    const instance = n2.component = n1.component;
    if (shouldUpdateComponent(n1, n2, optimized)) {
      if (instance.asyncDep && !instance.asyncResolved) {
        updateComponentPreRender(instance, n2, optimized);
        return;
      } else {
        instance.next = n2;
        invalidateJob(instance.update);
        instance.update();
      }
    } else {
      n2.el = n1.el;
      instance.vnode = n2;
    }
  };
  const setupRenderEffect = (instance, initialVNode, container, anchor, parentSuspense, isSVG, optimized) => {
    const componentUpdateFn = () => {
      if (!instance.isMounted) {
        let vnodeHook;
        const { el, props } = initialVNode;
        const { bm, m, parent } = instance;
        const isAsyncWrapperVNode = isAsyncWrapper(initialVNode);
        toggleRecurse(instance, false);
        if (bm) {
          invokeArrayFns(bm);
        }
        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeBeforeMount)) {
          invokeVNodeHook(vnodeHook, parent, initialVNode);
        }
        toggleRecurse(instance, true);
        if (el && hydrateNode) {
          const hydrateSubTree = () => {
            instance.subTree = renderComponentRoot(instance);
            hydrateNode(el, instance.subTree, instance, parentSuspense, null);
          };
          if (isAsyncWrapperVNode) {
            initialVNode.type.__asyncLoader().then(
              // note: we are moving the render call into an async callback,
              // which means it won't track dependencies - but it's ok because
              // a server-rendered async wrapper is already in resolved state
              // and it will never need to change.
              () => !instance.isUnmounted && hydrateSubTree()
            );
          } else {
            hydrateSubTree();
          }
        } else {
          const subTree = instance.subTree = renderComponentRoot(instance);
          patch(null, subTree, container, anchor, instance, parentSuspense, isSVG);
          initialVNode.el = subTree.el;
        }
        if (m) {
          queuePostRenderEffect(m, parentSuspense);
        }
        if (!isAsyncWrapperVNode && (vnodeHook = props && props.onVnodeMounted)) {
          const scopedInitialVNode = initialVNode;
          queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, scopedInitialVNode), parentSuspense);
        }
        if (initialVNode.shapeFlag & 256 || parent && isAsyncWrapper(parent.vnode) && parent.vnode.shapeFlag & 256) {
          instance.a && queuePostRenderEffect(instance.a, parentSuspense);
        }
        instance.isMounted = true;
        initialVNode = container = anchor = null;
      } else {
        let { next, bu, u, parent, vnode } = instance;
        let originNext = next;
        let vnodeHook;
        toggleRecurse(instance, false);
        if (next) {
          next.el = vnode.el;
          updateComponentPreRender(instance, next, optimized);
        } else {
          next = vnode;
        }
        if (bu) {
          invokeArrayFns(bu);
        }
        if (vnodeHook = next.props && next.props.onVnodeBeforeUpdate) {
          invokeVNodeHook(vnodeHook, parent, next, vnode);
        }
        toggleRecurse(instance, true);
        const nextTree = renderComponentRoot(instance);
        const prevTree = instance.subTree;
        instance.subTree = nextTree;
        patch(
          prevTree,
          nextTree,
          // parent may have changed if it's in a teleport
          hostParentNode(prevTree.el),
          // anchor may have changed if it's in a fragment
          getNextHostNode(prevTree),
          instance,
          parentSuspense,
          isSVG
        );
        next.el = nextTree.el;
        if (originNext === null) {
          updateHOCHostEl(instance, nextTree.el);
        }
        if (u) {
          queuePostRenderEffect(u, parentSuspense);
        }
        if (vnodeHook = next.props && next.props.onVnodeUpdated) {
          queuePostRenderEffect(() => invokeVNodeHook(vnodeHook, parent, next, vnode), parentSuspense);
        }
      }
    };
    const effect2 = instance.effect = new ReactiveEffect(
      componentUpdateFn,
      () => queueJob(update),
      instance.scope
      // track it in component's effect scope
    );
    const update = instance.update = () => effect2.run();
    update.id = instance.uid;
    toggleRecurse(instance, true);
    update();
  };
  const updateComponentPreRender = (instance, nextVNode, optimized) => {
    nextVNode.component = instance;
    const prevProps = instance.vnode.props;
    instance.vnode = nextVNode;
    instance.next = null;
    updateProps(instance, nextVNode.props, prevProps, optimized);
    updateSlots(instance, nextVNode.children, optimized);
    pauseTracking();
    flushPreFlushCbs();
    resetTracking();
  };
  const patchChildren = (n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized = false) => {
    const c1 = n1 && n1.children;
    const prevShapeFlag = n1 ? n1.shapeFlag : 0;
    const c2 = n2.children;
    const { patchFlag, shapeFlag } = n2;
    if (patchFlag > 0) {
      if (patchFlag & 128) {
        patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        return;
      } else if (patchFlag & 256) {
        patchUnkeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        return;
      }
    }
    if (shapeFlag & 8) {
      if (prevShapeFlag & 16) {
        unmountChildren(c1, parentComponent, parentSuspense);
      }
      if (c2 !== c1) {
        hostSetElementText(container, c2);
      }
    } else {
      if (prevShapeFlag & 16) {
        if (shapeFlag & 16) {
          patchKeyedChildren(c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        } else {
          unmountChildren(c1, parentComponent, parentSuspense, true);
        }
      } else {
        if (prevShapeFlag & 8) {
          hostSetElementText(container, "");
        }
        if (shapeFlag & 16) {
          mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        }
      }
    }
  };
  const patchUnkeyedChildren = (c1, c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
    c1 = c1 || EMPTY_ARR;
    c2 = c2 || EMPTY_ARR;
    const oldLength = c1.length;
    const newLength = c2.length;
    const commonLength = Math.min(oldLength, newLength);
    let i;
    for (i = 0; i < commonLength; i++) {
      const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
      patch(c1[i], nextChild, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
    }
    if (oldLength > newLength) {
      unmountChildren(c1, parentComponent, parentSuspense, true, false, commonLength);
    } else {
      mountChildren(c2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, commonLength);
    }
  };
  const patchKeyedChildren = (c1, c2, container, parentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized) => {
    let i = 0;
    const l2 = c2.length;
    let e1 = c1.length - 1;
    let e2 = l2 - 1;
    while (i <= e1 && i <= e2) {
      const n1 = c1[i];
      const n2 = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
      if (isSameVNodeType(n1, n2)) {
        patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
      } else {
        break;
      }
      i++;
    }
    while (i <= e1 && i <= e2) {
      const n1 = c1[e1];
      const n2 = c2[e2] = optimized ? cloneIfMounted(c2[e2]) : normalizeVNode(c2[e2]);
      if (isSameVNodeType(n1, n2)) {
        patch(n1, n2, container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
      } else {
        break;
      }
      e1--;
      e2--;
    }
    if (i > e1) {
      if (i <= e2) {
        const nextPos = e2 + 1;
        const anchor = nextPos < l2 ? c2[nextPos].el : parentAnchor;
        while (i <= e2) {
          patch(null, c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]), container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
          i++;
        }
      }
    } else if (i > e2) {
      while (i <= e1) {
        unmount(c1[i], parentComponent, parentSuspense, true);
        i++;
      }
    } else {
      const s1 = i;
      const s2 = i;
      const keyToNewIndexMap = /* @__PURE__ */ new Map();
      for (i = s2; i <= e2; i++) {
        const nextChild = c2[i] = optimized ? cloneIfMounted(c2[i]) : normalizeVNode(c2[i]);
        if (nextChild.key != null) {
          keyToNewIndexMap.set(nextChild.key, i);
        }
      }
      let j;
      let patched = 0;
      const toBePatched = e2 - s2 + 1;
      let moved = false;
      let maxNewIndexSoFar = 0;
      const newIndexToOldIndexMap = new Array(toBePatched);
      for (i = 0; i < toBePatched; i++)
        newIndexToOldIndexMap[i] = 0;
      for (i = s1; i <= e1; i++) {
        const prevChild = c1[i];
        if (patched >= toBePatched) {
          unmount(prevChild, parentComponent, parentSuspense, true);
          continue;
        }
        let newIndex;
        if (prevChild.key != null) {
          newIndex = keyToNewIndexMap.get(prevChild.key);
        } else {
          for (j = s2; j <= e2; j++) {
            if (newIndexToOldIndexMap[j - s2] === 0 && isSameVNodeType(prevChild, c2[j])) {
              newIndex = j;
              break;
            }
          }
        }
        if (newIndex === void 0) {
          unmount(prevChild, parentComponent, parentSuspense, true);
        } else {
          newIndexToOldIndexMap[newIndex - s2] = i + 1;
          if (newIndex >= maxNewIndexSoFar) {
            maxNewIndexSoFar = newIndex;
          } else {
            moved = true;
          }
          patch(prevChild, c2[newIndex], container, null, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
          patched++;
        }
      }
      const increasingNewIndexSequence = moved ? getSequence(newIndexToOldIndexMap) : EMPTY_ARR;
      j = increasingNewIndexSequence.length - 1;
      for (i = toBePatched - 1; i >= 0; i--) {
        const nextIndex = s2 + i;
        const nextChild = c2[nextIndex];
        const anchor = nextIndex + 1 < l2 ? c2[nextIndex + 1].el : parentAnchor;
        if (newIndexToOldIndexMap[i] === 0) {
          patch(null, nextChild, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        } else if (moved) {
          if (j < 0 || i !== increasingNewIndexSequence[j]) {
            move(
              nextChild,
              container,
              anchor,
              2
              /* MoveType.REORDER */
            );
          } else {
            j--;
          }
        }
      }
    }
  };
  const move = (vnode, container, anchor, moveType, parentSuspense = null) => {
    const { el, type, transition, children, shapeFlag } = vnode;
    if (shapeFlag & 6) {
      move(vnode.component.subTree, container, anchor, moveType);
      return;
    }
    if (shapeFlag & 128) {
      vnode.suspense.move(container, anchor, moveType);
      return;
    }
    if (shapeFlag & 64) {
      type.move(vnode, container, anchor, internals);
      return;
    }
    if (type === Fragment) {
      hostInsert(el, container, anchor);
      for (let i = 0; i < children.length; i++) {
        move(children[i], container, anchor, moveType);
      }
      hostInsert(vnode.anchor, container, anchor);
      return;
    }
    if (type === Static) {
      moveStaticNode(vnode, container, anchor);
      return;
    }
    const needTransition = moveType !== 2 && shapeFlag & 1 && transition;
    if (needTransition) {
      if (moveType === 0) {
        transition.beforeEnter(el);
        hostInsert(el, container, anchor);
        queuePostRenderEffect(() => transition.enter(el), parentSuspense);
      } else {
        const { leave, delayLeave, afterLeave } = transition;
        const remove3 = () => hostInsert(el, container, anchor);
        const performLeave = () => {
          leave(el, () => {
            remove3();
            afterLeave && afterLeave();
          });
        };
        if (delayLeave) {
          delayLeave(el, remove3, performLeave);
        } else {
          performLeave();
        }
      }
    } else {
      hostInsert(el, container, anchor);
    }
  };
  const unmount = (vnode, parentComponent, parentSuspense, doRemove = false, optimized = false) => {
    const { type, props, ref: ref2, children, dynamicChildren, shapeFlag, patchFlag, dirs } = vnode;
    if (ref2 != null) {
      setRef(ref2, null, parentSuspense, vnode, true);
    }
    if (shapeFlag & 256) {
      parentComponent.ctx.deactivate(vnode);
      return;
    }
    const shouldInvokeDirs = shapeFlag & 1 && dirs;
    const shouldInvokeVnodeHook = !isAsyncWrapper(vnode);
    let vnodeHook;
    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeBeforeUnmount)) {
      invokeVNodeHook(vnodeHook, parentComponent, vnode);
    }
    if (shapeFlag & 6) {
      unmountComponent(vnode.component, parentSuspense, doRemove);
    } else {
      if (shapeFlag & 128) {
        vnode.suspense.unmount(parentSuspense, doRemove);
        return;
      }
      if (shouldInvokeDirs) {
        invokeDirectiveHook(vnode, null, parentComponent, "beforeUnmount");
      }
      if (shapeFlag & 64) {
        vnode.type.remove(vnode, parentComponent, parentSuspense, optimized, internals, doRemove);
      } else if (dynamicChildren && // #1153: fast path should not be taken for non-stable (v-for) fragments
      (type !== Fragment || patchFlag > 0 && patchFlag & 64)) {
        unmountChildren(dynamicChildren, parentComponent, parentSuspense, false, true);
      } else if (type === Fragment && patchFlag & (128 | 256) || !optimized && shapeFlag & 16) {
        unmountChildren(children, parentComponent, parentSuspense);
      }
      if (doRemove) {
        remove2(vnode);
      }
    }
    if (shouldInvokeVnodeHook && (vnodeHook = props && props.onVnodeUnmounted) || shouldInvokeDirs) {
      queuePostRenderEffect(() => {
        vnodeHook && invokeVNodeHook(vnodeHook, parentComponent, vnode);
        shouldInvokeDirs && invokeDirectiveHook(vnode, null, parentComponent, "unmounted");
      }, parentSuspense);
    }
  };
  const remove2 = (vnode) => {
    const { type, el, anchor, transition } = vnode;
    if (type === Fragment) {
      {
        removeFragment(el, anchor);
      }
      return;
    }
    if (type === Static) {
      removeStaticNode(vnode);
      return;
    }
    const performRemove = () => {
      hostRemove(el);
      if (transition && !transition.persisted && transition.afterLeave) {
        transition.afterLeave();
      }
    };
    if (vnode.shapeFlag & 1 && transition && !transition.persisted) {
      const { leave, delayLeave } = transition;
      const performLeave = () => leave(el, performRemove);
      if (delayLeave) {
        delayLeave(vnode.el, performRemove, performLeave);
      } else {
        performLeave();
      }
    } else {
      performRemove();
    }
  };
  const removeFragment = (cur, end) => {
    let next;
    while (cur !== end) {
      next = hostNextSibling(cur);
      hostRemove(cur);
      cur = next;
    }
    hostRemove(end);
  };
  const unmountComponent = (instance, parentSuspense, doRemove) => {
    const { bum, scope, update, subTree, um } = instance;
    if (bum) {
      invokeArrayFns(bum);
    }
    scope.stop();
    if (update) {
      update.active = false;
      unmount(subTree, instance, parentSuspense, doRemove);
    }
    if (um) {
      queuePostRenderEffect(um, parentSuspense);
    }
    queuePostRenderEffect(() => {
      instance.isUnmounted = true;
    }, parentSuspense);
    if (parentSuspense && parentSuspense.pendingBranch && !parentSuspense.isUnmounted && instance.asyncDep && !instance.asyncResolved && instance.suspenseId === parentSuspense.pendingId) {
      parentSuspense.deps--;
      if (parentSuspense.deps === 0) {
        parentSuspense.resolve();
      }
    }
  };
  const unmountChildren = (children, parentComponent, parentSuspense, doRemove = false, optimized = false, start = 0) => {
    for (let i = start; i < children.length; i++) {
      unmount(children[i], parentComponent, parentSuspense, doRemove, optimized);
    }
  };
  const getNextHostNode = (vnode) => {
    if (vnode.shapeFlag & 6) {
      return getNextHostNode(vnode.component.subTree);
    }
    if (vnode.shapeFlag & 128) {
      return vnode.suspense.next();
    }
    return hostNextSibling(vnode.anchor || vnode.el);
  };
  const render11 = (vnode, container, isSVG) => {
    if (vnode == null) {
      if (container._vnode) {
        unmount(container._vnode, null, null, true);
      }
    } else {
      patch(container._vnode || null, vnode, container, null, null, null, isSVG);
    }
    flushPreFlushCbs();
    flushPostFlushCbs();
    container._vnode = vnode;
  };
  const internals = {
    p: patch,
    um: unmount,
    m: move,
    r: remove2,
    mt: mountComponent,
    mc: mountChildren,
    pc: patchChildren,
    pbc: patchBlockChildren,
    n: getNextHostNode,
    o: options
  };
  let hydrate2;
  let hydrateNode;
  if (createHydrationFns) {
    [hydrate2, hydrateNode] = createHydrationFns(internals);
  }
  return {
    render: render11,
    hydrate: hydrate2,
    createApp: createAppAPI(render11, hydrate2)
  };
}
function toggleRecurse({ effect: effect2, update }, allowed) {
  effect2.allowRecurse = update.allowRecurse = allowed;
}
function traverseStaticChildren(n1, n2, shallow = false) {
  const ch1 = n1.children;
  const ch2 = n2.children;
  if (isArray$1(ch1) && isArray$1(ch2)) {
    for (let i = 0; i < ch1.length; i++) {
      const c1 = ch1[i];
      let c2 = ch2[i];
      if (c2.shapeFlag & 1 && !c2.dynamicChildren) {
        if (c2.patchFlag <= 0 || c2.patchFlag === 32) {
          c2 = ch2[i] = cloneIfMounted(ch2[i]);
          c2.el = c1.el;
        }
        if (!shallow)
          traverseStaticChildren(c1, c2);
      }
      if (c2.type === Text) {
        c2.el = c1.el;
      }
    }
  }
}
function getSequence(arr) {
  const p2 = arr.slice();
  const result = [0];
  let i, j, u, v, c;
  const len2 = arr.length;
  for (i = 0; i < len2; i++) {
    const arrI = arr[i];
    if (arrI !== 0) {
      j = result[result.length - 1];
      if (arr[j] < arrI) {
        p2[i] = j;
        result.push(i);
        continue;
      }
      u = 0;
      v = result.length - 1;
      while (u < v) {
        c = u + v >> 1;
        if (arr[result[c]] < arrI) {
          u = c + 1;
        } else {
          v = c;
        }
      }
      if (arrI < arr[result[u]]) {
        if (u > 0) {
          p2[i] = result[u - 1];
        }
        result[u] = i;
      }
    }
  }
  u = result.length;
  v = result[u - 1];
  while (u-- > 0) {
    result[u] = v;
    v = p2[v];
  }
  return result;
}
const isTeleport = (type) => type.__isTeleport;
const isTeleportDisabled = (props) => props && (props.disabled || props.disabled === "");
const isTargetSVG = (target) => typeof SVGElement !== "undefined" && target instanceof SVGElement;
const resolveTarget = (props, select) => {
  const targetSelector = props && props.to;
  if (isString$1(targetSelector)) {
    if (!select) {
      return null;
    } else {
      const target = select(targetSelector);
      return target;
    }
  } else {
    return targetSelector;
  }
};
const TeleportImpl = {
  __isTeleport: true,
  process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, internals) {
    const { mc: mountChildren, pc: patchChildren, pbc: patchBlockChildren, o: { insert, querySelector, createText, createComment } } = internals;
    const disabled = isTeleportDisabled(n2.props);
    let { shapeFlag, children, dynamicChildren } = n2;
    if (n1 == null) {
      const placeholder = n2.el = createText("");
      const mainAnchor = n2.anchor = createText("");
      insert(placeholder, container, anchor);
      insert(mainAnchor, container, anchor);
      const target = n2.target = resolveTarget(n2.props, querySelector);
      const targetAnchor = n2.targetAnchor = createText("");
      if (target) {
        insert(targetAnchor, target);
        isSVG = isSVG || isTargetSVG(target);
      }
      const mount = (container2, anchor2) => {
        if (shapeFlag & 16) {
          mountChildren(children, container2, anchor2, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized);
        }
      };
      if (disabled) {
        mount(container, mainAnchor);
      } else if (target) {
        mount(target, targetAnchor);
      }
    } else {
      n2.el = n1.el;
      const mainAnchor = n2.anchor = n1.anchor;
      const target = n2.target = n1.target;
      const targetAnchor = n2.targetAnchor = n1.targetAnchor;
      const wasDisabled = isTeleportDisabled(n1.props);
      const currentContainer = wasDisabled ? container : target;
      const currentAnchor = wasDisabled ? mainAnchor : targetAnchor;
      isSVG = isSVG || isTargetSVG(target);
      if (dynamicChildren) {
        patchBlockChildren(n1.dynamicChildren, dynamicChildren, currentContainer, parentComponent, parentSuspense, isSVG, slotScopeIds);
        traverseStaticChildren(n1, n2, true);
      } else if (!optimized) {
        patchChildren(n1, n2, currentContainer, currentAnchor, parentComponent, parentSuspense, isSVG, slotScopeIds, false);
      }
      if (disabled) {
        if (!wasDisabled) {
          moveTeleport(
            n2,
            container,
            mainAnchor,
            internals,
            1
            /* TeleportMoveTypes.TOGGLE */
          );
        }
      } else {
        if ((n2.props && n2.props.to) !== (n1.props && n1.props.to)) {
          const nextTarget = n2.target = resolveTarget(n2.props, querySelector);
          if (nextTarget) {
            moveTeleport(
              n2,
              nextTarget,
              null,
              internals,
              0
              /* TeleportMoveTypes.TARGET_CHANGE */
            );
          }
        } else if (wasDisabled) {
          moveTeleport(
            n2,
            target,
            targetAnchor,
            internals,
            1
            /* TeleportMoveTypes.TOGGLE */
          );
        }
      }
    }
    updateCssVars(n2);
  },
  remove(vnode, parentComponent, parentSuspense, optimized, { um: unmount, o: { remove: hostRemove } }, doRemove) {
    const { shapeFlag, children, anchor, targetAnchor, target, props } = vnode;
    if (target) {
      hostRemove(targetAnchor);
    }
    if (doRemove || !isTeleportDisabled(props)) {
      hostRemove(anchor);
      if (shapeFlag & 16) {
        for (let i = 0; i < children.length; i++) {
          const child = children[i];
          unmount(child, parentComponent, parentSuspense, true, !!child.dynamicChildren);
        }
      }
    }
  },
  move: moveTeleport,
  hydrate: hydrateTeleport
};
function moveTeleport(vnode, container, parentAnchor, { o: { insert }, m: move }, moveType = 2) {
  if (moveType === 0) {
    insert(vnode.targetAnchor, container, parentAnchor);
  }
  const { el, anchor, shapeFlag, children, props } = vnode;
  const isReorder = moveType === 2;
  if (isReorder) {
    insert(el, container, parentAnchor);
  }
  if (!isReorder || isTeleportDisabled(props)) {
    if (shapeFlag & 16) {
      for (let i = 0; i < children.length; i++) {
        move(
          children[i],
          container,
          parentAnchor,
          2
          /* MoveType.REORDER */
        );
      }
    }
  }
  if (isReorder) {
    insert(anchor, container, parentAnchor);
  }
}
function hydrateTeleport(node, vnode, parentComponent, parentSuspense, slotScopeIds, optimized, { o: { nextSibling, parentNode, querySelector } }, hydrateChildren) {
  const target = vnode.target = resolveTarget(vnode.props, querySelector);
  if (target) {
    const targetNode = target._lpa || target.firstChild;
    if (vnode.shapeFlag & 16) {
      if (isTeleportDisabled(vnode.props)) {
        vnode.anchor = hydrateChildren(nextSibling(node), vnode, parentNode(node), parentComponent, parentSuspense, slotScopeIds, optimized);
        vnode.targetAnchor = targetNode;
      } else {
        vnode.anchor = nextSibling(node);
        let targetAnchor = targetNode;
        while (targetAnchor) {
          targetAnchor = nextSibling(targetAnchor);
          if (targetAnchor && targetAnchor.nodeType === 8 && targetAnchor.data === "teleport anchor") {
            vnode.targetAnchor = targetAnchor;
            target._lpa = vnode.targetAnchor && nextSibling(vnode.targetAnchor);
            break;
          }
        }
        hydrateChildren(targetNode, vnode, target, parentComponent, parentSuspense, slotScopeIds, optimized);
      }
    }
    updateCssVars(vnode);
  }
  return vnode.anchor && nextSibling(vnode.anchor);
}
const Teleport = TeleportImpl;
function updateCssVars(vnode) {
  const ctx = vnode.ctx;
  if (ctx && ctx.ut) {
    let node = vnode.children[0].el;
    while (node !== vnode.targetAnchor) {
      if (node.nodeType === 1)
        node.setAttribute("data-v-owner", ctx.uid);
      node = node.nextSibling;
    }
    ctx.ut();
  }
}
const Fragment = Symbol(void 0);
const Text = Symbol(void 0);
const Comment = Symbol(void 0);
const Static = Symbol(void 0);
const blockStack = [];
let currentBlock = null;
function openBlock(disableTracking = false) {
  blockStack.push(currentBlock = disableTracking ? null : []);
}
function closeBlock() {
  blockStack.pop();
  currentBlock = blockStack[blockStack.length - 1] || null;
}
let isBlockTreeEnabled = 1;
function setBlockTracking(value) {
  isBlockTreeEnabled += value;
}
function setupBlock(vnode) {
  vnode.dynamicChildren = isBlockTreeEnabled > 0 ? currentBlock || EMPTY_ARR : null;
  closeBlock();
  if (isBlockTreeEnabled > 0 && currentBlock) {
    currentBlock.push(vnode);
  }
  return vnode;
}
function createElementBlock(type, props, children, patchFlag, dynamicProps, shapeFlag) {
  return setupBlock(createBaseVNode(
    type,
    props,
    children,
    patchFlag,
    dynamicProps,
    shapeFlag,
    true
    /* isBlock */
  ));
}
function createBlock(type, props, children, patchFlag, dynamicProps) {
  return setupBlock(createVNode(
    type,
    props,
    children,
    patchFlag,
    dynamicProps,
    true
    /* isBlock: prevent a block from tracking itself */
  ));
}
function isVNode(value) {
  return value ? value.__v_isVNode === true : false;
}
function isSameVNodeType(n1, n2) {
  return n1.type === n2.type && n1.key === n2.key;
}
function transformVNodeArgs(transformer) {
}
const InternalObjectKey = `__vInternal`;
const normalizeKey = ({ key }) => key != null ? key : null;
const normalizeRef = ({ ref: ref2, ref_key, ref_for }) => {
  return ref2 != null ? isString$1(ref2) || isRef(ref2) || isFunction$3(ref2) ? { i: currentRenderingInstance, r: ref2, k: ref_key, f: !!ref_for } : ref2 : null;
};
function createBaseVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, shapeFlag = type === Fragment ? 0 : 1, isBlockNode = false, needFullChildrenNormalization = false) {
  const vnode = {
    __v_isVNode: true,
    __v_skip: true,
    type,
    props,
    key: props && normalizeKey(props),
    ref: props && normalizeRef(props),
    scopeId: currentScopeId,
    slotScopeIds: null,
    children,
    component: null,
    suspense: null,
    ssContent: null,
    ssFallback: null,
    dirs: null,
    transition: null,
    el: null,
    anchor: null,
    target: null,
    targetAnchor: null,
    staticCount: 0,
    shapeFlag,
    patchFlag,
    dynamicProps,
    dynamicChildren: null,
    appContext: null,
    ctx: currentRenderingInstance
  };
  if (needFullChildrenNormalization) {
    normalizeChildren(vnode, children);
    if (shapeFlag & 128) {
      type.normalize(vnode);
    }
  } else if (children) {
    vnode.shapeFlag |= isString$1(children) ? 8 : 16;
  }
  if (isBlockTreeEnabled > 0 && // avoid a block node from tracking itself
  !isBlockNode && // has current parent block
  currentBlock && // presence of a patch flag indicates this node needs patching on updates.
  // component nodes also should always be patched, because even if the
  // component doesn't need to update, it needs to persist the instance on to
  // the next vnode so that it can be properly unmounted later.
  (vnode.patchFlag > 0 || shapeFlag & 6) && // the EVENTS flag is only for hydration and if it is the only flag, the
  // vnode should not be considered dynamic due to handler caching.
  vnode.patchFlag !== 32) {
    currentBlock.push(vnode);
  }
  return vnode;
}
const createVNode = _createVNode;
function _createVNode(type, props = null, children = null, patchFlag = 0, dynamicProps = null, isBlockNode = false) {
  if (!type || type === NULL_DYNAMIC_COMPONENT) {
    type = Comment;
  }
  if (isVNode(type)) {
    const cloned = cloneVNode(
      type,
      props,
      true
      /* mergeRef: true */
    );
    if (children) {
      normalizeChildren(cloned, children);
    }
    if (isBlockTreeEnabled > 0 && !isBlockNode && currentBlock) {
      if (cloned.shapeFlag & 6) {
        currentBlock[currentBlock.indexOf(type)] = cloned;
      } else {
        currentBlock.push(cloned);
      }
    }
    cloned.patchFlag |= -2;
    return cloned;
  }
  if (isClassComponent(type)) {
    type = type.__vccOpts;
  }
  if (props) {
    props = guardReactiveProps(props);
    let { class: klass, style } = props;
    if (klass && !isString$1(klass)) {
      props.class = normalizeClass(klass);
    }
    if (isObject$2(style)) {
      if (isProxy$1(style) && !isArray$1(style)) {
        style = extend({}, style);
      }
      props.style = normalizeStyle(style);
    }
  }
  const shapeFlag = isString$1(type) ? 1 : isSuspense(type) ? 128 : isTeleport(type) ? 64 : isObject$2(type) ? 4 : isFunction$3(type) ? 2 : 0;
  return createBaseVNode(type, props, children, patchFlag, dynamicProps, shapeFlag, isBlockNode, true);
}
function guardReactiveProps(props) {
  if (!props)
    return null;
  return isProxy$1(props) || InternalObjectKey in props ? extend({}, props) : props;
}
function cloneVNode(vnode, extraProps, mergeRef = false) {
  const { props, ref: ref2, patchFlag, children } = vnode;
  const mergedProps = extraProps ? mergeProps(props || {}, extraProps) : props;
  const cloned = {
    __v_isVNode: true,
    __v_skip: true,
    type: vnode.type,
    props: mergedProps,
    key: mergedProps && normalizeKey(mergedProps),
    ref: extraProps && extraProps.ref ? (
      // #2078 in the case of <component :is="vnode" ref="extra"/>
      // if the vnode itself already has a ref, cloneVNode will need to merge
      // the refs so the single vnode can be set on multiple refs
      mergeRef && ref2 ? isArray$1(ref2) ? ref2.concat(normalizeRef(extraProps)) : [ref2, normalizeRef(extraProps)] : normalizeRef(extraProps)
    ) : ref2,
    scopeId: vnode.scopeId,
    slotScopeIds: vnode.slotScopeIds,
    children,
    target: vnode.target,
    targetAnchor: vnode.targetAnchor,
    staticCount: vnode.staticCount,
    shapeFlag: vnode.shapeFlag,
    // if the vnode is cloned with extra props, we can no longer assume its
    // existing patch flag to be reliable and need to add the FULL_PROPS flag.
    // note: preserve flag for fragments since they use the flag for children
    // fast paths only.
    patchFlag: extraProps && vnode.type !== Fragment ? patchFlag === -1 ? 16 : patchFlag | 16 : patchFlag,
    dynamicProps: vnode.dynamicProps,
    dynamicChildren: vnode.dynamicChildren,
    appContext: vnode.appContext,
    dirs: vnode.dirs,
    transition: vnode.transition,
    // These should technically only be non-null on mounted VNodes. However,
    // they *should* be copied for kept-alive vnodes. So we just always copy
    // them since them being non-null during a mount doesn't affect the logic as
    // they will simply be overwritten.
    component: vnode.component,
    suspense: vnode.suspense,
    ssContent: vnode.ssContent && cloneVNode(vnode.ssContent),
    ssFallback: vnode.ssFallback && cloneVNode(vnode.ssFallback),
    el: vnode.el,
    anchor: vnode.anchor,
    ctx: vnode.ctx,
    ce: vnode.ce
  };
  return cloned;
}
function createTextVNode(text2 = " ", flag = 0) {
  return createVNode(Text, null, text2, flag);
}
function createStaticVNode(content, numberOfNodes) {
  const vnode = createVNode(Static, null, content);
  vnode.staticCount = numberOfNodes;
  return vnode;
}
function createCommentVNode(text2 = "", asBlock = false) {
  return asBlock ? (openBlock(), createBlock(Comment, null, text2)) : createVNode(Comment, null, text2);
}
function normalizeVNode(child) {
  if (child == null || typeof child === "boolean") {
    return createVNode(Comment);
  } else if (isArray$1(child)) {
    return createVNode(
      Fragment,
      null,
      // #3666, avoid reference pollution when reusing vnode
      child.slice()
    );
  } else if (typeof child === "object") {
    return cloneIfMounted(child);
  } else {
    return createVNode(Text, null, String(child));
  }
}
function cloneIfMounted(child) {
  return child.el === null && child.patchFlag !== -1 || child.memo ? child : cloneVNode(child);
}
function normalizeChildren(vnode, children) {
  let type = 0;
  const { shapeFlag } = vnode;
  if (children == null) {
    children = null;
  } else if (isArray$1(children)) {
    type = 16;
  } else if (typeof children === "object") {
    if (shapeFlag & (1 | 64)) {
      const slot = children.default;
      if (slot) {
        slot._c && (slot._d = false);
        normalizeChildren(vnode, slot());
        slot._c && (slot._d = true);
      }
      return;
    } else {
      type = 32;
      const slotFlag = children._;
      if (!slotFlag && !(InternalObjectKey in children)) {
        children._ctx = currentRenderingInstance;
      } else if (slotFlag === 3 && currentRenderingInstance) {
        if (currentRenderingInstance.slots._ === 1) {
          children._ = 1;
        } else {
          children._ = 2;
          vnode.patchFlag |= 1024;
        }
      }
    }
  } else if (isFunction$3(children)) {
    children = { default: children, _ctx: currentRenderingInstance };
    type = 32;
  } else {
    children = String(children);
    if (shapeFlag & 64) {
      type = 16;
      children = [createTextVNode(children)];
    } else {
      type = 8;
    }
  }
  vnode.children = children;
  vnode.shapeFlag |= type;
}
function mergeProps(...args) {
  const ret = {};
  for (let i = 0; i < args.length; i++) {
    const toMerge = args[i];
    for (const key in toMerge) {
      if (key === "class") {
        if (ret.class !== toMerge.class) {
          ret.class = normalizeClass([ret.class, toMerge.class]);
        }
      } else if (key === "style") {
        ret.style = normalizeStyle([ret.style, toMerge.style]);
      } else if (isOn(key)) {
        const existing = ret[key];
        const incoming = toMerge[key];
        if (incoming && existing !== incoming && !(isArray$1(existing) && existing.includes(incoming))) {
          ret[key] = existing ? [].concat(existing, incoming) : incoming;
        }
      } else if (key !== "") {
        ret[key] = toMerge[key];
      }
    }
  }
  return ret;
}
function invokeVNodeHook(hook, instance, vnode, prevVNode = null) {
  callWithAsyncErrorHandling(hook, instance, 7, [
    vnode,
    prevVNode
  ]);
}
const emptyAppContext = createAppContext();
let uid$2 = 0;
function createComponentInstance(vnode, parent, suspense) {
  const type = vnode.type;
  const appContext = (parent ? parent.appContext : vnode.appContext) || emptyAppContext;
  const instance = {
    uid: uid$2++,
    vnode,
    type,
    parent,
    appContext,
    root: null,
    next: null,
    subTree: null,
    effect: null,
    update: null,
    scope: new EffectScope(
      true
      /* detached */
    ),
    render: null,
    proxy: null,
    exposed: null,
    exposeProxy: null,
    withProxy: null,
    provides: parent ? parent.provides : Object.create(appContext.provides),
    accessCache: null,
    renderCache: [],
    // local resolved assets
    components: null,
    directives: null,
    // resolved props and emits options
    propsOptions: normalizePropsOptions(type, appContext),
    emitsOptions: normalizeEmitsOptions(type, appContext),
    // emit
    emit: null,
    emitted: null,
    // props default value
    propsDefaults: EMPTY_OBJ,
    // inheritAttrs
    inheritAttrs: type.inheritAttrs,
    // state
    ctx: EMPTY_OBJ,
    data: EMPTY_OBJ,
    props: EMPTY_OBJ,
    attrs: EMPTY_OBJ,
    slots: EMPTY_OBJ,
    refs: EMPTY_OBJ,
    setupState: EMPTY_OBJ,
    setupContext: null,
    // suspense related
    suspense,
    suspenseId: suspense ? suspense.pendingId : 0,
    asyncDep: null,
    asyncResolved: false,
    // lifecycle hooks
    // not using enums here because it results in computed properties
    isMounted: false,
    isUnmounted: false,
    isDeactivated: false,
    bc: null,
    c: null,
    bm: null,
    m: null,
    bu: null,
    u: null,
    um: null,
    bum: null,
    da: null,
    a: null,
    rtg: null,
    rtc: null,
    ec: null,
    sp: null
  };
  {
    instance.ctx = { _: instance };
  }
  instance.root = parent ? parent.root : instance;
  instance.emit = emit.bind(null, instance);
  if (vnode.ce) {
    vnode.ce(instance);
  }
  return instance;
}
let currentInstance = null;
const getCurrentInstance = () => currentInstance || currentRenderingInstance;
const setCurrentInstance = (instance) => {
  currentInstance = instance;
  instance.scope.on();
};
const unsetCurrentInstance = () => {
  currentInstance && currentInstance.scope.off();
  currentInstance = null;
};
function isStatefulComponent(instance) {
  return instance.vnode.shapeFlag & 4;
}
let isInSSRComponentSetup = false;
function setupComponent(instance, isSSR = false) {
  isInSSRComponentSetup = isSSR;
  const { props, children } = instance.vnode;
  const isStateful = isStatefulComponent(instance);
  initProps(instance, props, isStateful, isSSR);
  initSlots(instance, children);
  const setupResult = isStateful ? setupStatefulComponent(instance, isSSR) : void 0;
  isInSSRComponentSetup = false;
  return setupResult;
}
function setupStatefulComponent(instance, isSSR) {
  const Component = instance.type;
  instance.accessCache = /* @__PURE__ */ Object.create(null);
  instance.proxy = markRaw(new Proxy(instance.ctx, PublicInstanceProxyHandlers));
  const { setup } = Component;
  if (setup) {
    const setupContext = instance.setupContext = setup.length > 1 ? createSetupContext(instance) : null;
    setCurrentInstance(instance);
    pauseTracking();
    const setupResult = callWithErrorHandling(setup, instance, 0, [instance.props, setupContext]);
    resetTracking();
    unsetCurrentInstance();
    if (isPromise(setupResult)) {
      setupResult.then(unsetCurrentInstance, unsetCurrentInstance);
      if (isSSR) {
        return setupResult.then((resolvedResult) => {
          handleSetupResult(instance, resolvedResult, isSSR);
        }).catch((e) => {
          handleError(
            e,
            instance,
            0
            /* ErrorCodes.SETUP_FUNCTION */
          );
        });
      } else {
        instance.asyncDep = setupResult;
      }
    } else {
      handleSetupResult(instance, setupResult, isSSR);
    }
  } else {
    finishComponentSetup(instance, isSSR);
  }
}
function handleSetupResult(instance, setupResult, isSSR) {
  if (isFunction$3(setupResult)) {
    if (instance.type.__ssrInlineRender) {
      instance.ssrRender = setupResult;
    } else {
      instance.render = setupResult;
    }
  } else if (isObject$2(setupResult)) {
    instance.setupState = proxyRefs(setupResult);
  } else
    ;
  finishComponentSetup(instance, isSSR);
}
let compile$1;
let installWithProxy;
function registerRuntimeCompiler(_compile) {
  compile$1 = _compile;
  installWithProxy = (i) => {
    if (i.render._rc) {
      i.withProxy = new Proxy(i.ctx, RuntimeCompiledPublicInstanceProxyHandlers);
    }
  };
}
const isRuntimeOnly = () => !compile$1;
function finishComponentSetup(instance, isSSR, skipOptions) {
  const Component = instance.type;
  if (!instance.render) {
    if (!isSSR && compile$1 && !Component.render) {
      const template = Component.template || resolveMergedOptions(instance).template;
      if (template) {
        const { isCustomElement, compilerOptions } = instance.appContext.config;
        const { delimiters, compilerOptions: componentCompilerOptions } = Component;
        const finalCompilerOptions = extend(extend({
          isCustomElement,
          delimiters
        }, compilerOptions), componentCompilerOptions);
        Component.render = compile$1(template, finalCompilerOptions);
      }
    }
    instance.render = Component.render || NOOP;
    if (installWithProxy) {
      installWithProxy(instance);
    }
  }
  {
    setCurrentInstance(instance);
    pauseTracking();
    applyOptions(instance);
    resetTracking();
    unsetCurrentInstance();
  }
}
function createAttrsProxy(instance) {
  return new Proxy(instance.attrs, {
    get(target, key) {
      track(instance, "get", "$attrs");
      return target[key];
    }
  });
}
function createSetupContext(instance) {
  const expose = (exposed) => {
    instance.exposed = exposed || {};
  };
  let attrs;
  {
    return {
      get attrs() {
        return attrs || (attrs = createAttrsProxy(instance));
      },
      slots: instance.slots,
      emit: instance.emit,
      expose
    };
  }
}
function getExposeProxy(instance) {
  if (instance.exposed) {
    return instance.exposeProxy || (instance.exposeProxy = new Proxy(proxyRefs(markRaw(instance.exposed)), {
      get(target, key) {
        if (key in target) {
          return target[key];
        } else if (key in publicPropertiesMap) {
          return publicPropertiesMap[key](instance);
        }
      },
      has(target, key) {
        return key in target || key in publicPropertiesMap;
      }
    }));
  }
}
function getComponentName(Component, includeInferred = true) {
  return isFunction$3(Component) ? Component.displayName || Component.name : Component.name || includeInferred && Component.__name;
}
function isClassComponent(value) {
  return isFunction$3(value) && "__vccOpts" in value;
}
const computed = (getterOrOptions, debugOptions) => {
  return computed$1(getterOrOptions, debugOptions, isInSSRComponentSetup);
};
function defineProps() {
  return null;
}
function defineEmits() {
  return null;
}
function defineExpose(exposed) {
}
function withDefaults(props, defaults) {
  return null;
}
function useSlots() {
  return getContext().slots;
}
function useAttrs() {
  return getContext().attrs;
}
function getContext() {
  const i = getCurrentInstance();
  return i.setupContext || (i.setupContext = createSetupContext(i));
}
function mergeDefaults(raw, defaults) {
  const props = isArray$1(raw) ? raw.reduce((normalized, p2) => (normalized[p2] = {}, normalized), {}) : raw;
  for (const key in defaults) {
    const opt = props[key];
    if (opt) {
      if (isArray$1(opt) || isFunction$3(opt)) {
        props[key] = { type: opt, default: defaults[key] };
      } else {
        opt.default = defaults[key];
      }
    } else if (opt === null) {
      props[key] = { default: defaults[key] };
    } else
      ;
  }
  return props;
}
function createPropsRestProxy(props, excludedKeys) {
  const ret = {};
  for (const key in props) {
    if (!excludedKeys.includes(key)) {
      Object.defineProperty(ret, key, {
        enumerable: true,
        get: () => props[key]
      });
    }
  }
  return ret;
}
function withAsyncContext(getAwaitable) {
  const ctx = getCurrentInstance();
  let awaitable = getAwaitable();
  unsetCurrentInstance();
  if (isPromise(awaitable)) {
    awaitable = awaitable.catch((e) => {
      setCurrentInstance(ctx);
      throw e;
    });
  }
  return [awaitable, () => setCurrentInstance(ctx)];
}
function h(type, propsOrChildren, children) {
  const l = arguments.length;
  if (l === 2) {
    if (isObject$2(propsOrChildren) && !isArray$1(propsOrChildren)) {
      if (isVNode(propsOrChildren)) {
        return createVNode(type, null, [propsOrChildren]);
      }
      return createVNode(type, propsOrChildren);
    } else {
      return createVNode(type, null, propsOrChildren);
    }
  } else {
    if (l > 3) {
      children = Array.prototype.slice.call(arguments, 2);
    } else if (l === 3 && isVNode(children)) {
      children = [children];
    }
    return createVNode(type, propsOrChildren, children);
  }
}
const ssrContextKey = Symbol(``);
const useSSRContext = () => {
  {
    const ctx = inject(ssrContextKey);
    return ctx;
  }
};
function initCustomFormatter() {
  {
    return;
  }
}
function withMemo(memo, render11, cache, index2) {
  const cached = cache[index2];
  if (cached && isMemoSame(cached, memo)) {
    return cached;
  }
  const ret = render11();
  ret.memo = memo.slice();
  return cache[index2] = ret;
}
function isMemoSame(cached, memo) {
  const prev = cached.memo;
  if (prev.length != memo.length) {
    return false;
  }
  for (let i = 0; i < prev.length; i++) {
    if (hasChanged(prev[i], memo[i])) {
      return false;
    }
  }
  if (isBlockTreeEnabled > 0 && currentBlock) {
    currentBlock.push(cached);
  }
  return true;
}
const version = "3.2.47";
const _ssrUtils = {
  createComponentInstance,
  setupComponent,
  renderComponentRoot,
  setCurrentRenderingInstance,
  isVNode,
  normalizeVNode
};
const ssrUtils = _ssrUtils;
const resolveFilter = null;
const compatUtils = null;
const svgNS = "http://www.w3.org/2000/svg";
const doc = typeof document !== "undefined" ? document : null;
const templateContainer = doc && /* @__PURE__ */ doc.createElement("template");
const nodeOps = {
  insert: (child, parent, anchor) => {
    parent.insertBefore(child, anchor || null);
  },
  remove: (child) => {
    const parent = child.parentNode;
    if (parent) {
      parent.removeChild(child);
    }
  },
  createElement: (tag, isSVG, is, props) => {
    const el = isSVG ? doc.createElementNS(svgNS, tag) : doc.createElement(tag, is ? { is } : void 0);
    if (tag === "select" && props && props.multiple != null) {
      el.setAttribute("multiple", props.multiple);
    }
    return el;
  },
  createText: (text2) => doc.createTextNode(text2),
  createComment: (text2) => doc.createComment(text2),
  setText: (node, text2) => {
    node.nodeValue = text2;
  },
  setElementText: (el, text2) => {
    el.textContent = text2;
  },
  parentNode: (node) => node.parentNode,
  nextSibling: (node) => node.nextSibling,
  querySelector: (selector) => doc.querySelector(selector),
  setScopeId(el, id) {
    el.setAttribute(id, "");
  },
  // __UNSAFE__
  // Reason: innerHTML.
  // Static content here can only come from compiled templates.
  // As long as the user only uses trusted templates, this is safe.
  insertStaticContent(content, parent, anchor, isSVG, start, end) {
    const before = anchor ? anchor.previousSibling : parent.lastChild;
    if (start && (start === end || start.nextSibling)) {
      while (true) {
        parent.insertBefore(start.cloneNode(true), anchor);
        if (start === end || !(start = start.nextSibling))
          break;
      }
    } else {
      templateContainer.innerHTML = isSVG ? `<svg>${content}</svg>` : content;
      const template = templateContainer.content;
      if (isSVG) {
        const wrapper = template.firstChild;
        while (wrapper.firstChild) {
          template.appendChild(wrapper.firstChild);
        }
        template.removeChild(wrapper);
      }
      parent.insertBefore(template, anchor);
    }
    return [
      // first
      before ? before.nextSibling : parent.firstChild,
      // last
      anchor ? anchor.previousSibling : parent.lastChild
    ];
  }
};
function patchClass(el, value, isSVG) {
  const transitionClasses = el._vtc;
  if (transitionClasses) {
    value = (value ? [value, ...transitionClasses] : [...transitionClasses]).join(" ");
  }
  if (value == null) {
    el.removeAttribute("class");
  } else if (isSVG) {
    el.setAttribute("class", value);
  } else {
    el.className = value;
  }
}
function patchStyle(el, prev, next) {
  const style = el.style;
  const isCssString = isString$1(next);
  if (next && !isCssString) {
    if (prev && !isString$1(prev)) {
      for (const key in prev) {
        if (next[key] == null) {
          setStyle(style, key, "");
        }
      }
    }
    for (const key in next) {
      setStyle(style, key, next[key]);
    }
  } else {
    const currentDisplay = style.display;
    if (isCssString) {
      if (prev !== next) {
        style.cssText = next;
      }
    } else if (prev) {
      el.removeAttribute("style");
    }
    if ("_vod" in el) {
      style.display = currentDisplay;
    }
  }
}
const importantRE = /\s*!important$/;
function setStyle(style, name, val) {
  if (isArray$1(val)) {
    val.forEach((v) => setStyle(style, name, v));
  } else {
    if (val == null)
      val = "";
    if (name.startsWith("--")) {
      style.setProperty(name, val);
    } else {
      const prefixed = autoPrefix(style, name);
      if (importantRE.test(val)) {
        style.setProperty(hyphenate(prefixed), val.replace(importantRE, ""), "important");
      } else {
        style[prefixed] = val;
      }
    }
  }
}
const prefixes = ["Webkit", "Moz", "ms"];
const prefixCache = {};
function autoPrefix(style, rawName) {
  const cached = prefixCache[rawName];
  if (cached) {
    return cached;
  }
  let name = camelize$1(rawName);
  if (name !== "filter" && name in style) {
    return prefixCache[rawName] = name;
  }
  name = capitalize(name);
  for (let i = 0; i < prefixes.length; i++) {
    const prefixed = prefixes[i] + name;
    if (prefixed in style) {
      return prefixCache[rawName] = prefixed;
    }
  }
  return rawName;
}
const xlinkNS = "http://www.w3.org/1999/xlink";
function patchAttr(el, key, value, isSVG, instance) {
  if (isSVG && key.startsWith("xlink:")) {
    if (value == null) {
      el.removeAttributeNS(xlinkNS, key.slice(6, key.length));
    } else {
      el.setAttributeNS(xlinkNS, key, value);
    }
  } else {
    const isBoolean = isSpecialBooleanAttr(key);
    if (value == null || isBoolean && !includeBooleanAttr(value)) {
      el.removeAttribute(key);
    } else {
      el.setAttribute(key, isBoolean ? "" : value);
    }
  }
}
function patchDOMProp(el, key, value, prevChildren, parentComponent, parentSuspense, unmountChildren) {
  if (key === "innerHTML" || key === "textContent") {
    if (prevChildren) {
      unmountChildren(prevChildren, parentComponent, parentSuspense);
    }
    el[key] = value == null ? "" : value;
    return;
  }
  if (key === "value" && el.tagName !== "PROGRESS" && // custom elements may use _value internally
  !el.tagName.includes("-")) {
    el._value = value;
    const newValue = value == null ? "" : value;
    if (el.value !== newValue || // #4956: always set for OPTION elements because its value falls back to
    // textContent if no value attribute is present. And setting .value for
    // OPTION has no side effect
    el.tagName === "OPTION") {
      el.value = newValue;
    }
    if (value == null) {
      el.removeAttribute(key);
    }
    return;
  }
  let needRemove = false;
  if (value === "" || value == null) {
    const type = typeof el[key];
    if (type === "boolean") {
      value = includeBooleanAttr(value);
    } else if (value == null && type === "string") {
      value = "";
      needRemove = true;
    } else if (type === "number") {
      value = 0;
      needRemove = true;
    }
  }
  try {
    el[key] = value;
  } catch (e) {
  }
  needRemove && el.removeAttribute(key);
}
function addEventListener$1(el, event, handler, options) {
  el.addEventListener(event, handler, options);
}
function removeEventListener$1(el, event, handler, options) {
  el.removeEventListener(event, handler, options);
}
function patchEvent(el, rawName, prevValue, nextValue, instance = null) {
  const invokers = el._vei || (el._vei = {});
  const existingInvoker = invokers[rawName];
  if (nextValue && existingInvoker) {
    existingInvoker.value = nextValue;
  } else {
    const [name, options] = parseName(rawName);
    if (nextValue) {
      const invoker = invokers[rawName] = createInvoker(nextValue, instance);
      addEventListener$1(el, name, invoker, options);
    } else if (existingInvoker) {
      removeEventListener$1(el, name, existingInvoker, options);
      invokers[rawName] = void 0;
    }
  }
}
const optionsModifierRE = /(?:Once|Passive|Capture)$/;
function parseName(name) {
  let options;
  if (optionsModifierRE.test(name)) {
    options = {};
    let m;
    while (m = name.match(optionsModifierRE)) {
      name = name.slice(0, name.length - m[0].length);
      options[m[0].toLowerCase()] = true;
    }
  }
  const event = name[2] === ":" ? name.slice(3) : hyphenate(name.slice(2));
  return [event, options];
}
let cachedNow = 0;
const p = /* @__PURE__ */ Promise.resolve();
const getNow = () => cachedNow || (p.then(() => cachedNow = 0), cachedNow = Date.now());
function createInvoker(initialValue, instance) {
  const invoker = (e) => {
    if (!e._vts) {
      e._vts = Date.now();
    } else if (e._vts <= invoker.attached) {
      return;
    }
    callWithAsyncErrorHandling(patchStopImmediatePropagation(e, invoker.value), instance, 5, [e]);
  };
  invoker.value = initialValue;
  invoker.attached = getNow();
  return invoker;
}
function patchStopImmediatePropagation(e, value) {
  if (isArray$1(value)) {
    const originalStop = e.stopImmediatePropagation;
    e.stopImmediatePropagation = () => {
      originalStop.call(e);
      e._stopped = true;
    };
    return value.map((fn) => (e2) => !e2._stopped && fn && fn(e2));
  } else {
    return value;
  }
}
const nativeOnRE = /^on[a-z]/;
const patchProp = (el, key, prevValue, nextValue, isSVG = false, prevChildren, parentComponent, parentSuspense, unmountChildren) => {
  if (key === "class") {
    patchClass(el, nextValue, isSVG);
  } else if (key === "style") {
    patchStyle(el, prevValue, nextValue);
  } else if (isOn(key)) {
    if (!isModelListener(key)) {
      patchEvent(el, key, prevValue, nextValue, parentComponent);
    }
  } else if (key[0] === "." ? (key = key.slice(1), true) : key[0] === "^" ? (key = key.slice(1), false) : shouldSetAsProp(el, key, nextValue, isSVG)) {
    patchDOMProp(el, key, nextValue, prevChildren, parentComponent, parentSuspense, unmountChildren);
  } else {
    if (key === "true-value") {
      el._trueValue = nextValue;
    } else if (key === "false-value") {
      el._falseValue = nextValue;
    }
    patchAttr(el, key, nextValue, isSVG);
  }
};
function shouldSetAsProp(el, key, value, isSVG) {
  if (isSVG) {
    if (key === "innerHTML" || key === "textContent") {
      return true;
    }
    if (key in el && nativeOnRE.test(key) && isFunction$3(value)) {
      return true;
    }
    return false;
  }
  if (key === "spellcheck" || key === "draggable" || key === "translate") {
    return false;
  }
  if (key === "form") {
    return false;
  }
  if (key === "list" && el.tagName === "INPUT") {
    return false;
  }
  if (key === "type" && el.tagName === "TEXTAREA") {
    return false;
  }
  if (nativeOnRE.test(key) && isString$1(value)) {
    return false;
  }
  return key in el;
}
function defineCustomElement(options, hydrate2) {
  const Comp = defineComponent(options);
  class VueCustomElement extends VueElement {
    constructor(initialProps) {
      super(Comp, initialProps, hydrate2);
    }
  }
  VueCustomElement.def = Comp;
  return VueCustomElement;
}
const defineSSRCustomElement = (options) => {
  return defineCustomElement(options, hydrate);
};
const BaseClass = typeof HTMLElement !== "undefined" ? HTMLElement : class {
};
class VueElement extends BaseClass {
  constructor(_def, _props = {}, hydrate2) {
    super();
    this._def = _def;
    this._props = _props;
    this._instance = null;
    this._connected = false;
    this._resolved = false;
    this._numberProps = null;
    if (this.shadowRoot && hydrate2) {
      hydrate2(this._createVNode(), this.shadowRoot);
    } else {
      this.attachShadow({ mode: "open" });
      if (!this._def.__asyncLoader) {
        this._resolveProps(this._def);
      }
    }
  }
  connectedCallback() {
    this._connected = true;
    if (!this._instance) {
      if (this._resolved) {
        this._update();
      } else {
        this._resolveDef();
      }
    }
  }
  disconnectedCallback() {
    this._connected = false;
    nextTick(() => {
      if (!this._connected) {
        render$1(null, this.shadowRoot);
        this._instance = null;
      }
    });
  }
  /**
   * resolve inner component definition (handle possible async component)
   */
  _resolveDef() {
    this._resolved = true;
    for (let i = 0; i < this.attributes.length; i++) {
      this._setAttr(this.attributes[i].name);
    }
    new MutationObserver((mutations) => {
      for (const m of mutations) {
        this._setAttr(m.attributeName);
      }
    }).observe(this, { attributes: true });
    const resolve2 = (def2, isAsync = false) => {
      const { props, styles } = def2;
      let numberProps;
      if (props && !isArray$1(props)) {
        for (const key in props) {
          const opt = props[key];
          if (opt === Number || opt && opt.type === Number) {
            if (key in this._props) {
              this._props[key] = toNumber(this._props[key]);
            }
            (numberProps || (numberProps = /* @__PURE__ */ Object.create(null)))[camelize$1(key)] = true;
          }
        }
      }
      this._numberProps = numberProps;
      if (isAsync) {
        this._resolveProps(def2);
      }
      this._applyStyles(styles);
      this._update();
    };
    const asyncDef = this._def.__asyncLoader;
    if (asyncDef) {
      asyncDef().then((def2) => resolve2(def2, true));
    } else {
      resolve2(this._def);
    }
  }
  _resolveProps(def2) {
    const { props } = def2;
    const declaredPropKeys = isArray$1(props) ? props : Object.keys(props || {});
    for (const key of Object.keys(this)) {
      if (key[0] !== "_" && declaredPropKeys.includes(key)) {
        this._setProp(key, this[key], true, false);
      }
    }
    for (const key of declaredPropKeys.map(camelize$1)) {
      Object.defineProperty(this, key, {
        get() {
          return this._getProp(key);
        },
        set(val) {
          this._setProp(key, val);
        }
      });
    }
  }
  _setAttr(key) {
    let value = this.getAttribute(key);
    const camelKey = camelize$1(key);
    if (this._numberProps && this._numberProps[camelKey]) {
      value = toNumber(value);
    }
    this._setProp(camelKey, value, false);
  }
  /**
   * @internal
   */
  _getProp(key) {
    return this._props[key];
  }
  /**
   * @internal
   */
  _setProp(key, val, shouldReflect = true, shouldUpdate = true) {
    if (val !== this._props[key]) {
      this._props[key] = val;
      if (shouldUpdate && this._instance) {
        this._update();
      }
      if (shouldReflect) {
        if (val === true) {
          this.setAttribute(hyphenate(key), "");
        } else if (typeof val === "string" || typeof val === "number") {
          this.setAttribute(hyphenate(key), val + "");
        } else if (!val) {
          this.removeAttribute(hyphenate(key));
        }
      }
    }
  }
  _update() {
    render$1(this._createVNode(), this.shadowRoot);
  }
  _createVNode() {
    const vnode = createVNode(this._def, extend({}, this._props));
    if (!this._instance) {
      vnode.ce = (instance) => {
        this._instance = instance;
        instance.isCE = true;
        const dispatch = (event, args) => {
          this.dispatchEvent(new CustomEvent(event, {
            detail: args
          }));
        };
        instance.emit = (event, ...args) => {
          dispatch(event, args);
          if (hyphenate(event) !== event) {
            dispatch(hyphenate(event), args);
          }
        };
        let parent = this;
        while (parent = parent && (parent.parentNode || parent.host)) {
          if (parent instanceof VueElement) {
            instance.parent = parent._instance;
            instance.provides = parent._instance.provides;
            break;
          }
        }
      };
    }
    return vnode;
  }
  _applyStyles(styles) {
    if (styles) {
      styles.forEach((css) => {
        const s = document.createElement("style");
        s.textContent = css;
        this.shadowRoot.appendChild(s);
      });
    }
  }
}
function useCssModule(name = "$style") {
  {
    const instance = getCurrentInstance();
    if (!instance) {
      return EMPTY_OBJ;
    }
    const modules = instance.type.__cssModules;
    if (!modules) {
      return EMPTY_OBJ;
    }
    const mod = modules[name];
    if (!mod) {
      return EMPTY_OBJ;
    }
    return mod;
  }
}
function useCssVars(getter) {
  const instance = getCurrentInstance();
  if (!instance) {
    return;
  }
  const updateTeleports = instance.ut = (vars = getter(instance.proxy)) => {
    Array.from(document.querySelectorAll(`[data-v-owner="${instance.uid}"]`)).forEach((node) => setVarsOnNode(node, vars));
  };
  const setVars = () => {
    const vars = getter(instance.proxy);
    setVarsOnVNode(instance.subTree, vars);
    updateTeleports(vars);
  };
  watchPostEffect(setVars);
  onMounted(() => {
    const ob = new MutationObserver(setVars);
    ob.observe(instance.subTree.el.parentNode, { childList: true });
    onUnmounted(() => ob.disconnect());
  });
}
function setVarsOnVNode(vnode, vars) {
  if (vnode.shapeFlag & 128) {
    const suspense = vnode.suspense;
    vnode = suspense.activeBranch;
    if (suspense.pendingBranch && !suspense.isHydrating) {
      suspense.effects.push(() => {
        setVarsOnVNode(suspense.activeBranch, vars);
      });
    }
  }
  while (vnode.component) {
    vnode = vnode.component.subTree;
  }
  if (vnode.shapeFlag & 1 && vnode.el) {
    setVarsOnNode(vnode.el, vars);
  } else if (vnode.type === Fragment) {
    vnode.children.forEach((c) => setVarsOnVNode(c, vars));
  } else if (vnode.type === Static) {
    let { el, anchor } = vnode;
    while (el) {
      setVarsOnNode(el, vars);
      if (el === anchor)
        break;
      el = el.nextSibling;
    }
  }
}
function setVarsOnNode(el, vars) {
  if (el.nodeType === 1) {
    const style = el.style;
    for (const key in vars) {
      style.setProperty(`--${key}`, vars[key]);
    }
  }
}
const TRANSITION$2 = "transition";
const ANIMATION = "animation";
const Transition = (props, { slots }) => h(BaseTransition, resolveTransitionProps(props), slots);
Transition.displayName = "Transition";
const DOMTransitionPropsValidators = {
  name: String,
  type: String,
  css: {
    type: Boolean,
    default: true
  },
  duration: [String, Number, Object],
  enterFromClass: String,
  enterActiveClass: String,
  enterToClass: String,
  appearFromClass: String,
  appearActiveClass: String,
  appearToClass: String,
  leaveFromClass: String,
  leaveActiveClass: String,
  leaveToClass: String
};
const TransitionPropsValidators = Transition.props = /* @__PURE__ */ extend({}, BaseTransition.props, DOMTransitionPropsValidators);
const callHook = (hook, args = []) => {
  if (isArray$1(hook)) {
    hook.forEach((h2) => h2(...args));
  } else if (hook) {
    hook(...args);
  }
};
const hasExplicitCallback = (hook) => {
  return hook ? isArray$1(hook) ? hook.some((h2) => h2.length > 1) : hook.length > 1 : false;
};
function resolveTransitionProps(rawProps) {
  const baseProps = {};
  for (const key in rawProps) {
    if (!(key in DOMTransitionPropsValidators)) {
      baseProps[key] = rawProps[key];
    }
  }
  if (rawProps.css === false) {
    return baseProps;
  }
  const { name = "v", type, duration, enterFromClass = `${name}-enter-from`, enterActiveClass = `${name}-enter-active`, enterToClass = `${name}-enter-to`, appearFromClass = enterFromClass, appearActiveClass = enterActiveClass, appearToClass = enterToClass, leaveFromClass = `${name}-leave-from`, leaveActiveClass = `${name}-leave-active`, leaveToClass = `${name}-leave-to` } = rawProps;
  const durations = normalizeDuration(duration);
  const enterDuration = durations && durations[0];
  const leaveDuration = durations && durations[1];
  const { onBeforeEnter, onEnter, onEnterCancelled, onLeave, onLeaveCancelled, onBeforeAppear = onBeforeEnter, onAppear = onEnter, onAppearCancelled = onEnterCancelled } = baseProps;
  const finishEnter = (el, isAppear, done) => {
    removeTransitionClass(el, isAppear ? appearToClass : enterToClass);
    removeTransitionClass(el, isAppear ? appearActiveClass : enterActiveClass);
    done && done();
  };
  const finishLeave = (el, done) => {
    el._isLeaving = false;
    removeTransitionClass(el, leaveFromClass);
    removeTransitionClass(el, leaveToClass);
    removeTransitionClass(el, leaveActiveClass);
    done && done();
  };
  const makeEnterHook = (isAppear) => {
    return (el, done) => {
      const hook = isAppear ? onAppear : onEnter;
      const resolve2 = () => finishEnter(el, isAppear, done);
      callHook(hook, [el, resolve2]);
      nextFrame(() => {
        removeTransitionClass(el, isAppear ? appearFromClass : enterFromClass);
        addTransitionClass(el, isAppear ? appearToClass : enterToClass);
        if (!hasExplicitCallback(hook)) {
          whenTransitionEnds(el, type, enterDuration, resolve2);
        }
      });
    };
  };
  return extend(baseProps, {
    onBeforeEnter(el) {
      callHook(onBeforeEnter, [el]);
      addTransitionClass(el, enterFromClass);
      addTransitionClass(el, enterActiveClass);
    },
    onBeforeAppear(el) {
      callHook(onBeforeAppear, [el]);
      addTransitionClass(el, appearFromClass);
      addTransitionClass(el, appearActiveClass);
    },
    onEnter: makeEnterHook(false),
    onAppear: makeEnterHook(true),
    onLeave(el, done) {
      el._isLeaving = true;
      const resolve2 = () => finishLeave(el, done);
      addTransitionClass(el, leaveFromClass);
      forceReflow();
      addTransitionClass(el, leaveActiveClass);
      nextFrame(() => {
        if (!el._isLeaving) {
          return;
        }
        removeTransitionClass(el, leaveFromClass);
        addTransitionClass(el, leaveToClass);
        if (!hasExplicitCallback(onLeave)) {
          whenTransitionEnds(el, type, leaveDuration, resolve2);
        }
      });
      callHook(onLeave, [el, resolve2]);
    },
    onEnterCancelled(el) {
      finishEnter(el, false);
      callHook(onEnterCancelled, [el]);
    },
    onAppearCancelled(el) {
      finishEnter(el, true);
      callHook(onAppearCancelled, [el]);
    },
    onLeaveCancelled(el) {
      finishLeave(el);
      callHook(onLeaveCancelled, [el]);
    }
  });
}
function normalizeDuration(duration) {
  if (duration == null) {
    return null;
  } else if (isObject$2(duration)) {
    return [NumberOf(duration.enter), NumberOf(duration.leave)];
  } else {
    const n = NumberOf(duration);
    return [n, n];
  }
}
function NumberOf(val) {
  const res = toNumber(val);
  return res;
}
function addTransitionClass(el, cls) {
  cls.split(/\s+/).forEach((c) => c && el.classList.add(c));
  (el._vtc || (el._vtc = /* @__PURE__ */ new Set())).add(cls);
}
function removeTransitionClass(el, cls) {
  cls.split(/\s+/).forEach((c) => c && el.classList.remove(c));
  const { _vtc } = el;
  if (_vtc) {
    _vtc.delete(cls);
    if (!_vtc.size) {
      el._vtc = void 0;
    }
  }
}
function nextFrame(cb) {
  requestAnimationFrame(() => {
    requestAnimationFrame(cb);
  });
}
let endId = 0;
function whenTransitionEnds(el, expectedType, explicitTimeout, resolve2) {
  const id = el._endId = ++endId;
  const resolveIfNotStale = () => {
    if (id === el._endId) {
      resolve2();
    }
  };
  if (explicitTimeout) {
    return setTimeout(resolveIfNotStale, explicitTimeout);
  }
  const { type, timeout, propCount } = getTransitionInfo(el, expectedType);
  if (!type) {
    return resolve2();
  }
  const endEvent = type + "end";
  let ended = 0;
  const end = () => {
    el.removeEventListener(endEvent, onEnd);
    resolveIfNotStale();
  };
  const onEnd = (e) => {
    if (e.target === el && ++ended >= propCount) {
      end();
    }
  };
  setTimeout(() => {
    if (ended < propCount) {
      end();
    }
  }, timeout + 1);
  el.addEventListener(endEvent, onEnd);
}
function getTransitionInfo(el, expectedType) {
  const styles = window.getComputedStyle(el);
  const getStyleProperties = (key) => (styles[key] || "").split(", ");
  const transitionDelays = getStyleProperties(`${TRANSITION$2}Delay`);
  const transitionDurations = getStyleProperties(`${TRANSITION$2}Duration`);
  const transitionTimeout = getTimeout(transitionDelays, transitionDurations);
  const animationDelays = getStyleProperties(`${ANIMATION}Delay`);
  const animationDurations = getStyleProperties(`${ANIMATION}Duration`);
  const animationTimeout = getTimeout(animationDelays, animationDurations);
  let type = null;
  let timeout = 0;
  let propCount = 0;
  if (expectedType === TRANSITION$2) {
    if (transitionTimeout > 0) {
      type = TRANSITION$2;
      timeout = transitionTimeout;
      propCount = transitionDurations.length;
    }
  } else if (expectedType === ANIMATION) {
    if (animationTimeout > 0) {
      type = ANIMATION;
      timeout = animationTimeout;
      propCount = animationDurations.length;
    }
  } else {
    timeout = Math.max(transitionTimeout, animationTimeout);
    type = timeout > 0 ? transitionTimeout > animationTimeout ? TRANSITION$2 : ANIMATION : null;
    propCount = type ? type === TRANSITION$2 ? transitionDurations.length : animationDurations.length : 0;
  }
  const hasTransform = type === TRANSITION$2 && /\b(transform|all)(,|$)/.test(getStyleProperties(`${TRANSITION$2}Property`).toString());
  return {
    type,
    timeout,
    propCount,
    hasTransform
  };
}
function getTimeout(delays, durations) {
  while (delays.length < durations.length) {
    delays = delays.concat(delays);
  }
  return Math.max(...durations.map((d, i) => toMs(d) + toMs(delays[i])));
}
function toMs(s) {
  return Number(s.slice(0, -1).replace(",", ".")) * 1e3;
}
function forceReflow() {
  return document.body.offsetHeight;
}
const positionMap = /* @__PURE__ */ new WeakMap();
const newPositionMap = /* @__PURE__ */ new WeakMap();
const TransitionGroupImpl = {
  name: "TransitionGroup",
  props: /* @__PURE__ */ extend({}, TransitionPropsValidators, {
    tag: String,
    moveClass: String
  }),
  setup(props, { slots }) {
    const instance = getCurrentInstance();
    const state = useTransitionState();
    let prevChildren;
    let children;
    onUpdated(() => {
      if (!prevChildren.length) {
        return;
      }
      const moveClass = props.moveClass || `${props.name || "v"}-move`;
      if (!hasCSSTransform(prevChildren[0].el, instance.vnode.el, moveClass)) {
        return;
      }
      prevChildren.forEach(callPendingCbs);
      prevChildren.forEach(recordPosition);
      const movedChildren = prevChildren.filter(applyTranslation);
      forceReflow();
      movedChildren.forEach((c) => {
        const el = c.el;
        const style = el.style;
        addTransitionClass(el, moveClass);
        style.transform = style.webkitTransform = style.transitionDuration = "";
        const cb = el._moveCb = (e) => {
          if (e && e.target !== el) {
            return;
          }
          if (!e || /transform$/.test(e.propertyName)) {
            el.removeEventListener("transitionend", cb);
            el._moveCb = null;
            removeTransitionClass(el, moveClass);
          }
        };
        el.addEventListener("transitionend", cb);
      });
    });
    return () => {
      const rawProps = toRaw(props);
      const cssTransitionProps = resolveTransitionProps(rawProps);
      let tag = rawProps.tag || Fragment;
      prevChildren = children;
      children = slots.default ? getTransitionRawChildren(slots.default()) : [];
      for (let i = 0; i < children.length; i++) {
        const child = children[i];
        if (child.key != null) {
          setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
        }
      }
      if (prevChildren) {
        for (let i = 0; i < prevChildren.length; i++) {
          const child = prevChildren[i];
          setTransitionHooks(child, resolveTransitionHooks(child, cssTransitionProps, state, instance));
          positionMap.set(child, child.el.getBoundingClientRect());
        }
      }
      return createVNode(tag, null, children);
    };
  }
};
const removeMode = (props) => delete props.mode;
/* @__PURE__ */ removeMode(TransitionGroupImpl.props);
const TransitionGroup = TransitionGroupImpl;
function callPendingCbs(c) {
  const el = c.el;
  if (el._moveCb) {
    el._moveCb();
  }
  if (el._enterCb) {
    el._enterCb();
  }
}
function recordPosition(c) {
  newPositionMap.set(c, c.el.getBoundingClientRect());
}
function applyTranslation(c) {
  const oldPos = positionMap.get(c);
  const newPos = newPositionMap.get(c);
  const dx = oldPos.left - newPos.left;
  const dy = oldPos.top - newPos.top;
  if (dx || dy) {
    const s = c.el.style;
    s.transform = s.webkitTransform = `translate(${dx}px,${dy}px)`;
    s.transitionDuration = "0s";
    return c;
  }
}
function hasCSSTransform(el, root, moveClass) {
  const clone2 = el.cloneNode();
  if (el._vtc) {
    el._vtc.forEach((cls) => {
      cls.split(/\s+/).forEach((c) => c && clone2.classList.remove(c));
    });
  }
  moveClass.split(/\s+/).forEach((c) => c && clone2.classList.add(c));
  clone2.style.display = "none";
  const container = root.nodeType === 1 ? root : root.parentNode;
  container.appendChild(clone2);
  const { hasTransform } = getTransitionInfo(clone2);
  container.removeChild(clone2);
  return hasTransform;
}
const getModelAssigner = (vnode) => {
  const fn = vnode.props["onUpdate:modelValue"] || false;
  return isArray$1(fn) ? (value) => invokeArrayFns(fn, value) : fn;
};
function onCompositionStart(e) {
  e.target.composing = true;
}
function onCompositionEnd(e) {
  const target = e.target;
  if (target.composing) {
    target.composing = false;
    target.dispatchEvent(new Event("input"));
  }
}
const vModelText = {
  created(el, { modifiers: { lazy, trim, number } }, vnode) {
    el._assign = getModelAssigner(vnode);
    const castToNumber = number || vnode.props && vnode.props.type === "number";
    addEventListener$1(el, lazy ? "change" : "input", (e) => {
      if (e.target.composing)
        return;
      let domValue = el.value;
      if (trim) {
        domValue = domValue.trim();
      }
      if (castToNumber) {
        domValue = looseToNumber(domValue);
      }
      el._assign(domValue);
    });
    if (trim) {
      addEventListener$1(el, "change", () => {
        el.value = el.value.trim();
      });
    }
    if (!lazy) {
      addEventListener$1(el, "compositionstart", onCompositionStart);
      addEventListener$1(el, "compositionend", onCompositionEnd);
      addEventListener$1(el, "change", onCompositionEnd);
    }
  },
  // set value on mounted so it's after min/max for type="range"
  mounted(el, { value }) {
    el.value = value == null ? "" : value;
  },
  beforeUpdate(el, { value, modifiers: { lazy, trim, number } }, vnode) {
    el._assign = getModelAssigner(vnode);
    if (el.composing)
      return;
    if (document.activeElement === el && el.type !== "range") {
      if (lazy) {
        return;
      }
      if (trim && el.value.trim() === value) {
        return;
      }
      if ((number || el.type === "number") && looseToNumber(el.value) === value) {
        return;
      }
    }
    const newValue = value == null ? "" : value;
    if (el.value !== newValue) {
      el.value = newValue;
    }
  }
};
const vModelCheckbox = {
  // #4096 array checkboxes need to be deep traversed
  deep: true,
  created(el, _, vnode) {
    el._assign = getModelAssigner(vnode);
    addEventListener$1(el, "change", () => {
      const modelValue = el._modelValue;
      const elementValue = getValue(el);
      const checked = el.checked;
      const assign2 = el._assign;
      if (isArray$1(modelValue)) {
        const index2 = looseIndexOf(modelValue, elementValue);
        const found = index2 !== -1;
        if (checked && !found) {
          assign2(modelValue.concat(elementValue));
        } else if (!checked && found) {
          const filtered = [...modelValue];
          filtered.splice(index2, 1);
          assign2(filtered);
        }
      } else if (isSet(modelValue)) {
        const cloned = new Set(modelValue);
        if (checked) {
          cloned.add(elementValue);
        } else {
          cloned.delete(elementValue);
        }
        assign2(cloned);
      } else {
        assign2(getCheckboxValue(el, checked));
      }
    });
  },
  // set initial checked on mount to wait for true-value/false-value
  mounted: setChecked,
  beforeUpdate(el, binding, vnode) {
    el._assign = getModelAssigner(vnode);
    setChecked(el, binding, vnode);
  }
};
function setChecked(el, { value, oldValue }, vnode) {
  el._modelValue = value;
  if (isArray$1(value)) {
    el.checked = looseIndexOf(value, vnode.props.value) > -1;
  } else if (isSet(value)) {
    el.checked = value.has(vnode.props.value);
  } else if (value !== oldValue) {
    el.checked = looseEqual(value, getCheckboxValue(el, true));
  }
}
const vModelRadio = {
  created(el, { value }, vnode) {
    el.checked = looseEqual(value, vnode.props.value);
    el._assign = getModelAssigner(vnode);
    addEventListener$1(el, "change", () => {
      el._assign(getValue(el));
    });
  },
  beforeUpdate(el, { value, oldValue }, vnode) {
    el._assign = getModelAssigner(vnode);
    if (value !== oldValue) {
      el.checked = looseEqual(value, vnode.props.value);
    }
  }
};
const vModelSelect = {
  // <select multiple> value need to be deep traversed
  deep: true,
  created(el, { value, modifiers: { number } }, vnode) {
    const isSetModel = isSet(value);
    addEventListener$1(el, "change", () => {
      const selectedVal = Array.prototype.filter.call(el.options, (o) => o.selected).map((o) => number ? looseToNumber(getValue(o)) : getValue(o));
      el._assign(el.multiple ? isSetModel ? new Set(selectedVal) : selectedVal : selectedVal[0]);
    });
    el._assign = getModelAssigner(vnode);
  },
  // set value in mounted & updated because <select> relies on its children
  // <option>s.
  mounted(el, { value }) {
    setSelected(el, value);
  },
  beforeUpdate(el, _binding, vnode) {
    el._assign = getModelAssigner(vnode);
  },
  updated(el, { value }) {
    setSelected(el, value);
  }
};
function setSelected(el, value) {
  const isMultiple = el.multiple;
  if (isMultiple && !isArray$1(value) && !isSet(value)) {
    return;
  }
  for (let i = 0, l = el.options.length; i < l; i++) {
    const option = el.options[i];
    const optionValue = getValue(option);
    if (isMultiple) {
      if (isArray$1(value)) {
        option.selected = looseIndexOf(value, optionValue) > -1;
      } else {
        option.selected = value.has(optionValue);
      }
    } else {
      if (looseEqual(getValue(option), value)) {
        if (el.selectedIndex !== i)
          el.selectedIndex = i;
        return;
      }
    }
  }
  if (!isMultiple && el.selectedIndex !== -1) {
    el.selectedIndex = -1;
  }
}
function getValue(el) {
  return "_value" in el ? el._value : el.value;
}
function getCheckboxValue(el, checked) {
  const key = checked ? "_trueValue" : "_falseValue";
  return key in el ? el[key] : checked;
}
const vModelDynamic = {
  created(el, binding, vnode) {
    callModelHook(el, binding, vnode, null, "created");
  },
  mounted(el, binding, vnode) {
    callModelHook(el, binding, vnode, null, "mounted");
  },
  beforeUpdate(el, binding, vnode, prevVNode) {
    callModelHook(el, binding, vnode, prevVNode, "beforeUpdate");
  },
  updated(el, binding, vnode, prevVNode) {
    callModelHook(el, binding, vnode, prevVNode, "updated");
  }
};
function resolveDynamicModel(tagName, type) {
  switch (tagName) {
    case "SELECT":
      return vModelSelect;
    case "TEXTAREA":
      return vModelText;
    default:
      switch (type) {
        case "checkbox":
          return vModelCheckbox;
        case "radio":
          return vModelRadio;
        default:
          return vModelText;
      }
  }
}
function callModelHook(el, binding, vnode, prevVNode, hook) {
  const modelToUse = resolveDynamicModel(el.tagName, vnode.props && vnode.props.type);
  const fn = modelToUse[hook];
  fn && fn(el, binding, vnode, prevVNode);
}
function initVModelForSSR() {
  vModelText.getSSRProps = ({ value }) => ({ value });
  vModelRadio.getSSRProps = ({ value }, vnode) => {
    if (vnode.props && looseEqual(vnode.props.value, value)) {
      return { checked: true };
    }
  };
  vModelCheckbox.getSSRProps = ({ value }, vnode) => {
    if (isArray$1(value)) {
      if (vnode.props && looseIndexOf(value, vnode.props.value) > -1) {
        return { checked: true };
      }
    } else if (isSet(value)) {
      if (vnode.props && value.has(vnode.props.value)) {
        return { checked: true };
      }
    } else if (value) {
      return { checked: true };
    }
  };
  vModelDynamic.getSSRProps = (binding, vnode) => {
    if (typeof vnode.type !== "string") {
      return;
    }
    const modelToUse = resolveDynamicModel(
      // resolveDynamicModel expects an uppercase tag name, but vnode.type is lowercase
      vnode.type.toUpperCase(),
      vnode.props && vnode.props.type
    );
    if (modelToUse.getSSRProps) {
      return modelToUse.getSSRProps(binding, vnode);
    }
  };
}
const systemModifiers = ["ctrl", "shift", "alt", "meta"];
const modifierGuards = {
  stop: (e) => e.stopPropagation(),
  prevent: (e) => e.preventDefault(),
  self: (e) => e.target !== e.currentTarget,
  ctrl: (e) => !e.ctrlKey,
  shift: (e) => !e.shiftKey,
  alt: (e) => !e.altKey,
  meta: (e) => !e.metaKey,
  left: (e) => "button" in e && e.button !== 0,
  middle: (e) => "button" in e && e.button !== 1,
  right: (e) => "button" in e && e.button !== 2,
  exact: (e, modifiers) => systemModifiers.some((m) => e[`${m}Key`] && !modifiers.includes(m))
};
const withModifiers = (fn, modifiers) => {
  return (event, ...args) => {
    for (let i = 0; i < modifiers.length; i++) {
      const guard = modifierGuards[modifiers[i]];
      if (guard && guard(event, modifiers))
        return;
    }
    return fn(event, ...args);
  };
};
const keyNames = {
  esc: "escape",
  space: " ",
  up: "arrow-up",
  left: "arrow-left",
  right: "arrow-right",
  down: "arrow-down",
  delete: "backspace"
};
const withKeys = (fn, modifiers) => {
  return (event) => {
    if (!("key" in event)) {
      return;
    }
    const eventKey = hyphenate(event.key);
    if (modifiers.some((k) => k === eventKey || keyNames[k] === eventKey)) {
      return fn(event);
    }
  };
};
const vShow = {
  beforeMount(el, { value }, { transition }) {
    el._vod = el.style.display === "none" ? "" : el.style.display;
    if (transition && value) {
      transition.beforeEnter(el);
    } else {
      setDisplay(el, value);
    }
  },
  mounted(el, { value }, { transition }) {
    if (transition && value) {
      transition.enter(el);
    }
  },
  updated(el, { value, oldValue }, { transition }) {
    if (!value === !oldValue)
      return;
    if (transition) {
      if (value) {
        transition.beforeEnter(el);
        setDisplay(el, true);
        transition.enter(el);
      } else {
        transition.leave(el, () => {
          setDisplay(el, false);
        });
      }
    } else {
      setDisplay(el, value);
    }
  },
  beforeUnmount(el, { value }) {
    setDisplay(el, value);
  }
};
function setDisplay(el, value) {
  el.style.display = value ? el._vod : "none";
}
function initVShowForSSR() {
  vShow.getSSRProps = ({ value }) => {
    if (!value) {
      return { style: { display: "none" } };
    }
  };
}
const rendererOptions = /* @__PURE__ */ extend({ patchProp }, nodeOps);
let renderer;
let enabledHydration = false;
function ensureRenderer() {
  return renderer || (renderer = createRenderer(rendererOptions));
}
function ensureHydrationRenderer() {
  renderer = enabledHydration ? renderer : createHydrationRenderer(rendererOptions);
  enabledHydration = true;
  return renderer;
}
const render$1 = (...args) => {
  ensureRenderer().render(...args);
};
const hydrate = (...args) => {
  ensureHydrationRenderer().hydrate(...args);
};
const createApp = (...args) => {
  const app2 = ensureRenderer().createApp(...args);
  const { mount } = app2;
  app2.mount = (containerOrSelector) => {
    const container = normalizeContainer(containerOrSelector);
    if (!container)
      return;
    const component = app2._component;
    if (!isFunction$3(component) && !component.render && !component.template) {
      component.template = container.innerHTML;
    }
    container.innerHTML = "";
    const proxy = mount(container, false, container instanceof SVGElement);
    if (container instanceof Element) {
      container.removeAttribute("v-cloak");
      container.setAttribute("data-v-app", "");
    }
    return proxy;
  };
  return app2;
};
const createSSRApp = (...args) => {
  const app2 = ensureHydrationRenderer().createApp(...args);
  const { mount } = app2;
  app2.mount = (containerOrSelector) => {
    const container = normalizeContainer(containerOrSelector);
    if (container) {
      return mount(container, true, container instanceof SVGElement);
    }
  };
  return app2;
};
function normalizeContainer(container) {
  if (isString$1(container)) {
    const res = document.querySelector(container);
    return res;
  }
  return container;
}
let ssrDirectiveInitialized = false;
const initDirectivesForSSR = () => {
  if (!ssrDirectiveInitialized) {
    ssrDirectiveInitialized = true;
    initVModelForSSR();
    initVShowForSSR();
  }
};
const runtimeDom = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  BaseTransition,
  Comment,
  EffectScope,
  Fragment,
  KeepAlive,
  ReactiveEffect,
  Static,
  Suspense,
  Teleport,
  Text,
  Transition,
  TransitionGroup,
  VueElement,
  assertNumber,
  callWithAsyncErrorHandling,
  callWithErrorHandling,
  camelize: camelize$1,
  capitalize,
  cloneVNode,
  compatUtils,
  computed,
  createApp,
  createBlock,
  createCommentVNode,
  createElementBlock,
  createElementVNode: createBaseVNode,
  createHydrationRenderer,
  createPropsRestProxy,
  createRenderer,
  createSSRApp,
  createSlots,
  createStaticVNode,
  createTextVNode,
  createVNode,
  customRef,
  defineAsyncComponent,
  defineComponent,
  defineCustomElement,
  defineEmits,
  defineExpose,
  defineProps,
  defineSSRCustomElement,
  get devtools() {
    return devtools;
  },
  effect,
  effectScope,
  getCurrentInstance,
  getCurrentScope,
  getTransitionRawChildren,
  guardReactiveProps,
  h,
  handleError,
  hydrate,
  initCustomFormatter,
  initDirectivesForSSR,
  inject,
  isMemoSame,
  isProxy: isProxy$1,
  isReactive,
  isReadonly,
  isRef,
  isRuntimeOnly,
  isShallow,
  isVNode,
  markRaw,
  mergeDefaults,
  mergeProps,
  nextTick,
  normalizeClass,
  normalizeProps,
  normalizeStyle,
  onActivated,
  onBeforeMount,
  onBeforeUnmount,
  onBeforeUpdate,
  onDeactivated,
  onErrorCaptured,
  onMounted,
  onRenderTracked,
  onRenderTriggered,
  onScopeDispose,
  onServerPrefetch,
  onUnmounted,
  onUpdated,
  openBlock,
  popScopeId,
  provide,
  proxyRefs,
  pushScopeId,
  queuePostFlushCb,
  reactive,
  readonly,
  ref,
  registerRuntimeCompiler,
  render: render$1,
  renderList,
  renderSlot,
  resolveComponent,
  resolveDirective,
  resolveDynamicComponent,
  resolveFilter,
  resolveTransitionHooks,
  setBlockTracking,
  setDevtoolsHook,
  setTransitionHooks,
  shallowReactive,
  shallowReadonly,
  shallowRef,
  ssrContextKey,
  ssrUtils,
  stop,
  toDisplayString,
  toHandlerKey,
  toHandlers,
  toRaw,
  toRef,
  toRefs,
  transformVNodeArgs,
  triggerRef,
  unref,
  useAttrs,
  useCssModule,
  useCssVars,
  useSSRContext,
  useSlots,
  useTransitionState,
  vModelCheckbox,
  vModelDynamic,
  vModelRadio,
  vModelSelect,
  vModelText,
  vShow,
  version,
  warn,
  watch,
  watchEffect,
  watchPostEffect,
  watchSyncEffect,
  withAsyncContext,
  withCtx,
  withDefaults,
  withDirectives,
  withKeys,
  withMemo,
  withModifiers,
  withScopeId
}, Symbol.toStringTag, { value: "Module" }));
function defaultOnError(error) {
  throw error;
}
function defaultOnWarn(msg) {
}
function createCompilerError(code, loc, messages, additionalMessage) {
  const msg = code;
  const error = new SyntaxError(String(msg));
  error.code = code;
  error.loc = loc;
  return error;
}
const FRAGMENT = Symbol(``);
const TELEPORT = Symbol(``);
const SUSPENSE = Symbol(``);
const KEEP_ALIVE = Symbol(``);
const BASE_TRANSITION = Symbol(``);
const OPEN_BLOCK = Symbol(``);
const CREATE_BLOCK = Symbol(``);
const CREATE_ELEMENT_BLOCK = Symbol(``);
const CREATE_VNODE = Symbol(``);
const CREATE_ELEMENT_VNODE = Symbol(``);
const CREATE_COMMENT = Symbol(``);
const CREATE_TEXT = Symbol(``);
const CREATE_STATIC = Symbol(``);
const RESOLVE_COMPONENT = Symbol(``);
const RESOLVE_DYNAMIC_COMPONENT = Symbol(``);
const RESOLVE_DIRECTIVE = Symbol(``);
const RESOLVE_FILTER = Symbol(``);
const WITH_DIRECTIVES = Symbol(``);
const RENDER_LIST = Symbol(``);
const RENDER_SLOT = Symbol(``);
const CREATE_SLOTS = Symbol(``);
const TO_DISPLAY_STRING = Symbol(``);
const MERGE_PROPS = Symbol(``);
const NORMALIZE_CLASS = Symbol(``);
const NORMALIZE_STYLE = Symbol(``);
const NORMALIZE_PROPS = Symbol(``);
const GUARD_REACTIVE_PROPS = Symbol(``);
const TO_HANDLERS = Symbol(``);
const CAMELIZE = Symbol(``);
const CAPITALIZE = Symbol(``);
const TO_HANDLER_KEY = Symbol(``);
const SET_BLOCK_TRACKING = Symbol(``);
const PUSH_SCOPE_ID = Symbol(``);
const POP_SCOPE_ID = Symbol(``);
const WITH_CTX = Symbol(``);
const UNREF = Symbol(``);
const IS_REF = Symbol(``);
const WITH_MEMO = Symbol(``);
const IS_MEMO_SAME = Symbol(``);
const helperNameMap = {
  [FRAGMENT]: `Fragment`,
  [TELEPORT]: `Teleport`,
  [SUSPENSE]: `Suspense`,
  [KEEP_ALIVE]: `KeepAlive`,
  [BASE_TRANSITION]: `BaseTransition`,
  [OPEN_BLOCK]: `openBlock`,
  [CREATE_BLOCK]: `createBlock`,
  [CREATE_ELEMENT_BLOCK]: `createElementBlock`,
  [CREATE_VNODE]: `createVNode`,
  [CREATE_ELEMENT_VNODE]: `createElementVNode`,
  [CREATE_COMMENT]: `createCommentVNode`,
  [CREATE_TEXT]: `createTextVNode`,
  [CREATE_STATIC]: `createStaticVNode`,
  [RESOLVE_COMPONENT]: `resolveComponent`,
  [RESOLVE_DYNAMIC_COMPONENT]: `resolveDynamicComponent`,
  [RESOLVE_DIRECTIVE]: `resolveDirective`,
  [RESOLVE_FILTER]: `resolveFilter`,
  [WITH_DIRECTIVES]: `withDirectives`,
  [RENDER_LIST]: `renderList`,
  [RENDER_SLOT]: `renderSlot`,
  [CREATE_SLOTS]: `createSlots`,
  [TO_DISPLAY_STRING]: `toDisplayString`,
  [MERGE_PROPS]: `mergeProps`,
  [NORMALIZE_CLASS]: `normalizeClass`,
  [NORMALIZE_STYLE]: `normalizeStyle`,
  [NORMALIZE_PROPS]: `normalizeProps`,
  [GUARD_REACTIVE_PROPS]: `guardReactiveProps`,
  [TO_HANDLERS]: `toHandlers`,
  [CAMELIZE]: `camelize`,
  [CAPITALIZE]: `capitalize`,
  [TO_HANDLER_KEY]: `toHandlerKey`,
  [SET_BLOCK_TRACKING]: `setBlockTracking`,
  [PUSH_SCOPE_ID]: `pushScopeId`,
  [POP_SCOPE_ID]: `popScopeId`,
  [WITH_CTX]: `withCtx`,
  [UNREF]: `unref`,
  [IS_REF]: `isRef`,
  [WITH_MEMO]: `withMemo`,
  [IS_MEMO_SAME]: `isMemoSame`
};
function registerRuntimeHelpers(helpers) {
  Object.getOwnPropertySymbols(helpers).forEach((s) => {
    helperNameMap[s] = helpers[s];
  });
}
const locStub = {
  source: "",
  start: { line: 1, column: 1, offset: 0 },
  end: { line: 1, column: 1, offset: 0 }
};
function createRoot(children, loc = locStub) {
  return {
    type: 0,
    children,
    helpers: /* @__PURE__ */ new Set(),
    components: [],
    directives: [],
    hoists: [],
    imports: [],
    cached: 0,
    temps: 0,
    codegenNode: void 0,
    loc
  };
}
function createVNodeCall(context, tag, props, children, patchFlag, dynamicProps, directives, isBlock = false, disableTracking = false, isComponent2 = false, loc = locStub) {
  if (context) {
    if (isBlock) {
      context.helper(OPEN_BLOCK);
      context.helper(getVNodeBlockHelper(context.inSSR, isComponent2));
    } else {
      context.helper(getVNodeHelper(context.inSSR, isComponent2));
    }
    if (directives) {
      context.helper(WITH_DIRECTIVES);
    }
  }
  return {
    type: 13,
    tag,
    props,
    children,
    patchFlag,
    dynamicProps,
    directives,
    isBlock,
    disableTracking,
    isComponent: isComponent2,
    loc
  };
}
function createArrayExpression(elements, loc = locStub) {
  return {
    type: 17,
    loc,
    elements
  };
}
function createObjectExpression(properties, loc = locStub) {
  return {
    type: 15,
    loc,
    properties
  };
}
function createObjectProperty(key, value) {
  return {
    type: 16,
    loc: locStub,
    key: isString$1(key) ? createSimpleExpression(key, true) : key,
    value
  };
}
function createSimpleExpression(content, isStatic = false, loc = locStub, constType = 0) {
  return {
    type: 4,
    loc,
    content,
    isStatic,
    constType: isStatic ? 3 : constType
  };
}
function createCompoundExpression(children, loc = locStub) {
  return {
    type: 8,
    loc,
    children
  };
}
function createCallExpression(callee, args = [], loc = locStub) {
  return {
    type: 14,
    loc,
    callee,
    arguments: args
  };
}
function createFunctionExpression(params, returns = void 0, newline = false, isSlot = false, loc = locStub) {
  return {
    type: 18,
    params,
    returns,
    newline,
    isSlot,
    loc
  };
}
function createConditionalExpression(test, consequent, alternate, newline = true) {
  return {
    type: 19,
    test,
    consequent,
    alternate,
    newline,
    loc: locStub
  };
}
function createCacheExpression(index2, value, isVNode2 = false) {
  return {
    type: 20,
    index: index2,
    value,
    isVNode: isVNode2,
    loc: locStub
  };
}
function createBlockStatement(body) {
  return {
    type: 21,
    body,
    loc: locStub
  };
}
const isStaticExp = (p2) => p2.type === 4 && p2.isStatic;
const isBuiltInType = (tag, expected) => tag === expected || tag === hyphenate(expected);
function isCoreComponent(tag) {
  if (isBuiltInType(tag, "Teleport")) {
    return TELEPORT;
  } else if (isBuiltInType(tag, "Suspense")) {
    return SUSPENSE;
  } else if (isBuiltInType(tag, "KeepAlive")) {
    return KEEP_ALIVE;
  } else if (isBuiltInType(tag, "BaseTransition")) {
    return BASE_TRANSITION;
  }
}
const nonIdentifierRE = /^\d|[^\$\w]/;
const isSimpleIdentifier = (name) => !nonIdentifierRE.test(name);
const validFirstIdentCharRE = /[A-Za-z_$\xA0-\uFFFF]/;
const validIdentCharRE = /[\.\?\w$\xA0-\uFFFF]/;
const whitespaceRE = /\s+[.[]\s*|\s*[.[]\s+/g;
const isMemberExpressionBrowser = (path) => {
  path = path.trim().replace(whitespaceRE, (s) => s.trim());
  let state = 0;
  let stateStack = [];
  let currentOpenBracketCount = 0;
  let currentOpenParensCount = 0;
  let currentStringType = null;
  for (let i = 0; i < path.length; i++) {
    const char = path.charAt(i);
    switch (state) {
      case 0:
        if (char === "[") {
          stateStack.push(state);
          state = 1;
          currentOpenBracketCount++;
        } else if (char === "(") {
          stateStack.push(state);
          state = 2;
          currentOpenParensCount++;
        } else if (!(i === 0 ? validFirstIdentCharRE : validIdentCharRE).test(char)) {
          return false;
        }
        break;
      case 1:
        if (char === `'` || char === `"` || char === "`") {
          stateStack.push(state);
          state = 3;
          currentStringType = char;
        } else if (char === `[`) {
          currentOpenBracketCount++;
        } else if (char === `]`) {
          if (!--currentOpenBracketCount) {
            state = stateStack.pop();
          }
        }
        break;
      case 2:
        if (char === `'` || char === `"` || char === "`") {
          stateStack.push(state);
          state = 3;
          currentStringType = char;
        } else if (char === `(`) {
          currentOpenParensCount++;
        } else if (char === `)`) {
          if (i === path.length - 1) {
            return false;
          }
          if (!--currentOpenParensCount) {
            state = stateStack.pop();
          }
        }
        break;
      case 3:
        if (char === currentStringType) {
          state = stateStack.pop();
          currentStringType = null;
        }
        break;
    }
  }
  return !currentOpenBracketCount && !currentOpenParensCount;
};
const isMemberExpression = isMemberExpressionBrowser;
function getInnerRange(loc, offset, length) {
  const source = loc.source.slice(offset, offset + length);
  const newLoc = {
    source,
    start: advancePositionWithClone(loc.start, loc.source, offset),
    end: loc.end
  };
  if (length != null) {
    newLoc.end = advancePositionWithClone(loc.start, loc.source, offset + length);
  }
  return newLoc;
}
function advancePositionWithClone(pos, source, numberOfCharacters = source.length) {
  return advancePositionWithMutation(extend({}, pos), source, numberOfCharacters);
}
function advancePositionWithMutation(pos, source, numberOfCharacters = source.length) {
  let linesCount = 0;
  let lastNewLinePos = -1;
  for (let i = 0; i < numberOfCharacters; i++) {
    if (source.charCodeAt(i) === 10) {
      linesCount++;
      lastNewLinePos = i;
    }
  }
  pos.offset += numberOfCharacters;
  pos.line += linesCount;
  pos.column = lastNewLinePos === -1 ? pos.column + numberOfCharacters : numberOfCharacters - lastNewLinePos;
  return pos;
}
function findDir(node, name, allowEmpty = false) {
  for (let i = 0; i < node.props.length; i++) {
    const p2 = node.props[i];
    if (p2.type === 7 && (allowEmpty || p2.exp) && (isString$1(name) ? p2.name === name : name.test(p2.name))) {
      return p2;
    }
  }
}
function findProp(node, name, dynamicOnly = false, allowEmpty = false) {
  for (let i = 0; i < node.props.length; i++) {
    const p2 = node.props[i];
    if (p2.type === 6) {
      if (dynamicOnly)
        continue;
      if (p2.name === name && (p2.value || allowEmpty)) {
        return p2;
      }
    } else if (p2.name === "bind" && (p2.exp || allowEmpty) && isStaticArgOf(p2.arg, name)) {
      return p2;
    }
  }
}
function isStaticArgOf(arg, name) {
  return !!(arg && isStaticExp(arg) && arg.content === name);
}
function hasDynamicKeyVBind(node) {
  return node.props.some(
    (p2) => p2.type === 7 && p2.name === "bind" && (!p2.arg || // v-bind="obj"
    p2.arg.type !== 4 || // v-bind:[_ctx.foo]
    !p2.arg.isStatic)
    // v-bind:[foo]
  );
}
function isText$1(node) {
  return node.type === 5 || node.type === 2;
}
function isVSlot(p2) {
  return p2.type === 7 && p2.name === "slot";
}
function isTemplateNode(node) {
  return node.type === 1 && node.tagType === 3;
}
function isSlotOutlet(node) {
  return node.type === 1 && node.tagType === 2;
}
function getVNodeHelper(ssr, isComponent2) {
  return ssr || isComponent2 ? CREATE_VNODE : CREATE_ELEMENT_VNODE;
}
function getVNodeBlockHelper(ssr, isComponent2) {
  return ssr || isComponent2 ? CREATE_BLOCK : CREATE_ELEMENT_BLOCK;
}
const propsHelperSet = /* @__PURE__ */ new Set([NORMALIZE_PROPS, GUARD_REACTIVE_PROPS]);
function getUnnormalizedProps(props, callPath = []) {
  if (props && !isString$1(props) && props.type === 14) {
    const callee = props.callee;
    if (!isString$1(callee) && propsHelperSet.has(callee)) {
      return getUnnormalizedProps(props.arguments[0], callPath.concat(props));
    }
  }
  return [props, callPath];
}
function injectProp(node, prop, context) {
  let propsWithInjection;
  let props = node.type === 13 ? node.props : node.arguments[2];
  let callPath = [];
  let parentCall;
  if (props && !isString$1(props) && props.type === 14) {
    const ret = getUnnormalizedProps(props);
    props = ret[0];
    callPath = ret[1];
    parentCall = callPath[callPath.length - 1];
  }
  if (props == null || isString$1(props)) {
    propsWithInjection = createObjectExpression([prop]);
  } else if (props.type === 14) {
    const first = props.arguments[0];
    if (!isString$1(first) && first.type === 15) {
      if (!hasProp$1(prop, first)) {
        first.properties.unshift(prop);
      }
    } else {
      if (props.callee === TO_HANDLERS) {
        propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [
          createObjectExpression([prop]),
          props
        ]);
      } else {
        props.arguments.unshift(createObjectExpression([prop]));
      }
    }
    !propsWithInjection && (propsWithInjection = props);
  } else if (props.type === 15) {
    if (!hasProp$1(prop, props)) {
      props.properties.unshift(prop);
    }
    propsWithInjection = props;
  } else {
    propsWithInjection = createCallExpression(context.helper(MERGE_PROPS), [
      createObjectExpression([prop]),
      props
    ]);
    if (parentCall && parentCall.callee === GUARD_REACTIVE_PROPS) {
      parentCall = callPath[callPath.length - 2];
    }
  }
  if (node.type === 13) {
    if (parentCall) {
      parentCall.arguments[0] = propsWithInjection;
    } else {
      node.props = propsWithInjection;
    }
  } else {
    if (parentCall) {
      parentCall.arguments[0] = propsWithInjection;
    } else {
      node.arguments[2] = propsWithInjection;
    }
  }
}
function hasProp$1(prop, props) {
  let result = false;
  if (prop.key.type === 4) {
    const propKeyName = prop.key.content;
    result = props.properties.some((p2) => p2.key.type === 4 && p2.key.content === propKeyName);
  }
  return result;
}
function toValidAssetId(name, type) {
  return `_${type}_${name.replace(/[^\w]/g, (searchValue, replaceValue) => {
    return searchValue === "-" ? "_" : name.charCodeAt(replaceValue).toString();
  })}`;
}
function getMemoedVNodeCall(node) {
  if (node.type === 14 && node.callee === WITH_MEMO) {
    return node.arguments[1].returns;
  } else {
    return node;
  }
}
function makeBlock(node, { helper, removeHelper, inSSR }) {
  if (!node.isBlock) {
    node.isBlock = true;
    removeHelper(getVNodeHelper(inSSR, node.isComponent));
    helper(OPEN_BLOCK);
    helper(getVNodeBlockHelper(inSSR, node.isComponent));
  }
}
function getCompatValue(key, context) {
  const config = context.options ? context.options.compatConfig : context.compatConfig;
  const value = config && config[key];
  if (key === "MODE") {
    return value || 3;
  } else {
    return value;
  }
}
function isCompatEnabled(key, context) {
  const mode = getCompatValue("MODE", context);
  const value = getCompatValue(key, context);
  return mode === 3 ? value === true : value !== false;
}
function checkCompatEnabled(key, context, loc, ...args) {
  const enabled = isCompatEnabled(key, context);
  return enabled;
}
const decodeRE = /&(gt|lt|amp|apos|quot);/g;
const decodeMap = {
  gt: ">",
  lt: "<",
  amp: "&",
  apos: "'",
  quot: '"'
};
const defaultParserOptions = {
  delimiters: [`{{`, `}}`],
  getNamespace: () => 0,
  getTextMode: () => 0,
  isVoidTag: NO,
  isPreTag: NO,
  isCustomElement: NO,
  decodeEntities: (rawText) => rawText.replace(decodeRE, (_, p1) => decodeMap[p1]),
  onError: defaultOnError,
  onWarn: defaultOnWarn,
  comments: false
};
function baseParse(content, options = {}) {
  const context = createParserContext(content, options);
  const start = getCursor(context);
  return createRoot(parseChildren(context, 0, []), getSelection(context, start));
}
function createParserContext(content, rawOptions) {
  const options = extend({}, defaultParserOptions);
  let key;
  for (key in rawOptions) {
    options[key] = rawOptions[key] === void 0 ? defaultParserOptions[key] : rawOptions[key];
  }
  return {
    options,
    column: 1,
    line: 1,
    offset: 0,
    originalSource: content,
    source: content,
    inPre: false,
    inVPre: false,
    onWarn: options.onWarn
  };
}
function parseChildren(context, mode, ancestors) {
  const parent = last(ancestors);
  const ns = parent ? parent.ns : 0;
  const nodes = [];
  while (!isEnd(context, mode, ancestors)) {
    const s = context.source;
    let node = void 0;
    if (mode === 0 || mode === 1) {
      if (!context.inVPre && startsWith(s, context.options.delimiters[0])) {
        node = parseInterpolation(context, mode);
      } else if (mode === 0 && s[0] === "<") {
        if (s.length === 1) {
          emitError(context, 5, 1);
        } else if (s[1] === "!") {
          if (startsWith(s, "<!--")) {
            node = parseComment(context);
          } else if (startsWith(s, "<!DOCTYPE")) {
            node = parseBogusComment(context);
          } else if (startsWith(s, "<![CDATA[")) {
            if (ns !== 0) {
              node = parseCDATA(context, ancestors);
            } else {
              emitError(
                context,
                1
                /* ErrorCodes.CDATA_IN_HTML_CONTENT */
              );
              node = parseBogusComment(context);
            }
          } else {
            emitError(
              context,
              11
              /* ErrorCodes.INCORRECTLY_OPENED_COMMENT */
            );
            node = parseBogusComment(context);
          }
        } else if (s[1] === "/") {
          if (s.length === 2) {
            emitError(context, 5, 2);
          } else if (s[2] === ">") {
            emitError(context, 14, 2);
            advanceBy(context, 3);
            continue;
          } else if (/[a-z]/i.test(s[2])) {
            emitError(
              context,
              23
              /* ErrorCodes.X_INVALID_END_TAG */
            );
            parseTag(context, 1, parent);
            continue;
          } else {
            emitError(context, 12, 2);
            node = parseBogusComment(context);
          }
        } else if (/[a-z]/i.test(s[1])) {
          node = parseElement(context, ancestors);
          if (isCompatEnabled("COMPILER_NATIVE_TEMPLATE", context) && node && node.tag === "template" && !node.props.some((p2) => p2.type === 7 && isSpecialTemplateDirective(p2.name))) {
            node = node.children;
          }
        } else if (s[1] === "?") {
          emitError(context, 21, 1);
          node = parseBogusComment(context);
        } else {
          emitError(context, 12, 1);
        }
      }
    }
    if (!node) {
      node = parseText(context, mode);
    }
    if (isArray$1(node)) {
      for (let i = 0; i < node.length; i++) {
        pushNode(nodes, node[i]);
      }
    } else {
      pushNode(nodes, node);
    }
  }
  let removedWhitespace = false;
  if (mode !== 2 && mode !== 1) {
    const shouldCondense = context.options.whitespace !== "preserve";
    for (let i = 0; i < nodes.length; i++) {
      const node = nodes[i];
      if (node.type === 2) {
        if (!context.inPre) {
          if (!/[^\t\r\n\f ]/.test(node.content)) {
            const prev = nodes[i - 1];
            const next = nodes[i + 1];
            if (!prev || !next || shouldCondense && (prev.type === 3 && next.type === 3 || prev.type === 3 && next.type === 1 || prev.type === 1 && next.type === 3 || prev.type === 1 && next.type === 1 && /[\r\n]/.test(node.content))) {
              removedWhitespace = true;
              nodes[i] = null;
            } else {
              node.content = " ";
            }
          } else if (shouldCondense) {
            node.content = node.content.replace(/[\t\r\n\f ]+/g, " ");
          }
        } else {
          node.content = node.content.replace(/\r\n/g, "\n");
        }
      } else if (node.type === 3 && !context.options.comments) {
        removedWhitespace = true;
        nodes[i] = null;
      }
    }
    if (context.inPre && parent && context.options.isPreTag(parent.tag)) {
      const first = nodes[0];
      if (first && first.type === 2) {
        first.content = first.content.replace(/^\r?\n/, "");
      }
    }
  }
  return removedWhitespace ? nodes.filter(Boolean) : nodes;
}
function pushNode(nodes, node) {
  if (node.type === 2) {
    const prev = last(nodes);
    if (prev && prev.type === 2 && prev.loc.end.offset === node.loc.start.offset) {
      prev.content += node.content;
      prev.loc.end = node.loc.end;
      prev.loc.source += node.loc.source;
      return;
    }
  }
  nodes.push(node);
}
function parseCDATA(context, ancestors) {
  advanceBy(context, 9);
  const nodes = parseChildren(context, 3, ancestors);
  if (context.source.length === 0) {
    emitError(
      context,
      6
      /* ErrorCodes.EOF_IN_CDATA */
    );
  } else {
    advanceBy(context, 3);
  }
  return nodes;
}
function parseComment(context) {
  const start = getCursor(context);
  let content;
  const match = /--(\!)?>/.exec(context.source);
  if (!match) {
    content = context.source.slice(4);
    advanceBy(context, context.source.length);
    emitError(
      context,
      7
      /* ErrorCodes.EOF_IN_COMMENT */
    );
  } else {
    if (match.index <= 3) {
      emitError(
        context,
        0
        /* ErrorCodes.ABRUPT_CLOSING_OF_EMPTY_COMMENT */
      );
    }
    if (match[1]) {
      emitError(
        context,
        10
        /* ErrorCodes.INCORRECTLY_CLOSED_COMMENT */
      );
    }
    content = context.source.slice(4, match.index);
    const s = context.source.slice(0, match.index);
    let prevIndex = 1, nestedIndex = 0;
    while ((nestedIndex = s.indexOf("<!--", prevIndex)) !== -1) {
      advanceBy(context, nestedIndex - prevIndex + 1);
      if (nestedIndex + 4 < s.length) {
        emitError(
          context,
          16
          /* ErrorCodes.NESTED_COMMENT */
        );
      }
      prevIndex = nestedIndex + 1;
    }
    advanceBy(context, match.index + match[0].length - prevIndex + 1);
  }
  return {
    type: 3,
    content,
    loc: getSelection(context, start)
  };
}
function parseBogusComment(context) {
  const start = getCursor(context);
  const contentStart = context.source[1] === "?" ? 1 : 2;
  let content;
  const closeIndex = context.source.indexOf(">");
  if (closeIndex === -1) {
    content = context.source.slice(contentStart);
    advanceBy(context, context.source.length);
  } else {
    content = context.source.slice(contentStart, closeIndex);
    advanceBy(context, closeIndex + 1);
  }
  return {
    type: 3,
    content,
    loc: getSelection(context, start)
  };
}
function parseElement(context, ancestors) {
  const wasInPre = context.inPre;
  const wasInVPre = context.inVPre;
  const parent = last(ancestors);
  const element = parseTag(context, 0, parent);
  const isPreBoundary = context.inPre && !wasInPre;
  const isVPreBoundary = context.inVPre && !wasInVPre;
  if (element.isSelfClosing || context.options.isVoidTag(element.tag)) {
    if (isPreBoundary) {
      context.inPre = false;
    }
    if (isVPreBoundary) {
      context.inVPre = false;
    }
    return element;
  }
  ancestors.push(element);
  const mode = context.options.getTextMode(element, parent);
  const children = parseChildren(context, mode, ancestors);
  ancestors.pop();
  {
    const inlineTemplateProp = element.props.find((p2) => p2.type === 6 && p2.name === "inline-template");
    if (inlineTemplateProp && checkCompatEnabled("COMPILER_INLINE_TEMPLATE", context, inlineTemplateProp.loc)) {
      const loc = getSelection(context, element.loc.end);
      inlineTemplateProp.value = {
        type: 2,
        content: loc.source,
        loc
      };
    }
  }
  element.children = children;
  if (startsWithEndTagOpen(context.source, element.tag)) {
    parseTag(context, 1, parent);
  } else {
    emitError(context, 24, 0, element.loc.start);
    if (context.source.length === 0 && element.tag.toLowerCase() === "script") {
      const first = children[0];
      if (first && startsWith(first.loc.source, "<!--")) {
        emitError(
          context,
          8
          /* ErrorCodes.EOF_IN_SCRIPT_HTML_COMMENT_LIKE_TEXT */
        );
      }
    }
  }
  element.loc = getSelection(context, element.loc.start);
  if (isPreBoundary) {
    context.inPre = false;
  }
  if (isVPreBoundary) {
    context.inVPre = false;
  }
  return element;
}
const isSpecialTemplateDirective = /* @__PURE__ */ makeMap(`if,else,else-if,for,slot`);
function parseTag(context, type, parent) {
  const start = getCursor(context);
  const match = /^<\/?([a-z][^\t\r\n\f />]*)/i.exec(context.source);
  const tag = match[1];
  const ns = context.options.getNamespace(tag, parent);
  advanceBy(context, match[0].length);
  advanceSpaces(context);
  const cursor = getCursor(context);
  const currentSource = context.source;
  if (context.options.isPreTag(tag)) {
    context.inPre = true;
  }
  let props = parseAttributes(context, type);
  if (type === 0 && !context.inVPre && props.some((p2) => p2.type === 7 && p2.name === "pre")) {
    context.inVPre = true;
    extend(context, cursor);
    context.source = currentSource;
    props = parseAttributes(context, type).filter((p2) => p2.name !== "v-pre");
  }
  let isSelfClosing = false;
  if (context.source.length === 0) {
    emitError(
      context,
      9
      /* ErrorCodes.EOF_IN_TAG */
    );
  } else {
    isSelfClosing = startsWith(context.source, "/>");
    if (type === 1 && isSelfClosing) {
      emitError(
        context,
        4
        /* ErrorCodes.END_TAG_WITH_TRAILING_SOLIDUS */
      );
    }
    advanceBy(context, isSelfClosing ? 2 : 1);
  }
  if (type === 1) {
    return;
  }
  let tagType = 0;
  if (!context.inVPre) {
    if (tag === "slot") {
      tagType = 2;
    } else if (tag === "template") {
      if (props.some((p2) => p2.type === 7 && isSpecialTemplateDirective(p2.name))) {
        tagType = 3;
      }
    } else if (isComponent(tag, props, context)) {
      tagType = 1;
    }
  }
  return {
    type: 1,
    ns,
    tag,
    tagType,
    props,
    isSelfClosing,
    children: [],
    loc: getSelection(context, start),
    codegenNode: void 0
    // to be created during transform phase
  };
}
function isComponent(tag, props, context) {
  const options = context.options;
  if (options.isCustomElement(tag)) {
    return false;
  }
  if (tag === "component" || /^[A-Z]/.test(tag) || isCoreComponent(tag) || options.isBuiltInComponent && options.isBuiltInComponent(tag) || options.isNativeTag && !options.isNativeTag(tag)) {
    return true;
  }
  for (let i = 0; i < props.length; i++) {
    const p2 = props[i];
    if (p2.type === 6) {
      if (p2.name === "is" && p2.value) {
        if (p2.value.content.startsWith("vue:")) {
          return true;
        } else if (checkCompatEnabled("COMPILER_IS_ON_ELEMENT", context, p2.loc)) {
          return true;
        }
      }
    } else {
      if (p2.name === "is") {
        return true;
      } else if (
        // :is on plain element - only treat as component in compat mode
        p2.name === "bind" && isStaticArgOf(p2.arg, "is") && true && checkCompatEnabled("COMPILER_IS_ON_ELEMENT", context, p2.loc)
      ) {
        return true;
      }
    }
  }
}
function parseAttributes(context, type) {
  const props = [];
  const attributeNames = /* @__PURE__ */ new Set();
  while (context.source.length > 0 && !startsWith(context.source, ">") && !startsWith(context.source, "/>")) {
    if (startsWith(context.source, "/")) {
      emitError(
        context,
        22
        /* ErrorCodes.UNEXPECTED_SOLIDUS_IN_TAG */
      );
      advanceBy(context, 1);
      advanceSpaces(context);
      continue;
    }
    if (type === 1) {
      emitError(
        context,
        3
        /* ErrorCodes.END_TAG_WITH_ATTRIBUTES */
      );
    }
    const attr = parseAttribute(context, attributeNames);
    if (attr.type === 6 && attr.value && attr.name === "class") {
      attr.value.content = attr.value.content.replace(/\s+/g, " ").trim();
    }
    if (type === 0) {
      props.push(attr);
    }
    if (/^[^\t\r\n\f />]/.test(context.source)) {
      emitError(
        context,
        15
        /* ErrorCodes.MISSING_WHITESPACE_BETWEEN_ATTRIBUTES */
      );
    }
    advanceSpaces(context);
  }
  return props;
}
function parseAttribute(context, nameSet) {
  const start = getCursor(context);
  const match = /^[^\t\r\n\f />][^\t\r\n\f />=]*/.exec(context.source);
  const name = match[0];
  if (nameSet.has(name)) {
    emitError(
      context,
      2
      /* ErrorCodes.DUPLICATE_ATTRIBUTE */
    );
  }
  nameSet.add(name);
  if (name[0] === "=") {
    emitError(
      context,
      19
      /* ErrorCodes.UNEXPECTED_EQUALS_SIGN_BEFORE_ATTRIBUTE_NAME */
    );
  }
  {
    const pattern = /["'<]/g;
    let m;
    while (m = pattern.exec(name)) {
      emitError(context, 17, m.index);
    }
  }
  advanceBy(context, name.length);
  let value = void 0;
  if (/^[\t\r\n\f ]*=/.test(context.source)) {
    advanceSpaces(context);
    advanceBy(context, 1);
    advanceSpaces(context);
    value = parseAttributeValue(context);
    if (!value) {
      emitError(
        context,
        13
        /* ErrorCodes.MISSING_ATTRIBUTE_VALUE */
      );
    }
  }
  const loc = getSelection(context, start);
  if (!context.inVPre && /^(v-[A-Za-z0-9-]|:|\.|@|#)/.test(name)) {
    const match2 = /(?:^v-([a-z0-9-]+))?(?:(?::|^\.|^@|^#)(\[[^\]]+\]|[^\.]+))?(.+)?$/i.exec(name);
    let isPropShorthand = startsWith(name, ".");
    let dirName = match2[1] || (isPropShorthand || startsWith(name, ":") ? "bind" : startsWith(name, "@") ? "on" : "slot");
    let arg;
    if (match2[2]) {
      const isSlot = dirName === "slot";
      const startOffset = name.lastIndexOf(match2[2]);
      const loc2 = getSelection(context, getNewPosition(context, start, startOffset), getNewPosition(context, start, startOffset + match2[2].length + (isSlot && match2[3] || "").length));
      let content = match2[2];
      let isStatic = true;
      if (content.startsWith("[")) {
        isStatic = false;
        if (!content.endsWith("]")) {
          emitError(
            context,
            27
            /* ErrorCodes.X_MISSING_DYNAMIC_DIRECTIVE_ARGUMENT_END */
          );
          content = content.slice(1);
        } else {
          content = content.slice(1, content.length - 1);
        }
      } else if (isSlot) {
        content += match2[3] || "";
      }
      arg = {
        type: 4,
        content,
        isStatic,
        constType: isStatic ? 3 : 0,
        loc: loc2
      };
    }
    if (value && value.isQuoted) {
      const valueLoc = value.loc;
      valueLoc.start.offset++;
      valueLoc.start.column++;
      valueLoc.end = advancePositionWithClone(valueLoc.start, value.content);
      valueLoc.source = valueLoc.source.slice(1, -1);
    }
    const modifiers = match2[3] ? match2[3].slice(1).split(".") : [];
    if (isPropShorthand)
      modifiers.push("prop");
    if (dirName === "bind" && arg) {
      if (modifiers.includes("sync") && checkCompatEnabled("COMPILER_V_BIND_SYNC", context, loc, arg.loc.source)) {
        dirName = "model";
        modifiers.splice(modifiers.indexOf("sync"), 1);
      }
    }
    return {
      type: 7,
      name: dirName,
      exp: value && {
        type: 4,
        content: value.content,
        isStatic: false,
        // Treat as non-constant by default. This can be potentially set to
        // other values by `transformExpression` to make it eligible for hoisting.
        constType: 0,
        loc: value.loc
      },
      arg,
      modifiers,
      loc
    };
  }
  if (!context.inVPre && startsWith(name, "v-")) {
    emitError(
      context,
      26
      /* ErrorCodes.X_MISSING_DIRECTIVE_NAME */
    );
  }
  return {
    type: 6,
    name,
    value: value && {
      type: 2,
      content: value.content,
      loc: value.loc
    },
    loc
  };
}
function parseAttributeValue(context) {
  const start = getCursor(context);
  let content;
  const quote = context.source[0];
  const isQuoted = quote === `"` || quote === `'`;
  if (isQuoted) {
    advanceBy(context, 1);
    const endIndex = context.source.indexOf(quote);
    if (endIndex === -1) {
      content = parseTextData(
        context,
        context.source.length,
        4
        /* TextModes.ATTRIBUTE_VALUE */
      );
    } else {
      content = parseTextData(
        context,
        endIndex,
        4
        /* TextModes.ATTRIBUTE_VALUE */
      );
      advanceBy(context, 1);
    }
  } else {
    const match = /^[^\t\r\n\f >]+/.exec(context.source);
    if (!match) {
      return void 0;
    }
    const unexpectedChars = /["'<=`]/g;
    let m;
    while (m = unexpectedChars.exec(match[0])) {
      emitError(context, 18, m.index);
    }
    content = parseTextData(
      context,
      match[0].length,
      4
      /* TextModes.ATTRIBUTE_VALUE */
    );
  }
  return { content, isQuoted, loc: getSelection(context, start) };
}
function parseInterpolation(context, mode) {
  const [open, close] = context.options.delimiters;
  const closeIndex = context.source.indexOf(close, open.length);
  if (closeIndex === -1) {
    emitError(
      context,
      25
      /* ErrorCodes.X_MISSING_INTERPOLATION_END */
    );
    return void 0;
  }
  const start = getCursor(context);
  advanceBy(context, open.length);
  const innerStart = getCursor(context);
  const innerEnd = getCursor(context);
  const rawContentLength = closeIndex - open.length;
  const rawContent = context.source.slice(0, rawContentLength);
  const preTrimContent = parseTextData(context, rawContentLength, mode);
  const content = preTrimContent.trim();
  const startOffset = preTrimContent.indexOf(content);
  if (startOffset > 0) {
    advancePositionWithMutation(innerStart, rawContent, startOffset);
  }
  const endOffset = rawContentLength - (preTrimContent.length - content.length - startOffset);
  advancePositionWithMutation(innerEnd, rawContent, endOffset);
  advanceBy(context, close.length);
  return {
    type: 5,
    content: {
      type: 4,
      isStatic: false,
      // Set `isConstant` to false by default and will decide in transformExpression
      constType: 0,
      content,
      loc: getSelection(context, innerStart, innerEnd)
    },
    loc: getSelection(context, start)
  };
}
function parseText(context, mode) {
  const endTokens = mode === 3 ? ["]]>"] : ["<", context.options.delimiters[0]];
  let endIndex = context.source.length;
  for (let i = 0; i < endTokens.length; i++) {
    const index2 = context.source.indexOf(endTokens[i], 1);
    if (index2 !== -1 && endIndex > index2) {
      endIndex = index2;
    }
  }
  const start = getCursor(context);
  const content = parseTextData(context, endIndex, mode);
  return {
    type: 2,
    content,
    loc: getSelection(context, start)
  };
}
function parseTextData(context, length, mode) {
  const rawText = context.source.slice(0, length);
  advanceBy(context, length);
  if (mode === 2 || mode === 3 || !rawText.includes("&")) {
    return rawText;
  } else {
    return context.options.decodeEntities(
      rawText,
      mode === 4
      /* TextModes.ATTRIBUTE_VALUE */
    );
  }
}
function getCursor(context) {
  const { column, line, offset } = context;
  return { column, line, offset };
}
function getSelection(context, start, end) {
  end = end || getCursor(context);
  return {
    start,
    end,
    source: context.originalSource.slice(start.offset, end.offset)
  };
}
function last(xs) {
  return xs[xs.length - 1];
}
function startsWith(source, searchString) {
  return source.startsWith(searchString);
}
function advanceBy(context, numberOfCharacters) {
  const { source } = context;
  advancePositionWithMutation(context, source, numberOfCharacters);
  context.source = source.slice(numberOfCharacters);
}
function advanceSpaces(context) {
  const match = /^[\t\r\n\f ]+/.exec(context.source);
  if (match) {
    advanceBy(context, match[0].length);
  }
}
function getNewPosition(context, start, numberOfCharacters) {
  return advancePositionWithClone(start, context.originalSource.slice(start.offset, numberOfCharacters), numberOfCharacters);
}
function emitError(context, code, offset, loc = getCursor(context)) {
  if (offset) {
    loc.offset += offset;
    loc.column += offset;
  }
  context.options.onError(createCompilerError(code, {
    start: loc,
    end: loc,
    source: ""
  }));
}
function isEnd(context, mode, ancestors) {
  const s = context.source;
  switch (mode) {
    case 0:
      if (startsWith(s, "</")) {
        for (let i = ancestors.length - 1; i >= 0; --i) {
          if (startsWithEndTagOpen(s, ancestors[i].tag)) {
            return true;
          }
        }
      }
      break;
    case 1:
    case 2: {
      const parent = last(ancestors);
      if (parent && startsWithEndTagOpen(s, parent.tag)) {
        return true;
      }
      break;
    }
    case 3:
      if (startsWith(s, "]]>")) {
        return true;
      }
      break;
  }
  return !s;
}
function startsWithEndTagOpen(source, tag) {
  return startsWith(source, "</") && source.slice(2, 2 + tag.length).toLowerCase() === tag.toLowerCase() && /[\t\r\n\f />]/.test(source[2 + tag.length] || ">");
}
function hoistStatic(root, context) {
  walk(
    root,
    context,
    // Root node is unfortunately non-hoistable due to potential parent
    // fallthrough attributes.
    isSingleElementRoot(root, root.children[0])
  );
}
function isSingleElementRoot(root, child) {
  const { children } = root;
  return children.length === 1 && child.type === 1 && !isSlotOutlet(child);
}
function walk(node, context, doNotHoistNode = false) {
  const { children } = node;
  const originalCount = children.length;
  let hoistedCount = 0;
  for (let i = 0; i < children.length; i++) {
    const child = children[i];
    if (child.type === 1 && child.tagType === 0) {
      const constantType = doNotHoistNode ? 0 : getConstantType(child, context);
      if (constantType > 0) {
        if (constantType >= 2) {
          child.codegenNode.patchFlag = -1 + ``;
          child.codegenNode = context.hoist(child.codegenNode);
          hoistedCount++;
          continue;
        }
      } else {
        const codegenNode = child.codegenNode;
        if (codegenNode.type === 13) {
          const flag = getPatchFlag(codegenNode);
          if ((!flag || flag === 512 || flag === 1) && getGeneratedPropsConstantType(child, context) >= 2) {
            const props = getNodeProps(child);
            if (props) {
              codegenNode.props = context.hoist(props);
            }
          }
          if (codegenNode.dynamicProps) {
            codegenNode.dynamicProps = context.hoist(codegenNode.dynamicProps);
          }
        }
      }
    }
    if (child.type === 1) {
      const isComponent2 = child.tagType === 1;
      if (isComponent2) {
        context.scopes.vSlot++;
      }
      walk(child, context);
      if (isComponent2) {
        context.scopes.vSlot--;
      }
    } else if (child.type === 11) {
      walk(child, context, child.children.length === 1);
    } else if (child.type === 9) {
      for (let i2 = 0; i2 < child.branches.length; i2++) {
        walk(child.branches[i2], context, child.branches[i2].children.length === 1);
      }
    }
  }
  if (hoistedCount && context.transformHoist) {
    context.transformHoist(children, context, node);
  }
  if (hoistedCount && hoistedCount === originalCount && node.type === 1 && node.tagType === 0 && node.codegenNode && node.codegenNode.type === 13 && isArray$1(node.codegenNode.children)) {
    node.codegenNode.children = context.hoist(createArrayExpression(node.codegenNode.children));
  }
}
function getConstantType(node, context) {
  const { constantCache } = context;
  switch (node.type) {
    case 1:
      if (node.tagType !== 0) {
        return 0;
      }
      const cached = constantCache.get(node);
      if (cached !== void 0) {
        return cached;
      }
      const codegenNode = node.codegenNode;
      if (codegenNode.type !== 13) {
        return 0;
      }
      if (codegenNode.isBlock && node.tag !== "svg" && node.tag !== "foreignObject") {
        return 0;
      }
      const flag = getPatchFlag(codegenNode);
      if (!flag) {
        let returnType2 = 3;
        const generatedPropsType = getGeneratedPropsConstantType(node, context);
        if (generatedPropsType === 0) {
          constantCache.set(
            node,
            0
            /* ConstantTypes.NOT_CONSTANT */
          );
          return 0;
        }
        if (generatedPropsType < returnType2) {
          returnType2 = generatedPropsType;
        }
        for (let i = 0; i < node.children.length; i++) {
          const childType = getConstantType(node.children[i], context);
          if (childType === 0) {
            constantCache.set(
              node,
              0
              /* ConstantTypes.NOT_CONSTANT */
            );
            return 0;
          }
          if (childType < returnType2) {
            returnType2 = childType;
          }
        }
        if (returnType2 > 1) {
          for (let i = 0; i < node.props.length; i++) {
            const p2 = node.props[i];
            if (p2.type === 7 && p2.name === "bind" && p2.exp) {
              const expType = getConstantType(p2.exp, context);
              if (expType === 0) {
                constantCache.set(
                  node,
                  0
                  /* ConstantTypes.NOT_CONSTANT */
                );
                return 0;
              }
              if (expType < returnType2) {
                returnType2 = expType;
              }
            }
          }
        }
        if (codegenNode.isBlock) {
          for (let i = 0; i < node.props.length; i++) {
            const p2 = node.props[i];
            if (p2.type === 7) {
              constantCache.set(
                node,
                0
                /* ConstantTypes.NOT_CONSTANT */
              );
              return 0;
            }
          }
          context.removeHelper(OPEN_BLOCK);
          context.removeHelper(getVNodeBlockHelper(context.inSSR, codegenNode.isComponent));
          codegenNode.isBlock = false;
          context.helper(getVNodeHelper(context.inSSR, codegenNode.isComponent));
        }
        constantCache.set(node, returnType2);
        return returnType2;
      } else {
        constantCache.set(
          node,
          0
          /* ConstantTypes.NOT_CONSTANT */
        );
        return 0;
      }
    case 2:
    case 3:
      return 3;
    case 9:
    case 11:
    case 10:
      return 0;
    case 5:
    case 12:
      return getConstantType(node.content, context);
    case 4:
      return node.constType;
    case 8:
      let returnType = 3;
      for (let i = 0; i < node.children.length; i++) {
        const child = node.children[i];
        if (isString$1(child) || isSymbol(child)) {
          continue;
        }
        const childType = getConstantType(child, context);
        if (childType === 0) {
          return 0;
        } else if (childType < returnType) {
          returnType = childType;
        }
      }
      return returnType;
    default:
      return 0;
  }
}
const allowHoistedHelperSet = /* @__PURE__ */ new Set([
  NORMALIZE_CLASS,
  NORMALIZE_STYLE,
  NORMALIZE_PROPS,
  GUARD_REACTIVE_PROPS
]);
function getConstantTypeOfHelperCall(value, context) {
  if (value.type === 14 && !isString$1(value.callee) && allowHoistedHelperSet.has(value.callee)) {
    const arg = value.arguments[0];
    if (arg.type === 4) {
      return getConstantType(arg, context);
    } else if (arg.type === 14) {
      return getConstantTypeOfHelperCall(arg, context);
    }
  }
  return 0;
}
function getGeneratedPropsConstantType(node, context) {
  let returnType = 3;
  const props = getNodeProps(node);
  if (props && props.type === 15) {
    const { properties } = props;
    for (let i = 0; i < properties.length; i++) {
      const { key, value } = properties[i];
      const keyType = getConstantType(key, context);
      if (keyType === 0) {
        return keyType;
      }
      if (keyType < returnType) {
        returnType = keyType;
      }
      let valueType;
      if (value.type === 4) {
        valueType = getConstantType(value, context);
      } else if (value.type === 14) {
        valueType = getConstantTypeOfHelperCall(value, context);
      } else {
        valueType = 0;
      }
      if (valueType === 0) {
        return valueType;
      }
      if (valueType < returnType) {
        returnType = valueType;
      }
    }
  }
  return returnType;
}
function getNodeProps(node) {
  const codegenNode = node.codegenNode;
  if (codegenNode.type === 13) {
    return codegenNode.props;
  }
}
function getPatchFlag(node) {
  const flag = node.patchFlag;
  return flag ? parseInt(flag, 10) : void 0;
}
function createTransformContext(root, { filename = "", prefixIdentifiers = false, hoistStatic: hoistStatic2 = false, cacheHandlers = false, nodeTransforms = [], directiveTransforms = {}, transformHoist = null, isBuiltInComponent = NOOP, isCustomElement = NOOP, expressionPlugins = [], scopeId = null, slotted = true, ssr = false, inSSR = false, ssrCssVars = ``, bindingMetadata = EMPTY_OBJ, inline = false, isTS = false, onError = defaultOnError, onWarn = defaultOnWarn, compatConfig }) {
  const nameMatch = filename.replace(/\?.*$/, "").match(/([^/\\]+)\.\w+$/);
  const context = {
    // options
    selfName: nameMatch && capitalize(camelize$1(nameMatch[1])),
    prefixIdentifiers,
    hoistStatic: hoistStatic2,
    cacheHandlers,
    nodeTransforms,
    directiveTransforms,
    transformHoist,
    isBuiltInComponent,
    isCustomElement,
    expressionPlugins,
    scopeId,
    slotted,
    ssr,
    inSSR,
    ssrCssVars,
    bindingMetadata,
    inline,
    isTS,
    onError,
    onWarn,
    compatConfig,
    // state
    root,
    helpers: /* @__PURE__ */ new Map(),
    components: /* @__PURE__ */ new Set(),
    directives: /* @__PURE__ */ new Set(),
    hoists: [],
    imports: [],
    constantCache: /* @__PURE__ */ new Map(),
    temps: 0,
    cached: 0,
    identifiers: /* @__PURE__ */ Object.create(null),
    scopes: {
      vFor: 0,
      vSlot: 0,
      vPre: 0,
      vOnce: 0
    },
    parent: null,
    currentNode: root,
    childIndex: 0,
    inVOnce: false,
    // methods
    helper(name) {
      const count = context.helpers.get(name) || 0;
      context.helpers.set(name, count + 1);
      return name;
    },
    removeHelper(name) {
      const count = context.helpers.get(name);
      if (count) {
        const currentCount = count - 1;
        if (!currentCount) {
          context.helpers.delete(name);
        } else {
          context.helpers.set(name, currentCount);
        }
      }
    },
    helperString(name) {
      return `_${helperNameMap[context.helper(name)]}`;
    },
    replaceNode(node) {
      context.parent.children[context.childIndex] = context.currentNode = node;
    },
    removeNode(node) {
      const list = context.parent.children;
      const removalIndex = node ? list.indexOf(node) : context.currentNode ? context.childIndex : -1;
      if (!node || node === context.currentNode) {
        context.currentNode = null;
        context.onNodeRemoved();
      } else {
        if (context.childIndex > removalIndex) {
          context.childIndex--;
          context.onNodeRemoved();
        }
      }
      context.parent.children.splice(removalIndex, 1);
    },
    onNodeRemoved: () => {
    },
    addIdentifiers(exp) {
    },
    removeIdentifiers(exp) {
    },
    hoist(exp) {
      if (isString$1(exp))
        exp = createSimpleExpression(exp);
      context.hoists.push(exp);
      const identifier = createSimpleExpression(
        `_hoisted_${context.hoists.length}`,
        false,
        exp.loc,
        2
        /* ConstantTypes.CAN_HOIST */
      );
      identifier.hoisted = exp;
      return identifier;
    },
    cache(exp, isVNode2 = false) {
      return createCacheExpression(context.cached++, exp, isVNode2);
    }
  };
  {
    context.filters = /* @__PURE__ */ new Set();
  }
  return context;
}
function transform(root, options) {
  const context = createTransformContext(root, options);
  traverseNode(root, context);
  if (options.hoistStatic) {
    hoistStatic(root, context);
  }
  if (!options.ssr) {
    createRootCodegen(root, context);
  }
  root.helpers = /* @__PURE__ */ new Set([...context.helpers.keys()]);
  root.components = [...context.components];
  root.directives = [...context.directives];
  root.imports = context.imports;
  root.hoists = context.hoists;
  root.temps = context.temps;
  root.cached = context.cached;
  {
    root.filters = [...context.filters];
  }
}
function createRootCodegen(root, context) {
  const { helper } = context;
  const { children } = root;
  if (children.length === 1) {
    const child = children[0];
    if (isSingleElementRoot(root, child) && child.codegenNode) {
      const codegenNode = child.codegenNode;
      if (codegenNode.type === 13) {
        makeBlock(codegenNode, context);
      }
      root.codegenNode = codegenNode;
    } else {
      root.codegenNode = child;
    }
  } else if (children.length > 1) {
    let patchFlag = 64;
    root.codegenNode = createVNodeCall(
      context,
      helper(FRAGMENT),
      void 0,
      root.children,
      patchFlag + ``,
      void 0,
      void 0,
      true,
      void 0,
      false
      /* isComponent */
    );
  } else
    ;
}
function traverseChildren(parent, context) {
  let i = 0;
  const nodeRemoved = () => {
    i--;
  };
  for (; i < parent.children.length; i++) {
    const child = parent.children[i];
    if (isString$1(child))
      continue;
    context.parent = parent;
    context.childIndex = i;
    context.onNodeRemoved = nodeRemoved;
    traverseNode(child, context);
  }
}
function traverseNode(node, context) {
  context.currentNode = node;
  const { nodeTransforms } = context;
  const exitFns = [];
  for (let i2 = 0; i2 < nodeTransforms.length; i2++) {
    const onExit = nodeTransforms[i2](node, context);
    if (onExit) {
      if (isArray$1(onExit)) {
        exitFns.push(...onExit);
      } else {
        exitFns.push(onExit);
      }
    }
    if (!context.currentNode) {
      return;
    } else {
      node = context.currentNode;
    }
  }
  switch (node.type) {
    case 3:
      if (!context.ssr) {
        context.helper(CREATE_COMMENT);
      }
      break;
    case 5:
      if (!context.ssr) {
        context.helper(TO_DISPLAY_STRING);
      }
      break;
    case 9:
      for (let i2 = 0; i2 < node.branches.length; i2++) {
        traverseNode(node.branches[i2], context);
      }
      break;
    case 10:
    case 11:
    case 1:
    case 0:
      traverseChildren(node, context);
      break;
  }
  context.currentNode = node;
  let i = exitFns.length;
  while (i--) {
    exitFns[i]();
  }
}
function createStructuralDirectiveTransform(name, fn) {
  const matches2 = isString$1(name) ? (n) => n === name : (n) => name.test(n);
  return (node, context) => {
    if (node.type === 1) {
      const { props } = node;
      if (node.tagType === 3 && props.some(isVSlot)) {
        return;
      }
      const exitFns = [];
      for (let i = 0; i < props.length; i++) {
        const prop = props[i];
        if (prop.type === 7 && matches2(prop.name)) {
          props.splice(i, 1);
          i--;
          const onExit = fn(node, prop, context);
          if (onExit)
            exitFns.push(onExit);
        }
      }
      return exitFns;
    }
  };
}
const PURE_ANNOTATION = `/*#__PURE__*/`;
const aliasHelper = (s) => `${helperNameMap[s]}: _${helperNameMap[s]}`;
function createCodegenContext(ast, { mode = "function", prefixIdentifiers = mode === "module", sourceMap = false, filename = `template.vue.html`, scopeId = null, optimizeImports = false, runtimeGlobalName = `Vue`, runtimeModuleName = `vue`, ssrRuntimeModuleName = "vue/server-renderer", ssr = false, isTS = false, inSSR = false }) {
  const context = {
    mode,
    prefixIdentifiers,
    sourceMap,
    filename,
    scopeId,
    optimizeImports,
    runtimeGlobalName,
    runtimeModuleName,
    ssrRuntimeModuleName,
    ssr,
    isTS,
    inSSR,
    source: ast.loc.source,
    code: ``,
    column: 1,
    line: 1,
    offset: 0,
    indentLevel: 0,
    pure: false,
    map: void 0,
    helper(key) {
      return `_${helperNameMap[key]}`;
    },
    push(code, node) {
      context.code += code;
    },
    indent() {
      newline(++context.indentLevel);
    },
    deindent(withoutNewLine = false) {
      if (withoutNewLine) {
        --context.indentLevel;
      } else {
        newline(--context.indentLevel);
      }
    },
    newline() {
      newline(context.indentLevel);
    }
  };
  function newline(n) {
    context.push("\n" + `  `.repeat(n));
  }
  return context;
}
function generate(ast, options = {}) {
  const context = createCodegenContext(ast, options);
  if (options.onContextCreated)
    options.onContextCreated(context);
  const { mode, push, prefixIdentifiers, indent, deindent, newline, scopeId, ssr } = context;
  const helpers = Array.from(ast.helpers);
  const hasHelpers = helpers.length > 0;
  const useWithBlock = !prefixIdentifiers && mode !== "module";
  const isSetupInlined = false;
  const preambleContext = isSetupInlined ? createCodegenContext(ast, options) : context;
  {
    genFunctionPreamble(ast, preambleContext);
  }
  const functionName = ssr ? `ssrRender` : `render`;
  const args = ssr ? ["_ctx", "_push", "_parent", "_attrs"] : ["_ctx", "_cache"];
  const signature = args.join(", ");
  {
    push(`function ${functionName}(${signature}) {`);
  }
  indent();
  if (useWithBlock) {
    push(`with (_ctx) {`);
    indent();
    if (hasHelpers) {
      push(`const { ${helpers.map(aliasHelper).join(", ")} } = _Vue`);
      push(`
`);
      newline();
    }
  }
  if (ast.components.length) {
    genAssets(ast.components, "component", context);
    if (ast.directives.length || ast.temps > 0) {
      newline();
    }
  }
  if (ast.directives.length) {
    genAssets(ast.directives, "directive", context);
    if (ast.temps > 0) {
      newline();
    }
  }
  if (ast.filters && ast.filters.length) {
    newline();
    genAssets(ast.filters, "filter", context);
    newline();
  }
  if (ast.temps > 0) {
    push(`let `);
    for (let i = 0; i < ast.temps; i++) {
      push(`${i > 0 ? `, ` : ``}_temp${i}`);
    }
  }
  if (ast.components.length || ast.directives.length || ast.temps) {
    push(`
`);
    newline();
  }
  if (!ssr) {
    push(`return `);
  }
  if (ast.codegenNode) {
    genNode(ast.codegenNode, context);
  } else {
    push(`null`);
  }
  if (useWithBlock) {
    deindent();
    push(`}`);
  }
  deindent();
  push(`}`);
  return {
    ast,
    code: context.code,
    preamble: isSetupInlined ? preambleContext.code : ``,
    // SourceMapGenerator does have toJSON() method but it's not in the types
    map: context.map ? context.map.toJSON() : void 0
  };
}
function genFunctionPreamble(ast, context) {
  const { ssr, prefixIdentifiers, push, newline, runtimeModuleName, runtimeGlobalName, ssrRuntimeModuleName } = context;
  const VueBinding = runtimeGlobalName;
  const helpers = Array.from(ast.helpers);
  if (helpers.length > 0) {
    {
      push(`const _Vue = ${VueBinding}
`);
      if (ast.hoists.length) {
        const staticHelpers = [
          CREATE_VNODE,
          CREATE_ELEMENT_VNODE,
          CREATE_COMMENT,
          CREATE_TEXT,
          CREATE_STATIC
        ].filter((helper) => helpers.includes(helper)).map(aliasHelper).join(", ");
        push(`const { ${staticHelpers} } = _Vue
`);
      }
    }
  }
  genHoists(ast.hoists, context);
  newline();
  push(`return `);
}
function genAssets(assets, type, { helper, push, newline, isTS }) {
  const resolver = helper(type === "filter" ? RESOLVE_FILTER : type === "component" ? RESOLVE_COMPONENT : RESOLVE_DIRECTIVE);
  for (let i = 0; i < assets.length; i++) {
    let id = assets[i];
    const maybeSelfReference = id.endsWith("__self");
    if (maybeSelfReference) {
      id = id.slice(0, -6);
    }
    push(`const ${toValidAssetId(id, type)} = ${resolver}(${JSON.stringify(id)}${maybeSelfReference ? `, true` : ``})${isTS ? `!` : ``}`);
    if (i < assets.length - 1) {
      newline();
    }
  }
}
function genHoists(hoists, context) {
  if (!hoists.length) {
    return;
  }
  context.pure = true;
  const { push, newline, helper, scopeId, mode } = context;
  newline();
  for (let i = 0; i < hoists.length; i++) {
    const exp = hoists[i];
    if (exp) {
      push(`const _hoisted_${i + 1} = ${``}`);
      genNode(exp, context);
      newline();
    }
  }
  context.pure = false;
}
function genNodeListAsArray(nodes, context) {
  const multilines = nodes.length > 3 || false;
  context.push(`[`);
  multilines && context.indent();
  genNodeList(nodes, context, multilines);
  multilines && context.deindent();
  context.push(`]`);
}
function genNodeList(nodes, context, multilines = false, comma = true) {
  const { push, newline } = context;
  for (let i = 0; i < nodes.length; i++) {
    const node = nodes[i];
    if (isString$1(node)) {
      push(node);
    } else if (isArray$1(node)) {
      genNodeListAsArray(node, context);
    } else {
      genNode(node, context);
    }
    if (i < nodes.length - 1) {
      if (multilines) {
        comma && push(",");
        newline();
      } else {
        comma && push(", ");
      }
    }
  }
}
function genNode(node, context) {
  if (isString$1(node)) {
    context.push(node);
    return;
  }
  if (isSymbol(node)) {
    context.push(context.helper(node));
    return;
  }
  switch (node.type) {
    case 1:
    case 9:
    case 11:
      genNode(node.codegenNode, context);
      break;
    case 2:
      genText(node, context);
      break;
    case 4:
      genExpression(node, context);
      break;
    case 5:
      genInterpolation(node, context);
      break;
    case 12:
      genNode(node.codegenNode, context);
      break;
    case 8:
      genCompoundExpression(node, context);
      break;
    case 3:
      genComment(node, context);
      break;
    case 13:
      genVNodeCall(node, context);
      break;
    case 14:
      genCallExpression(node, context);
      break;
    case 15:
      genObjectExpression(node, context);
      break;
    case 17:
      genArrayExpression(node, context);
      break;
    case 18:
      genFunctionExpression(node, context);
      break;
    case 19:
      genConditionalExpression(node, context);
      break;
    case 20:
      genCacheExpression(node, context);
      break;
    case 21:
      genNodeList(node.body, context, true, false);
      break;
  }
}
function genText(node, context) {
  context.push(JSON.stringify(node.content), node);
}
function genExpression(node, context) {
  const { content, isStatic } = node;
  context.push(isStatic ? JSON.stringify(content) : content, node);
}
function genInterpolation(node, context) {
  const { push, helper, pure } = context;
  if (pure)
    push(PURE_ANNOTATION);
  push(`${helper(TO_DISPLAY_STRING)}(`);
  genNode(node.content, context);
  push(`)`);
}
function genCompoundExpression(node, context) {
  for (let i = 0; i < node.children.length; i++) {
    const child = node.children[i];
    if (isString$1(child)) {
      context.push(child);
    } else {
      genNode(child, context);
    }
  }
}
function genExpressionAsPropertyKey(node, context) {
  const { push } = context;
  if (node.type === 8) {
    push(`[`);
    genCompoundExpression(node, context);
    push(`]`);
  } else if (node.isStatic) {
    const text2 = isSimpleIdentifier(node.content) ? node.content : JSON.stringify(node.content);
    push(text2, node);
  } else {
    push(`[${node.content}]`, node);
  }
}
function genComment(node, context) {
  const { push, helper, pure } = context;
  if (pure) {
    push(PURE_ANNOTATION);
  }
  push(`${helper(CREATE_COMMENT)}(${JSON.stringify(node.content)})`, node);
}
function genVNodeCall(node, context) {
  const { push, helper, pure } = context;
  const { tag, props, children, patchFlag, dynamicProps, directives, isBlock, disableTracking, isComponent: isComponent2 } = node;
  if (directives) {
    push(helper(WITH_DIRECTIVES) + `(`);
  }
  if (isBlock) {
    push(`(${helper(OPEN_BLOCK)}(${disableTracking ? `true` : ``}), `);
  }
  if (pure) {
    push(PURE_ANNOTATION);
  }
  const callHelper = isBlock ? getVNodeBlockHelper(context.inSSR, isComponent2) : getVNodeHelper(context.inSSR, isComponent2);
  push(helper(callHelper) + `(`, node);
  genNodeList(genNullableArgs([tag, props, children, patchFlag, dynamicProps]), context);
  push(`)`);
  if (isBlock) {
    push(`)`);
  }
  if (directives) {
    push(`, `);
    genNode(directives, context);
    push(`)`);
  }
}
function genNullableArgs(args) {
  let i = args.length;
  while (i--) {
    if (args[i] != null)
      break;
  }
  return args.slice(0, i + 1).map((arg) => arg || `null`);
}
function genCallExpression(node, context) {
  const { push, helper, pure } = context;
  const callee = isString$1(node.callee) ? node.callee : helper(node.callee);
  if (pure) {
    push(PURE_ANNOTATION);
  }
  push(callee + `(`, node);
  genNodeList(node.arguments, context);
  push(`)`);
}
function genObjectExpression(node, context) {
  const { push, indent, deindent, newline } = context;
  const { properties } = node;
  if (!properties.length) {
    push(`{}`, node);
    return;
  }
  const multilines = properties.length > 1 || false;
  push(multilines ? `{` : `{ `);
  multilines && indent();
  for (let i = 0; i < properties.length; i++) {
    const { key, value } = properties[i];
    genExpressionAsPropertyKey(key, context);
    push(`: `);
    genNode(value, context);
    if (i < properties.length - 1) {
      push(`,`);
      newline();
    }
  }
  multilines && deindent();
  push(multilines ? `}` : ` }`);
}
function genArrayExpression(node, context) {
  genNodeListAsArray(node.elements, context);
}
function genFunctionExpression(node, context) {
  const { push, indent, deindent } = context;
  const { params, returns, body, newline, isSlot } = node;
  if (isSlot) {
    push(`_${helperNameMap[WITH_CTX]}(`);
  }
  push(`(`, node);
  if (isArray$1(params)) {
    genNodeList(params, context);
  } else if (params) {
    genNode(params, context);
  }
  push(`) => `);
  if (newline || body) {
    push(`{`);
    indent();
  }
  if (returns) {
    if (newline) {
      push(`return `);
    }
    if (isArray$1(returns)) {
      genNodeListAsArray(returns, context);
    } else {
      genNode(returns, context);
    }
  } else if (body) {
    genNode(body, context);
  }
  if (newline || body) {
    deindent();
    push(`}`);
  }
  if (isSlot) {
    if (node.isNonScopedSlot) {
      push(`, undefined, true`);
    }
    push(`)`);
  }
}
function genConditionalExpression(node, context) {
  const { test, consequent, alternate, newline: needNewline } = node;
  const { push, indent, deindent, newline } = context;
  if (test.type === 4) {
    const needsParens = !isSimpleIdentifier(test.content);
    needsParens && push(`(`);
    genExpression(test, context);
    needsParens && push(`)`);
  } else {
    push(`(`);
    genNode(test, context);
    push(`)`);
  }
  needNewline && indent();
  context.indentLevel++;
  needNewline || push(` `);
  push(`? `);
  genNode(consequent, context);
  context.indentLevel--;
  needNewline && newline();
  needNewline || push(` `);
  push(`: `);
  const isNested = alternate.type === 19;
  if (!isNested) {
    context.indentLevel++;
  }
  genNode(alternate, context);
  if (!isNested) {
    context.indentLevel--;
  }
  needNewline && deindent(
    true
    /* without newline */
  );
}
function genCacheExpression(node, context) {
  const { push, helper, indent, deindent, newline } = context;
  push(`_cache[${node.index}] || (`);
  if (node.isVNode) {
    indent();
    push(`${helper(SET_BLOCK_TRACKING)}(-1),`);
    newline();
  }
  push(`_cache[${node.index}] = `);
  genNode(node.value, context);
  if (node.isVNode) {
    push(`,`);
    newline();
    push(`${helper(SET_BLOCK_TRACKING)}(1),`);
    newline();
    push(`_cache[${node.index}]`);
    deindent();
  }
  push(`)`);
}
new RegExp("\\b" + "arguments,await,break,case,catch,class,const,continue,debugger,default,delete,do,else,export,extends,finally,for,function,if,import,let,new,return,super,switch,throw,try,var,void,while,with,yield".split(",").join("\\b|\\b") + "\\b");
const transformIf = createStructuralDirectiveTransform(/^(if|else|else-if)$/, (node, dir, context) => {
  return processIf(node, dir, context, (ifNode, branch, isRoot) => {
    const siblings = context.parent.children;
    let i = siblings.indexOf(ifNode);
    let key = 0;
    while (i-- >= 0) {
      const sibling = siblings[i];
      if (sibling && sibling.type === 9) {
        key += sibling.branches.length;
      }
    }
    return () => {
      if (isRoot) {
        ifNode.codegenNode = createCodegenNodeForBranch(branch, key, context);
      } else {
        const parentCondition = getParentCondition(ifNode.codegenNode);
        parentCondition.alternate = createCodegenNodeForBranch(branch, key + ifNode.branches.length - 1, context);
      }
    };
  });
});
function processIf(node, dir, context, processCodegen) {
  if (dir.name !== "else" && (!dir.exp || !dir.exp.content.trim())) {
    const loc = dir.exp ? dir.exp.loc : node.loc;
    context.onError(createCompilerError(28, dir.loc));
    dir.exp = createSimpleExpression(`true`, false, loc);
  }
  if (dir.name === "if") {
    const branch = createIfBranch(node, dir);
    const ifNode = {
      type: 9,
      loc: node.loc,
      branches: [branch]
    };
    context.replaceNode(ifNode);
    if (processCodegen) {
      return processCodegen(ifNode, branch, true);
    }
  } else {
    const siblings = context.parent.children;
    let i = siblings.indexOf(node);
    while (i-- >= -1) {
      const sibling = siblings[i];
      if (sibling && sibling.type === 3) {
        context.removeNode(sibling);
        continue;
      }
      if (sibling && sibling.type === 2 && !sibling.content.trim().length) {
        context.removeNode(sibling);
        continue;
      }
      if (sibling && sibling.type === 9) {
        if (dir.name === "else-if" && sibling.branches[sibling.branches.length - 1].condition === void 0) {
          context.onError(createCompilerError(30, node.loc));
        }
        context.removeNode();
        const branch = createIfBranch(node, dir);
        sibling.branches.push(branch);
        const onExit = processCodegen && processCodegen(sibling, branch, false);
        traverseNode(branch, context);
        if (onExit)
          onExit();
        context.currentNode = null;
      } else {
        context.onError(createCompilerError(30, node.loc));
      }
      break;
    }
  }
}
function createIfBranch(node, dir) {
  const isTemplateIf = node.tagType === 3;
  return {
    type: 10,
    loc: node.loc,
    condition: dir.name === "else" ? void 0 : dir.exp,
    children: isTemplateIf && !findDir(node, "for") ? node.children : [node],
    userKey: findProp(node, `key`),
    isTemplateIf
  };
}
function createCodegenNodeForBranch(branch, keyIndex, context) {
  if (branch.condition) {
    return createConditionalExpression(
      branch.condition,
      createChildrenCodegenNode(branch, keyIndex, context),
      // make sure to pass in asBlock: true so that the comment node call
      // closes the current block.
      createCallExpression(context.helper(CREATE_COMMENT), [
        '""',
        "true"
      ])
    );
  } else {
    return createChildrenCodegenNode(branch, keyIndex, context);
  }
}
function createChildrenCodegenNode(branch, keyIndex, context) {
  const { helper } = context;
  const keyProperty = createObjectProperty(`key`, createSimpleExpression(
    `${keyIndex}`,
    false,
    locStub,
    2
    /* ConstantTypes.CAN_HOIST */
  ));
  const { children } = branch;
  const firstChild = children[0];
  const needFragmentWrapper = children.length !== 1 || firstChild.type !== 1;
  if (needFragmentWrapper) {
    if (children.length === 1 && firstChild.type === 11) {
      const vnodeCall = firstChild.codegenNode;
      injectProp(vnodeCall, keyProperty, context);
      return vnodeCall;
    } else {
      let patchFlag = 64;
      return createVNodeCall(context, helper(FRAGMENT), createObjectExpression([keyProperty]), children, patchFlag + ``, void 0, void 0, true, false, false, branch.loc);
    }
  } else {
    const ret = firstChild.codegenNode;
    const vnodeCall = getMemoedVNodeCall(ret);
    if (vnodeCall.type === 13) {
      makeBlock(vnodeCall, context);
    }
    injectProp(vnodeCall, keyProperty, context);
    return ret;
  }
}
function getParentCondition(node) {
  while (true) {
    if (node.type === 19) {
      if (node.alternate.type === 19) {
        node = node.alternate;
      } else {
        return node;
      }
    } else if (node.type === 20) {
      node = node.value;
    }
  }
}
const transformFor = createStructuralDirectiveTransform("for", (node, dir, context) => {
  const { helper, removeHelper } = context;
  return processFor(node, dir, context, (forNode) => {
    const renderExp = createCallExpression(helper(RENDER_LIST), [
      forNode.source
    ]);
    const isTemplate = isTemplateNode(node);
    const memo = findDir(node, "memo");
    const keyProp = findProp(node, `key`);
    const keyExp = keyProp && (keyProp.type === 6 ? createSimpleExpression(keyProp.value.content, true) : keyProp.exp);
    const keyProperty = keyProp ? createObjectProperty(`key`, keyExp) : null;
    const isStableFragment = forNode.source.type === 4 && forNode.source.constType > 0;
    const fragmentFlag = isStableFragment ? 64 : keyProp ? 128 : 256;
    forNode.codegenNode = createVNodeCall(context, helper(FRAGMENT), void 0, renderExp, fragmentFlag + ``, void 0, void 0, true, !isStableFragment, false, node.loc);
    return () => {
      let childBlock;
      const { children } = forNode;
      const needFragmentWrapper = children.length !== 1 || children[0].type !== 1;
      const slotOutlet = isSlotOutlet(node) ? node : isTemplate && node.children.length === 1 && isSlotOutlet(node.children[0]) ? node.children[0] : null;
      if (slotOutlet) {
        childBlock = slotOutlet.codegenNode;
        if (isTemplate && keyProperty) {
          injectProp(childBlock, keyProperty, context);
        }
      } else if (needFragmentWrapper) {
        childBlock = createVNodeCall(
          context,
          helper(FRAGMENT),
          keyProperty ? createObjectExpression([keyProperty]) : void 0,
          node.children,
          64 + ``,
          void 0,
          void 0,
          true,
          void 0,
          false
          /* isComponent */
        );
      } else {
        childBlock = children[0].codegenNode;
        if (isTemplate && keyProperty) {
          injectProp(childBlock, keyProperty, context);
        }
        if (childBlock.isBlock !== !isStableFragment) {
          if (childBlock.isBlock) {
            removeHelper(OPEN_BLOCK);
            removeHelper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
          } else {
            removeHelper(getVNodeHelper(context.inSSR, childBlock.isComponent));
          }
        }
        childBlock.isBlock = !isStableFragment;
        if (childBlock.isBlock) {
          helper(OPEN_BLOCK);
          helper(getVNodeBlockHelper(context.inSSR, childBlock.isComponent));
        } else {
          helper(getVNodeHelper(context.inSSR, childBlock.isComponent));
        }
      }
      if (memo) {
        const loop = createFunctionExpression(createForLoopParams(forNode.parseResult, [
          createSimpleExpression(`_cached`)
        ]));
        loop.body = createBlockStatement([
          createCompoundExpression([`const _memo = (`, memo.exp, `)`]),
          createCompoundExpression([
            `if (_cached`,
            ...keyExp ? [` && _cached.key === `, keyExp] : [],
            ` && ${context.helperString(IS_MEMO_SAME)}(_cached, _memo)) return _cached`
          ]),
          createCompoundExpression([`const _item = `, childBlock]),
          createSimpleExpression(`_item.memo = _memo`),
          createSimpleExpression(`return _item`)
        ]);
        renderExp.arguments.push(loop, createSimpleExpression(`_cache`), createSimpleExpression(String(context.cached++)));
      } else {
        renderExp.arguments.push(createFunctionExpression(
          createForLoopParams(forNode.parseResult),
          childBlock,
          true
          /* force newline */
        ));
      }
    };
  });
});
function processFor(node, dir, context, processCodegen) {
  if (!dir.exp) {
    context.onError(createCompilerError(31, dir.loc));
    return;
  }
  const parseResult = parseForExpression(
    // can only be simple expression because vFor transform is applied
    // before expression transform.
    dir.exp
  );
  if (!parseResult) {
    context.onError(createCompilerError(32, dir.loc));
    return;
  }
  const { addIdentifiers, removeIdentifiers, scopes } = context;
  const { source, value, key, index: index2 } = parseResult;
  const forNode = {
    type: 11,
    loc: dir.loc,
    source,
    valueAlias: value,
    keyAlias: key,
    objectIndexAlias: index2,
    parseResult,
    children: isTemplateNode(node) ? node.children : [node]
  };
  context.replaceNode(forNode);
  scopes.vFor++;
  const onExit = processCodegen && processCodegen(forNode);
  return () => {
    scopes.vFor--;
    if (onExit)
      onExit();
  };
}
const forAliasRE = /([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/;
const forIteratorRE = /,([^,\}\]]*)(?:,([^,\}\]]*))?$/;
const stripParensRE = /^\(|\)$/g;
function parseForExpression(input, context) {
  const loc = input.loc;
  const exp = input.content;
  const inMatch = exp.match(forAliasRE);
  if (!inMatch)
    return;
  const [, LHS, RHS] = inMatch;
  const result = {
    source: createAliasExpression(loc, RHS.trim(), exp.indexOf(RHS, LHS.length)),
    value: void 0,
    key: void 0,
    index: void 0
  };
  let valueContent = LHS.trim().replace(stripParensRE, "").trim();
  const trimmedOffset = LHS.indexOf(valueContent);
  const iteratorMatch = valueContent.match(forIteratorRE);
  if (iteratorMatch) {
    valueContent = valueContent.replace(forIteratorRE, "").trim();
    const keyContent = iteratorMatch[1].trim();
    let keyOffset;
    if (keyContent) {
      keyOffset = exp.indexOf(keyContent, trimmedOffset + valueContent.length);
      result.key = createAliasExpression(loc, keyContent, keyOffset);
    }
    if (iteratorMatch[2]) {
      const indexContent = iteratorMatch[2].trim();
      if (indexContent) {
        result.index = createAliasExpression(loc, indexContent, exp.indexOf(indexContent, result.key ? keyOffset + keyContent.length : trimmedOffset + valueContent.length));
      }
    }
  }
  if (valueContent) {
    result.value = createAliasExpression(loc, valueContent, trimmedOffset);
  }
  return result;
}
function createAliasExpression(range, content, offset) {
  return createSimpleExpression(content, false, getInnerRange(range, offset, content.length));
}
function createForLoopParams({ value, key, index: index2 }, memoArgs = []) {
  return createParamsList([value, key, index2, ...memoArgs]);
}
function createParamsList(args) {
  let i = args.length;
  while (i--) {
    if (args[i])
      break;
  }
  return args.slice(0, i + 1).map((arg, i2) => arg || createSimpleExpression(`_`.repeat(i2 + 1), false));
}
const defaultFallback = createSimpleExpression(`undefined`, false);
const trackSlotScopes = (node, context) => {
  if (node.type === 1 && (node.tagType === 1 || node.tagType === 3)) {
    const vSlot = findDir(node, "slot");
    if (vSlot) {
      vSlot.exp;
      context.scopes.vSlot++;
      return () => {
        context.scopes.vSlot--;
      };
    }
  }
};
const buildClientSlotFn = (props, children, loc) => createFunctionExpression(props, children, false, true, children.length ? children[0].loc : loc);
function buildSlots(node, context, buildSlotFn = buildClientSlotFn) {
  context.helper(WITH_CTX);
  const { children, loc } = node;
  const slotsProperties = [];
  const dynamicSlots = [];
  let hasDynamicSlots = context.scopes.vSlot > 0 || context.scopes.vFor > 0;
  const onComponentSlot = findDir(node, "slot", true);
  if (onComponentSlot) {
    const { arg, exp } = onComponentSlot;
    if (arg && !isStaticExp(arg)) {
      hasDynamicSlots = true;
    }
    slotsProperties.push(createObjectProperty(arg || createSimpleExpression("default", true), buildSlotFn(exp, children, loc)));
  }
  let hasTemplateSlots = false;
  let hasNamedDefaultSlot = false;
  const implicitDefaultChildren = [];
  const seenSlotNames = /* @__PURE__ */ new Set();
  let conditionalBranchIndex = 0;
  for (let i = 0; i < children.length; i++) {
    const slotElement = children[i];
    let slotDir;
    if (!isTemplateNode(slotElement) || !(slotDir = findDir(slotElement, "slot", true))) {
      if (slotElement.type !== 3) {
        implicitDefaultChildren.push(slotElement);
      }
      continue;
    }
    if (onComponentSlot) {
      context.onError(createCompilerError(37, slotDir.loc));
      break;
    }
    hasTemplateSlots = true;
    const { children: slotChildren, loc: slotLoc } = slotElement;
    const { arg: slotName = createSimpleExpression(`default`, true), exp: slotProps, loc: dirLoc } = slotDir;
    let staticSlotName;
    if (isStaticExp(slotName)) {
      staticSlotName = slotName ? slotName.content : `default`;
    } else {
      hasDynamicSlots = true;
    }
    const slotFunction = buildSlotFn(slotProps, slotChildren, slotLoc);
    let vIf;
    let vElse;
    let vFor;
    if (vIf = findDir(slotElement, "if")) {
      hasDynamicSlots = true;
      dynamicSlots.push(createConditionalExpression(vIf.exp, buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), defaultFallback));
    } else if (vElse = findDir(
      slotElement,
      /^else(-if)?$/,
      true
      /* allowEmpty */
    )) {
      let j = i;
      let prev;
      while (j--) {
        prev = children[j];
        if (prev.type !== 3) {
          break;
        }
      }
      if (prev && isTemplateNode(prev) && findDir(prev, "if")) {
        children.splice(i, 1);
        i--;
        let conditional = dynamicSlots[dynamicSlots.length - 1];
        while (conditional.alternate.type === 19) {
          conditional = conditional.alternate;
        }
        conditional.alternate = vElse.exp ? createConditionalExpression(vElse.exp, buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++), defaultFallback) : buildDynamicSlot(slotName, slotFunction, conditionalBranchIndex++);
      } else {
        context.onError(createCompilerError(30, vElse.loc));
      }
    } else if (vFor = findDir(slotElement, "for")) {
      hasDynamicSlots = true;
      const parseResult = vFor.parseResult || parseForExpression(vFor.exp);
      if (parseResult) {
        dynamicSlots.push(createCallExpression(context.helper(RENDER_LIST), [
          parseResult.source,
          createFunctionExpression(
            createForLoopParams(parseResult),
            buildDynamicSlot(slotName, slotFunction),
            true
            /* force newline */
          )
        ]));
      } else {
        context.onError(createCompilerError(32, vFor.loc));
      }
    } else {
      if (staticSlotName) {
        if (seenSlotNames.has(staticSlotName)) {
          context.onError(createCompilerError(38, dirLoc));
          continue;
        }
        seenSlotNames.add(staticSlotName);
        if (staticSlotName === "default") {
          hasNamedDefaultSlot = true;
        }
      }
      slotsProperties.push(createObjectProperty(slotName, slotFunction));
    }
  }
  if (!onComponentSlot) {
    const buildDefaultSlotProperty = (props, children2) => {
      const fn = buildSlotFn(props, children2, loc);
      if (context.compatConfig) {
        fn.isNonScopedSlot = true;
      }
      return createObjectProperty(`default`, fn);
    };
    if (!hasTemplateSlots) {
      slotsProperties.push(buildDefaultSlotProperty(void 0, children));
    } else if (implicitDefaultChildren.length && // #3766
    // with whitespace: 'preserve', whitespaces between slots will end up in
    // implicitDefaultChildren. Ignore if all implicit children are whitespaces.
    implicitDefaultChildren.some((node2) => isNonWhitespaceContent(node2))) {
      if (hasNamedDefaultSlot) {
        context.onError(createCompilerError(39, implicitDefaultChildren[0].loc));
      } else {
        slotsProperties.push(buildDefaultSlotProperty(void 0, implicitDefaultChildren));
      }
    }
  }
  const slotFlag = hasDynamicSlots ? 2 : hasForwardedSlots(node.children) ? 3 : 1;
  let slots = createObjectExpression(slotsProperties.concat(createObjectProperty(
    `_`,
    // 2 = compiled but dynamic = can skip normalization, but must run diff
    // 1 = compiled and static = can skip normalization AND diff as optimized
    createSimpleExpression(slotFlag + ``, false)
  )), loc);
  if (dynamicSlots.length) {
    slots = createCallExpression(context.helper(CREATE_SLOTS), [
      slots,
      createArrayExpression(dynamicSlots)
    ]);
  }
  return {
    slots,
    hasDynamicSlots
  };
}
function buildDynamicSlot(name, fn, index2) {
  const props = [
    createObjectProperty(`name`, name),
    createObjectProperty(`fn`, fn)
  ];
  if (index2 != null) {
    props.push(createObjectProperty(`key`, createSimpleExpression(String(index2), true)));
  }
  return createObjectExpression(props);
}
function hasForwardedSlots(children) {
  for (let i = 0; i < children.length; i++) {
    const child = children[i];
    switch (child.type) {
      case 1:
        if (child.tagType === 2 || hasForwardedSlots(child.children)) {
          return true;
        }
        break;
      case 9:
        if (hasForwardedSlots(child.branches))
          return true;
        break;
      case 10:
      case 11:
        if (hasForwardedSlots(child.children))
          return true;
        break;
    }
  }
  return false;
}
function isNonWhitespaceContent(node) {
  if (node.type !== 2 && node.type !== 12)
    return true;
  return node.type === 2 ? !!node.content.trim() : isNonWhitespaceContent(node.content);
}
const directiveImportMap = /* @__PURE__ */ new WeakMap();
const transformElement = (node, context) => {
  return function postTransformElement() {
    node = context.currentNode;
    if (!(node.type === 1 && (node.tagType === 0 || node.tagType === 1))) {
      return;
    }
    const { tag, props } = node;
    const isComponent2 = node.tagType === 1;
    let vnodeTag = isComponent2 ? resolveComponentType(node, context) : `"${tag}"`;
    const isDynamicComponent = isObject$2(vnodeTag) && vnodeTag.callee === RESOLVE_DYNAMIC_COMPONENT;
    let vnodeProps;
    let vnodeChildren;
    let vnodePatchFlag;
    let patchFlag = 0;
    let vnodeDynamicProps;
    let dynamicPropNames;
    let vnodeDirectives;
    let shouldUseBlock = (
      // dynamic component may resolve to plain elements
      isDynamicComponent || vnodeTag === TELEPORT || vnodeTag === SUSPENSE || !isComponent2 && // <svg> and <foreignObject> must be forced into blocks so that block
      // updates inside get proper isSVG flag at runtime. (#639, #643)
      // This is technically web-specific, but splitting the logic out of core
      // leads to too much unnecessary complexity.
      (tag === "svg" || tag === "foreignObject")
    );
    if (props.length > 0) {
      const propsBuildResult = buildProps(node, context, void 0, isComponent2, isDynamicComponent);
      vnodeProps = propsBuildResult.props;
      patchFlag = propsBuildResult.patchFlag;
      dynamicPropNames = propsBuildResult.dynamicPropNames;
      const directives = propsBuildResult.directives;
      vnodeDirectives = directives && directives.length ? createArrayExpression(directives.map((dir) => buildDirectiveArgs(dir, context))) : void 0;
      if (propsBuildResult.shouldUseBlock) {
        shouldUseBlock = true;
      }
    }
    if (node.children.length > 0) {
      if (vnodeTag === KEEP_ALIVE) {
        shouldUseBlock = true;
        patchFlag |= 1024;
      }
      const shouldBuildAsSlots = isComponent2 && // Teleport is not a real component and has dedicated runtime handling
      vnodeTag !== TELEPORT && // explained above.
      vnodeTag !== KEEP_ALIVE;
      if (shouldBuildAsSlots) {
        const { slots, hasDynamicSlots } = buildSlots(node, context);
        vnodeChildren = slots;
        if (hasDynamicSlots) {
          patchFlag |= 1024;
        }
      } else if (node.children.length === 1 && vnodeTag !== TELEPORT) {
        const child = node.children[0];
        const type = child.type;
        const hasDynamicTextChild = type === 5 || type === 8;
        if (hasDynamicTextChild && getConstantType(child, context) === 0) {
          patchFlag |= 1;
        }
        if (hasDynamicTextChild || type === 2) {
          vnodeChildren = child;
        } else {
          vnodeChildren = node.children;
        }
      } else {
        vnodeChildren = node.children;
      }
    }
    if (patchFlag !== 0) {
      {
        vnodePatchFlag = String(patchFlag);
      }
      if (dynamicPropNames && dynamicPropNames.length) {
        vnodeDynamicProps = stringifyDynamicPropNames(dynamicPropNames);
      }
    }
    node.codegenNode = createVNodeCall(context, vnodeTag, vnodeProps, vnodeChildren, vnodePatchFlag, vnodeDynamicProps, vnodeDirectives, !!shouldUseBlock, false, isComponent2, node.loc);
  };
};
function resolveComponentType(node, context, ssr = false) {
  let { tag } = node;
  const isExplicitDynamic = isComponentTag(tag);
  const isProp = findProp(node, "is");
  if (isProp) {
    if (isExplicitDynamic || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context)) {
      const exp = isProp.type === 6 ? isProp.value && createSimpleExpression(isProp.value.content, true) : isProp.exp;
      if (exp) {
        return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [
          exp
        ]);
      }
    } else if (isProp.type === 6 && isProp.value.content.startsWith("vue:")) {
      tag = isProp.value.content.slice(4);
    }
  }
  const isDir = !isExplicitDynamic && findDir(node, "is");
  if (isDir && isDir.exp) {
    return createCallExpression(context.helper(RESOLVE_DYNAMIC_COMPONENT), [
      isDir.exp
    ]);
  }
  const builtIn = isCoreComponent(tag) || context.isBuiltInComponent(tag);
  if (builtIn) {
    if (!ssr)
      context.helper(builtIn);
    return builtIn;
  }
  context.helper(RESOLVE_COMPONENT);
  context.components.add(tag);
  return toValidAssetId(tag, `component`);
}
function buildProps(node, context, props = node.props, isComponent2, isDynamicComponent, ssr = false) {
  const { tag, loc: elementLoc, children } = node;
  let properties = [];
  const mergeArgs = [];
  const runtimeDirectives = [];
  const hasChildren = children.length > 0;
  let shouldUseBlock = false;
  let patchFlag = 0;
  let hasRef = false;
  let hasClassBinding = false;
  let hasStyleBinding = false;
  let hasHydrationEventBinding = false;
  let hasDynamicKeys = false;
  let hasVnodeHook = false;
  const dynamicPropNames = [];
  const pushMergeArg = (arg) => {
    if (properties.length) {
      mergeArgs.push(createObjectExpression(dedupeProperties(properties), elementLoc));
      properties = [];
    }
    if (arg)
      mergeArgs.push(arg);
  };
  const analyzePatchFlag = ({ key, value }) => {
    if (isStaticExp(key)) {
      const name = key.content;
      const isEventHandler = isOn(name);
      if (isEventHandler && (!isComponent2 || isDynamicComponent) && // omit the flag for click handlers because hydration gives click
      // dedicated fast path.
      name.toLowerCase() !== "onclick" && // omit v-model handlers
      name !== "onUpdate:modelValue" && // omit onVnodeXXX hooks
      !isReservedProp(name)) {
        hasHydrationEventBinding = true;
      }
      if (isEventHandler && isReservedProp(name)) {
        hasVnodeHook = true;
      }
      if (value.type === 20 || (value.type === 4 || value.type === 8) && getConstantType(value, context) > 0) {
        return;
      }
      if (name === "ref") {
        hasRef = true;
      } else if (name === "class") {
        hasClassBinding = true;
      } else if (name === "style") {
        hasStyleBinding = true;
      } else if (name !== "key" && !dynamicPropNames.includes(name)) {
        dynamicPropNames.push(name);
      }
      if (isComponent2 && (name === "class" || name === "style") && !dynamicPropNames.includes(name)) {
        dynamicPropNames.push(name);
      }
    } else {
      hasDynamicKeys = true;
    }
  };
  for (let i = 0; i < props.length; i++) {
    const prop = props[i];
    if (prop.type === 6) {
      const { loc, name, value } = prop;
      let isStatic = true;
      if (name === "ref") {
        hasRef = true;
        if (context.scopes.vFor > 0) {
          properties.push(createObjectProperty(createSimpleExpression("ref_for", true), createSimpleExpression("true")));
        }
      }
      if (name === "is" && (isComponentTag(tag) || value && value.content.startsWith("vue:") || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) {
        continue;
      }
      properties.push(createObjectProperty(createSimpleExpression(name, true, getInnerRange(loc, 0, name.length)), createSimpleExpression(value ? value.content : "", isStatic, value ? value.loc : loc)));
    } else {
      const { name, arg, exp, loc } = prop;
      const isVBind = name === "bind";
      const isVOn = name === "on";
      if (name === "slot") {
        if (!isComponent2) {
          context.onError(createCompilerError(40, loc));
        }
        continue;
      }
      if (name === "once" || name === "memo") {
        continue;
      }
      if (name === "is" || isVBind && isStaticArgOf(arg, "is") && (isComponentTag(tag) || isCompatEnabled("COMPILER_IS_ON_ELEMENT", context))) {
        continue;
      }
      if (isVOn && ssr) {
        continue;
      }
      if (
        // #938: elements with dynamic keys should be forced into blocks
        isVBind && isStaticArgOf(arg, "key") || // inline before-update hooks need to force block so that it is invoked
        // before children
        isVOn && hasChildren && isStaticArgOf(arg, "vue:before-update")
      ) {
        shouldUseBlock = true;
      }
      if (isVBind && isStaticArgOf(arg, "ref") && context.scopes.vFor > 0) {
        properties.push(createObjectProperty(createSimpleExpression("ref_for", true), createSimpleExpression("true")));
      }
      if (!arg && (isVBind || isVOn)) {
        hasDynamicKeys = true;
        if (exp) {
          if (isVBind) {
            pushMergeArg();
            {
              if (isCompatEnabled("COMPILER_V_BIND_OBJECT_ORDER", context)) {
                mergeArgs.unshift(exp);
                continue;
              }
            }
            mergeArgs.push(exp);
          } else {
            pushMergeArg({
              type: 14,
              loc,
              callee: context.helper(TO_HANDLERS),
              arguments: isComponent2 ? [exp] : [exp, `true`]
            });
          }
        } else {
          context.onError(createCompilerError(isVBind ? 34 : 35, loc));
        }
        continue;
      }
      const directiveTransform = context.directiveTransforms[name];
      if (directiveTransform) {
        const { props: props2, needRuntime } = directiveTransform(prop, node, context);
        !ssr && props2.forEach(analyzePatchFlag);
        if (isVOn && arg && !isStaticExp(arg)) {
          pushMergeArg(createObjectExpression(props2, elementLoc));
        } else {
          properties.push(...props2);
        }
        if (needRuntime) {
          runtimeDirectives.push(prop);
          if (isSymbol(needRuntime)) {
            directiveImportMap.set(prop, needRuntime);
          }
        }
      } else if (!isBuiltInDirective(name)) {
        runtimeDirectives.push(prop);
        if (hasChildren) {
          shouldUseBlock = true;
        }
      }
    }
  }
  let propsExpression = void 0;
  if (mergeArgs.length) {
    pushMergeArg();
    if (mergeArgs.length > 1) {
      propsExpression = createCallExpression(context.helper(MERGE_PROPS), mergeArgs, elementLoc);
    } else {
      propsExpression = mergeArgs[0];
    }
  } else if (properties.length) {
    propsExpression = createObjectExpression(dedupeProperties(properties), elementLoc);
  }
  if (hasDynamicKeys) {
    patchFlag |= 16;
  } else {
    if (hasClassBinding && !isComponent2) {
      patchFlag |= 2;
    }
    if (hasStyleBinding && !isComponent2) {
      patchFlag |= 4;
    }
    if (dynamicPropNames.length) {
      patchFlag |= 8;
    }
    if (hasHydrationEventBinding) {
      patchFlag |= 32;
    }
  }
  if (!shouldUseBlock && (patchFlag === 0 || patchFlag === 32) && (hasRef || hasVnodeHook || runtimeDirectives.length > 0)) {
    patchFlag |= 512;
  }
  if (!context.inSSR && propsExpression) {
    switch (propsExpression.type) {
      case 15:
        let classKeyIndex = -1;
        let styleKeyIndex = -1;
        let hasDynamicKey = false;
        for (let i = 0; i < propsExpression.properties.length; i++) {
          const key = propsExpression.properties[i].key;
          if (isStaticExp(key)) {
            if (key.content === "class") {
              classKeyIndex = i;
            } else if (key.content === "style") {
              styleKeyIndex = i;
            }
          } else if (!key.isHandlerKey) {
            hasDynamicKey = true;
          }
        }
        const classProp = propsExpression.properties[classKeyIndex];
        const styleProp = propsExpression.properties[styleKeyIndex];
        if (!hasDynamicKey) {
          if (classProp && !isStaticExp(classProp.value)) {
            classProp.value = createCallExpression(context.helper(NORMALIZE_CLASS), [classProp.value]);
          }
          if (styleProp && // the static style is compiled into an object,
          // so use `hasStyleBinding` to ensure that it is a dynamic style binding
          (hasStyleBinding || styleProp.value.type === 4 && styleProp.value.content.trim()[0] === `[` || // v-bind:style and style both exist,
          // v-bind:style with static literal object
          styleProp.value.type === 17)) {
            styleProp.value = createCallExpression(context.helper(NORMALIZE_STYLE), [styleProp.value]);
          }
        } else {
          propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [propsExpression]);
        }
        break;
      case 14:
        break;
      default:
        propsExpression = createCallExpression(context.helper(NORMALIZE_PROPS), [
          createCallExpression(context.helper(GUARD_REACTIVE_PROPS), [
            propsExpression
          ])
        ]);
        break;
    }
  }
  return {
    props: propsExpression,
    directives: runtimeDirectives,
    patchFlag,
    dynamicPropNames,
    shouldUseBlock
  };
}
function dedupeProperties(properties) {
  const knownProps = /* @__PURE__ */ new Map();
  const deduped = [];
  for (let i = 0; i < properties.length; i++) {
    const prop = properties[i];
    if (prop.key.type === 8 || !prop.key.isStatic) {
      deduped.push(prop);
      continue;
    }
    const name = prop.key.content;
    const existing = knownProps.get(name);
    if (existing) {
      if (name === "style" || name === "class" || isOn(name)) {
        mergeAsArray(existing, prop);
      }
    } else {
      knownProps.set(name, prop);
      deduped.push(prop);
    }
  }
  return deduped;
}
function mergeAsArray(existing, incoming) {
  if (existing.value.type === 17) {
    existing.value.elements.push(incoming.value);
  } else {
    existing.value = createArrayExpression([existing.value, incoming.value], existing.loc);
  }
}
function buildDirectiveArgs(dir, context) {
  const dirArgs = [];
  const runtime = directiveImportMap.get(dir);
  if (runtime) {
    dirArgs.push(context.helperString(runtime));
  } else {
    {
      context.helper(RESOLVE_DIRECTIVE);
      context.directives.add(dir.name);
      dirArgs.push(toValidAssetId(dir.name, `directive`));
    }
  }
  const { loc } = dir;
  if (dir.exp)
    dirArgs.push(dir.exp);
  if (dir.arg) {
    if (!dir.exp) {
      dirArgs.push(`void 0`);
    }
    dirArgs.push(dir.arg);
  }
  if (Object.keys(dir.modifiers).length) {
    if (!dir.arg) {
      if (!dir.exp) {
        dirArgs.push(`void 0`);
      }
      dirArgs.push(`void 0`);
    }
    const trueExpression = createSimpleExpression(`true`, false, loc);
    dirArgs.push(createObjectExpression(dir.modifiers.map((modifier) => createObjectProperty(modifier, trueExpression)), loc));
  }
  return createArrayExpression(dirArgs, dir.loc);
}
function stringifyDynamicPropNames(props) {
  let propsNamesString = `[`;
  for (let i = 0, l = props.length; i < l; i++) {
    propsNamesString += JSON.stringify(props[i]);
    if (i < l - 1)
      propsNamesString += ", ";
  }
  return propsNamesString + `]`;
}
function isComponentTag(tag) {
  return tag === "component" || tag === "Component";
}
const cacheStringFunction = (fn) => {
  const cache = /* @__PURE__ */ Object.create(null);
  return (str) => {
    const hit = cache[str];
    return hit || (cache[str] = fn(str));
  };
};
const camelizeRE = /-(\w)/g;
const camelize = cacheStringFunction((str) => {
  return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : "");
});
const transformSlotOutlet = (node, context) => {
  if (isSlotOutlet(node)) {
    const { children, loc } = node;
    const { slotName, slotProps } = processSlotOutlet(node, context);
    const slotArgs = [
      context.prefixIdentifiers ? `_ctx.$slots` : `$slots`,
      slotName,
      "{}",
      "undefined",
      "true"
    ];
    let expectedLen = 2;
    if (slotProps) {
      slotArgs[2] = slotProps;
      expectedLen = 3;
    }
    if (children.length) {
      slotArgs[3] = createFunctionExpression([], children, false, false, loc);
      expectedLen = 4;
    }
    if (context.scopeId && !context.slotted) {
      expectedLen = 5;
    }
    slotArgs.splice(expectedLen);
    node.codegenNode = createCallExpression(context.helper(RENDER_SLOT), slotArgs, loc);
  }
};
function processSlotOutlet(node, context) {
  let slotName = `"default"`;
  let slotProps = void 0;
  const nonNameProps = [];
  for (let i = 0; i < node.props.length; i++) {
    const p2 = node.props[i];
    if (p2.type === 6) {
      if (p2.value) {
        if (p2.name === "name") {
          slotName = JSON.stringify(p2.value.content);
        } else {
          p2.name = camelize(p2.name);
          nonNameProps.push(p2);
        }
      }
    } else {
      if (p2.name === "bind" && isStaticArgOf(p2.arg, "name")) {
        if (p2.exp)
          slotName = p2.exp;
      } else {
        if (p2.name === "bind" && p2.arg && isStaticExp(p2.arg)) {
          p2.arg.content = camelize(p2.arg.content);
        }
        nonNameProps.push(p2);
      }
    }
  }
  if (nonNameProps.length > 0) {
    const { props, directives } = buildProps(node, context, nonNameProps, false, false);
    slotProps = props;
    if (directives.length) {
      context.onError(createCompilerError(36, directives[0].loc));
    }
  }
  return {
    slotName,
    slotProps
  };
}
const fnExpRE = /^\s*([\w$_]+|(async\s*)?\([^)]*?\))\s*(:[^=]+)?=>|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/;
const transformOn$1 = (dir, node, context, augmentor) => {
  const { loc, modifiers, arg } = dir;
  if (!dir.exp && !modifiers.length) {
    context.onError(createCompilerError(35, loc));
  }
  let eventName;
  if (arg.type === 4) {
    if (arg.isStatic) {
      let rawName = arg.content;
      if (rawName.startsWith("vue:")) {
        rawName = `vnode-${rawName.slice(4)}`;
      }
      const eventString = node.tagType !== 0 || rawName.startsWith("vnode") || !/[A-Z]/.test(rawName) ? (
        // for non-element and vnode lifecycle event listeners, auto convert
        // it to camelCase. See issue #2249
        toHandlerKey(camelize$1(rawName))
      ) : (
        // preserve case for plain element listeners that have uppercase
        // letters, as these may be custom elements' custom events
        `on:${rawName}`
      );
      eventName = createSimpleExpression(eventString, true, arg.loc);
    } else {
      eventName = createCompoundExpression([
        `${context.helperString(TO_HANDLER_KEY)}(`,
        arg,
        `)`
      ]);
    }
  } else {
    eventName = arg;
    eventName.children.unshift(`${context.helperString(TO_HANDLER_KEY)}(`);
    eventName.children.push(`)`);
  }
  let exp = dir.exp;
  if (exp && !exp.content.trim()) {
    exp = void 0;
  }
  let shouldCache = context.cacheHandlers && !exp && !context.inVOnce;
  if (exp) {
    const isMemberExp = isMemberExpression(exp.content);
    const isInlineStatement = !(isMemberExp || fnExpRE.test(exp.content));
    const hasMultipleStatements = exp.content.includes(`;`);
    if (isInlineStatement || shouldCache && isMemberExp) {
      exp = createCompoundExpression([
        `${isInlineStatement ? `$event` : `${``}(...args)`} => ${hasMultipleStatements ? `{` : `(`}`,
        exp,
        hasMultipleStatements ? `}` : `)`
      ]);
    }
  }
  let ret = {
    props: [
      createObjectProperty(eventName, exp || createSimpleExpression(`() => {}`, false, loc))
    ]
  };
  if (augmentor) {
    ret = augmentor(ret);
  }
  if (shouldCache) {
    ret.props[0].value = context.cache(ret.props[0].value);
  }
  ret.props.forEach((p2) => p2.key.isHandlerKey = true);
  return ret;
};
const transformBind = (dir, _node, context) => {
  const { exp, modifiers, loc } = dir;
  const arg = dir.arg;
  if (arg.type !== 4) {
    arg.children.unshift(`(`);
    arg.children.push(`) || ""`);
  } else if (!arg.isStatic) {
    arg.content = `${arg.content} || ""`;
  }
  if (modifiers.includes("camel")) {
    if (arg.type === 4) {
      if (arg.isStatic) {
        arg.content = camelize$1(arg.content);
      } else {
        arg.content = `${context.helperString(CAMELIZE)}(${arg.content})`;
      }
    } else {
      arg.children.unshift(`${context.helperString(CAMELIZE)}(`);
      arg.children.push(`)`);
    }
  }
  if (!context.inSSR) {
    if (modifiers.includes("prop")) {
      injectPrefix(arg, ".");
    }
    if (modifiers.includes("attr")) {
      injectPrefix(arg, "^");
    }
  }
  if (!exp || exp.type === 4 && !exp.content.trim()) {
    context.onError(createCompilerError(34, loc));
    return {
      props: [createObjectProperty(arg, createSimpleExpression("", true, loc))]
    };
  }
  return {
    props: [createObjectProperty(arg, exp)]
  };
};
const injectPrefix = (arg, prefix) => {
  if (arg.type === 4) {
    if (arg.isStatic) {
      arg.content = prefix + arg.content;
    } else {
      arg.content = `\`${prefix}\${${arg.content}}\``;
    }
  } else {
    arg.children.unshift(`'${prefix}' + (`);
    arg.children.push(`)`);
  }
};
const transformText = (node, context) => {
  if (node.type === 0 || node.type === 1 || node.type === 11 || node.type === 10) {
    return () => {
      const children = node.children;
      let currentContainer = void 0;
      let hasText = false;
      for (let i = 0; i < children.length; i++) {
        const child = children[i];
        if (isText$1(child)) {
          hasText = true;
          for (let j = i + 1; j < children.length; j++) {
            const next = children[j];
            if (isText$1(next)) {
              if (!currentContainer) {
                currentContainer = children[i] = createCompoundExpression([child], child.loc);
              }
              currentContainer.children.push(` + `, next);
              children.splice(j, 1);
              j--;
            } else {
              currentContainer = void 0;
              break;
            }
          }
        }
      }
      if (!hasText || // if this is a plain element with a single text child, leave it
      // as-is since the runtime has dedicated fast path for this by directly
      // setting textContent of the element.
      // for component root it's always normalized anyway.
      children.length === 1 && (node.type === 0 || node.type === 1 && node.tagType === 0 && // #3756
      // custom directives can potentially add DOM elements arbitrarily,
      // we need to avoid setting textContent of the element at runtime
      // to avoid accidentally overwriting the DOM elements added
      // by the user through custom directives.
      !node.props.find((p2) => p2.type === 7 && !context.directiveTransforms[p2.name]) && // in compat mode, <template> tags with no special directives
      // will be rendered as a fragment so its children must be
      // converted into vnodes.
      !(node.tag === "template"))) {
        return;
      }
      for (let i = 0; i < children.length; i++) {
        const child = children[i];
        if (isText$1(child) || child.type === 8) {
          const callArgs = [];
          if (child.type !== 2 || child.content !== " ") {
            callArgs.push(child);
          }
          if (!context.ssr && getConstantType(child, context) === 0) {
            callArgs.push(1 + ``);
          }
          children[i] = {
            type: 12,
            content: child,
            loc: child.loc,
            codegenNode: createCallExpression(context.helper(CREATE_TEXT), callArgs)
          };
        }
      }
    };
  }
};
const seen$1 = /* @__PURE__ */ new WeakSet();
const transformOnce = (node, context) => {
  if (node.type === 1 && findDir(node, "once", true)) {
    if (seen$1.has(node) || context.inVOnce) {
      return;
    }
    seen$1.add(node);
    context.inVOnce = true;
    context.helper(SET_BLOCK_TRACKING);
    return () => {
      context.inVOnce = false;
      const cur = context.currentNode;
      if (cur.codegenNode) {
        cur.codegenNode = context.cache(
          cur.codegenNode,
          true
          /* isVNode */
        );
      }
    };
  }
};
const transformModel$1 = (dir, node, context) => {
  const { exp, arg } = dir;
  if (!exp) {
    context.onError(createCompilerError(41, dir.loc));
    return createTransformProps();
  }
  const rawExp = exp.loc.source;
  const expString = exp.type === 4 ? exp.content : rawExp;
  const bindingType = context.bindingMetadata[rawExp];
  if (bindingType === "props" || bindingType === "props-aliased") {
    context.onError(createCompilerError(44, exp.loc));
    return createTransformProps();
  }
  const maybeRef = false;
  if (!expString.trim() || !isMemberExpression(expString) && !maybeRef) {
    context.onError(createCompilerError(42, exp.loc));
    return createTransformProps();
  }
  const propName = arg ? arg : createSimpleExpression("modelValue", true);
  const eventName = arg ? isStaticExp(arg) ? `onUpdate:${camelize$1(arg.content)}` : createCompoundExpression(['"onUpdate:" + ', arg]) : `onUpdate:modelValue`;
  let assignmentExp;
  const eventArg = context.isTS ? `($event: any)` : `$event`;
  {
    assignmentExp = createCompoundExpression([
      `${eventArg} => ((`,
      exp,
      `) = $event)`
    ]);
  }
  const props = [
    // modelValue: foo
    createObjectProperty(propName, dir.exp),
    // "onUpdate:modelValue": $event => (foo = $event)
    createObjectProperty(eventName, assignmentExp)
  ];
  if (dir.modifiers.length && node.tagType === 1) {
    const modifiers = dir.modifiers.map((m) => (isSimpleIdentifier(m) ? m : JSON.stringify(m)) + `: true`).join(`, `);
    const modifiersKey = arg ? isStaticExp(arg) ? `${arg.content}Modifiers` : createCompoundExpression([arg, ' + "Modifiers"']) : `modelModifiers`;
    props.push(createObjectProperty(modifiersKey, createSimpleExpression(
      `{ ${modifiers} }`,
      false,
      dir.loc,
      2
      /* ConstantTypes.CAN_HOIST */
    )));
  }
  return createTransformProps(props);
};
function createTransformProps(props = []) {
  return { props };
}
const validDivisionCharRE = /[\w).+\-_$\]]/;
const transformFilter = (node, context) => {
  if (!isCompatEnabled("COMPILER_FILTER", context)) {
    return;
  }
  if (node.type === 5) {
    rewriteFilter(node.content, context);
  }
  if (node.type === 1) {
    node.props.forEach((prop) => {
      if (prop.type === 7 && prop.name !== "for" && prop.exp) {
        rewriteFilter(prop.exp, context);
      }
    });
  }
};
function rewriteFilter(node, context) {
  if (node.type === 4) {
    parseFilter(node, context);
  } else {
    for (let i = 0; i < node.children.length; i++) {
      const child = node.children[i];
      if (typeof child !== "object")
        continue;
      if (child.type === 4) {
        parseFilter(child, context);
      } else if (child.type === 8) {
        rewriteFilter(node, context);
      } else if (child.type === 5) {
        rewriteFilter(child.content, context);
      }
    }
  }
}
function parseFilter(node, context) {
  const exp = node.content;
  let inSingle = false;
  let inDouble = false;
  let inTemplateString = false;
  let inRegex = false;
  let curly = 0;
  let square = 0;
  let paren = 0;
  let lastFilterIndex = 0;
  let c, prev, i, expression, filters = [];
  for (i = 0; i < exp.length; i++) {
    prev = c;
    c = exp.charCodeAt(i);
    if (inSingle) {
      if (c === 39 && prev !== 92)
        inSingle = false;
    } else if (inDouble) {
      if (c === 34 && prev !== 92)
        inDouble = false;
    } else if (inTemplateString) {
      if (c === 96 && prev !== 92)
        inTemplateString = false;
    } else if (inRegex) {
      if (c === 47 && prev !== 92)
        inRegex = false;
    } else if (c === 124 && // pipe
    exp.charCodeAt(i + 1) !== 124 && exp.charCodeAt(i - 1) !== 124 && !curly && !square && !paren) {
      if (expression === void 0) {
        lastFilterIndex = i + 1;
        expression = exp.slice(0, i).trim();
      } else {
        pushFilter();
      }
    } else {
      switch (c) {
        case 34:
          inDouble = true;
          break;
        case 39:
          inSingle = true;
          break;
        case 96:
          inTemplateString = true;
          break;
        case 40:
          paren++;
          break;
        case 41:
          paren--;
          break;
        case 91:
          square++;
          break;
        case 93:
          square--;
          break;
        case 123:
          curly++;
          break;
        case 125:
          curly--;
          break;
      }
      if (c === 47) {
        let j = i - 1;
        let p2;
        for (; j >= 0; j--) {
          p2 = exp.charAt(j);
          if (p2 !== " ")
            break;
        }
        if (!p2 || !validDivisionCharRE.test(p2)) {
          inRegex = true;
        }
      }
    }
  }
  if (expression === void 0) {
    expression = exp.slice(0, i).trim();
  } else if (lastFilterIndex !== 0) {
    pushFilter();
  }
  function pushFilter() {
    filters.push(exp.slice(lastFilterIndex, i).trim());
    lastFilterIndex = i + 1;
  }
  if (filters.length) {
    for (i = 0; i < filters.length; i++) {
      expression = wrapFilter(expression, filters[i], context);
    }
    node.content = expression;
  }
}
function wrapFilter(exp, filter, context) {
  context.helper(RESOLVE_FILTER);
  const i = filter.indexOf("(");
  if (i < 0) {
    context.filters.add(filter);
    return `${toValidAssetId(filter, "filter")}(${exp})`;
  } else {
    const name = filter.slice(0, i);
    const args = filter.slice(i + 1);
    context.filters.add(name);
    return `${toValidAssetId(name, "filter")}(${exp}${args !== ")" ? "," + args : args}`;
  }
}
const seen = /* @__PURE__ */ new WeakSet();
const transformMemo = (node, context) => {
  if (node.type === 1) {
    const dir = findDir(node, "memo");
    if (!dir || seen.has(node)) {
      return;
    }
    seen.add(node);
    return () => {
      const codegenNode = node.codegenNode || context.currentNode.codegenNode;
      if (codegenNode && codegenNode.type === 13) {
        if (node.tagType !== 1) {
          makeBlock(codegenNode, context);
        }
        node.codegenNode = createCallExpression(context.helper(WITH_MEMO), [
          dir.exp,
          createFunctionExpression(void 0, codegenNode),
          `_cache`,
          String(context.cached++)
        ]);
      }
    };
  }
};
function getBaseTransformPreset(prefixIdentifiers) {
  return [
    [
      transformOnce,
      transformIf,
      transformMemo,
      transformFor,
      ...[transformFilter],
      ...[],
      transformSlotOutlet,
      transformElement,
      trackSlotScopes,
      transformText
    ],
    {
      on: transformOn$1,
      bind: transformBind,
      model: transformModel$1
    }
  ];
}
function baseCompile(template, options = {}) {
  const onError = options.onError || defaultOnError;
  const isModuleMode = options.mode === "module";
  {
    if (options.prefixIdentifiers === true) {
      onError(createCompilerError(
        47
        /* ErrorCodes.X_PREFIX_ID_NOT_SUPPORTED */
      ));
    } else if (isModuleMode) {
      onError(createCompilerError(
        48
        /* ErrorCodes.X_MODULE_MODE_NOT_SUPPORTED */
      ));
    }
  }
  const prefixIdentifiers = false;
  if (options.cacheHandlers) {
    onError(createCompilerError(
      49
      /* ErrorCodes.X_CACHE_HANDLER_NOT_SUPPORTED */
    ));
  }
  if (options.scopeId && !isModuleMode) {
    onError(createCompilerError(
      50
      /* ErrorCodes.X_SCOPE_ID_NOT_SUPPORTED */
    ));
  }
  const ast = isString$1(template) ? baseParse(template, options) : template;
  const [nodeTransforms, directiveTransforms] = getBaseTransformPreset();
  transform(ast, extend({}, options, {
    prefixIdentifiers,
    nodeTransforms: [
      ...nodeTransforms,
      ...options.nodeTransforms || []
      // user transforms
    ],
    directiveTransforms: extend(
      {},
      directiveTransforms,
      options.directiveTransforms || {}
      // user transforms
    )
  }));
  return generate(ast, extend({}, options, {
    prefixIdentifiers
  }));
}
const noopDirectiveTransform = () => ({ props: [] });
const V_MODEL_RADIO = Symbol(``);
const V_MODEL_CHECKBOX = Symbol(``);
const V_MODEL_TEXT = Symbol(``);
const V_MODEL_SELECT = Symbol(``);
const V_MODEL_DYNAMIC = Symbol(``);
const V_ON_WITH_MODIFIERS = Symbol(``);
const V_ON_WITH_KEYS = Symbol(``);
const V_SHOW = Symbol(``);
const TRANSITION$1 = Symbol(``);
const TRANSITION_GROUP = Symbol(``);
registerRuntimeHelpers({
  [V_MODEL_RADIO]: `vModelRadio`,
  [V_MODEL_CHECKBOX]: `vModelCheckbox`,
  [V_MODEL_TEXT]: `vModelText`,
  [V_MODEL_SELECT]: `vModelSelect`,
  [V_MODEL_DYNAMIC]: `vModelDynamic`,
  [V_ON_WITH_MODIFIERS]: `withModifiers`,
  [V_ON_WITH_KEYS]: `withKeys`,
  [V_SHOW]: `vShow`,
  [TRANSITION$1]: `Transition`,
  [TRANSITION_GROUP]: `TransitionGroup`
});
let decoder;
function decodeHtmlBrowser(raw, asAttr = false) {
  if (!decoder) {
    decoder = document.createElement("div");
  }
  if (asAttr) {
    decoder.innerHTML = `<div foo="${raw.replace(/"/g, "&quot;")}">`;
    return decoder.children[0].getAttribute("foo");
  } else {
    decoder.innerHTML = raw;
    return decoder.textContent;
  }
}
const isRawTextContainer = /* @__PURE__ */ makeMap("style,iframe,script,noscript", true);
const parserOptions = {
  isVoidTag,
  isNativeTag: (tag) => isHTMLTag(tag) || isSVGTag(tag),
  isPreTag: (tag) => tag === "pre",
  decodeEntities: decodeHtmlBrowser,
  isBuiltInComponent: (tag) => {
    if (isBuiltInType(tag, `Transition`)) {
      return TRANSITION$1;
    } else if (isBuiltInType(tag, `TransitionGroup`)) {
      return TRANSITION_GROUP;
    }
  },
  // https://html.spec.whatwg.org/multipage/parsing.html#tree-construction-dispatcher
  getNamespace(tag, parent) {
    let ns = parent ? parent.ns : 0;
    if (parent && ns === 2) {
      if (parent.tag === "annotation-xml") {
        if (tag === "svg") {
          return 1;
        }
        if (parent.props.some((a) => a.type === 6 && a.name === "encoding" && a.value != null && (a.value.content === "text/html" || a.value.content === "application/xhtml+xml"))) {
          ns = 0;
        }
      } else if (/^m(?:[ions]|text)$/.test(parent.tag) && tag !== "mglyph" && tag !== "malignmark") {
        ns = 0;
      }
    } else if (parent && ns === 1) {
      if (parent.tag === "foreignObject" || parent.tag === "desc" || parent.tag === "title") {
        ns = 0;
      }
    }
    if (ns === 0) {
      if (tag === "svg") {
        return 1;
      }
      if (tag === "math") {
        return 2;
      }
    }
    return ns;
  },
  // https://html.spec.whatwg.org/multipage/parsing.html#parsing-html-fragments
  getTextMode({ tag, ns }) {
    if (ns === 0) {
      if (tag === "textarea" || tag === "title") {
        return 1;
      }
      if (isRawTextContainer(tag)) {
        return 2;
      }
    }
    return 0;
  }
};
const transformStyle = (node) => {
  if (node.type === 1) {
    node.props.forEach((p2, i) => {
      if (p2.type === 6 && p2.name === "style" && p2.value) {
        node.props[i] = {
          type: 7,
          name: `bind`,
          arg: createSimpleExpression(`style`, true, p2.loc),
          exp: parseInlineCSS(p2.value.content, p2.loc),
          modifiers: [],
          loc: p2.loc
        };
      }
    });
  }
};
const parseInlineCSS = (cssText, loc) => {
  const normalized = parseStringStyle(cssText);
  return createSimpleExpression(
    JSON.stringify(normalized),
    false,
    loc,
    3
    /* ConstantTypes.CAN_STRINGIFY */
  );
};
function createDOMCompilerError(code, loc) {
  return createCompilerError(code, loc);
}
const transformVHtml = (dir, node, context) => {
  const { exp, loc } = dir;
  if (!exp) {
    context.onError(createDOMCompilerError(51, loc));
  }
  if (node.children.length) {
    context.onError(createDOMCompilerError(52, loc));
    node.children.length = 0;
  }
  return {
    props: [
      createObjectProperty(createSimpleExpression(`innerHTML`, true, loc), exp || createSimpleExpression("", true))
    ]
  };
};
const transformVText = (dir, node, context) => {
  const { exp, loc } = dir;
  if (!exp) {
    context.onError(createDOMCompilerError(53, loc));
  }
  if (node.children.length) {
    context.onError(createDOMCompilerError(54, loc));
    node.children.length = 0;
  }
  return {
    props: [
      createObjectProperty(createSimpleExpression(`textContent`, true), exp ? getConstantType(exp, context) > 0 ? exp : createCallExpression(context.helperString(TO_DISPLAY_STRING), [exp], loc) : createSimpleExpression("", true))
    ]
  };
};
const transformModel = (dir, node, context) => {
  const baseResult = transformModel$1(dir, node, context);
  if (!baseResult.props.length || node.tagType === 1) {
    return baseResult;
  }
  if (dir.arg) {
    context.onError(createDOMCompilerError(56, dir.arg.loc));
  }
  const { tag } = node;
  const isCustomElement = context.isCustomElement(tag);
  if (tag === "input" || tag === "textarea" || tag === "select" || isCustomElement) {
    let directiveToUse = V_MODEL_TEXT;
    let isInvalidType = false;
    if (tag === "input" || isCustomElement) {
      const type = findProp(node, `type`);
      if (type) {
        if (type.type === 7) {
          directiveToUse = V_MODEL_DYNAMIC;
        } else if (type.value) {
          switch (type.value.content) {
            case "radio":
              directiveToUse = V_MODEL_RADIO;
              break;
            case "checkbox":
              directiveToUse = V_MODEL_CHECKBOX;
              break;
            case "file":
              isInvalidType = true;
              context.onError(createDOMCompilerError(57, dir.loc));
              break;
          }
        }
      } else if (hasDynamicKeyVBind(node)) {
        directiveToUse = V_MODEL_DYNAMIC;
      } else
        ;
    } else if (tag === "select") {
      directiveToUse = V_MODEL_SELECT;
    } else
      ;
    if (!isInvalidType) {
      baseResult.needRuntime = context.helper(directiveToUse);
    }
  } else {
    context.onError(createDOMCompilerError(55, dir.loc));
  }
  baseResult.props = baseResult.props.filter((p2) => !(p2.key.type === 4 && p2.key.content === "modelValue"));
  return baseResult;
};
const isEventOptionModifier = /* @__PURE__ */ makeMap(`passive,once,capture`);
const isNonKeyModifier = /* @__PURE__ */ makeMap(
  // event propagation management
  `stop,prevent,self,ctrl,shift,alt,meta,exact,middle`
);
const maybeKeyModifier = /* @__PURE__ */ makeMap("left,right");
const isKeyboardEvent = /* @__PURE__ */ makeMap(`onkeyup,onkeydown,onkeypress`, true);
const resolveModifiers = (key, modifiers, context, loc) => {
  const keyModifiers = [];
  const nonKeyModifiers = [];
  const eventOptionModifiers = [];
  for (let i = 0; i < modifiers.length; i++) {
    const modifier = modifiers[i];
    if (modifier === "native" && checkCompatEnabled("COMPILER_V_ON_NATIVE", context)) {
      eventOptionModifiers.push(modifier);
    } else if (isEventOptionModifier(modifier)) {
      eventOptionModifiers.push(modifier);
    } else {
      if (maybeKeyModifier(modifier)) {
        if (isStaticExp(key)) {
          if (isKeyboardEvent(key.content)) {
            keyModifiers.push(modifier);
          } else {
            nonKeyModifiers.push(modifier);
          }
        } else {
          keyModifiers.push(modifier);
          nonKeyModifiers.push(modifier);
        }
      } else {
        if (isNonKeyModifier(modifier)) {
          nonKeyModifiers.push(modifier);
        } else {
          keyModifiers.push(modifier);
        }
      }
    }
  }
  return {
    keyModifiers,
    nonKeyModifiers,
    eventOptionModifiers
  };
};
const transformClick = (key, event) => {
  const isStaticClick = isStaticExp(key) && key.content.toLowerCase() === "onclick";
  return isStaticClick ? createSimpleExpression(event, true) : key.type !== 4 ? createCompoundExpression([
    `(`,
    key,
    `) === "onClick" ? "${event}" : (`,
    key,
    `)`
  ]) : key;
};
const transformOn = (dir, node, context) => {
  return transformOn$1(dir, node, context, (baseResult) => {
    const { modifiers } = dir;
    if (!modifiers.length)
      return baseResult;
    let { key, value: handlerExp } = baseResult.props[0];
    const { keyModifiers, nonKeyModifiers, eventOptionModifiers } = resolveModifiers(key, modifiers, context, dir.loc);
    if (nonKeyModifiers.includes("right")) {
      key = transformClick(key, `onContextmenu`);
    }
    if (nonKeyModifiers.includes("middle")) {
      key = transformClick(key, `onMouseup`);
    }
    if (nonKeyModifiers.length) {
      handlerExp = createCallExpression(context.helper(V_ON_WITH_MODIFIERS), [
        handlerExp,
        JSON.stringify(nonKeyModifiers)
      ]);
    }
    if (keyModifiers.length && // if event name is dynamic, always wrap with keys guard
    (!isStaticExp(key) || isKeyboardEvent(key.content))) {
      handlerExp = createCallExpression(context.helper(V_ON_WITH_KEYS), [
        handlerExp,
        JSON.stringify(keyModifiers)
      ]);
    }
    if (eventOptionModifiers.length) {
      const modifierPostfix = eventOptionModifiers.map(capitalize).join("");
      key = isStaticExp(key) ? createSimpleExpression(`${key.content}${modifierPostfix}`, true) : createCompoundExpression([`(`, key, `) + "${modifierPostfix}"`]);
    }
    return {
      props: [createObjectProperty(key, handlerExp)]
    };
  });
};
const transformShow = (dir, node, context) => {
  const { exp, loc } = dir;
  if (!exp) {
    context.onError(createDOMCompilerError(59, loc));
  }
  return {
    props: [],
    needRuntime: context.helper(V_SHOW)
  };
};
const ignoreSideEffectTags = (node, context) => {
  if (node.type === 1 && node.tagType === 0 && (node.tag === "script" || node.tag === "style")) {
    context.onError(createDOMCompilerError(61, node.loc));
    context.removeNode();
  }
};
const DOMNodeTransforms = [
  transformStyle,
  ...[]
];
const DOMDirectiveTransforms = {
  cloak: noopDirectiveTransform,
  html: transformVHtml,
  text: transformVText,
  model: transformModel,
  on: transformOn,
  show: transformShow
};
function compile(template, options = {}) {
  return baseCompile(template, extend({}, parserOptions, options, {
    nodeTransforms: [
      // ignore <script> and <tag>
      // this is not put inside DOMNodeTransforms because that list is used
      // by compiler-ssr to generate vnode fallback branches
      ignoreSideEffectTags,
      ...DOMNodeTransforms,
      ...options.nodeTransforms || []
    ],
    directiveTransforms: extend({}, DOMDirectiveTransforms, options.directiveTransforms || {}),
    transformHoist: null
  }));
}
const compileCache = /* @__PURE__ */ Object.create(null);
function compileToFunction(template, options) {
  if (!isString$1(template)) {
    if (template.nodeType) {
      template = template.innerHTML;
    } else {
      return NOOP;
    }
  }
  const key = template;
  const cached = compileCache[key];
  if (cached) {
    return cached;
  }
  if (template[0] === "#") {
    const el = document.querySelector(template);
    template = el ? el.innerHTML : ``;
  }
  const opts = extend({
    hoistStatic: true,
    onError: void 0,
    onWarn: NOOP
  }, options);
  if (!opts.isCustomElement && typeof customElements !== "undefined") {
    opts.isCustomElement = (tag) => !!customElements.get(tag);
  }
  const { code } = compile(template, opts);
  const render11 = new Function("Vue", code)(runtimeDom);
  render11._rc = true;
  return compileCache[key] = render11;
}
registerRuntimeCompiler(compileToFunction);
/*! @license DOMPurify 2.4.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.7/LICENSE */
function _typeof(obj) {
  "@babel/helpers - typeof";
  return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj2) {
    return typeof obj2;
  } : function(obj2) {
    return obj2 && "function" == typeof Symbol && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
  }, _typeof(obj);
}
function _setPrototypeOf(o, p2) {
  _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf2(o2, p3) {
    o2.__proto__ = p3;
    return o2;
  };
  return _setPrototypeOf(o, p2);
}
function _isNativeReflectConstruct() {
  if (typeof Reflect === "undefined" || !Reflect.construct)
    return false;
  if (Reflect.construct.sham)
    return false;
  if (typeof Proxy === "function")
    return true;
  try {
    Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {
    }));
    return true;
  } catch (e) {
    return false;
  }
}
function _construct(Parent, args, Class) {
  if (_isNativeReflectConstruct()) {
    _construct = Reflect.construct;
  } else {
    _construct = function _construct2(Parent2, args2, Class2) {
      var a = [null];
      a.push.apply(a, args2);
      var Constructor = Function.bind.apply(Parent2, a);
      var instance = new Constructor();
      if (Class2)
        _setPrototypeOf(instance, Class2.prototype);
      return instance;
    };
  }
  return _construct.apply(null, arguments);
}
function _toConsumableArray(arr) {
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
  if (Array.isArray(arr))
    return _arrayLikeToArray(arr);
}
function _iterableToArray(iter) {
  if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
    return Array.from(iter);
}
function _unsupportedIterableToArray(o, minLen) {
  if (!o)
    return;
  if (typeof o === "string")
    return _arrayLikeToArray(o, minLen);
  var n = Object.prototype.toString.call(o).slice(8, -1);
  if (n === "Object" && o.constructor)
    n = o.constructor.name;
  if (n === "Map" || n === "Set")
    return Array.from(o);
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
    return _arrayLikeToArray(o, minLen);
}
function _arrayLikeToArray(arr, len2) {
  if (len2 == null || len2 > arr.length)
    len2 = arr.length;
  for (var i = 0, arr2 = new Array(len2); i < len2; i++)
    arr2[i] = arr[i];
  return arr2;
}
function _nonIterableSpread() {
  throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
var hasOwnProperty = Object.hasOwnProperty, setPrototypeOf = Object.setPrototypeOf, isFrozen = Object.isFrozen, getPrototypeOf = Object.getPrototypeOf, getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
var freeze = Object.freeze, seal = Object.seal, create = Object.create;
var _ref = typeof Reflect !== "undefined" && Reflect, apply = _ref.apply, construct = _ref.construct;
if (!apply) {
  apply = function apply2(fun, thisValue, args) {
    return fun.apply(thisValue, args);
  };
}
if (!freeze) {
  freeze = function freeze2(x) {
    return x;
  };
}
if (!seal) {
  seal = function seal2(x) {
    return x;
  };
}
if (!construct) {
  construct = function construct2(Func, args) {
    return _construct(Func, _toConsumableArray(args));
  };
}
var arrayForEach = unapply(Array.prototype.forEach);
var arrayPop = unapply(Array.prototype.pop);
var arrayPush = unapply(Array.prototype.push);
var stringToLowerCase = unapply(String.prototype.toLowerCase);
var stringToString = unapply(String.prototype.toString);
var stringMatch = unapply(String.prototype.match);
var stringReplace = unapply(String.prototype.replace);
var stringIndexOf = unapply(String.prototype.indexOf);
var stringTrim = unapply(String.prototype.trim);
var regExpTest = unapply(RegExp.prototype.test);
var typeErrorCreate = unconstruct(TypeError);
function unapply(func) {
  return function(thisArg) {
    for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      args[_key - 1] = arguments[_key];
    }
    return apply(func, thisArg, args);
  };
}
function unconstruct(func) {
  return function() {
    for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
      args[_key2] = arguments[_key2];
    }
    return construct(func, args);
  };
}
function addToSet(set2, array, transformCaseFunc) {
  var _transformCaseFunc;
  transformCaseFunc = (_transformCaseFunc = transformCaseFunc) !== null && _transformCaseFunc !== void 0 ? _transformCaseFunc : stringToLowerCase;
  if (setPrototypeOf) {
    setPrototypeOf(set2, null);
  }
  var l = array.length;
  while (l--) {
    var element = array[l];
    if (typeof element === "string") {
      var lcElement = transformCaseFunc(element);
      if (lcElement !== element) {
        if (!isFrozen(array)) {
          array[l] = lcElement;
        }
        element = lcElement;
      }
    }
    set2[element] = true;
  }
  return set2;
}
function clone(object) {
  var newObject = create(null);
  var property;
  for (property in object) {
    if (apply(hasOwnProperty, object, [property]) === true) {
      newObject[property] = object[property];
    }
  }
  return newObject;
}
function lookupGetter(object, prop) {
  while (object !== null) {
    var desc = getOwnPropertyDescriptor(object, prop);
    if (desc) {
      if (desc.get) {
        return unapply(desc.get);
      }
      if (typeof desc.value === "function") {
        return unapply(desc.value);
      }
    }
    object = getPrototypeOf(object);
  }
  function fallbackValue(element) {
    console.warn("fallback value for", element);
    return null;
  }
  return fallbackValue;
}
var html$1 = freeze(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]);
var svg$1 = freeze(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]);
var svgFilters = freeze(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]);
var svgDisallowed = freeze(["animate", "color-profile", "cursor", "discard", "fedropshadow", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]);
var mathMl$1 = freeze(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover"]);
var mathMlDisallowed = freeze(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]);
var text = freeze(["#text"]);
var html = freeze(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "xmlns", "slot"]);
var svg = freeze(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]);
var mathMl = freeze(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]);
var xml = freeze(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]);
var MUSTACHE_EXPR = seal(/\{\{[\w\W]*|[\w\W]*\}\}/gm);
var ERB_EXPR = seal(/<%[\w\W]*|[\w\W]*%>/gm);
var TMPLIT_EXPR = seal(/\${[\w\W]*}/gm);
var DATA_ATTR = seal(/^data-[\-\w.\u00B7-\uFFFF]/);
var ARIA_ATTR = seal(/^aria-[\-\w]+$/);
var IS_ALLOWED_URI = seal(
  /^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i
  // eslint-disable-line no-useless-escape
);
var IS_SCRIPT_OR_DATA = seal(/^(?:\w+script|data):/i);
var ATTR_WHITESPACE = seal(
  /[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g
  // eslint-disable-line no-control-regex
);
var DOCTYPE_NAME = seal(/^html$/i);
var getGlobal = function getGlobal2() {
  return typeof window === "undefined" ? null : window;
};
var _createTrustedTypesPolicy = function _createTrustedTypesPolicy2(trustedTypes, document2) {
  if (_typeof(trustedTypes) !== "object" || typeof trustedTypes.createPolicy !== "function") {
    return null;
  }
  var suffix = null;
  var ATTR_NAME = "data-tt-policy-suffix";
  if (document2.currentScript && document2.currentScript.hasAttribute(ATTR_NAME)) {
    suffix = document2.currentScript.getAttribute(ATTR_NAME);
  }
  var policyName = "dompurify" + (suffix ? "#" + suffix : "");
  try {
    return trustedTypes.createPolicy(policyName, {
      createHTML: function createHTML(html2) {
        return html2;
      },
      createScriptURL: function createScriptURL(scriptUrl) {
        return scriptUrl;
      }
    });
  } catch (_) {
    console.warn("TrustedTypes policy " + policyName + " could not be created.");
    return null;
  }
};
function createDOMPurify() {
  var window2 = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : getGlobal();
  var DOMPurify = function DOMPurify2(root) {
    return createDOMPurify(root);
  };
  DOMPurify.version = "2.4.7";
  DOMPurify.removed = [];
  if (!window2 || !window2.document || window2.document.nodeType !== 9) {
    DOMPurify.isSupported = false;
    return DOMPurify;
  }
  var originalDocument = window2.document;
  var document2 = window2.document;
  var DocumentFragment = window2.DocumentFragment, HTMLTemplateElement = window2.HTMLTemplateElement, Node = window2.Node, Element2 = window2.Element, NodeFilter = window2.NodeFilter, _window$NamedNodeMap = window2.NamedNodeMap, NamedNodeMap = _window$NamedNodeMap === void 0 ? window2.NamedNodeMap || window2.MozNamedAttrMap : _window$NamedNodeMap, HTMLFormElement = window2.HTMLFormElement, DOMParser = window2.DOMParser, trustedTypes = window2.trustedTypes;
  var ElementPrototype = Element2.prototype;
  var cloneNode = lookupGetter(ElementPrototype, "cloneNode");
  var getNextSibling = lookupGetter(ElementPrototype, "nextSibling");
  var getChildNodes = lookupGetter(ElementPrototype, "childNodes");
  var getParentNode = lookupGetter(ElementPrototype, "parentNode");
  if (typeof HTMLTemplateElement === "function") {
    var template = document2.createElement("template");
    if (template.content && template.content.ownerDocument) {
      document2 = template.content.ownerDocument;
    }
  }
  var trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, originalDocument);
  var emptyHTML = trustedTypesPolicy ? trustedTypesPolicy.createHTML("") : "";
  var _document = document2, implementation = _document.implementation, createNodeIterator = _document.createNodeIterator, createDocumentFragment = _document.createDocumentFragment, getElementsByTagName = _document.getElementsByTagName;
  var importNode = originalDocument.importNode;
  var documentMode = {};
  try {
    documentMode = clone(document2).documentMode ? document2.documentMode : {};
  } catch (_) {
  }
  var hooks = {};
  DOMPurify.isSupported = typeof getParentNode === "function" && implementation && implementation.createHTMLDocument !== void 0 && documentMode !== 9;
  var MUSTACHE_EXPR$1 = MUSTACHE_EXPR, ERB_EXPR$1 = ERB_EXPR, TMPLIT_EXPR$1 = TMPLIT_EXPR, DATA_ATTR$1 = DATA_ATTR, ARIA_ATTR$1 = ARIA_ATTR, IS_SCRIPT_OR_DATA$1 = IS_SCRIPT_OR_DATA, ATTR_WHITESPACE$1 = ATTR_WHITESPACE;
  var IS_ALLOWED_URI$1 = IS_ALLOWED_URI;
  var ALLOWED_TAGS = null;
  var DEFAULT_ALLOWED_TAGS = addToSet({}, [].concat(_toConsumableArray(html$1), _toConsumableArray(svg$1), _toConsumableArray(svgFilters), _toConsumableArray(mathMl$1), _toConsumableArray(text)));
  var ALLOWED_ATTR = null;
  var DEFAULT_ALLOWED_ATTR = addToSet({}, [].concat(_toConsumableArray(html), _toConsumableArray(svg), _toConsumableArray(mathMl), _toConsumableArray(xml)));
  var CUSTOM_ELEMENT_HANDLING = Object.seal(Object.create(null, {
    tagNameCheck: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: null
    },
    attributeNameCheck: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: null
    },
    allowCustomizedBuiltInElements: {
      writable: true,
      configurable: false,
      enumerable: true,
      value: false
    }
  }));
  var FORBID_TAGS = null;
  var FORBID_ATTR = null;
  var ALLOW_ARIA_ATTR = true;
  var ALLOW_DATA_ATTR = true;
  var ALLOW_UNKNOWN_PROTOCOLS = false;
  var ALLOW_SELF_CLOSE_IN_ATTR = true;
  var SAFE_FOR_TEMPLATES = false;
  var WHOLE_DOCUMENT = false;
  var SET_CONFIG = false;
  var FORCE_BODY = false;
  var RETURN_DOM = false;
  var RETURN_DOM_FRAGMENT = false;
  var RETURN_TRUSTED_TYPE = false;
  var SANITIZE_DOM = true;
  var SANITIZE_NAMED_PROPS = false;
  var SANITIZE_NAMED_PROPS_PREFIX = "user-content-";
  var KEEP_CONTENT = true;
  var IN_PLACE = false;
  var USE_PROFILES = {};
  var FORBID_CONTENTS = null;
  var DEFAULT_FORBID_CONTENTS = addToSet({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
  var DATA_URI_TAGS = null;
  var DEFAULT_DATA_URI_TAGS = addToSet({}, ["audio", "video", "img", "source", "image", "track"]);
  var URI_SAFE_ATTRIBUTES = null;
  var DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]);
  var MATHML_NAMESPACE = "http://www.w3.org/1998/Math/MathML";
  var SVG_NAMESPACE = "http://www.w3.org/2000/svg";
  var HTML_NAMESPACE = "http://www.w3.org/1999/xhtml";
  var NAMESPACE = HTML_NAMESPACE;
  var IS_EMPTY_INPUT = false;
  var ALLOWED_NAMESPACES = null;
  var DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);
  var PARSER_MEDIA_TYPE;
  var SUPPORTED_PARSER_MEDIA_TYPES = ["application/xhtml+xml", "text/html"];
  var DEFAULT_PARSER_MEDIA_TYPE = "text/html";
  var transformCaseFunc;
  var CONFIG = null;
  var formElement = document2.createElement("form");
  var isRegexOrFunction = function isRegexOrFunction2(testValue) {
    return testValue instanceof RegExp || testValue instanceof Function;
  };
  var _parseConfig = function _parseConfig2(cfg) {
    if (CONFIG && CONFIG === cfg) {
      return;
    }
    if (!cfg || _typeof(cfg) !== "object") {
      cfg = {};
    }
    cfg = clone(cfg);
    PARSER_MEDIA_TYPE = // eslint-disable-next-line unicorn/prefer-includes
    SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? PARSER_MEDIA_TYPE = DEFAULT_PARSER_MEDIA_TYPE : PARSER_MEDIA_TYPE = cfg.PARSER_MEDIA_TYPE;
    transformCaseFunc = PARSER_MEDIA_TYPE === "application/xhtml+xml" ? stringToString : stringToLowerCase;
    ALLOWED_TAGS = "ALLOWED_TAGS" in cfg ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;
    ALLOWED_ATTR = "ALLOWED_ATTR" in cfg ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;
    ALLOWED_NAMESPACES = "ALLOWED_NAMESPACES" in cfg ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;
    URI_SAFE_ATTRIBUTES = "ADD_URI_SAFE_ATTR" in cfg ? addToSet(
      clone(DEFAULT_URI_SAFE_ATTRIBUTES),
      // eslint-disable-line indent
      cfg.ADD_URI_SAFE_ATTR,
      // eslint-disable-line indent
      transformCaseFunc
      // eslint-disable-line indent
    ) : DEFAULT_URI_SAFE_ATTRIBUTES;
    DATA_URI_TAGS = "ADD_DATA_URI_TAGS" in cfg ? addToSet(
      clone(DEFAULT_DATA_URI_TAGS),
      // eslint-disable-line indent
      cfg.ADD_DATA_URI_TAGS,
      // eslint-disable-line indent
      transformCaseFunc
      // eslint-disable-line indent
    ) : DEFAULT_DATA_URI_TAGS;
    FORBID_CONTENTS = "FORBID_CONTENTS" in cfg ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;
    FORBID_TAGS = "FORBID_TAGS" in cfg ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : {};
    FORBID_ATTR = "FORBID_ATTR" in cfg ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : {};
    USE_PROFILES = "USE_PROFILES" in cfg ? cfg.USE_PROFILES : false;
    ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false;
    ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false;
    ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false;
    ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false;
    SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false;
    WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false;
    RETURN_DOM = cfg.RETURN_DOM || false;
    RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false;
    RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false;
    FORCE_BODY = cfg.FORCE_BODY || false;
    SANITIZE_DOM = cfg.SANITIZE_DOM !== false;
    SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false;
    KEEP_CONTENT = cfg.KEEP_CONTENT !== false;
    IN_PLACE = cfg.IN_PLACE || false;
    IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI$1;
    NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;
    CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || {};
    if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {
      CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;
    }
    if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {
      CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;
    }
    if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === "boolean") {
      CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;
    }
    if (SAFE_FOR_TEMPLATES) {
      ALLOW_DATA_ATTR = false;
    }
    if (RETURN_DOM_FRAGMENT) {
      RETURN_DOM = true;
    }
    if (USE_PROFILES) {
      ALLOWED_TAGS = addToSet({}, _toConsumableArray(text));
      ALLOWED_ATTR = [];
      if (USE_PROFILES.html === true) {
        addToSet(ALLOWED_TAGS, html$1);
        addToSet(ALLOWED_ATTR, html);
      }
      if (USE_PROFILES.svg === true) {
        addToSet(ALLOWED_TAGS, svg$1);
        addToSet(ALLOWED_ATTR, svg);
        addToSet(ALLOWED_ATTR, xml);
      }
      if (USE_PROFILES.svgFilters === true) {
        addToSet(ALLOWED_TAGS, svgFilters);
        addToSet(ALLOWED_ATTR, svg);
        addToSet(ALLOWED_ATTR, xml);
      }
      if (USE_PROFILES.mathMl === true) {
        addToSet(ALLOWED_TAGS, mathMl$1);
        addToSet(ALLOWED_ATTR, mathMl);
        addToSet(ALLOWED_ATTR, xml);
      }
    }
    if (cfg.ADD_TAGS) {
      if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {
        ALLOWED_TAGS = clone(ALLOWED_TAGS);
      }
      addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);
    }
    if (cfg.ADD_ATTR) {
      if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {
        ALLOWED_ATTR = clone(ALLOWED_ATTR);
      }
      addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);
    }
    if (cfg.ADD_URI_SAFE_ATTR) {
      addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);
    }
    if (cfg.FORBID_CONTENTS) {
      if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {
        FORBID_CONTENTS = clone(FORBID_CONTENTS);
      }
      addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);
    }
    if (KEEP_CONTENT) {
      ALLOWED_TAGS["#text"] = true;
    }
    if (WHOLE_DOCUMENT) {
      addToSet(ALLOWED_TAGS, ["html", "head", "body"]);
    }
    if (ALLOWED_TAGS.table) {
      addToSet(ALLOWED_TAGS, ["tbody"]);
      delete FORBID_TAGS.tbody;
    }
    if (freeze) {
      freeze(cfg);
    }
    CONFIG = cfg;
  };
  var MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ["mi", "mo", "mn", "ms", "mtext"]);
  var HTML_INTEGRATION_POINTS = addToSet({}, ["foreignobject", "desc", "title", "annotation-xml"]);
  var COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ["title", "style", "font", "a", "script"]);
  var ALL_SVG_TAGS = addToSet({}, svg$1);
  addToSet(ALL_SVG_TAGS, svgFilters);
  addToSet(ALL_SVG_TAGS, svgDisallowed);
  var ALL_MATHML_TAGS = addToSet({}, mathMl$1);
  addToSet(ALL_MATHML_TAGS, mathMlDisallowed);
  var _checkValidNamespace = function _checkValidNamespace2(element) {
    var parent = getParentNode(element);
    if (!parent || !parent.tagName) {
      parent = {
        namespaceURI: NAMESPACE,
        tagName: "template"
      };
    }
    var tagName = stringToLowerCase(element.tagName);
    var parentTagName = stringToLowerCase(parent.tagName);
    if (!ALLOWED_NAMESPACES[element.namespaceURI]) {
      return false;
    }
    if (element.namespaceURI === SVG_NAMESPACE) {
      if (parent.namespaceURI === HTML_NAMESPACE) {
        return tagName === "svg";
      }
      if (parent.namespaceURI === MATHML_NAMESPACE) {
        return tagName === "svg" && (parentTagName === "annotation-xml" || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);
      }
      return Boolean(ALL_SVG_TAGS[tagName]);
    }
    if (element.namespaceURI === MATHML_NAMESPACE) {
      if (parent.namespaceURI === HTML_NAMESPACE) {
        return tagName === "math";
      }
      if (parent.namespaceURI === SVG_NAMESPACE) {
        return tagName === "math" && HTML_INTEGRATION_POINTS[parentTagName];
      }
      return Boolean(ALL_MATHML_TAGS[tagName]);
    }
    if (element.namespaceURI === HTML_NAMESPACE) {
      if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {
        return false;
      }
      if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {
        return false;
      }
      return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);
    }
    if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && ALLOWED_NAMESPACES[element.namespaceURI]) {
      return true;
    }
    return false;
  };
  var _forceRemove = function _forceRemove2(node) {
    arrayPush(DOMPurify.removed, {
      element: node
    });
    try {
      node.parentNode.removeChild(node);
    } catch (_) {
      try {
        node.outerHTML = emptyHTML;
      } catch (_2) {
        node.remove();
      }
    }
  };
  var _removeAttribute = function _removeAttribute2(name, node) {
    try {
      arrayPush(DOMPurify.removed, {
        attribute: node.getAttributeNode(name),
        from: node
      });
    } catch (_) {
      arrayPush(DOMPurify.removed, {
        attribute: null,
        from: node
      });
    }
    node.removeAttribute(name);
    if (name === "is" && !ALLOWED_ATTR[name]) {
      if (RETURN_DOM || RETURN_DOM_FRAGMENT) {
        try {
          _forceRemove(node);
        } catch (_) {
        }
      } else {
        try {
          node.setAttribute(name, "");
        } catch (_) {
        }
      }
    }
  };
  var _initDocument = function _initDocument2(dirty) {
    var doc2;
    var leadingWhitespace;
    if (FORCE_BODY) {
      dirty = "<remove></remove>" + dirty;
    } else {
      var matches2 = stringMatch(dirty, /^[\r\n\t ]+/);
      leadingWhitespace = matches2 && matches2[0];
    }
    if (PARSER_MEDIA_TYPE === "application/xhtml+xml" && NAMESPACE === HTML_NAMESPACE) {
      dirty = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + dirty + "</body></html>";
    }
    var dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;
    if (NAMESPACE === HTML_NAMESPACE) {
      try {
        doc2 = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);
      } catch (_) {
      }
    }
    if (!doc2 || !doc2.documentElement) {
      doc2 = implementation.createDocument(NAMESPACE, "template", null);
      try {
        doc2.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;
      } catch (_) {
      }
    }
    var body = doc2.body || doc2.documentElement;
    if (dirty && leadingWhitespace) {
      body.insertBefore(document2.createTextNode(leadingWhitespace), body.childNodes[0] || null);
    }
    if (NAMESPACE === HTML_NAMESPACE) {
      return getElementsByTagName.call(doc2, WHOLE_DOCUMENT ? "html" : "body")[0];
    }
    return WHOLE_DOCUMENT ? doc2.documentElement : body;
  };
  var _createIterator = function _createIterator2(root) {
    return createNodeIterator.call(
      root.ownerDocument || root,
      root,
      // eslint-disable-next-line no-bitwise
      NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT,
      null,
      false
    );
  };
  var _isClobbered = function _isClobbered2(elm) {
    return elm instanceof HTMLFormElement && (typeof elm.nodeName !== "string" || typeof elm.textContent !== "string" || typeof elm.removeChild !== "function" || !(elm.attributes instanceof NamedNodeMap) || typeof elm.removeAttribute !== "function" || typeof elm.setAttribute !== "function" || typeof elm.namespaceURI !== "string" || typeof elm.insertBefore !== "function" || typeof elm.hasChildNodes !== "function");
  };
  var _isNode = function _isNode2(object) {
    return _typeof(Node) === "object" ? object instanceof Node : object && _typeof(object) === "object" && typeof object.nodeType === "number" && typeof object.nodeName === "string";
  };
  var _executeHook = function _executeHook2(entryPoint, currentNode, data) {
    if (!hooks[entryPoint]) {
      return;
    }
    arrayForEach(hooks[entryPoint], function(hook) {
      hook.call(DOMPurify, currentNode, data, CONFIG);
    });
  };
  var _sanitizeElements = function _sanitizeElements2(currentNode) {
    var content;
    _executeHook("beforeSanitizeElements", currentNode, null);
    if (_isClobbered(currentNode)) {
      _forceRemove(currentNode);
      return true;
    }
    if (regExpTest(/[\u0080-\uFFFF]/, currentNode.nodeName)) {
      _forceRemove(currentNode);
      return true;
    }
    var tagName = transformCaseFunc(currentNode.nodeName);
    _executeHook("uponSanitizeElement", currentNode, {
      tagName,
      allowedTags: ALLOWED_TAGS
    });
    if (currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && (!_isNode(currentNode.content) || !_isNode(currentNode.content.firstElementChild)) && regExpTest(/<[/\w]/g, currentNode.innerHTML) && regExpTest(/<[/\w]/g, currentNode.textContent)) {
      _forceRemove(currentNode);
      return true;
    }
    if (tagName === "select" && regExpTest(/<template/i, currentNode.innerHTML)) {
      _forceRemove(currentNode);
      return true;
    }
    if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
      if (!FORBID_TAGS[tagName] && _basicCustomElementTest(tagName)) {
        if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName))
          return false;
        if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName))
          return false;
      }
      if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {
        var parentNode = getParentNode(currentNode) || currentNode.parentNode;
        var childNodes = getChildNodes(currentNode) || currentNode.childNodes;
        if (childNodes && parentNode) {
          var childCount = childNodes.length;
          for (var i = childCount - 1; i >= 0; --i) {
            parentNode.insertBefore(cloneNode(childNodes[i], true), getNextSibling(currentNode));
          }
        }
      }
      _forceRemove(currentNode);
      return true;
    }
    if (currentNode instanceof Element2 && !_checkValidNamespace(currentNode)) {
      _forceRemove(currentNode);
      return true;
    }
    if ((tagName === "noscript" || tagName === "noembed" || tagName === "noframes") && regExpTest(/<\/no(script|embed|frames)/i, currentNode.innerHTML)) {
      _forceRemove(currentNode);
      return true;
    }
    if (SAFE_FOR_TEMPLATES && currentNode.nodeType === 3) {
      content = currentNode.textContent;
      content = stringReplace(content, MUSTACHE_EXPR$1, " ");
      content = stringReplace(content, ERB_EXPR$1, " ");
      content = stringReplace(content, TMPLIT_EXPR$1, " ");
      if (currentNode.textContent !== content) {
        arrayPush(DOMPurify.removed, {
          element: currentNode.cloneNode()
        });
        currentNode.textContent = content;
      }
    }
    _executeHook("afterSanitizeElements", currentNode, null);
    return false;
  };
  var _isValidAttribute = function _isValidAttribute2(lcTag, lcName, value) {
    if (SANITIZE_DOM && (lcName === "id" || lcName === "name") && (value in document2 || value in formElement)) {
      return false;
    }
    if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR$1, lcName))
      ;
    else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR$1, lcName))
      ;
    else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {
      if (
        // First condition does a very basic check if a) it's basically a valid custom element tagname AND
        // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
        // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck
        _basicCustomElementTest(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName)) || // Alternative, second condition checks if it's an `is`-attribute, AND
        // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck
        lcName === "is" && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))
      )
        ;
      else {
        return false;
      }
    } else if (URI_SAFE_ATTRIBUTES[lcName])
      ;
    else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE$1, "")))
      ;
    else if ((lcName === "src" || lcName === "xlink:href" || lcName === "href") && lcTag !== "script" && stringIndexOf(value, "data:") === 0 && DATA_URI_TAGS[lcTag])
      ;
    else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA$1, stringReplace(value, ATTR_WHITESPACE$1, "")))
      ;
    else if (value) {
      return false;
    } else
      ;
    return true;
  };
  var _basicCustomElementTest = function _basicCustomElementTest2(tagName) {
    return tagName.indexOf("-") > 0;
  };
  var _sanitizeAttributes = function _sanitizeAttributes2(currentNode) {
    var attr;
    var value;
    var lcName;
    var l;
    _executeHook("beforeSanitizeAttributes", currentNode, null);
    var attributes = currentNode.attributes;
    if (!attributes) {
      return;
    }
    var hookEvent = {
      attrName: "",
      attrValue: "",
      keepAttr: true,
      allowedAttributes: ALLOWED_ATTR
    };
    l = attributes.length;
    while (l--) {
      attr = attributes[l];
      var _attr = attr, name = _attr.name, namespaceURI = _attr.namespaceURI;
      value = name === "value" ? attr.value : stringTrim(attr.value);
      lcName = transformCaseFunc(name);
      hookEvent.attrName = lcName;
      hookEvent.attrValue = value;
      hookEvent.keepAttr = true;
      hookEvent.forceKeepAttr = void 0;
      _executeHook("uponSanitizeAttribute", currentNode, hookEvent);
      value = hookEvent.attrValue;
      if (hookEvent.forceKeepAttr) {
        continue;
      }
      _removeAttribute(name, currentNode);
      if (!hookEvent.keepAttr) {
        continue;
      }
      if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\/>/i, value)) {
        _removeAttribute(name, currentNode);
        continue;
      }
      if (SAFE_FOR_TEMPLATES) {
        value = stringReplace(value, MUSTACHE_EXPR$1, " ");
        value = stringReplace(value, ERB_EXPR$1, " ");
        value = stringReplace(value, TMPLIT_EXPR$1, " ");
      }
      var lcTag = transformCaseFunc(currentNode.nodeName);
      if (!_isValidAttribute(lcTag, lcName, value)) {
        continue;
      }
      if (SANITIZE_NAMED_PROPS && (lcName === "id" || lcName === "name")) {
        _removeAttribute(name, currentNode);
        value = SANITIZE_NAMED_PROPS_PREFIX + value;
      }
      if (trustedTypesPolicy && _typeof(trustedTypes) === "object" && typeof trustedTypes.getAttributeType === "function") {
        if (namespaceURI)
          ;
        else {
          switch (trustedTypes.getAttributeType(lcTag, lcName)) {
            case "TrustedHTML": {
              value = trustedTypesPolicy.createHTML(value);
              break;
            }
            case "TrustedScriptURL": {
              value = trustedTypesPolicy.createScriptURL(value);
              break;
            }
          }
        }
      }
      try {
        if (namespaceURI) {
          currentNode.setAttributeNS(namespaceURI, name, value);
        } else {
          currentNode.setAttribute(name, value);
        }
        arrayPop(DOMPurify.removed);
      } catch (_) {
      }
    }
    _executeHook("afterSanitizeAttributes", currentNode, null);
  };
  var _sanitizeShadowDOM = function _sanitizeShadowDOM2(fragment) {
    var shadowNode;
    var shadowIterator = _createIterator(fragment);
    _executeHook("beforeSanitizeShadowDOM", fragment, null);
    while (shadowNode = shadowIterator.nextNode()) {
      _executeHook("uponSanitizeShadowNode", shadowNode, null);
      if (_sanitizeElements(shadowNode)) {
        continue;
      }
      if (shadowNode.content instanceof DocumentFragment) {
        _sanitizeShadowDOM2(shadowNode.content);
      }
      _sanitizeAttributes(shadowNode);
    }
    _executeHook("afterSanitizeShadowDOM", fragment, null);
  };
  DOMPurify.sanitize = function(dirty) {
    var cfg = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
    var body;
    var importedNode;
    var currentNode;
    var oldNode;
    var returnNode;
    IS_EMPTY_INPUT = !dirty;
    if (IS_EMPTY_INPUT) {
      dirty = "<!-->";
    }
    if (typeof dirty !== "string" && !_isNode(dirty)) {
      if (typeof dirty.toString === "function") {
        dirty = dirty.toString();
        if (typeof dirty !== "string") {
          throw typeErrorCreate("dirty is not a string, aborting");
        }
      } else {
        throw typeErrorCreate("toString is not a function");
      }
    }
    if (!DOMPurify.isSupported) {
      if (_typeof(window2.toStaticHTML) === "object" || typeof window2.toStaticHTML === "function") {
        if (typeof dirty === "string") {
          return window2.toStaticHTML(dirty);
        }
        if (_isNode(dirty)) {
          return window2.toStaticHTML(dirty.outerHTML);
        }
      }
      return dirty;
    }
    if (!SET_CONFIG) {
      _parseConfig(cfg);
    }
    DOMPurify.removed = [];
    if (typeof dirty === "string") {
      IN_PLACE = false;
    }
    if (IN_PLACE) {
      if (dirty.nodeName) {
        var tagName = transformCaseFunc(dirty.nodeName);
        if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {
          throw typeErrorCreate("root node is forbidden and cannot be sanitized in-place");
        }
      }
    } else if (dirty instanceof Node) {
      body = _initDocument("<!---->");
      importedNode = body.ownerDocument.importNode(dirty, true);
      if (importedNode.nodeType === 1 && importedNode.nodeName === "BODY") {
        body = importedNode;
      } else if (importedNode.nodeName === "HTML") {
        body = importedNode;
      } else {
        body.appendChild(importedNode);
      }
    } else {
      if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT && // eslint-disable-next-line unicorn/prefer-includes
      dirty.indexOf("<") === -1) {
        return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;
      }
      body = _initDocument(dirty);
      if (!body) {
        return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : "";
      }
    }
    if (body && FORCE_BODY) {
      _forceRemove(body.firstChild);
    }
    var nodeIterator = _createIterator(IN_PLACE ? dirty : body);
    while (currentNode = nodeIterator.nextNode()) {
      if (currentNode.nodeType === 3 && currentNode === oldNode) {
        continue;
      }
      if (_sanitizeElements(currentNode)) {
        continue;
      }
      if (currentNode.content instanceof DocumentFragment) {
        _sanitizeShadowDOM(currentNode.content);
      }
      _sanitizeAttributes(currentNode);
      oldNode = currentNode;
    }
    oldNode = null;
    if (IN_PLACE) {
      return dirty;
    }
    if (RETURN_DOM) {
      if (RETURN_DOM_FRAGMENT) {
        returnNode = createDocumentFragment.call(body.ownerDocument);
        while (body.firstChild) {
          returnNode.appendChild(body.firstChild);
        }
      } else {
        returnNode = body;
      }
      if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmod) {
        returnNode = importNode.call(originalDocument, returnNode, true);
      }
      return returnNode;
    }
    var serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;
    if (WHOLE_DOCUMENT && ALLOWED_TAGS["!doctype"] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {
      serializedHTML = "<!DOCTYPE " + body.ownerDocument.doctype.name + ">\n" + serializedHTML;
    }
    if (SAFE_FOR_TEMPLATES) {
      serializedHTML = stringReplace(serializedHTML, MUSTACHE_EXPR$1, " ");
      serializedHTML = stringReplace(serializedHTML, ERB_EXPR$1, " ");
      serializedHTML = stringReplace(serializedHTML, TMPLIT_EXPR$1, " ");
    }
    return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;
  };
  DOMPurify.setConfig = function(cfg) {
    _parseConfig(cfg);
    SET_CONFIG = true;
  };
  DOMPurify.clearConfig = function() {
    CONFIG = null;
    SET_CONFIG = false;
  };
  DOMPurify.isValidAttribute = function(tag, attr, value) {
    if (!CONFIG) {
      _parseConfig({});
    }
    var lcTag = transformCaseFunc(tag);
    var lcName = transformCaseFunc(attr);
    return _isValidAttribute(lcTag, lcName, value);
  };
  DOMPurify.addHook = function(entryPoint, hookFunction) {
    if (typeof hookFunction !== "function") {
      return;
    }
    hooks[entryPoint] = hooks[entryPoint] || [];
    arrayPush(hooks[entryPoint], hookFunction);
  };
  DOMPurify.removeHook = function(entryPoint) {
    if (hooks[entryPoint]) {
      return arrayPop(hooks[entryPoint]);
    }
  };
  DOMPurify.removeHooks = function(entryPoint) {
    if (hooks[entryPoint]) {
      hooks[entryPoint] = [];
    }
  };
  DOMPurify.removeAllHooks = function() {
    hooks = {};
  };
  return DOMPurify;
}
var purify = createDOMPurify();
const purify_es = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: purify
}, Symbol.toStringTag, { value: "Module" }));
var isVue2 = false;
/*!
  * pinia v2.0.33
  * (c) 2023 Eduardo San Martin Morote
  * @license MIT
  */
let activePinia;
const setActivePinia = (pinia2) => activePinia = pinia2;
const piniaSymbol = (
  /* istanbul ignore next */
  Symbol()
);
function isPlainObject(o) {
  return o && typeof o === "object" && Object.prototype.toString.call(o) === "[object Object]" && typeof o.toJSON !== "function";
}
var MutationType;
(function(MutationType2) {
  MutationType2["direct"] = "direct";
  MutationType2["patchObject"] = "patch object";
  MutationType2["patchFunction"] = "patch function";
})(MutationType || (MutationType = {}));
function createPinia() {
  const scope = effectScope(true);
  const state = scope.run(() => ref({}));
  let _p = [];
  let toBeInstalled = [];
  const pinia2 = markRaw({
    install(app2) {
      setActivePinia(pinia2);
      {
        pinia2._a = app2;
        app2.provide(piniaSymbol, pinia2);
        app2.config.globalProperties.$pinia = pinia2;
        toBeInstalled.forEach((plugin) => _p.push(plugin));
        toBeInstalled = [];
      }
    },
    use(plugin) {
      if (!this._a && !isVue2) {
        toBeInstalled.push(plugin);
      } else {
        _p.push(plugin);
      }
      return this;
    },
    _p,
    // it's actually undefined here
    // @ts-expect-error
    _a: null,
    _e: scope,
    _s: /* @__PURE__ */ new Map(),
    state
  });
  return pinia2;
}
const noop$1 = () => {
};
function addSubscription(subscriptions, callback, detached, onCleanup = noop$1) {
  subscriptions.push(callback);
  const removeSubscription = () => {
    const idx = subscriptions.indexOf(callback);
    if (idx > -1) {
      subscriptions.splice(idx, 1);
      onCleanup();
    }
  };
  if (!detached && getCurrentScope()) {
    onScopeDispose(removeSubscription);
  }
  return removeSubscription;
}
function triggerSubscriptions(subscriptions, ...args) {
  subscriptions.slice().forEach((callback) => {
    callback(...args);
  });
}
function mergeReactiveObjects(target, patchToApply) {
  if (target instanceof Map && patchToApply instanceof Map) {
    patchToApply.forEach((value, key) => target.set(key, value));
  }
  if (target instanceof Set && patchToApply instanceof Set) {
    patchToApply.forEach(target.add, target);
  }
  for (const key in patchToApply) {
    if (!patchToApply.hasOwnProperty(key))
      continue;
    const subPatch = patchToApply[key];
    const targetValue = target[key];
    if (isPlainObject(targetValue) && isPlainObject(subPatch) && target.hasOwnProperty(key) && !isRef(subPatch) && !isReactive(subPatch)) {
      target[key] = mergeReactiveObjects(targetValue, subPatch);
    } else {
      target[key] = subPatch;
    }
  }
  return target;
}
const skipHydrateSymbol = (
  /* istanbul ignore next */
  Symbol()
);
function shouldHydrate(obj) {
  return !isPlainObject(obj) || !obj.hasOwnProperty(skipHydrateSymbol);
}
const { assign: assign$1 } = Object;
function isComputed(o) {
  return !!(isRef(o) && o.effect);
}
function createOptionsStore(id, options, pinia2, hot) {
  const { state, actions, getters } = options;
  const initialState = pinia2.state.value[id];
  let store;
  function setup() {
    if (!initialState && true) {
      {
        pinia2.state.value[id] = state ? state() : {};
      }
    }
    const localState = toRefs(pinia2.state.value[id]);
    return assign$1(localState, actions, Object.keys(getters || {}).reduce((computedGetters, name) => {
      computedGetters[name] = markRaw(computed(() => {
        setActivePinia(pinia2);
        const store2 = pinia2._s.get(id);
        return getters[name].call(store2, store2);
      }));
      return computedGetters;
    }, {}));
  }
  store = createSetupStore(id, setup, options, pinia2, hot, true);
  return store;
}
function createSetupStore($id, setup, options = {}, pinia2, hot, isOptionsStore) {
  let scope;
  const optionsForPlugin = assign$1({ actions: {} }, options);
  const $subscribeOptions = {
    deep: true
    // flush: 'post',
  };
  let isListening;
  let isSyncListening;
  let subscriptions = markRaw([]);
  let actionSubscriptions = markRaw([]);
  let debuggerEvents;
  const initialState = pinia2.state.value[$id];
  if (!isOptionsStore && !initialState && true) {
    {
      pinia2.state.value[$id] = {};
    }
  }
  ref({});
  let activeListener;
  function $patch(partialStateOrMutator) {
    let subscriptionMutation;
    isListening = isSyncListening = false;
    if (typeof partialStateOrMutator === "function") {
      partialStateOrMutator(pinia2.state.value[$id]);
      subscriptionMutation = {
        type: MutationType.patchFunction,
        storeId: $id,
        events: debuggerEvents
      };
    } else {
      mergeReactiveObjects(pinia2.state.value[$id], partialStateOrMutator);
      subscriptionMutation = {
        type: MutationType.patchObject,
        payload: partialStateOrMutator,
        storeId: $id,
        events: debuggerEvents
      };
    }
    const myListenerId = activeListener = Symbol();
    nextTick().then(() => {
      if (activeListener === myListenerId) {
        isListening = true;
      }
    });
    isSyncListening = true;
    triggerSubscriptions(subscriptions, subscriptionMutation, pinia2.state.value[$id]);
  }
  const $reset = isOptionsStore ? function $reset2() {
    const { state } = options;
    const newState = state ? state() : {};
    this.$patch(($state) => {
      assign$1($state, newState);
    });
  } : (
    /* istanbul ignore next */
    noop$1
  );
  function $dispose() {
    scope.stop();
    subscriptions = [];
    actionSubscriptions = [];
    pinia2._s.delete($id);
  }
  function wrapAction(name, action) {
    return function() {
      setActivePinia(pinia2);
      const args = Array.from(arguments);
      const afterCallbackList = [];
      const onErrorCallbackList = [];
      function after(callback) {
        afterCallbackList.push(callback);
      }
      function onError(callback) {
        onErrorCallbackList.push(callback);
      }
      triggerSubscriptions(actionSubscriptions, {
        args,
        name,
        store,
        after,
        onError
      });
      let ret;
      try {
        ret = action.apply(this && this.$id === $id ? this : store, args);
      } catch (error) {
        triggerSubscriptions(onErrorCallbackList, error);
        throw error;
      }
      if (ret instanceof Promise) {
        return ret.then((value) => {
          triggerSubscriptions(afterCallbackList, value);
          return value;
        }).catch((error) => {
          triggerSubscriptions(onErrorCallbackList, error);
          return Promise.reject(error);
        });
      }
      triggerSubscriptions(afterCallbackList, ret);
      return ret;
    };
  }
  const partialStore = {
    _p: pinia2,
    // _s: scope,
    $id,
    $onAction: addSubscription.bind(null, actionSubscriptions),
    $patch,
    $reset,
    $subscribe(callback, options2 = {}) {
      const removeSubscription = addSubscription(subscriptions, callback, options2.detached, () => stopWatcher());
      const stopWatcher = scope.run(() => watch(() => pinia2.state.value[$id], (state) => {
        if (options2.flush === "sync" ? isSyncListening : isListening) {
          callback({
            storeId: $id,
            type: MutationType.direct,
            events: debuggerEvents
          }, state);
        }
      }, assign$1({}, $subscribeOptions, options2)));
      return removeSubscription;
    },
    $dispose
  };
  const store = reactive(partialStore);
  pinia2._s.set($id, store);
  const setupStore = pinia2._e.run(() => {
    scope = effectScope();
    return scope.run(() => setup());
  });
  for (const key in setupStore) {
    const prop = setupStore[key];
    if (isRef(prop) && !isComputed(prop) || isReactive(prop)) {
      if (!isOptionsStore) {
        if (initialState && shouldHydrate(prop)) {
          if (isRef(prop)) {
            prop.value = initialState[key];
          } else {
            mergeReactiveObjects(prop, initialState[key]);
          }
        }
        {
          pinia2.state.value[$id][key] = prop;
        }
      }
    } else if (typeof prop === "function") {
      const actionValue = wrapAction(key, prop);
      {
        setupStore[key] = actionValue;
      }
      optionsForPlugin.actions[key] = prop;
    } else
      ;
  }
  {
    assign$1(store, setupStore);
    assign$1(toRaw(store), setupStore);
  }
  Object.defineProperty(store, "$state", {
    get: () => pinia2.state.value[$id],
    set: (state) => {
      $patch(($state) => {
        assign$1($state, state);
      });
    }
  });
  pinia2._p.forEach((extender) => {
    {
      assign$1(store, scope.run(() => extender({
        store,
        app: pinia2._a,
        pinia: pinia2,
        options: optionsForPlugin
      })));
    }
  });
  if (initialState && isOptionsStore && options.hydrate) {
    options.hydrate(store.$state, initialState);
  }
  isListening = true;
  isSyncListening = true;
  return store;
}
function defineStore(idOrOptions, setup, setupOptions) {
  let id;
  let options;
  const isSetupStore = typeof setup === "function";
  if (typeof idOrOptions === "string") {
    id = idOrOptions;
    options = isSetupStore ? setupOptions : setup;
  } else {
    options = idOrOptions;
    id = idOrOptions.id;
  }
  function useStore(pinia2, hot) {
    const currentInstance2 = getCurrentInstance();
    pinia2 = // in test mode, ignore the argument provided as we can always retrieve a
    // pinia instance with getActivePinia()
    pinia2 || currentInstance2 && inject(piniaSymbol, null);
    if (pinia2)
      setActivePinia(pinia2);
    pinia2 = activePinia;
    if (!pinia2._s.has(id)) {
      if (isSetupStore) {
        createSetupStore(id, setup, options, pinia2);
      } else {
        createOptionsStore(id, options, pinia2);
      }
    }
    const store = pinia2._s.get(id);
    return store;
  }
  useStore.$id = id;
  return useStore;
}
function storeToRefs(store) {
  {
    store = toRaw(store);
    const refs = {};
    for (const key in store) {
      const value = store[key];
      if (isRef(value) || isReactive(value)) {
        refs[key] = // ---
        toRef(store, key);
      }
    }
    return refs;
  }
}
var __defProp2 = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp2 = (obj, key, value) => key in obj ? __defProp2(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp.call(b, prop))
      __defNormalProp2(a, prop, b[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b)) {
      if (__propIsEnum.call(b, prop))
        __defNormalProp2(a, prop, b[prop]);
    }
  return a;
};
var isFunction$2 = (value) => typeof value === "function";
var isString = (value) => typeof value === "string";
var isNonEmptyString = (value) => isString(value) && value.trim().length > 0;
var isNumber = (value) => typeof value === "number";
var isUndefined = (value) => typeof value === "undefined";
var isObject$1 = (value) => typeof value === "object" && value !== null;
var isJSX = (obj) => hasProp(obj, "tag") && isNonEmptyString(obj.tag);
var isTouchEvent = (event) => window.TouchEvent && event instanceof TouchEvent;
var isToastComponent = (obj) => hasProp(obj, "component") && isToastContent(obj.component);
var isVueComponent = (c) => isFunction$2(c) || isObject$1(c);
var isToastContent = (obj) => !isUndefined(obj) && (isString(obj) || isVueComponent(obj) || isToastComponent(obj));
var isDOMRect = (obj) => isObject$1(obj) && ["height", "width", "right", "left", "top", "bottom"].every((p2) => isNumber(obj[p2]));
var hasProp = (obj, propKey) => (isObject$1(obj) || isFunction$2(obj)) && propKey in obj;
var getId = ((i) => () => i++)(0);
function getX(event) {
  return isTouchEvent(event) ? event.targetTouches[0].clientX : event.clientX;
}
function getY(event) {
  return isTouchEvent(event) ? event.targetTouches[0].clientY : event.clientY;
}
var removeElement = (el) => {
  if (!isUndefined(el.remove)) {
    el.remove();
  } else if (el.parentNode) {
    el.parentNode.removeChild(el);
  }
};
var getVueComponentFromObj = (obj) => {
  if (isToastComponent(obj)) {
    return getVueComponentFromObj(obj.component);
  }
  if (isJSX(obj)) {
    return defineComponent({
      render() {
        return obj;
      }
    });
  }
  return typeof obj === "string" ? obj : toRaw(unref(obj));
};
var normalizeToastComponent = (obj) => {
  if (typeof obj === "string") {
    return obj;
  }
  const props = hasProp(obj, "props") && isObject$1(obj.props) ? obj.props : {};
  const listeners = hasProp(obj, "listeners") && isObject$1(obj.listeners) ? obj.listeners : {};
  return { component: getVueComponentFromObj(obj), props, listeners };
};
var isBrowser$1 = () => typeof window !== "undefined";
var EventBus = class {
  constructor() {
    this.allHandlers = {};
  }
  getHandlers(eventType) {
    return this.allHandlers[eventType] || [];
  }
  on(eventType, handler) {
    const handlers = this.getHandlers(eventType);
    handlers.push(handler);
    this.allHandlers[eventType] = handlers;
  }
  off(eventType, handler) {
    const handlers = this.getHandlers(eventType);
    handlers.splice(handlers.indexOf(handler) >>> 0, 1);
  }
  emit(eventType, event) {
    const handlers = this.getHandlers(eventType);
    handlers.forEach((handler) => handler(event));
  }
};
var isEventBusInterface = (e) => ["on", "off", "emit"].every((f) => hasProp(e, f) && isFunction$2(e[f]));
var TYPE;
(function(TYPE2) {
  TYPE2["SUCCESS"] = "success";
  TYPE2["ERROR"] = "error";
  TYPE2["WARNING"] = "warning";
  TYPE2["INFO"] = "info";
  TYPE2["DEFAULT"] = "default";
})(TYPE || (TYPE = {}));
var POSITION;
(function(POSITION2) {
  POSITION2["TOP_LEFT"] = "top-left";
  POSITION2["TOP_CENTER"] = "top-center";
  POSITION2["TOP_RIGHT"] = "top-right";
  POSITION2["BOTTOM_LEFT"] = "bottom-left";
  POSITION2["BOTTOM_CENTER"] = "bottom-center";
  POSITION2["BOTTOM_RIGHT"] = "bottom-right";
})(POSITION || (POSITION = {}));
var EVENTS;
(function(EVENTS2) {
  EVENTS2["ADD"] = "add";
  EVENTS2["DISMISS"] = "dismiss";
  EVENTS2["UPDATE"] = "update";
  EVENTS2["CLEAR"] = "clear";
  EVENTS2["UPDATE_DEFAULTS"] = "update_defaults";
})(EVENTS || (EVENTS = {}));
var VT_NAMESPACE = "Vue-Toastification";
var COMMON = {
  type: {
    type: String,
    default: TYPE.DEFAULT
  },
  classNames: {
    type: [String, Array],
    default: () => []
  },
  trueBoolean: {
    type: Boolean,
    default: true
  }
};
var ICON = {
  type: COMMON.type,
  customIcon: {
    type: [String, Boolean, Object, Function],
    default: true
  }
};
var CLOSE_BUTTON = {
  component: {
    type: [String, Object, Function, Boolean],
    default: "button"
  },
  classNames: COMMON.classNames,
  showOnHover: {
    type: Boolean,
    default: false
  },
  ariaLabel: {
    type: String,
    default: "close"
  }
};
var PROGRESS_BAR = {
  timeout: {
    type: [Number, Boolean],
    default: 5e3
  },
  hideProgressBar: {
    type: Boolean,
    default: false
  },
  isRunning: {
    type: Boolean,
    default: false
  }
};
var TRANSITION = {
  transition: {
    type: [Object, String],
    default: `${VT_NAMESPACE}__bounce`
  }
};
var CORE_TOAST = {
  position: {
    type: String,
    default: POSITION.TOP_RIGHT
  },
  draggable: COMMON.trueBoolean,
  draggablePercent: {
    type: Number,
    default: 0.6
  },
  pauseOnFocusLoss: COMMON.trueBoolean,
  pauseOnHover: COMMON.trueBoolean,
  closeOnClick: COMMON.trueBoolean,
  timeout: PROGRESS_BAR.timeout,
  hideProgressBar: PROGRESS_BAR.hideProgressBar,
  toastClassName: COMMON.classNames,
  bodyClassName: COMMON.classNames,
  icon: ICON.customIcon,
  closeButton: CLOSE_BUTTON.component,
  closeButtonClassName: CLOSE_BUTTON.classNames,
  showCloseButtonOnHover: CLOSE_BUTTON.showOnHover,
  accessibility: {
    type: Object,
    default: () => ({
      toastRole: "alert",
      closeButtonLabel: "close"
    })
  },
  rtl: {
    type: Boolean,
    default: false
  },
  eventBus: {
    type: Object,
    required: false,
    default: () => new EventBus()
  }
};
var TOAST = {
  id: {
    type: [String, Number],
    required: true,
    default: 0
  },
  type: COMMON.type,
  content: {
    type: [String, Object, Function],
    required: true,
    default: ""
  },
  onClick: {
    type: Function,
    default: void 0
  },
  onClose: {
    type: Function,
    default: void 0
  }
};
var CONTAINER = {
  container: {
    type: [
      Object,
      Function
    ],
    default: () => document.body
  },
  newestOnTop: COMMON.trueBoolean,
  maxToasts: {
    type: Number,
    default: 20
  },
  transition: TRANSITION.transition,
  toastDefaults: Object,
  filterBeforeCreate: {
    type: Function,
    default: (toast) => toast
  },
  filterToasts: {
    type: Function,
    default: (toasts) => toasts
  },
  containerClassName: COMMON.classNames,
  onMounted: Function,
  shareAppContext: [Boolean, Object]
};
var propValidators_default = {
  CORE_TOAST,
  TOAST,
  CONTAINER,
  PROGRESS_BAR,
  ICON,
  TRANSITION,
  CLOSE_BUTTON
};
var VtProgressBar_default = defineComponent({
  name: "VtProgressBar",
  props: propValidators_default.PROGRESS_BAR,
  data() {
    return {
      hasClass: true
    };
  },
  computed: {
    style() {
      return {
        animationDuration: `${this.timeout}ms`,
        animationPlayState: this.isRunning ? "running" : "paused",
        opacity: this.hideProgressBar ? 0 : 1
      };
    },
    cpClass() {
      return this.hasClass ? `${VT_NAMESPACE}__progress-bar` : "";
    }
  },
  watch: {
    timeout() {
      this.hasClass = false;
      this.$nextTick(() => this.hasClass = true);
    }
  },
  mounted() {
    this.$el.addEventListener("animationend", this.animationEnded);
  },
  beforeUnmount() {
    this.$el.removeEventListener("animationend", this.animationEnded);
  },
  methods: {
    animationEnded() {
      this.$emit("close-toast");
    }
  }
});
function render(_ctx, _cache) {
  return openBlock(), createElementBlock("div", {
    style: normalizeStyle(_ctx.style),
    class: normalizeClass(_ctx.cpClass)
  }, null, 6);
}
VtProgressBar_default.render = render;
var VtProgressBar_default2 = VtProgressBar_default;
var VtCloseButton_default = defineComponent({
  name: "VtCloseButton",
  props: propValidators_default.CLOSE_BUTTON,
  computed: {
    buttonComponent() {
      if (this.component !== false) {
        return getVueComponentFromObj(this.component);
      }
      return "button";
    },
    classes() {
      const classes = [`${VT_NAMESPACE}__close-button`];
      if (this.showOnHover) {
        classes.push("show-on-hover");
      }
      return classes.concat(this.classNames);
    }
  }
});
var _hoisted_1$E = /* @__PURE__ */ createTextVNode(" × ");
function render2(_ctx, _cache) {
  return openBlock(), createBlock(resolveDynamicComponent(_ctx.buttonComponent), mergeProps({
    "aria-label": _ctx.ariaLabel,
    class: _ctx.classes
  }, _ctx.$attrs), {
    default: withCtx(() => [
      _hoisted_1$E
    ]),
    _: 1
  }, 16, ["aria-label", "class"]);
}
VtCloseButton_default.render = render2;
var VtCloseButton_default2 = VtCloseButton_default;
var VtSuccessIcon_default = {};
var _hoisted_12$7 = {
  "aria-hidden": "true",
  focusable: "false",
  "data-prefix": "fas",
  "data-icon": "check-circle",
  class: "svg-inline--fa fa-check-circle fa-w-16",
  role: "img",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 512 512"
};
var _hoisted_2$w = /* @__PURE__ */ createBaseVNode("path", {
  fill: "currentColor",
  d: "M504 256c0 136.967-111.033 248-248 248S8 392.967 8 256 119.033 8 256 8s248 111.033 248 248zM227.314 387.314l184-184c6.248-6.248 6.248-16.379 0-22.627l-22.627-22.627c-6.248-6.249-16.379-6.249-22.628 0L216 308.118l-70.059-70.059c-6.248-6.248-16.379-6.248-22.628 0l-22.627 22.627c-6.248 6.248-6.248 16.379 0 22.627l104 104c6.249 6.249 16.379 6.249 22.628.001z"
}, null, -1);
var _hoisted_3$s = [
  _hoisted_2$w
];
function render3(_ctx, _cache) {
  return openBlock(), createElementBlock("svg", _hoisted_12$7, _hoisted_3$s);
}
VtSuccessIcon_default.render = render3;
var VtSuccessIcon_default2 = VtSuccessIcon_default;
var VtInfoIcon_default = {};
var _hoisted_13$7 = {
  "aria-hidden": "true",
  focusable: "false",
  "data-prefix": "fas",
  "data-icon": "info-circle",
  class: "svg-inline--fa fa-info-circle fa-w-16",
  role: "img",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 512 512"
};
var _hoisted_22$4 = /* @__PURE__ */ createBaseVNode("path", {
  fill: "currentColor",
  d: "M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"
}, null, -1);
var _hoisted_32$3 = [
  _hoisted_22$4
];
function render4(_ctx, _cache) {
  return openBlock(), createElementBlock("svg", _hoisted_13$7, _hoisted_32$3);
}
VtInfoIcon_default.render = render4;
var VtInfoIcon_default2 = VtInfoIcon_default;
var VtWarningIcon_default = {};
var _hoisted_14$5 = {
  "aria-hidden": "true",
  focusable: "false",
  "data-prefix": "fas",
  "data-icon": "exclamation-circle",
  class: "svg-inline--fa fa-exclamation-circle fa-w-16",
  role: "img",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 512 512"
};
var _hoisted_23$4 = /* @__PURE__ */ createBaseVNode("path", {
  fill: "currentColor",
  d: "M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
}, null, -1);
var _hoisted_33$3 = [
  _hoisted_23$4
];
function render5(_ctx, _cache) {
  return openBlock(), createElementBlock("svg", _hoisted_14$5, _hoisted_33$3);
}
VtWarningIcon_default.render = render5;
var VtWarningIcon_default2 = VtWarningIcon_default;
var VtErrorIcon_default = {};
var _hoisted_15$4 = {
  "aria-hidden": "true",
  focusable: "false",
  "data-prefix": "fas",
  "data-icon": "exclamation-triangle",
  class: "svg-inline--fa fa-exclamation-triangle fa-w-18",
  role: "img",
  xmlns: "http://www.w3.org/2000/svg",
  viewBox: "0 0 576 512"
};
var _hoisted_24$4 = /* @__PURE__ */ createBaseVNode("path", {
  fill: "currentColor",
  d: "M569.517 440.013C587.975 472.007 564.806 512 527.94 512H48.054c-36.937 0-59.999-40.055-41.577-71.987L246.423 23.985c18.467-32.009 64.72-31.951 83.154 0l239.94 416.028zM288 354c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
}, null, -1);
var _hoisted_34$2 = [
  _hoisted_24$4
];
function render6(_ctx, _cache) {
  return openBlock(), createElementBlock("svg", _hoisted_15$4, _hoisted_34$2);
}
VtErrorIcon_default.render = render6;
var VtErrorIcon_default2 = VtErrorIcon_default;
var VtIcon_default = defineComponent({
  name: "VtIcon",
  props: propValidators_default.ICON,
  computed: {
    customIconChildren() {
      return hasProp(this.customIcon, "iconChildren") ? this.trimValue(this.customIcon.iconChildren) : "";
    },
    customIconClass() {
      if (isString(this.customIcon)) {
        return this.trimValue(this.customIcon);
      } else if (hasProp(this.customIcon, "iconClass")) {
        return this.trimValue(this.customIcon.iconClass);
      }
      return "";
    },
    customIconTag() {
      if (hasProp(this.customIcon, "iconTag")) {
        return this.trimValue(this.customIcon.iconTag, "i");
      }
      return "i";
    },
    hasCustomIcon() {
      return this.customIconClass.length > 0;
    },
    component() {
      if (this.hasCustomIcon) {
        return this.customIconTag;
      }
      if (isToastContent(this.customIcon)) {
        return getVueComponentFromObj(this.customIcon);
      }
      return this.iconTypeComponent;
    },
    iconTypeComponent() {
      const types = {
        [TYPE.DEFAULT]: VtInfoIcon_default2,
        [TYPE.INFO]: VtInfoIcon_default2,
        [TYPE.SUCCESS]: VtSuccessIcon_default2,
        [TYPE.ERROR]: VtErrorIcon_default2,
        [TYPE.WARNING]: VtWarningIcon_default2
      };
      return types[this.type];
    },
    iconClasses() {
      const classes = [`${VT_NAMESPACE}__icon`];
      if (this.hasCustomIcon) {
        return classes.concat(this.customIconClass);
      }
      return classes;
    }
  },
  methods: {
    trimValue(value, empty = "") {
      return isNonEmptyString(value) ? value.trim() : empty;
    }
  }
});
function render7(_ctx, _cache) {
  return openBlock(), createBlock(resolveDynamicComponent(_ctx.component), {
    class: normalizeClass(_ctx.iconClasses)
  }, {
    default: withCtx(() => [
      createTextVNode(toDisplayString(_ctx.customIconChildren), 1)
    ]),
    _: 1
  }, 8, ["class"]);
}
VtIcon_default.render = render7;
var VtIcon_default2 = VtIcon_default;
var VtToast_default = defineComponent({
  name: "VtToast",
  components: { ProgressBar: VtProgressBar_default2, CloseButton: VtCloseButton_default2, Icon: VtIcon_default2 },
  inheritAttrs: false,
  props: Object.assign({}, propValidators_default.CORE_TOAST, propValidators_default.TOAST),
  data() {
    const data = {
      isRunning: true,
      disableTransitions: false,
      beingDragged: false,
      dragStart: 0,
      dragPos: { x: 0, y: 0 },
      dragRect: {}
    };
    return data;
  },
  computed: {
    classes() {
      const classes = [
        `${VT_NAMESPACE}__toast`,
        `${VT_NAMESPACE}__toast--${this.type}`,
        `${this.position}`
      ].concat(this.toastClassName);
      if (this.disableTransitions) {
        classes.push("disable-transition");
      }
      if (this.rtl) {
        classes.push(`${VT_NAMESPACE}__toast--rtl`);
      }
      return classes;
    },
    bodyClasses() {
      const classes = [
        `${VT_NAMESPACE}__toast-${isString(this.content) ? "body" : "component-body"}`
      ].concat(this.bodyClassName);
      return classes;
    },
    draggableStyle() {
      if (this.dragStart === this.dragPos.x) {
        return {};
      } else if (this.beingDragged) {
        return {
          transform: `translateX(${this.dragDelta}px)`,
          opacity: 1 - Math.abs(this.dragDelta / this.removalDistance)
        };
      } else {
        return {
          transition: "transform 0.2s, opacity 0.2s",
          transform: "translateX(0)",
          opacity: 1
        };
      }
    },
    dragDelta() {
      return this.beingDragged ? this.dragPos.x - this.dragStart : 0;
    },
    removalDistance() {
      if (isDOMRect(this.dragRect)) {
        return (this.dragRect.right - this.dragRect.left) * this.draggablePercent;
      }
      return 0;
    }
  },
  mounted() {
    if (this.draggable) {
      this.draggableSetup();
    }
    if (this.pauseOnFocusLoss) {
      this.focusSetup();
    }
  },
  beforeUnmount() {
    if (this.draggable) {
      this.draggableCleanup();
    }
    if (this.pauseOnFocusLoss) {
      this.focusCleanup();
    }
  },
  methods: {
    hasProp,
    getVueComponentFromObj,
    closeToast() {
      this.eventBus.emit(EVENTS.DISMISS, this.id);
    },
    clickHandler() {
      if (this.onClick) {
        this.onClick(this.closeToast);
      }
      if (this.closeOnClick) {
        if (!this.beingDragged || this.dragStart === this.dragPos.x) {
          this.closeToast();
        }
      }
    },
    timeoutHandler() {
      this.closeToast();
    },
    hoverPause() {
      if (this.pauseOnHover) {
        this.isRunning = false;
      }
    },
    hoverPlay() {
      if (this.pauseOnHover) {
        this.isRunning = true;
      }
    },
    focusPause() {
      this.isRunning = false;
    },
    focusPlay() {
      this.isRunning = true;
    },
    focusSetup() {
      addEventListener("blur", this.focusPause);
      addEventListener("focus", this.focusPlay);
    },
    focusCleanup() {
      removeEventListener("blur", this.focusPause);
      removeEventListener("focus", this.focusPlay);
    },
    draggableSetup() {
      const element = this.$el;
      element.addEventListener("touchstart", this.onDragStart, {
        passive: true
      });
      element.addEventListener("mousedown", this.onDragStart);
      addEventListener("touchmove", this.onDragMove, { passive: false });
      addEventListener("mousemove", this.onDragMove);
      addEventListener("touchend", this.onDragEnd);
      addEventListener("mouseup", this.onDragEnd);
    },
    draggableCleanup() {
      const element = this.$el;
      element.removeEventListener("touchstart", this.onDragStart);
      element.removeEventListener("mousedown", this.onDragStart);
      removeEventListener("touchmove", this.onDragMove);
      removeEventListener("mousemove", this.onDragMove);
      removeEventListener("touchend", this.onDragEnd);
      removeEventListener("mouseup", this.onDragEnd);
    },
    onDragStart(event) {
      this.beingDragged = true;
      this.dragPos = { x: getX(event), y: getY(event) };
      this.dragStart = getX(event);
      this.dragRect = this.$el.getBoundingClientRect();
    },
    onDragMove(event) {
      if (this.beingDragged) {
        event.preventDefault();
        if (this.isRunning) {
          this.isRunning = false;
        }
        this.dragPos = { x: getX(event), y: getY(event) };
      }
    },
    onDragEnd() {
      if (this.beingDragged) {
        if (Math.abs(this.dragDelta) >= this.removalDistance) {
          this.disableTransitions = true;
          this.$nextTick(() => this.closeToast());
        } else {
          setTimeout(() => {
            this.beingDragged = false;
            if (isDOMRect(this.dragRect) && this.pauseOnHover && this.dragRect.bottom >= this.dragPos.y && this.dragPos.y >= this.dragRect.top && this.dragRect.left <= this.dragPos.x && this.dragPos.x <= this.dragRect.right) {
              this.isRunning = false;
            } else {
              this.isRunning = true;
            }
          });
        }
      }
    }
  }
});
var _hoisted_16$4 = ["role"];
function render8(_ctx, _cache) {
  const _component_Icon = resolveComponent("Icon");
  const _component_CloseButton = resolveComponent("CloseButton");
  const _component_ProgressBar = resolveComponent("ProgressBar");
  return openBlock(), createElementBlock("div", {
    class: normalizeClass(_ctx.classes),
    style: normalizeStyle(_ctx.draggableStyle),
    onClick: _cache[0] || (_cache[0] = (...args) => _ctx.clickHandler && _ctx.clickHandler(...args)),
    onMouseenter: _cache[1] || (_cache[1] = (...args) => _ctx.hoverPause && _ctx.hoverPause(...args)),
    onMouseleave: _cache[2] || (_cache[2] = (...args) => _ctx.hoverPlay && _ctx.hoverPlay(...args))
  }, [
    _ctx.icon ? (openBlock(), createBlock(_component_Icon, {
      key: 0,
      "custom-icon": _ctx.icon,
      type: _ctx.type
    }, null, 8, ["custom-icon", "type"])) : createCommentVNode("v-if", true),
    createBaseVNode("div", {
      role: _ctx.accessibility.toastRole || "alert",
      class: normalizeClass(_ctx.bodyClasses)
    }, [
      typeof _ctx.content === "string" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
        createTextVNode(toDisplayString(_ctx.content), 1)
      ], 2112)) : (openBlock(), createBlock(resolveDynamicComponent(_ctx.getVueComponentFromObj(_ctx.content)), mergeProps({
        key: 1,
        "toast-id": _ctx.id
      }, _ctx.hasProp(_ctx.content, "props") ? _ctx.content.props : {}, toHandlers(_ctx.hasProp(_ctx.content, "listeners") ? _ctx.content.listeners : {}), { onCloseToast: _ctx.closeToast }), null, 16, ["toast-id", "onCloseToast"]))
    ], 10, _hoisted_16$4),
    !!_ctx.closeButton ? (openBlock(), createBlock(_component_CloseButton, {
      key: 1,
      component: _ctx.closeButton,
      "class-names": _ctx.closeButtonClassName,
      "show-on-hover": _ctx.showCloseButtonOnHover,
      "aria-label": _ctx.accessibility.closeButtonLabel,
      onClick: withModifiers(_ctx.closeToast, ["stop"])
    }, null, 8, ["component", "class-names", "show-on-hover", "aria-label", "onClick"])) : createCommentVNode("v-if", true),
    _ctx.timeout ? (openBlock(), createBlock(_component_ProgressBar, {
      key: 2,
      "is-running": _ctx.isRunning,
      "hide-progress-bar": _ctx.hideProgressBar,
      timeout: _ctx.timeout,
      onCloseToast: _ctx.timeoutHandler
    }, null, 8, ["is-running", "hide-progress-bar", "timeout", "onCloseToast"])) : createCommentVNode("v-if", true)
  ], 38);
}
VtToast_default.render = render8;
var VtToast_default2 = VtToast_default;
var VtTransition_default = defineComponent({
  name: "VtTransition",
  props: propValidators_default.TRANSITION,
  emits: ["leave"],
  methods: {
    hasProp,
    leave(el) {
      if (el instanceof HTMLElement) {
        el.style.left = el.offsetLeft + "px";
        el.style.top = el.offsetTop + "px";
        el.style.width = getComputedStyle(el).width;
        el.style.position = "absolute";
      }
    }
  }
});
function render9(_ctx, _cache) {
  return openBlock(), createBlock(TransitionGroup, {
    tag: "div",
    "enter-active-class": _ctx.transition.enter ? _ctx.transition.enter : `${_ctx.transition}-enter-active`,
    "move-class": _ctx.transition.move ? _ctx.transition.move : `${_ctx.transition}-move`,
    "leave-active-class": _ctx.transition.leave ? _ctx.transition.leave : `${_ctx.transition}-leave-active`,
    onLeave: _ctx.leave
  }, {
    default: withCtx(() => [
      renderSlot(_ctx.$slots, "default")
    ]),
    _: 3
  }, 8, ["enter-active-class", "move-class", "leave-active-class", "onLeave"]);
}
VtTransition_default.render = render9;
var VtTransition_default2 = VtTransition_default;
var VtToastContainer_default = defineComponent({
  name: "VueToastification",
  devtools: {
    hide: true
  },
  components: { Toast: VtToast_default2, VtTransition: VtTransition_default2 },
  props: Object.assign({}, propValidators_default.CORE_TOAST, propValidators_default.CONTAINER, propValidators_default.TRANSITION),
  data() {
    const data = {
      count: 0,
      positions: Object.values(POSITION),
      toasts: {},
      defaults: {}
    };
    return data;
  },
  computed: {
    toastArray() {
      return Object.values(this.toasts);
    },
    filteredToasts() {
      return this.defaults.filterToasts(this.toastArray);
    }
  },
  beforeMount() {
    const events = this.eventBus;
    events.on(EVENTS.ADD, this.addToast);
    events.on(EVENTS.CLEAR, this.clearToasts);
    events.on(EVENTS.DISMISS, this.dismissToast);
    events.on(EVENTS.UPDATE, this.updateToast);
    events.on(EVENTS.UPDATE_DEFAULTS, this.updateDefaults);
    this.defaults = this.$props;
  },
  mounted() {
    this.setup(this.container);
  },
  methods: {
    async setup(container) {
      if (isFunction$2(container)) {
        container = await container();
      }
      removeElement(this.$el);
      container.appendChild(this.$el);
    },
    setToast(props) {
      if (!isUndefined(props.id)) {
        this.toasts[props.id] = props;
      }
    },
    addToast(params) {
      params.content = normalizeToastComponent(params.content);
      const props = Object.assign({}, this.defaults, params.type && this.defaults.toastDefaults && this.defaults.toastDefaults[params.type], params);
      const toast = this.defaults.filterBeforeCreate(props, this.toastArray);
      toast && this.setToast(toast);
    },
    dismissToast(id) {
      const toast = this.toasts[id];
      if (!isUndefined(toast) && !isUndefined(toast.onClose)) {
        toast.onClose();
      }
      delete this.toasts[id];
    },
    clearToasts() {
      Object.keys(this.toasts).forEach((id) => {
        this.dismissToast(id);
      });
    },
    getPositionToasts(position) {
      const toasts = this.filteredToasts.filter((toast) => toast.position === position).slice(0, this.defaults.maxToasts);
      return this.defaults.newestOnTop ? toasts.reverse() : toasts;
    },
    updateDefaults(update) {
      if (!isUndefined(update.container)) {
        this.setup(update.container);
      }
      this.defaults = Object.assign({}, this.defaults, update);
    },
    updateToast({
      id,
      options,
      create: create2
    }) {
      if (this.toasts[id]) {
        if (options.timeout && options.timeout === this.toasts[id].timeout) {
          options.timeout++;
        }
        this.setToast(Object.assign({}, this.toasts[id], options));
      } else if (create2) {
        this.addToast(Object.assign({}, { id }, options));
      }
    },
    getClasses(position) {
      const classes = [`${VT_NAMESPACE}__container`, position];
      return classes.concat(this.defaults.containerClassName);
    }
  }
});
function render10(_ctx, _cache) {
  const _component_Toast = resolveComponent("Toast");
  const _component_VtTransition = resolveComponent("VtTransition");
  return openBlock(), createElementBlock("div", null, [
    (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.positions, (pos) => {
      return openBlock(), createElementBlock("div", { key: pos }, [
        createVNode(_component_VtTransition, {
          transition: _ctx.defaults.transition,
          class: normalizeClass(_ctx.getClasses(pos))
        }, {
          default: withCtx(() => [
            (openBlock(true), createElementBlock(Fragment, null, renderList(_ctx.getPositionToasts(pos), (toast) => {
              return openBlock(), createBlock(_component_Toast, mergeProps({
                key: toast.id
              }, toast), null, 16);
            }), 128))
          ]),
          _: 2
        }, 1032, ["transition", "class"])
      ]);
    }), 128))
  ]);
}
VtToastContainer_default.render = render10;
var VtToastContainer_default2 = VtToastContainer_default;
var buildInterface = (globalOptions = {}, mountContainer = true) => {
  const events = globalOptions.eventBus = globalOptions.eventBus || new EventBus();
  if (mountContainer) {
    nextTick(() => {
      const app2 = createApp(VtToastContainer_default2, __spreadValues({}, globalOptions));
      const component = app2.mount(document.createElement("div"));
      const onMounted2 = globalOptions.onMounted;
      if (!isUndefined(onMounted2)) {
        onMounted2(component, app2);
      }
      if (globalOptions.shareAppContext) {
        const baseApp = globalOptions.shareAppContext;
        if (baseApp === true) {
          console.warn(`[${VT_NAMESPACE}] App to share context with was not provided.`);
        } else {
          app2._context.components = baseApp._context.components;
          app2._context.directives = baseApp._context.directives;
          app2._context.mixins = baseApp._context.mixins;
          app2._context.provides = baseApp._context.provides;
          app2.config.globalProperties = baseApp.config.globalProperties;
        }
      }
    });
  }
  const toast = (content, options) => {
    const props = Object.assign({}, { id: getId(), type: TYPE.DEFAULT }, options, {
      content
    });
    events.emit(EVENTS.ADD, props);
    return props.id;
  };
  toast.clear = () => events.emit(EVENTS.CLEAR, void 0);
  toast.updateDefaults = (update) => {
    events.emit(EVENTS.UPDATE_DEFAULTS, update);
  };
  toast.dismiss = (id) => {
    events.emit(EVENTS.DISMISS, id);
  };
  function updateToast(id, { content, options }, create2 = false) {
    const opt = Object.assign({}, options, { content });
    events.emit(EVENTS.UPDATE, {
      id,
      options: opt,
      create: create2
    });
  }
  toast.update = updateToast;
  toast.success = (content, options) => toast(content, Object.assign({}, options, { type: TYPE.SUCCESS }));
  toast.info = (content, options) => toast(content, Object.assign({}, options, { type: TYPE.INFO }));
  toast.error = (content, options) => toast(content, Object.assign({}, options, { type: TYPE.ERROR }));
  toast.warning = (content, options) => toast(content, Object.assign({}, options, { type: TYPE.WARNING }));
  return toast;
};
var createMockToastInterface = () => {
  const toast = () => console.warn(`[${VT_NAMESPACE}] This plugin does not support SSR!`);
  return new Proxy(toast, {
    get() {
      return toast;
    }
  });
};
function createToastInterface(optionsOrEventBus) {
  if (!isBrowser$1()) {
    return createMockToastInterface();
  }
  if (isEventBusInterface(optionsOrEventBus)) {
    return buildInterface({ eventBus: optionsOrEventBus }, false);
  }
  return buildInterface(optionsOrEventBus, true);
}
var toastInjectionKey = Symbol("VueToastification");
var globalEventBus = new EventBus();
var VueToastificationPlugin = (App2, options) => {
  if ((options == null ? void 0 : options.shareAppContext) === true) {
    options.shareAppContext = App2;
  }
  const inter = createToastInterface(__spreadValues({
    eventBus: globalEventBus
  }, options));
  App2.provide(toastInjectionKey, inter);
};
var useToast = (eventBus) => {
  if (eventBus) {
    return createToastInterface(eventBus);
  }
  const toast = getCurrentInstance() ? inject(toastInjectionKey, void 0) : void 0;
  return toast ? toast : createToastInterface(globalEventBus);
};
var src_default = VueToastificationPlugin;
class CookiesService {
  constructor() {
    __publicField(this, "auth");
    __publicField(this, "sess");
    const authorizationToken = this.getCookie("vba-user");
    this.auth = authorizationToken !== null ? authorizationToken : "";
    const sessionToken = this.getCookie("vba-sess");
    this.sess = sessionToken !== null ? sessionToken : "";
  }
  removeAllCookies() {
    document.cookie = "vba-user=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
    document.cookie = "vba-sess=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
    document.cookie = "vba-term=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;";
  }
  getCookie(name) {
    const match = document.cookie.match(RegExp("(?:^|;\\s*)" + name.replace(/([.*+?\^$(){}|\[\]\/\\])/g, "\\$1") + "=([^;]*)"));
    const decoded = match ? decodeURIComponent(match[1]) : null;
    return decoded;
  }
  getAuthorizationToken() {
    return this.auth;
  }
  getSessionToken() {
    return this.sess;
  }
  setCookies(cookies) {
    for (let i = 0; i < cookies.length; i++) {
      document.cookie = cookies[i].key + "=" + cookies[i].value;
    }
  }
}
class KeyValuePair {
  constructor(key, value) {
    this.key = key;
    this.value = value;
  }
}
class VbaCoreSecurity {
  constructor() {
    __publicField(this, "apiService", new APIService());
    __publicField(this, "cookiesService", new CookiesService());
    __publicField(this, "toast", useToast());
    __publicField(this, "loginInfo", reactive({
      multiFactorAuthRequired: null,
      terminal: null,
      sessionToken: null,
      authToken: null,
      msg: null
    }));
  }
  async login(userName, password) {
    return new Promise((resolve2, reject) => {
      this.apiService.apiGetLogin(userName, password, "GET").then(async (resp) => {
        if (resp.ok) {
          await this.processLoginResponse(resp).then(() => {
            if (this.loginInfo.multiFactorAuthRequired) {
              return resolve2({
                login: false,
                mfa: true,
                authType: this.loginInfo.authIntegrationType
              });
            } else {
              this.routeAppOnLoginSuccess();
              return resolve2({
                login: true,
                mfa: false
              });
            }
          });
        } else {
          this.toast.error("Login Failed: Please enter a correct username and password.");
          return reject({
            login: false,
            mfa: false
          });
        }
      });
    });
  }
  async loginWithMfaPin(authInfo) {
    const authInfoObj = {
      pin: authInfo.pin,
      user_id: 0,
      status: "",
      message: "",
      provisioning_image_url: ""
    };
    return new Promise((resolve2, reject) => {
      this.apiService.apiGetLogin(authInfo.username, authInfo.password, "POST", authInfoObj).then(async (resp) => {
        if (resp.ok) {
          await this.processLoginResponse(resp);
          this.routeAppOnLoginSuccess();
          return resolve2({
            login: true
          });
        } else {
          this.toast.error("Login Failed: Failure validating multi-factor authentication pin.");
          return reject({
            login: false
          });
        }
      });
    });
  }
  logout() {
    this.apiService.logout();
    this.cookiesService.removeAllCookies();
    window.location.replace(location.origin);
  }
  getTerminal() {
    const terminal = this.cookiesService.getCookie("vba-term");
    return terminal !== null ? terminal : "";
  }
  isAdminTerminal() {
    return this.getTerminal() === "AT";
  }
  routeAppOnLoginSuccess() {
    var el = document.getElementById("vba-sign-in-button");
    const event2 = new CustomEvent("click", {
      detail: {
        terminal: this.loginInfo.terminal
      }
    });
    el?.dispatchEvent(event2);
  }
  async processLoginResponse(resp) {
    await resp.json().then((result) => {
      this.loginInfo.multiFactorAuthRequired = result.MultiFactorAuthRequired;
      this.loginInfo.terminal = result.Terminal;
      this.loginInfo.authIntegrationType = result.AuthIntegrationType;
    });
    this.loginInfo.sessionToken = resp.headers.get("Session-Token");
    this.loginInfo.authToken = resp.headers.get("Authorization-Token");
    let cookies = new Array();
    cookies.push(new KeyValuePair("vba-sess", this.loginInfo.sessionToken));
    cookies.push(new KeyValuePair("vba-user", this.loginInfo.authToken));
    cookies.push(new KeyValuePair("vba-term", this.loginInfo.terminal));
    this.cookiesService.setCookies(cookies);
  }
}
const useUserStore = defineStore("user", () => {
  const apiService = new APIService();
  const vbaCoreSecurity = new VbaCoreSecurity();
  const user = reactive({
    terminal: vbaCoreSecurity.getTerminal(),
    portal: "",
    isTestPortal: false
  });
  const userProfile = reactive({
    UserName: "",
    Terminal: "",
    Paperless: "",
    UserEmail: "",
    Chat_User: true,
    IsImpersonated: false,
    ImpersonationUserName: "",
    ImpersonationGuid: "",
    ImpersonatingThisUserName: "",
    Check_In: null,
    FirstName: "",
    LastName: "",
    Organization: "",
    PhoneNumber: "",
    FaxNumber: "",
    Auth_Integration_Type: "",
    UserId: 0,
    IsMemberRepresentative: false,
    MemberRepresentativeAgentType: "",
    PrudentialID: "",
    Roles: [],
    IsSuperUser: false
  });
  const userNotifications = reactive({
    ClientNotificationsEnabled: false,
    NotificationLanguage: "",
    Notification: reactive({
      NotificationsEnabled: false,
      TextEnabled: false,
      EmailEnabled: false,
      PhoneNumber: "",
      EmailAddress: ""
    })
  });
  const memberRepresentatives = reactive([]);
  async function getUserProfile() {
    await apiService.getUserProfile().then((result) => {
      Object.assign(userProfile, result);
    });
  }
  getUserProfile();
  async function DDList_RegistrationPortal() {
    const result = await apiService.DDList_RegistrationPortal();
    result.forEach((item) => {
      if (item.Terminal === user.terminal) {
        user.portal = item.Text;
        let test = item.Text.toLowerCase().includes("test");
        if (test) {
          user.isTestPortal = true;
        } else {
          user.isTestPortal = false;
        }
      }
      return false;
    });
  }
  DDList_RegistrationPortal();
  async function updateUserProfile(updatedUserProfile) {
    return apiService.updateUserProfile(updatedUserProfile).then((result) => {
      Object.assign(userProfile, result);
      return "success";
    }).catch((error) => {
      return "error";
    });
  }
  async function getUserNotifications() {
    return apiService.getUserNotifications().then((result) => {
      Object.assign(userNotifications, result);
      return result;
    });
  }
  async function getUserAccessGrantedToUser() {
    return apiService.MTUserAccess().then((result) => {
      return result;
    });
  }
  async function getUserAccessGrantedByUser() {
    return apiService.getMTUserGiveAccess().then((result) => {
      return result;
    });
  }
  async function setUserAccessGrantedByUser(adding, userID, subscriberID, memberSeq) {
    return apiService.updateMTUserGiveAccess(adding, userID, subscriberID, memberSeq).then((result) => {
      return result;
    });
  }
  async function getMemberRepresentatives() {
    return apiService.MT_MemberRepresentatives().then((result) => {
      memberRepresentatives.length = 0;
      result.forEach((item) => {
        memberRepresentatives.push(item);
      });
      return result;
    });
  }
  async function deleteMemberRepresentative(memberRepresentative_Key) {
    return apiService.deleteMemberRepresentative(memberRepresentative_Key).then((result) => {
      getMemberRepresentatives();
      return result;
    });
  }
  async function addMemberRepresentative(memberRepresentative) {
    return apiService.addMemberRepresentative(memberRepresentative).then((result) => {
      getMemberRepresentatives();
      return result;
    });
  }
  async function updateMemberRepresentative(email2, key) {
    return apiService.updateMemberRepresentative(email2, key).then((result) => {
      getMemberRepresentatives();
      return result;
    });
  }
  async function inviteMemberRepresentative(key, type) {
    return apiService.inviteMemberRepresentatives(key, type).then((result) => {
      getMemberRepresentatives();
      return result;
    });
  }
  return {
    user,
    userProfile,
    userNotifications,
    memberRepresentatives,
    updateUserProfile,
    getUserNotifications,
    getUserAccessGrantedToUser,
    getUserAccessGrantedByUser,
    setUserAccessGrantedByUser,
    getMemberRepresentatives,
    deleteMemberRepresentative,
    addMemberRepresentative,
    updateMemberRepresentative,
    inviteMemberRepresentative
  };
});
class APIService {
  constructor() {
    __publicField(this, "cookiesService", new CookiesService());
    // TODO: Replace with HTTPONLY COOKIES
    __publicField(this, "auth");
    __publicField(this, "sess");
    __publicField(this, "getNotificationDropdownList", async () => {
      return this.apiGet("AT_ManageNotifications/GetNotificationDropdown");
    });
    __publicField(this, "getAdminPlanList", async () => {
      return this.apiGet("AT_PlanList");
    });
    this.auth = this.cookiesService.getAuthorizationToken();
    this.sess = this.cookiesService.getSessionToken();
  }
  async apiFetch(uri, method, data, contentType) {
    const baseUrl = globalProperties$1.$appConfig.apiUrl;
    let headers = {
      Accept: "application/json",
      "Authorization-Token": this.auth,
      "Session-Token": this.sess
    };
    let body = JSON.stringify(data);
    if (contentType) {
      switch (contentType) {
        case "FORMDATA":
          body = data;
          break;
      }
    } else {
      headers["Content-Type"] = "application/json";
    }
    const response = await fetch(baseUrl + uri, {
      method,
      headers,
      body
    });
    const responseString = await response.text();
    let res = null;
    if (responseString != "") {
      res = JSON.parse(responseString);
      if (!response.ok) {
        console.error(`THERE WAS AN ERROR AND WE DIDN'T HANDLE IT: ${response.statusText}`);
        var message = res.Message ? res.Message : "There was an error processing your request. Please try again later.";
        return { status: response.status, message };
      } else {
        return res;
      }
    } else {
      return { status: response.status, message: response.statusText };
    }
  }
  getAuthorizationHeader(userName, password) {
    const encodedCredentials = btoa(userName + ":" + password);
    return "Basic " + encodedCredentials;
  }
  async apiFetchLogin(userName, password, method, data) {
    const baseUrl = globalProperties$1.$appConfig.apiUrl;
    const uri = "Login";
    let response;
    let request = {
      method,
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json;charset=utf-8",
        "Authorization-Token": this.auth,
        "Session-Token": this.sess,
        Authorization: this.getAuthorizationHeader(userName, password)
      },
      credentials: "include"
    };
    if (method == "GET") {
      response = await fetch(baseUrl + uri, request);
    } else {
      request = { ...request, body: JSON.stringify(data) };
      response = await fetch(baseUrl + uri, request);
    }
    if (!response.ok) {
      console.error(`THERE WAS AN ERROR AND WE DIDN'T HANDLE IT: ${response.statusText}`);
    }
    return response;
  }
  async apiGet(uri) {
    return this.apiFetch(uri, "GET");
  }
  async apiPost(uri, data, contentType) {
    return this.apiFetch(uri, "POST", data, contentType);
  }
  async apiGetLogin(userName, password, method, data) {
    if (method == "GET") {
      return this.apiFetchLogin(userName, password, method);
    } else {
      return this.apiFetchLogin(userName, password, method, data);
    }
  }
  async apiDelete(uri, data) {
    return this.apiFetch(uri, "DELETE", data);
  }
  // POST
  // DELETE
  // UPLOAD FORM DATA
  async ClientScreenConfig(terminal) {
    let clientScreenConfigs = [];
    clientScreenConfigs = clientScreenConfigs.concat(await this.GetClientScreenConfigs(terminal, "", ""));
    clientScreenConfigs = clientScreenConfigs.concat(await this.GetClientScreenConfigs(terminal, "home", ""));
    clientScreenConfigs = clientScreenConfigs.concat(await this.GetClientScreenConfigs(terminal, "home", "screen"));
    return clientScreenConfigs;
  }
  async GetClientScreenConfigs(terminal, screen, pod) {
    return await this.apiGet(`clientScreenConfig?Terminal=${terminal}&ScreenID=${screen}&PODID=${pod}`).then((data) => {
      return data;
    });
  }
  async MTInsuredDetails() {
    return this.apiGet("MT_InsuredDetails/GetMT_InsuredDetails");
  }
  async MTClaimsDetails() {
    return this.apiGet("MT_ClaimDetails");
  }
  async MTInsuredEnrollment(subscriberID, memberSeq, dependentSearch) {
    return this.apiGet(`MT_InsuredEnrollment?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}&DependentSearch=${dependentSearch}`);
  }
  async MTInsuredNetwork() {
    return this.apiGet("MT_InsuredNetwork");
  }
  async MTDDListPlanSummary(subscriberID, memberSeq) {
    return this.apiGet(`MT_DDList_PlanSummary?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}`);
  }
  async DDListPlanType() {
    return this.apiGet("DDList_PlanType");
  }
  async DDListAccumPlanType(subscriberID, memberSeq) {
    return this.apiGet(`DDList_AccumPlanType?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}`);
  }
  async MTPlanSummary(planID, groupID, divisionID) {
    return this.apiGet(`MT_PlanSummary?PlanID=${planID}&GroupID=${groupID}&DivisionID=${divisionID}`);
  }
  async MTPlanBenefitSummary(planID) {
    return this.apiGet(`MT_PlanBenefitSummary?PlanID=${planID}`);
  }
  async AddedAccumPlanList(planID) {
    return this.apiGet(`AddedAccumPlanList/GetAddedAccumPlanListByPlanID?PlanID=${planID}`);
  }
  async ETSubscriberFamilyList(subscriberID) {
    return this.apiGet(`ET_SubscriberFamilyList?SubscriberID=${subscriberID}`);
  }
  async MTAccumulatorDetails(subscriberID, memberSeq, planType, accumPeriodStart) {
    return this.apiGet(
      `MT_AccumulatorDetailsPlanTypeAccumStart/MT_AccumulatorDetailsPlanTypeAccumStart?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}&PlanType=${planType}&AccumPeriodStart=${accumPeriodStart}`
    );
  }
  async MTDDListAccumPeriodPlanType(subscriberID, memberSeq, planType) {
    return this.apiGet(`MT_DDList_AccumPeriodPlanType?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}&PlanType=${planType}`);
  }
  async MTDDListAccumPeriodPlan(subscriberID, memberSeq, planID) {
    return this.apiGet(`MT_DDList_AccumPeriodPlan?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}&PlanID=${planID}`);
  }
  async MTPlanOverviewBenefits(subscriberID, memberSeq, planType, planID, planYear) {
    return this.apiGet(
      `MT_PlanOverviewBenefits?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}&PlanType=${planType}&PlanID=${planID}&PlanYear=${planYear}`
    );
  }
  async MTDDListAccumPlanType(subscriberID, memberSeq) {
    return this.apiGet(`MT_DDList_AccumPlanType?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}`);
  }
  async LoadPinnedLinks() {
    return this.apiGet(`Resource/PinnedLinks`);
  }
  async LoadLinkResources() {
    return this.apiGet(`Resource/Links`);
  }
  async LoadDocumentResources() {
    return this.apiGet(`Resource/Documents`);
  }
  async getRecentClaims(topCount, subscriberID, memberSeq, planType) {
    return this.apiGet(`Claim/RecentClaims?topCount=${topCount}&subscriberID=${subscriberID}&memberSeq=${memberSeq}&planType=${planType}`);
  }
  async Announcement() {
    return this.apiGet("Announcement/GetAnnouncementList");
  }
  async getRequestQuestionConfigList() {
    return this.apiGet(
      `RequestQuestionConfig/GetRequestQuestionConfigList?requestType=FAQ&answerType=FAQ&terminal=${useUserStore().user.terminal}`
    );
  }
  async MTUserAccess() {
    return this.apiGet("MT_UserAccess");
  }
  async getMTUserGiveAccess() {
    return this.apiGet("MT_UserGiveAccess");
  }
  async updateMTUserGiveAccess(adding, userID, subscriberID, memberSeq) {
    return this.apiPost(`MT_UserGiveAccess`, {
      Adding: adding,
      userID,
      SubscriberID: subscriberID,
      MemberSeq: memberSeq
    });
  }
  async MT_Member(subscriberID, memberSeq) {
    return this.apiGet(`MT_Member?SubscriberId=${subscriberID}&MemberSeq=${memberSeq}`);
  }
  async MT_MemberAddress__GetAddresses() {
    return this.apiGet("MT_MemberAddress/GetAddresses");
  }
  async MT_MemberBeneficiaries__List(subscriberID) {
    return this.apiGet(`MT_MemberBeneficiaries/List?SubscriberID=${subscriberID}`);
  }
  async LoadBenefitTracker(subscriberID, memberSeq, planType) {
    return this.apiGet(`MT_BenefitTracker?subscriberID=${subscriberID}&memberSeq=${memberSeq}&planType=${planType}`);
  }
  async SubmitRequest(data) {
    return this.apiPost("CreateRequest/Create", data);
  }
  async CreateRequest(data) {
    return this.apiPost("CreateRequest/Post", data);
  }
  async RequestAttachment(key, data) {
    return this.apiPost(`RequestAttachment?RequestKey=${key}`, data, "FORMDATA");
  }
  async DocumentUpload(data) {
    return this.apiPost(`DocumentUpload`, data, "FORMDATA");
  }
  async getRequestQuestions(requestType, configs2) {
    let data = { RequestType: requestType, ...configs2 };
    return this.apiPost("RequestQuestionConfig/GetQuestionsByConfigs", data);
  }
  async DynamicGet(apiUrl, parameters) {
    let paramString = parameters.length > 0 ? "?" : "";
    for (let index2 = 0; index2 < parameters.length; index2++) {
      const p2 = parameters[index2];
      paramString += `${p2.key}=${p2.value}`;
      if (index2 < parameters.length - 1) {
        paramString += "&";
      }
    }
    return this.apiGet(apiUrl + paramString);
  }
  async email(data) {
    return this.apiPost(
      `Email/?ToAddress=${data.ToAddress}&Subject=${data.Subject}&MessageBody=${data.MessageBody}&EmailType=${data.EmailType}&Token=${data.Token}`,
      {}
    );
  }
  async getInvoiceDetail() {
    return this.apiGet("MT_InvoiceDetail/GetMT_InvoiceDetail");
  }
  async getClientConfigs(terminal) {
    return this.apiGet(`ClientConfigList?Terminal=${terminal}`);
  }
  async setLoginBackgroundColor(colorString) {
    return this.apiPost(`BackgroundColorForLoginPage`, { colorString });
  }
  async getExternalClientConfigs() {
    return this.apiGet(`EX_ClientConfigList`);
  }
  async getGroupInfoFromPlan(planId) {
    return this.apiGet(`Group/GetGroupInfoFromPlan?planId=${planId}`);
  }
  async getInvoiceRateDetail(invoiceKey, subscriberID) {
    return this.apiGet(`ET_InvoiceRateDetail?InvoiceKey=${invoiceKey}&SubscriberID=${subscriberID}`);
  }
  async validateRegistrationFields(fields) {
    return this.apiPost("Registration/ValidateRegistration", fields);
  }
  async getSubscriberULD(subscriberID) {
    return this.apiGet(`SubscriberULD/GetSubscriberULD?SubscriberID=${subscriberID}`);
  }
  async getFillableDocument(DocumentType) {
    try {
      return await this.apiGet(`AT_FillableDocument/GetAT_FillableDocument?DocumentType=${DocumentType}`);
    } catch (error) {
      console.error("Error in getFillableDocument:", error);
    }
  }
  async uploadAttachment(formData, requestKey, uploadToCase360) {
    if (uploadToCase360) {
      return this.apiPost(`RequestAttachment?RequestKey=${requestKey}&UploadToCase360=${uploadToCase360}`, formData, "FORMDATA");
    } else {
      return this.apiPost(`RequestAttachment?RequestKey=${requestKey}`, formData, "FORMDATA");
    }
  }
  async getInvoiceDetailLtc(subscriberID) {
    return this.apiGet(`MT_InvoiceDetailLtc/GetMT_InvoiceDetailLtc?SubscriberID=${subscriberID}`);
  }
  async Register(fields) {
    return this.apiPost("Registration/Register", fields);
  }
  async getProviderLookup(taxId, zip, claim1, claim2, regCode, lookupByRegCode) {
    return this.apiGet(
      `EX_ProviderList?TaxID=${taxId}&ZipCode=${zip}&ClaimNumber1=${claim1}&ClaimNumber2=${claim2}&RegCode=${regCode}&LookupByRegCode=${lookupByRegCode}`
    );
  }
  async SendUsernameRecoverEmail(email2) {
    return this.apiPost(`RecoverUsernames`, { UserEmail: email2 });
  }
  async RecoverPassword(userName) {
    return this.apiPost(`RecoverPassword`, { UserName: userName });
  }
  async resetPassword(validationToken, newPassword, userGuid, oldPassword) {
    return this.apiPost(`ResetPassword`, {
      ValidationToken: validationToken,
      NewPassword: newPassword,
      UserGuid: userGuid,
      OldPassword: oldPassword
    });
  }
  async resetAdminImpersonationPassword(validationToken, newPassword, impersonationGuid, oldPassword) {
    return this.apiPost(`AT_ResetPassword`, {
      ValidationToken: validationToken,
      NewPassword: newPassword,
      UserGuid: impersonationGuid,
      OldPassword: oldPassword
    });
  }
  async activateReg(activate) {
    return this.apiPost(`ActivateLogin`, activate);
  }
  async getOpenEnrollmentPeriod(category) {
    return this.apiGet(`EX_DDList_OpenEnrollmentPeriodsByCategory/GetET_DDList_OpenEnrollmentPeriods?category=${category}`);
  }
  async getRegTermsAndConditions(ssn, dob, regCode) {
    if (regCode == "") {
      return this.apiGet(`Registration/GetTermsAndConditions?ssn=${ssn}&dob=${dob}`);
    } else {
      return this.apiGet(`Registration/GetTermsAndConditions?regCode=${regCode}`);
    }
  }
  async logRegTermsAndConditions(termsAndConditionsKey, guid) {
    return this.apiPost(`Registration/LogTermsAndConditions?termsAndConditionsKey=${termsAndConditionsKey}&guid=${guid}`, {});
  }
  async getLoginTermsAndConditions() {
    return this.apiGet(`MT_TermsAndConditions/GetNewTermsAndConditions`);
  }
  async logLoginTermsAndConditions(data) {
    return this.apiPost(`MT_TermsAndConditions/LogTermsAndConditions`, data);
  }
  async logout() {
    return this.apiPost(`Logout`, {});
  }
  async getUserNotifications() {
    return this.apiGet(`UserNotification/GetUserNotification`);
  }
  async logUserNotifications(userNotifications) {
    return this.apiPost(`UserNotification/PostUserNotification`, userNotifications);
  }
  async getUserProfile() {
    return this.apiGet("UserProfile");
  }
  async updateUserProfile(data) {
    return this.apiPost(`UserProfile`, data);
  }
  async DDList_RegistrationPortal() {
    return this.apiGet("DDList_RegistrationPortal");
  }
  async activateRepresentative(token, birthDate) {
    return this.apiPost(`MT_MemberRepresentatives/Activate`, { Token: token, BirthDate: birthDate });
  }
  async getConfirmationStatus(token) {
    return this.apiGet(`MT_MemberRepresentatives/ConfirmationStatus?token=${token}`);
  }
  async postAccountInfo(accountInfo) {
    const payload = {
      token: accountInfo.token,
      payload: accountInfo.password,
      username: accountInfo.username
    };
    return this.apiPost(`MT_MemberRepresentatives/AccountInfo`, payload);
  }
  async getDefaultNotifications() {
    return this.apiGet(`AT_ManageNotifications/GetDefaultNotifications`);
  }
  async getAdminUserList() {
    return this.apiGet(`AT_UserAdminList/GetAT_UserAdminList`);
  }
  async AddAdminNotificationSubscriptions(data) {
    return this.apiPost(`AT_ManageNotifications/AddNotificationSubscription`, data).then((response) => {
      console.log("Subscription added successfully:", response);
      return response;
    }).catch((error) => {
      console.error("Error adding subscription:", error);
      throw error;
    });
  }
  async UpdateAdminNotificationSubscriptions(data) {
    return this.apiPost(`AT_ManageNotifications/UpdateNotificationSubscription`, data).then((response) => {
      console.log("Subscription updated successfully:", response);
      return response;
    }).catch((error) => {
      console.error("Error updating subscription:", error);
      throw error;
    });
  }
  async DeleteAdminNotificationSubscriptions(data) {
    return this.apiDelete(`AT_ManageNotifications/DeleteNotificationSubscription?subscriptionKey=${data.subscriptionKey}&subscriptionDetailKey=${data.subscriptionDetailKey}`, data);
  }
  async getMultiFactorAuthProvision(authType) {
    return this.apiGet(`MultiFactorAuth/Provision?AuthType=${authType}`);
  }
  async updateMultiFactorAuth(authType, pin) {
    return this.apiPost(`MultiFactorAuth/Update?AuthType=${authType}&Pin=${pin}`, {});
  }
  async MT_MemberRepresentatives() {
    return this.apiGet(`MT_MemberRepresentatives`);
  }
  async getRequestTypes() {
    return this.apiGet(`RequestType/GetRequestType`);
  }
  async deleteMemberRepresentative(key) {
    return this.apiPost(`MT_MemberRepresentatives/DeleteMemberRepresentatives`, { memberRepresentativeKey: key });
  }
  async updateRequestType(data) {
    return this.apiPost(`RequestType`, data);
  }
  async addMemberRepresentative(data) {
    return this.apiPost(`MT_MemberRepresentatives/PostMemberRepresentatives`, data);
  }
  async addrequestTyperole(data) {
    return this.apiPost(`AT_RequestTypeRole/PostRequestTypeRole`, data);
  }
  updateMemberRepresentative(email2, key) {
    return this.apiPost(`MT_MemberRepresentatives/UpdateMemberRepresentatives`, { Email: email2, MemberRepKey: key });
  }
  async getrequestTyperole(requestType) {
    return this.apiGet(`AT_RequestTypeRole/GetRoles?requestType=${requestType}`);
  }
  inviteMemberRepresentatives(key, type) {
    return this.apiPost(`Registration/InviteMemberRepresentatives`, { memberRepresentativeKey: key, inviteType: type });
  }
  async getClientRoleList() {
    return this.apiGet(`ClientRole`);
  }
  async deleteclientRole(data) {
    return this.apiDelete(`AT_RequestTypeRole/Delete`, data);
  }
  // AT - Manage Users
  async impersonateUser(userId) {
    return this.apiPost(`AT_AddImpersonationUserAccess?WhoToImpersonateUserId=${userId}`, {});
  }
  async postReqChangeAddress(request) {
    return this.apiPost(`MT_RequestAddress/PostReqChangeAddress`, request);
  }
  async getRequestType(requestType) {
    if (!requestType) {
      return this.apiGet(`RequestType`);
    } else {
      return this.apiGet(`RequestType?requestType=${requestType}`);
    }
  }
  async getUserAdminList() {
    return this.apiGet(`AT_UserAdminList`);
  }
  async postUserAdminList(data) {
    return this.apiPost("AT_UserAdminList", data);
  }
  async postMultiFactorAuth(userGuid) {
    return this.apiPost("AT_MultiFactorAuth", userGuid);
  }
  async getUserRoles(UserGuid) {
    return this.apiGet(`AT_UserRole/GetRoles?UserGuid=${UserGuid}`);
  }
  async getClientRoles() {
    return this.apiGet("ClientRole");
  }
  async postUserRole(payload) {
    return this.apiPost("AT_UserRole", payload);
  }
  async deleteUserRole(payload) {
    return this.apiFetch("AT_UserRole", "DELETE", payload);
  }
  async adminResetPassword(payload) {
    return this.apiPost(`AT_ResetPassword`, payload);
  }
  async MTDDListFlexPlan(subscriberID, memberSeq) {
    return this.apiGet(`MT_DDList_FlexPlan?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}`);
  }
  async MTDDListFlexCalendarYear(subscriberID, groupID, planID) {
    return this.apiGet(`MT_DDList_FlexCalendarYear?SubscriberID=${subscriberID}&GroupID=${groupID}&PlanID=${planID}`);
  }
  async MTGetFlexAmount(subscriberID, groupID, planID, CalendarYear) {
    return this.apiGet(`MT_FlexAmount?SubscriberID=${subscriberID}&GroupID=${groupID}&PlanID=${planID}&CalendarYear=${CalendarYear}`);
  }
  async MTFlexPlanDetails(subscriberID, groupID, planID, CalendarYear) {
    return this.apiGet(`MT_FlexPlanDetails?SubscriberID=${subscriberID}&GroupID=${groupID}&PlanID=${planID}&CalendarYear=${CalendarYear}`);
  }
  async MTGetTransDetails(subscriberID, groupID, planID, CalendarYear) {
    return this.apiGet(`MT_FlexTransDetails?SubscriberID=${subscriberID}&GroupID=${groupID}&PlanID=${planID}&CalendarYear=${CalendarYear}`);
  }
  async MTGetFlexBalanceByYear(subscriberID, groupID, planID) {
    return this.apiGet(`MT_FlexBalanceByYear?SubscriberID=${subscriberID}&GroupID=${groupID}&PlanID=${planID}`);
  }
  async DDList_Country() {
    return this.apiGet("DDList_Country");
  }
  async getMemberAddressTypes() {
    return this.apiGet("MT_MemberAddress/GetTypes");
  }
  async getDocumentsByCategory(category) {
    return this.apiGet(`Document/GetDocumentsByCategory?category=${category}`);
  }
  async getESignableDocument(data) {
    return this.apiPost(`Document/RetrieveESignDocument`, data);
  }
  async addMemberAddress(data) {
    return this.apiPost(`MT_MemberAddress/AddAddress`, data);
  }
  updateMemberAddress(data) {
    return this.apiPost(`MT_MemberAddress/UpdateAddress`, data);
  }
  deleteMemberAddress(memberAddressKey) {
    return this.apiFetch(`MT_MemberAddress/DeleteAddress?memberAddressKey=${memberAddressKey}`, "DELETE");
  }
  async getExMemberAccumPlanSummary(taxId, zipCode, altId, birthDate) {
    return this.apiGet(`EX_MemberAccumPlanSummary/GetEX_MemberAccumPlanSummary?TaxID=${taxId}&ZipCode=${zipCode}&AlternateID=${altId}&BirthDate=${birthDate}`);
  }
  async getExDDListPlanSummary(subscriberID, memberSeq) {
    return this.apiGet(`EX_DDList_PlanSummary/GetMT_DDList_PlanSummary?SubscriberID=${subscriberID}&MemberSeq=${memberSeq}`);
  }
  async getExPlanBenefitSummary(planId) {
    return this.apiGet(`EX_PlanBenefitSummary/GetMT_PlanBenefitSummary?PlanID=${planId}`);
  }
  async getExPlanSummary(planId) {
    return this.apiGet(`EX_PlanSummary/GetEX_PlanSummary?PlanID=${planId}`);
  }
  async getExAccumulatorDetailsPlanTypeAccumStart(subscriberId, memberSeq, planType, accumPeriodStart) {
    return this.apiGet(`EX_AccumulatorDetailsPlanTypeAccumStart/GetEX_AccumulatorDetailsPlanTypeAccumStart?SubscriberID=${subscriberId}&MemberSeq=${memberSeq}&PlanType=${planType}&AccumPeriodStart=${accumPeriodStart}`);
  }
  async getMemberLTCEligibility(subscriberID, memberSeq) {
    return this.apiGet(`MT_MemberLTCEligibility/GetMT_MemberLTCEligibility?subscriberID=${subscriberID}&memberSeq=${memberSeq}`);
  }
  async MtLtcClaimsDetails() {
    return this.apiGet("MT_LtcClaimDetails");
  }
  async GetMT_LtcClaimDetailsForBatch(batchNum, includeClaimDetails) {
    if (includeClaimDetails) {
      return this.apiGet(`MT_LtcClaimDetails/GetMT_LtcClaimDetailsForBatch?batchNumber=${batchNum}&includeClaimDetails=${includeClaimDetails}`);
    } else {
      return this.apiGet(`MT_LtcClaimDetails/GetMT_LtcClaimDetailsForBatch?batchNumber=${batchNum}`);
    }
  }
  async GetMT_LtcClaimDetailDetails(checkId) {
    return this.apiGet(`MT_LtcClaimDetailDetails/GetMT_LtcClaimDetailDetails?CheckId=${checkId}`);
  }
  async getAnnouncementSourceList() {
    return this.apiGet(`AnnouncementSource/GetAnnouncementSourceList`);
  }
  async GetPolicyEobRequest(policyNumber, dateReceived) {
    return this.apiGet(`RequestAPI/GetPolicyEOBRequest?policyNumber=${policyNumber}&dateReceived=${dateReceived}`);
  }
  async getRerateData() {
    return this.apiGet("MT_MemberRerateHistory/GetMemberRerateHistory");
  }
  async getThreadStatuses() {
    return this.apiGet(`DDList_ThreadStatus`);
  }
  async getRerateLetter(rerateId) {
    return this.apiGet(`MT_MemberRerateHistory/GetRerateLetter?rerateId=${rerateId}`);
  }
  async getThreadTypes() {
    return this.apiGet("DDList_ThreadType");
  }
  async getAlternateBenefitQuote() {
    return this.apiGet("MT_MemberRerateHistory/GetAlternateBenefitQuotes");
  }
  async getMessageThreadList(filterData) {
    return this.apiGet(`MessageThread/GetMessageThreadList?ThreadStatus=${filterData.threadStatus}&ThreadType=${filterData.threadType}&Name=${filterData.name}&DateSort=${filterData.dateSort}&StartDate=${filterData.startDate}&EndDate=${filterData.endDate}`);
  }
  async GetRerateLetter(rerateId) {
    return this.apiGet(`RequestAPI/GetRerateLetter?rerateId=${rerateId}`);
  }
  async getMessagesForThread(threadKey) {
    return this.apiGet(`AT_Message/GetAT_MessageList?&MessageThreadKey=${threadKey}`);
  }
  async getAdminPlans() {
    return this.apiGet("Plan/Plans?withDocumentInfo=true");
  }
  async getMessageAttachment(messageKey) {
    return this.apiGet(`MessageAttachment/GetMessageAttachment?MessageKey=${messageKey}`);
  }
  async getGetWaitingPeriodTypes() {
    return this.apiGet("DDList_WaitingPeriodType");
  }
  closeMessageThread(messageThreadKey) {
    return this.apiPost(`MessageThread/MessageThreadUpdateStatus?MessageThreadKey=${messageThreadKey}&MessageThreadStatus=CLOSED`, {});
  }
  async deletePlanDocument(documentKey) {
    return this.apiDelete("ET_SummaryPlanDocument/DeleteDocument?DocumentKey=" + documentKey, {});
  }
  updateThread(threadKey, threadType) {
    return this.apiPost(`MessageThread/UpdateThreadType?MessageThreadKey=${threadKey}&MessageThreadType=${threadType}`, {});
  }
  async postPlanOptions(selectedPlan) {
    return this.apiPost("ET_SummaryPlanDocument", selectedPlan);
  }
  async getPlanLabels(planId, inNetwork) {
    return this.apiGet(`PlanLabelList?PlanID=${planId}&InNetwork=${inNetwork}`);
  }
  async deletePlanLabel(labelKey) {
    return this.apiDelete("PlanLabelList?PlanLabelKey=" + labelKey, {});
  }
  async updatePlanLabel(label) {
    return this.apiPost("PlanLabelList", [label]);
  }
  async createMessageThread(threadData) {
    return this.apiPost(`MessageThread`, threadData);
  }
  async uploadMessageAttachment(data, messageKey) {
    return this.apiPost(`MessageAttachment?MessageKey=${messageKey}`, data, "FORMDATA");
  }
  async GetInvoiceCycles() {
    return this.apiGet(`MT_RequestInvoiceCycle/GetInvoiceCycles`);
  }
  async CreateInvoiceCycleRequest(data) {
    return this.apiPost("MT_RequestInvoiceCycle/CreateRequest", data);
  }
  async GetSubscriberInvoiceCycles() {
    return this.apiGet(`MT_RequestInvoiceCycle/GetSubscriberInvoiceCycle`);
  }
  async GetPaymentMethodAndModeForPolicyholderPlan(planId) {
    return this.apiGet(`Plan/GetPaymentMethodAndModeForPolicyholderPlan?planId=${planId}`);
  }
  async getMessageReplyTemplates(threadType) {
    return this.apiGet(`AT_MessageReplyTemplate/GetMessageReplyTemplateList?ThreadType=${threadType}`);
  }
  async replyToThread(threadData) {
    return this.apiPost(`MessageList`, threadData);
  }
  async esignDocument(documentId, planId) {
    return this.apiPost(`DocumentUpload/ESignDocument?documentId=${documentId}&planId=${planId}`, {});
  }
  async getDDListDocumentType() {
    return this.apiGet("DDList_DocumentType");
  }
  async getAdminDocs() {
    return this.apiGet("AT_AdminDocument");
  }
  async adminDocumentSettings(adminDoc) {
    return this.apiPost("DocumentSettings", adminDoc);
  }
  async getAT_GroupDivisionList(groupId) {
    return this.apiGet(`AT_GroupDivisionList?GroupID=${groupId}`);
  }
  async deleteAdminDocument(documentKey) {
    return this.apiDelete("DocumentUpload?DocumentKey=" + documentKey, {});
  }
  async memberSearch(name) {
    return this.apiGet(`Member/Search?name=${name}`);
  }
  async getUlds(policyNumber) {
    return this.apiGet(`RequestAPI/GetULDs?PolicyNumber=${policyNumber}`);
  }
  async postReqAddMemberRepresentative(uld) {
    return this.apiPost("MT_ReqAddMemberRepresentative/PostReqAddMemberRepresentative", uld);
  }
  async postReqUpdateMemberRep(memberRepData) {
    return this.apiPost("MT_ReqUpdateMemberRep/PostReqUpdateMemberRep", memberRepData);
  }
  async getAnnouncementLoginConfigList() {
    return this.apiGet(`Announcement/GetAnnouncementListForConfigLoginPage`);
  }
  async updateAnnouncement(data) {
    return this.apiPost(`AnnouncementSource`, data);
  }
  async getFillableDocumentTypeIds(DocumentType) {
    return this.apiGet(`Document/GetAT_FillableDocumentTypeIds?DocumentType=${DocumentType}`);
  }
  async getPolicyholderDocuments(policyId) {
    return this.apiGet(`RequestAPI/GetDocumentsForPolicyRequest?policyNumber=${policyId}`);
  }
  async getPolicyholderDocumentAttachment(docId) {
    return this.apiGet(`RequestAPI/GetDocumentAsAttachmentRequest?DocumentId=${docId}`);
  }
  async getMemberPlans(subscriberId, memberSeq) {
    return this.apiGet(`MT_DDList_PlanSummary?SubscriberID=${subscriberId}&MemberSeq=${memberSeq}`);
  }
  async deleteAnnouncement(Announcement_Key) {
    return this.apiDelete(`Announcement?Announcement_Key=${Announcement_Key}`, {});
  }
  async getPublishedLoginAnnouncements() {
    return this.apiGet("Announcement/GetAnnouncementForLoginPage?GetPublishedOnly=true");
  }
  async getBannerTypes() {
    return this.apiGet("BannerType");
  }
  async getAdminPlanTypeList() {
    return this.apiGet(`AT_PlanTypeList/GetAT_PlanTypeList`);
  }
  async getAdminGroupsList() {
    return this.apiGet(`AT_GroupList/GetAT_GroupList`);
  }
  async getAdminDivisionList(groupId) {
    return this.apiGet(`AT_GroupDivisionList?GroupID=${groupId}`);
  }
  async getAdminNetworkList() {
    return this.apiGet(`AT_NetworkList/GetAT_NetworkList`);
  }
  async getAdminRoleList() {
    return this.apiGet(`AT_UserRole/GetRolesList`);
  }
  async getOverrideNotifications() {
    return this.apiGet(`AT_ManageNotifications/GetOverrideNotifications`);
  }
  async postAnnouncementSource(annUpdate) {
    return this.apiPost("AnnouncementSource/PostAnnouncementSource", annUpdate);
  }
  async getAT_GroupDivisionListForCustomerServiceRep(groupID) {
    return this.apiGet(`AT_GroupDivisionListForCustomerServiceRep/GetAT_GroupDivisionListForCustomerServiceRep?GroupID=${groupID}`);
  }
  async saveAnnouncementGroupDivision(anncmtKey, groupID, divisionID) {
    return this.apiPost(`Announcement/GroupDivision?AnnouncementKey=${anncmtKey}&GroupId=${groupID}&DivisionId=${divisionID}`, {});
  }
  async getAnnouncementGroupDivision(anncmtKey) {
    return this.apiGet(`Announcement/GroupDivision?AnnouncementKey=${anncmtKey}`);
  }
  async deleteGroupDivision(anncmtGroupDivisionKey) {
    return this.apiDelete(`Announcement/DeleteGroupDivision?AnnouncementGroupDivisionKey=${anncmtGroupDivisionKey}`, {});
  }
  async getAnnouncementType() {
    return this.apiGet(`AnnouncementType/GetAnnouncementType`);
  }
  async getAnnouncementStatus() {
    return this.apiGet(`AnnouncementStatus/GetAnnouncementStatus`);
  }
}
const _withScopeId$k = (n) => (pushScopeId("data-v-ba2f3639"), n = n(), popScopeId(), n);
const _hoisted_1$D = { class: "container" };
const _hoisted_2$v = { class: "text-align" };
const _hoisted_3$r = /* @__PURE__ */ _withScopeId$k(() => /* @__PURE__ */ createBaseVNode("div", { class: "logo-container" }, null, -1));
const _hoisted_4$l = { key: 0 };
const _hoisted_5$k = ["innerHTML"];
const _hoisted_6$k = { key: 1 };
const _hoisted_7$i = /* @__PURE__ */ createStaticVNode('<div class="title" data-v-ba2f3639>Welcome to Your Portal!</div><div data-v-ba2f3639><em data-v-ba2f3639>Save Time. Look it up Online.</em></div><div data-v-ba2f3639>Here are some of the benefits of using the portal:</div><div data-v-ba2f3639><ul data-v-ba2f3639><li data-v-ba2f3639>Access the information you need anytime, 24/7.</li><li data-v-ba2f3639>Get your questions answered quickly by accessing the most up to date information.</li><li data-v-ba2f3639>Complete a variety of transactions for yourself or on behalf of your customers.</li><li data-v-ba2f3639>Download essential documents and forms you may need.</li><li data-v-ba2f3639>Keep your account profile and contact information up to date.</li><li data-v-ba2f3639>Get in touch with the plan administrator.</li></ul></div><div data-v-ba2f3639>Your security is our priority. Our portal uses enhanced security features to keep your information safe. </div><div data-v-ba2f3639>Log in to get started using your portal today. Everything you need is just a click away.</div>', 6);
const _hoisted_13$6 = [
  _hoisted_7$i
];
const _sfc_main$L = /* @__PURE__ */ defineComponent({
  __name: "LoginBackground",
  setup(__props) {
    useCssVars((_ctx) => ({
      "223f92c4": loginBackgroundColor.value,
      "92858e82": loginTextColor.value
    }));
    const apiService = new APIService();
    const customTextHtml = ref([]);
    const loginBackgroundColor = ref("");
    const defaultBackgroundColor = "#F1F5F9";
    const loginTextColor = ref("");
    const defaultTextColor = "#333";
    const loading = ref(true);
    apiService.getExternalClientConfigs().then((result) => {
      loginBackgroundColor.value = result.find((x) => x.Config_ID === "LOGIN_BACKGROUND_COLOR")?.Config_String ?? defaultBackgroundColor;
      loginTextColor.value = result.find((x) => x.Config_ID === "LOGIN_TEXT_COLOR")?.Config_String || defaultTextColor;
    });
    apiService.getPublishedLoginAnnouncements().then((result) => {
      loading.value = false;
      customTextHtml.value = result.filter((x) => x.Announcement_Type === "VBAGATEWAYLOGINTEXT").map((x) => x.Announcement_Body);
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$D, [
        createBaseVNode("div", _hoisted_2$v, [
          _hoisted_3$r,
          customTextHtml.value.length > 0 && !loading.value ? (openBlock(), createElementBlock("div", _hoisted_4$l, [
            (openBlock(true), createElementBlock(Fragment, null, renderList(customTextHtml.value, (html2) => {
              return openBlock(), createElementBlock("div", {
                innerHTML: unref(purify).sanitize(html2)
              }, null, 8, _hoisted_5$k);
            }), 256))
          ])) : customTextHtml.value.length === 0 && !loading.value ? (openBlock(), createElementBlock("div", _hoisted_6$k, _hoisted_13$6)) : createCommentVNode("", true)
        ])
      ]);
    };
  }
});
const LoginBackground_vue_vue_type_style_index_0_scoped_ba2f3639_lang = "";
const _export_sfc = (sfc, props) => {
  const target = sfc.__vccOpts || sfc;
  for (const [key, val] of props) {
    target[key] = val;
  }
  return target;
};
const LoginBackground = /* @__PURE__ */ _export_sfc(_sfc_main$L, [["__scopeId", "data-v-ba2f3639"]]);
/*!
  * vue-router v4.1.6
  * (c) 2022 Eduardo San Martin Morote
  * @license MIT
  */
const isBrowser = typeof window !== "undefined";
function isESModule(obj) {
  return obj.__esModule || obj[Symbol.toStringTag] === "Module";
}
const assign = Object.assign;
function applyToParams(fn, params) {
  const newParams = {};
  for (const key in params) {
    const value = params[key];
    newParams[key] = isArray(value) ? value.map(fn) : fn(value);
  }
  return newParams;
}
const noop = () => {
};
const isArray = Array.isArray;
const TRAILING_SLASH_RE = /\/$/;
const removeTrailingSlash = (path) => path.replace(TRAILING_SLASH_RE, "");
function parseURL(parseQuery2, location2, currentLocation = "/") {
  let path, query = {}, searchString = "", hash = "";
  const hashPos = location2.indexOf("#");
  let searchPos = location2.indexOf("?");
  if (hashPos < searchPos && hashPos >= 0) {
    searchPos = -1;
  }
  if (searchPos > -1) {
    path = location2.slice(0, searchPos);
    searchString = location2.slice(searchPos + 1, hashPos > -1 ? hashPos : location2.length);
    query = parseQuery2(searchString);
  }
  if (hashPos > -1) {
    path = path || location2.slice(0, hashPos);
    hash = location2.slice(hashPos, location2.length);
  }
  path = resolveRelativePath(path != null ? path : location2, currentLocation);
  return {
    fullPath: path + (searchString && "?") + searchString + hash,
    path,
    query,
    hash
  };
}
function stringifyURL(stringifyQuery2, location2) {
  const query = location2.query ? stringifyQuery2(location2.query) : "";
  return location2.path + (query && "?") + query + (location2.hash || "");
}
function stripBase(pathname, base) {
  if (!base || !pathname.toLowerCase().startsWith(base.toLowerCase()))
    return pathname;
  return pathname.slice(base.length) || "/";
}
function isSameRouteLocation(stringifyQuery2, a, b) {
  const aLastIndex = a.matched.length - 1;
  const bLastIndex = b.matched.length - 1;
  return aLastIndex > -1 && aLastIndex === bLastIndex && isSameRouteRecord(a.matched[aLastIndex], b.matched[bLastIndex]) && isSameRouteLocationParams(a.params, b.params) && stringifyQuery2(a.query) === stringifyQuery2(b.query) && a.hash === b.hash;
}
function isSameRouteRecord(a, b) {
  return (a.aliasOf || a) === (b.aliasOf || b);
}
function isSameRouteLocationParams(a, b) {
  if (Object.keys(a).length !== Object.keys(b).length)
    return false;
  for (const key in a) {
    if (!isSameRouteLocationParamsValue(a[key], b[key]))
      return false;
  }
  return true;
}
function isSameRouteLocationParamsValue(a, b) {
  return isArray(a) ? isEquivalentArray(a, b) : isArray(b) ? isEquivalentArray(b, a) : a === b;
}
function isEquivalentArray(a, b) {
  return isArray(b) ? a.length === b.length && a.every((value, i) => value === b[i]) : a.length === 1 && a[0] === b;
}
function resolveRelativePath(to, from) {
  if (to.startsWith("/"))
    return to;
  if (!to)
    return from;
  const fromSegments = from.split("/");
  const toSegments = to.split("/");
  let position = fromSegments.length - 1;
  let toPosition;
  let segment;
  for (toPosition = 0; toPosition < toSegments.length; toPosition++) {
    segment = toSegments[toPosition];
    if (segment === ".")
      continue;
    if (segment === "..") {
      if (position > 1)
        position--;
    } else
      break;
  }
  return fromSegments.slice(0, position).join("/") + "/" + toSegments.slice(toPosition - (toPosition === toSegments.length ? 1 : 0)).join("/");
}
var NavigationType;
(function(NavigationType2) {
  NavigationType2["pop"] = "pop";
  NavigationType2["push"] = "push";
})(NavigationType || (NavigationType = {}));
var NavigationDirection;
(function(NavigationDirection2) {
  NavigationDirection2["back"] = "back";
  NavigationDirection2["forward"] = "forward";
  NavigationDirection2["unknown"] = "";
})(NavigationDirection || (NavigationDirection = {}));
function normalizeBase(base) {
  if (!base) {
    if (isBrowser) {
      const baseEl = document.querySelector("base");
      base = baseEl && baseEl.getAttribute("href") || "/";
      base = base.replace(/^\w+:\/\/[^\/]+/, "");
    } else {
      base = "/";
    }
  }
  if (base[0] !== "/" && base[0] !== "#")
    base = "/" + base;
  return removeTrailingSlash(base);
}
const BEFORE_HASH_RE = /^[^#]+#/;
function createHref(base, location2) {
  return base.replace(BEFORE_HASH_RE, "#") + location2;
}
function getElementPosition(el, offset) {
  const docRect = document.documentElement.getBoundingClientRect();
  const elRect = el.getBoundingClientRect();
  return {
    behavior: offset.behavior,
    left: elRect.left - docRect.left - (offset.left || 0),
    top: elRect.top - docRect.top - (offset.top || 0)
  };
}
const computeScrollPosition = () => ({
  left: window.pageXOffset,
  top: window.pageYOffset
});
function scrollToPosition(position) {
  let scrollToOptions;
  if ("el" in position) {
    const positionEl = position.el;
    const isIdSelector = typeof positionEl === "string" && positionEl.startsWith("#");
    const el = typeof positionEl === "string" ? isIdSelector ? document.getElementById(positionEl.slice(1)) : document.querySelector(positionEl) : positionEl;
    if (!el) {
      return;
    }
    scrollToOptions = getElementPosition(el, position);
  } else {
    scrollToOptions = position;
  }
  if ("scrollBehavior" in document.documentElement.style)
    window.scrollTo(scrollToOptions);
  else {
    window.scrollTo(scrollToOptions.left != null ? scrollToOptions.left : window.pageXOffset, scrollToOptions.top != null ? scrollToOptions.top : window.pageYOffset);
  }
}
function getScrollKey(path, delta) {
  const position = history.state ? history.state.position - delta : -1;
  return position + path;
}
const scrollPositions = /* @__PURE__ */ new Map();
function saveScrollPosition(key, scrollPosition) {
  scrollPositions.set(key, scrollPosition);
}
function getSavedScrollPosition(key) {
  const scroll = scrollPositions.get(key);
  scrollPositions.delete(key);
  return scroll;
}
let createBaseLocation = () => location.protocol + "//" + location.host;
function createCurrentLocation(base, location2) {
  const { pathname, search, hash } = location2;
  const hashPos = base.indexOf("#");
  if (hashPos > -1) {
    let slicePos = hash.includes(base.slice(hashPos)) ? base.slice(hashPos).length : 1;
    let pathFromHash = hash.slice(slicePos);
    if (pathFromHash[0] !== "/")
      pathFromHash = "/" + pathFromHash;
    return stripBase(pathFromHash, "");
  }
  const path = stripBase(pathname, base);
  return path + search + hash;
}
function useHistoryListeners(base, historyState, currentLocation, replace) {
  let listeners = [];
  let teardowns = [];
  let pauseState = null;
  const popStateHandler = ({ state }) => {
    const to = createCurrentLocation(base, location);
    const from = currentLocation.value;
    const fromState = historyState.value;
    let delta = 0;
    if (state) {
      currentLocation.value = to;
      historyState.value = state;
      if (pauseState && pauseState === from) {
        pauseState = null;
        return;
      }
      delta = fromState ? state.position - fromState.position : 0;
    } else {
      replace(to);
    }
    listeners.forEach((listener) => {
      listener(currentLocation.value, from, {
        delta,
        type: NavigationType.pop,
        direction: delta ? delta > 0 ? NavigationDirection.forward : NavigationDirection.back : NavigationDirection.unknown
      });
    });
  };
  function pauseListeners() {
    pauseState = currentLocation.value;
  }
  function listen(callback) {
    listeners.push(callback);
    const teardown = () => {
      const index2 = listeners.indexOf(callback);
      if (index2 > -1)
        listeners.splice(index2, 1);
    };
    teardowns.push(teardown);
    return teardown;
  }
  function beforeUnloadListener() {
    const { history: history2 } = window;
    if (!history2.state)
      return;
    history2.replaceState(assign({}, history2.state, { scroll: computeScrollPosition() }), "");
  }
  function destroy() {
    for (const teardown of teardowns)
      teardown();
    teardowns = [];
    window.removeEventListener("popstate", popStateHandler);
    window.removeEventListener("beforeunload", beforeUnloadListener);
  }
  window.addEventListener("popstate", popStateHandler);
  window.addEventListener("beforeunload", beforeUnloadListener);
  return {
    pauseListeners,
    listen,
    destroy
  };
}
function buildState(back, current, forward, replaced = false, computeScroll = false) {
  return {
    back,
    current,
    forward,
    replaced,
    position: window.history.length,
    scroll: computeScroll ? computeScrollPosition() : null
  };
}
function useHistoryStateNavigation(base) {
  const { history: history2, location: location2 } = window;
  const currentLocation = {
    value: createCurrentLocation(base, location2)
  };
  const historyState = { value: history2.state };
  if (!historyState.value) {
    changeLocation(currentLocation.value, {
      back: null,
      current: currentLocation.value,
      forward: null,
      // the length is off by one, we need to decrease it
      position: history2.length - 1,
      replaced: true,
      // don't add a scroll as the user may have an anchor, and we want
      // scrollBehavior to be triggered without a saved position
      scroll: null
    }, true);
  }
  function changeLocation(to, state, replace2) {
    const hashIndex = base.indexOf("#");
    const url = hashIndex > -1 ? (location2.host && document.querySelector("base") ? base : base.slice(hashIndex)) + to : createBaseLocation() + base + to;
    try {
      history2[replace2 ? "replaceState" : "pushState"](state, "", url);
      historyState.value = state;
    } catch (err) {
      {
        console.error(err);
      }
      location2[replace2 ? "replace" : "assign"](url);
    }
  }
  function replace(to, data) {
    const state = assign({}, history2.state, buildState(
      historyState.value.back,
      // keep back and forward entries but override current position
      to,
      historyState.value.forward,
      true
    ), data, { position: historyState.value.position });
    changeLocation(to, state, true);
    currentLocation.value = to;
  }
  function push(to, data) {
    const currentState = assign(
      {},
      // use current history state to gracefully handle a wrong call to
      // history.replaceState
      // https://github.com/vuejs/router/issues/366
      historyState.value,
      history2.state,
      {
        forward: to,
        scroll: computeScrollPosition()
      }
    );
    changeLocation(currentState.current, currentState, true);
    const state = assign({}, buildState(currentLocation.value, to, null), { position: currentState.position + 1 }, data);
    changeLocation(to, state, false);
    currentLocation.value = to;
  }
  return {
    location: currentLocation,
    state: historyState,
    push,
    replace
  };
}
function createWebHistory(base) {
  base = normalizeBase(base);
  const historyNavigation = useHistoryStateNavigation(base);
  const historyListeners = useHistoryListeners(base, historyNavigation.state, historyNavigation.location, historyNavigation.replace);
  function go(delta, triggerListeners = true) {
    if (!triggerListeners)
      historyListeners.pauseListeners();
    history.go(delta);
  }
  const routerHistory = assign({
    // it's overridden right after
    location: "",
    base,
    go,
    createHref: createHref.bind(null, base)
  }, historyNavigation, historyListeners);
  Object.defineProperty(routerHistory, "location", {
    enumerable: true,
    get: () => historyNavigation.location.value
  });
  Object.defineProperty(routerHistory, "state", {
    enumerable: true,
    get: () => historyNavigation.state.value
  });
  return routerHistory;
}
function isRouteLocation(route) {
  return typeof route === "string" || route && typeof route === "object";
}
function isRouteName(name) {
  return typeof name === "string" || typeof name === "symbol";
}
const START_LOCATION_NORMALIZED = {
  path: "/",
  name: void 0,
  params: {},
  query: {},
  hash: "",
  fullPath: "/",
  matched: [],
  meta: {},
  redirectedFrom: void 0
};
const NavigationFailureSymbol = Symbol("");
var NavigationFailureType;
(function(NavigationFailureType2) {
  NavigationFailureType2[NavigationFailureType2["aborted"] = 4] = "aborted";
  NavigationFailureType2[NavigationFailureType2["cancelled"] = 8] = "cancelled";
  NavigationFailureType2[NavigationFailureType2["duplicated"] = 16] = "duplicated";
})(NavigationFailureType || (NavigationFailureType = {}));
function createRouterError(type, params) {
  {
    return assign(new Error(), {
      type,
      [NavigationFailureSymbol]: true
    }, params);
  }
}
function isNavigationFailure(error, type) {
  return error instanceof Error && NavigationFailureSymbol in error && (type == null || !!(error.type & type));
}
const BASE_PARAM_PATTERN = "[^/]+?";
const BASE_PATH_PARSER_OPTIONS = {
  sensitive: false,
  strict: false,
  start: true,
  end: true
};
const REGEX_CHARS_RE = /[.+*?^${}()[\]/\\]/g;
function tokensToParser(segments, extraOptions) {
  const options = assign({}, BASE_PATH_PARSER_OPTIONS, extraOptions);
  const score = [];
  let pattern = options.start ? "^" : "";
  const keys = [];
  for (const segment of segments) {
    const segmentScores = segment.length ? [] : [
      90
      /* PathScore.Root */
    ];
    if (options.strict && !segment.length)
      pattern += "/";
    for (let tokenIndex = 0; tokenIndex < segment.length; tokenIndex++) {
      const token = segment[tokenIndex];
      let subSegmentScore = 40 + (options.sensitive ? 0.25 : 0);
      if (token.type === 0) {
        if (!tokenIndex)
          pattern += "/";
        pattern += token.value.replace(REGEX_CHARS_RE, "\\$&");
        subSegmentScore += 40;
      } else if (token.type === 1) {
        const { value, repeatable, optional, regexp } = token;
        keys.push({
          name: value,
          repeatable,
          optional
        });
        const re2 = regexp ? regexp : BASE_PARAM_PATTERN;
        if (re2 !== BASE_PARAM_PATTERN) {
          subSegmentScore += 10;
          try {
            new RegExp(`(${re2})`);
          } catch (err) {
            throw new Error(`Invalid custom RegExp for param "${value}" (${re2}): ` + err.message);
          }
        }
        let subPattern = repeatable ? `((?:${re2})(?:/(?:${re2}))*)` : `(${re2})`;
        if (!tokenIndex)
          subPattern = // avoid an optional / if there are more segments e.g. /:p?-static
          // or /:p?-:p2
          optional && segment.length < 2 ? `(?:/${subPattern})` : "/" + subPattern;
        if (optional)
          subPattern += "?";
        pattern += subPattern;
        subSegmentScore += 20;
        if (optional)
          subSegmentScore += -8;
        if (repeatable)
          subSegmentScore += -20;
        if (re2 === ".*")
          subSegmentScore += -50;
      }
      segmentScores.push(subSegmentScore);
    }
    score.push(segmentScores);
  }
  if (options.strict && options.end) {
    const i = score.length - 1;
    score[i][score[i].length - 1] += 0.7000000000000001;
  }
  if (!options.strict)
    pattern += "/?";
  if (options.end)
    pattern += "$";
  else if (options.strict)
    pattern += "(?:/|$)";
  const re = new RegExp(pattern, options.sensitive ? "" : "i");
  function parse(path) {
    const match = path.match(re);
    const params = {};
    if (!match)
      return null;
    for (let i = 1; i < match.length; i++) {
      const value = match[i] || "";
      const key = keys[i - 1];
      params[key.name] = value && key.repeatable ? value.split("/") : value;
    }
    return params;
  }
  function stringify(params) {
    let path = "";
    let avoidDuplicatedSlash = false;
    for (const segment of segments) {
      if (!avoidDuplicatedSlash || !path.endsWith("/"))
        path += "/";
      avoidDuplicatedSlash = false;
      for (const token of segment) {
        if (token.type === 0) {
          path += token.value;
        } else if (token.type === 1) {
          const { value, repeatable, optional } = token;
          const param = value in params ? params[value] : "";
          if (isArray(param) && !repeatable) {
            throw new Error(`Provided param "${value}" is an array but it is not repeatable (* or + modifiers)`);
          }
          const text2 = isArray(param) ? param.join("/") : param;
          if (!text2) {
            if (optional) {
              if (segment.length < 2) {
                if (path.endsWith("/"))
                  path = path.slice(0, -1);
                else
                  avoidDuplicatedSlash = true;
              }
            } else
              throw new Error(`Missing required param "${value}"`);
          }
          path += text2;
        }
      }
    }
    return path || "/";
  }
  return {
    re,
    score,
    keys,
    parse,
    stringify
  };
}
function compareScoreArray(a, b) {
  let i = 0;
  while (i < a.length && i < b.length) {
    const diff = b[i] - a[i];
    if (diff)
      return diff;
    i++;
  }
  if (a.length < b.length) {
    return a.length === 1 && a[0] === 40 + 40 ? -1 : 1;
  } else if (a.length > b.length) {
    return b.length === 1 && b[0] === 40 + 40 ? 1 : -1;
  }
  return 0;
}
function comparePathParserScore(a, b) {
  let i = 0;
  const aScore = a.score;
  const bScore = b.score;
  while (i < aScore.length && i < bScore.length) {
    const comp = compareScoreArray(aScore[i], bScore[i]);
    if (comp)
      return comp;
    i++;
  }
  if (Math.abs(bScore.length - aScore.length) === 1) {
    if (isLastScoreNegative(aScore))
      return 1;
    if (isLastScoreNegative(bScore))
      return -1;
  }
  return bScore.length - aScore.length;
}
function isLastScoreNegative(score) {
  const last2 = score[score.length - 1];
  return score.length > 0 && last2[last2.length - 1] < 0;
}
const ROOT_TOKEN = {
  type: 0,
  value: ""
};
const VALID_PARAM_RE = /[a-zA-Z0-9_]/;
function tokenizePath(path) {
  if (!path)
    return [[]];
  if (path === "/")
    return [[ROOT_TOKEN]];
  if (!path.startsWith("/")) {
    throw new Error(`Invalid path "${path}"`);
  }
  function crash(message) {
    throw new Error(`ERR (${state})/"${buffer2}": ${message}`);
  }
  let state = 0;
  let previousState = state;
  const tokens = [];
  let segment;
  function finalizeSegment() {
    if (segment)
      tokens.push(segment);
    segment = [];
  }
  let i = 0;
  let char;
  let buffer2 = "";
  let customRe = "";
  function consumeBuffer() {
    if (!buffer2)
      return;
    if (state === 0) {
      segment.push({
        type: 0,
        value: buffer2
      });
    } else if (state === 1 || state === 2 || state === 3) {
      if (segment.length > 1 && (char === "*" || char === "+"))
        crash(`A repeatable param (${buffer2}) must be alone in its segment. eg: '/:ids+.`);
      segment.push({
        type: 1,
        value: buffer2,
        regexp: customRe,
        repeatable: char === "*" || char === "+",
        optional: char === "*" || char === "?"
      });
    } else {
      crash("Invalid state to consume buffer");
    }
    buffer2 = "";
  }
  function addCharToBuffer() {
    buffer2 += char;
  }
  while (i < path.length) {
    char = path[i++];
    if (char === "\\" && state !== 2) {
      previousState = state;
      state = 4;
      continue;
    }
    switch (state) {
      case 0:
        if (char === "/") {
          if (buffer2) {
            consumeBuffer();
          }
          finalizeSegment();
        } else if (char === ":") {
          consumeBuffer();
          state = 1;
        } else {
          addCharToBuffer();
        }
        break;
      case 4:
        addCharToBuffer();
        state = previousState;
        break;
      case 1:
        if (char === "(") {
          state = 2;
        } else if (VALID_PARAM_RE.test(char)) {
          addCharToBuffer();
        } else {
          consumeBuffer();
          state = 0;
          if (char !== "*" && char !== "?" && char !== "+")
            i--;
        }
        break;
      case 2:
        if (char === ")") {
          if (customRe[customRe.length - 1] == "\\")
            customRe = customRe.slice(0, -1) + char;
          else
            state = 3;
        } else {
          customRe += char;
        }
        break;
      case 3:
        consumeBuffer();
        state = 0;
        if (char !== "*" && char !== "?" && char !== "+")
          i--;
        customRe = "";
        break;
      default:
        crash("Unknown state");
        break;
    }
  }
  if (state === 2)
    crash(`Unfinished custom RegExp for param "${buffer2}"`);
  consumeBuffer();
  finalizeSegment();
  return tokens;
}
function createRouteRecordMatcher(record, parent, options) {
  const parser = tokensToParser(tokenizePath(record.path), options);
  const matcher = assign(parser, {
    record,
    parent,
    // these needs to be populated by the parent
    children: [],
    alias: []
  });
  if (parent) {
    if (!matcher.record.aliasOf === !parent.record.aliasOf)
      parent.children.push(matcher);
  }
  return matcher;
}
function createRouterMatcher(routes2, globalOptions) {
  const matchers = [];
  const matcherMap = /* @__PURE__ */ new Map();
  globalOptions = mergeOptions({ strict: false, end: true, sensitive: false }, globalOptions);
  function getRecordMatcher(name) {
    return matcherMap.get(name);
  }
  function addRoute(record, parent, originalRecord) {
    const isRootAdd = !originalRecord;
    const mainNormalizedRecord = normalizeRouteRecord(record);
    mainNormalizedRecord.aliasOf = originalRecord && originalRecord.record;
    const options = mergeOptions(globalOptions, record);
    const normalizedRecords = [
      mainNormalizedRecord
    ];
    if ("alias" in record) {
      const aliases = typeof record.alias === "string" ? [record.alias] : record.alias;
      for (const alias of aliases) {
        normalizedRecords.push(assign({}, mainNormalizedRecord, {
          // this allows us to hold a copy of the `components` option
          // so that async components cache is hold on the original record
          components: originalRecord ? originalRecord.record.components : mainNormalizedRecord.components,
          path: alias,
          // we might be the child of an alias
          aliasOf: originalRecord ? originalRecord.record : mainNormalizedRecord
          // the aliases are always of the same kind as the original since they
          // are defined on the same record
        }));
      }
    }
    let matcher;
    let originalMatcher;
    for (const normalizedRecord of normalizedRecords) {
      const { path } = normalizedRecord;
      if (parent && path[0] !== "/") {
        const parentPath = parent.record.path;
        const connectingSlash = parentPath[parentPath.length - 1] === "/" ? "" : "/";
        normalizedRecord.path = parent.record.path + (path && connectingSlash + path);
      }
      matcher = createRouteRecordMatcher(normalizedRecord, parent, options);
      if (originalRecord) {
        originalRecord.alias.push(matcher);
      } else {
        originalMatcher = originalMatcher || matcher;
        if (originalMatcher !== matcher)
          originalMatcher.alias.push(matcher);
        if (isRootAdd && record.name && !isAliasRecord(matcher))
          removeRoute(record.name);
      }
      if (mainNormalizedRecord.children) {
        const children = mainNormalizedRecord.children;
        for (let i = 0; i < children.length; i++) {
          addRoute(children[i], matcher, originalRecord && originalRecord.children[i]);
        }
      }
      originalRecord = originalRecord || matcher;
      if (matcher.record.components && Object.keys(matcher.record.components).length || matcher.record.name || matcher.record.redirect) {
        insertMatcher(matcher);
      }
    }
    return originalMatcher ? () => {
      removeRoute(originalMatcher);
    } : noop;
  }
  function removeRoute(matcherRef) {
    if (isRouteName(matcherRef)) {
      const matcher = matcherMap.get(matcherRef);
      if (matcher) {
        matcherMap.delete(matcherRef);
        matchers.splice(matchers.indexOf(matcher), 1);
        matcher.children.forEach(removeRoute);
        matcher.alias.forEach(removeRoute);
      }
    } else {
      const index2 = matchers.indexOf(matcherRef);
      if (index2 > -1) {
        matchers.splice(index2, 1);
        if (matcherRef.record.name)
          matcherMap.delete(matcherRef.record.name);
        matcherRef.children.forEach(removeRoute);
        matcherRef.alias.forEach(removeRoute);
      }
    }
  }
  function getRoutes() {
    return matchers;
  }
  function insertMatcher(matcher) {
    let i = 0;
    while (i < matchers.length && comparePathParserScore(matcher, matchers[i]) >= 0 && // Adding children with empty path should still appear before the parent
    // https://github.com/vuejs/router/issues/1124
    (matcher.record.path !== matchers[i].record.path || !isRecordChildOf(matcher, matchers[i])))
      i++;
    matchers.splice(i, 0, matcher);
    if (matcher.record.name && !isAliasRecord(matcher))
      matcherMap.set(matcher.record.name, matcher);
  }
  function resolve2(location2, currentLocation) {
    let matcher;
    let params = {};
    let path;
    let name;
    if ("name" in location2 && location2.name) {
      matcher = matcherMap.get(location2.name);
      if (!matcher)
        throw createRouterError(1, {
          location: location2
        });
      name = matcher.record.name;
      params = assign(
        // paramsFromLocation is a new object
        paramsFromLocation(
          currentLocation.params,
          // only keep params that exist in the resolved location
          // TODO: only keep optional params coming from a parent record
          matcher.keys.filter((k) => !k.optional).map((k) => k.name)
        ),
        // discard any existing params in the current location that do not exist here
        // #1497 this ensures better active/exact matching
        location2.params && paramsFromLocation(location2.params, matcher.keys.map((k) => k.name))
      );
      path = matcher.stringify(params);
    } else if ("path" in location2) {
      path = location2.path;
      matcher = matchers.find((m) => m.re.test(path));
      if (matcher) {
        params = matcher.parse(path);
        name = matcher.record.name;
      }
    } else {
      matcher = currentLocation.name ? matcherMap.get(currentLocation.name) : matchers.find((m) => m.re.test(currentLocation.path));
      if (!matcher)
        throw createRouterError(1, {
          location: location2,
          currentLocation
        });
      name = matcher.record.name;
      params = assign({}, currentLocation.params, location2.params);
      path = matcher.stringify(params);
    }
    const matched = [];
    let parentMatcher = matcher;
    while (parentMatcher) {
      matched.unshift(parentMatcher.record);
      parentMatcher = parentMatcher.parent;
    }
    return {
      name,
      path,
      params,
      matched,
      meta: mergeMetaFields(matched)
    };
  }
  routes2.forEach((route) => addRoute(route));
  return { addRoute, resolve: resolve2, removeRoute, getRoutes, getRecordMatcher };
}
function paramsFromLocation(params, keys) {
  const newParams = {};
  for (const key of keys) {
    if (key in params)
      newParams[key] = params[key];
  }
  return newParams;
}
function normalizeRouteRecord(record) {
  return {
    path: record.path,
    redirect: record.redirect,
    name: record.name,
    meta: record.meta || {},
    aliasOf: void 0,
    beforeEnter: record.beforeEnter,
    props: normalizeRecordProps(record),
    children: record.children || [],
    instances: {},
    leaveGuards: /* @__PURE__ */ new Set(),
    updateGuards: /* @__PURE__ */ new Set(),
    enterCallbacks: {},
    components: "components" in record ? record.components || null : record.component && { default: record.component }
  };
}
function normalizeRecordProps(record) {
  const propsObject = {};
  const props = record.props || false;
  if ("component" in record) {
    propsObject.default = props;
  } else {
    for (const name in record.components)
      propsObject[name] = typeof props === "boolean" ? props : props[name];
  }
  return propsObject;
}
function isAliasRecord(record) {
  while (record) {
    if (record.record.aliasOf)
      return true;
    record = record.parent;
  }
  return false;
}
function mergeMetaFields(matched) {
  return matched.reduce((meta, record) => assign(meta, record.meta), {});
}
function mergeOptions(defaults, partialOptions) {
  const options = {};
  for (const key in defaults) {
    options[key] = key in partialOptions ? partialOptions[key] : defaults[key];
  }
  return options;
}
function isRecordChildOf(record, parent) {
  return parent.children.some((child) => child === record || isRecordChildOf(record, child));
}
const HASH_RE = /#/g;
const AMPERSAND_RE = /&/g;
const SLASH_RE = /\//g;
const EQUAL_RE = /=/g;
const IM_RE = /\?/g;
const PLUS_RE = /\+/g;
const ENC_BRACKET_OPEN_RE = /%5B/g;
const ENC_BRACKET_CLOSE_RE = /%5D/g;
const ENC_CARET_RE = /%5E/g;
const ENC_BACKTICK_RE = /%60/g;
const ENC_CURLY_OPEN_RE = /%7B/g;
const ENC_PIPE_RE = /%7C/g;
const ENC_CURLY_CLOSE_RE = /%7D/g;
const ENC_SPACE_RE = /%20/g;
function commonEncode(text2) {
  return encodeURI("" + text2).replace(ENC_PIPE_RE, "|").replace(ENC_BRACKET_OPEN_RE, "[").replace(ENC_BRACKET_CLOSE_RE, "]");
}
function encodeHash(text2) {
  return commonEncode(text2).replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
}
function encodeQueryValue(text2) {
  return commonEncode(text2).replace(PLUS_RE, "%2B").replace(ENC_SPACE_RE, "+").replace(HASH_RE, "%23").replace(AMPERSAND_RE, "%26").replace(ENC_BACKTICK_RE, "`").replace(ENC_CURLY_OPEN_RE, "{").replace(ENC_CURLY_CLOSE_RE, "}").replace(ENC_CARET_RE, "^");
}
function encodeQueryKey(text2) {
  return encodeQueryValue(text2).replace(EQUAL_RE, "%3D");
}
function encodePath(text2) {
  return commonEncode(text2).replace(HASH_RE, "%23").replace(IM_RE, "%3F");
}
function encodeParam(text2) {
  return text2 == null ? "" : encodePath(text2).replace(SLASH_RE, "%2F");
}
function decode(text2) {
  try {
    return decodeURIComponent("" + text2);
  } catch (err) {
  }
  return "" + text2;
}
function parseQuery(search) {
  const query = {};
  if (search === "" || search === "?")
    return query;
  const hasLeadingIM = search[0] === "?";
  const searchParams = (hasLeadingIM ? search.slice(1) : search).split("&");
  for (let i = 0; i < searchParams.length; ++i) {
    const searchParam = searchParams[i].replace(PLUS_RE, " ");
    const eqPos = searchParam.indexOf("=");
    const key = decode(eqPos < 0 ? searchParam : searchParam.slice(0, eqPos));
    const value = eqPos < 0 ? null : decode(searchParam.slice(eqPos + 1));
    if (key in query) {
      let currentValue = query[key];
      if (!isArray(currentValue)) {
        currentValue = query[key] = [currentValue];
      }
      currentValue.push(value);
    } else {
      query[key] = value;
    }
  }
  return query;
}
function stringifyQuery(query) {
  let search = "";
  for (let key in query) {
    const value = query[key];
    key = encodeQueryKey(key);
    if (value == null) {
      if (value !== void 0) {
        search += (search.length ? "&" : "") + key;
      }
      continue;
    }
    const values = isArray(value) ? value.map((v) => v && encodeQueryValue(v)) : [value && encodeQueryValue(value)];
    values.forEach((value2) => {
      if (value2 !== void 0) {
        search += (search.length ? "&" : "") + key;
        if (value2 != null)
          search += "=" + value2;
      }
    });
  }
  return search;
}
function normalizeQuery(query) {
  const normalizedQuery = {};
  for (const key in query) {
    const value = query[key];
    if (value !== void 0) {
      normalizedQuery[key] = isArray(value) ? value.map((v) => v == null ? null : "" + v) : value == null ? value : "" + value;
    }
  }
  return normalizedQuery;
}
const matchedRouteKey = Symbol("");
const viewDepthKey = Symbol("");
const routerKey = Symbol("");
const routeLocationKey = Symbol("");
const routerViewLocationKey = Symbol("");
function useCallbacks() {
  let handlers = [];
  function add2(handler) {
    handlers.push(handler);
    return () => {
      const i = handlers.indexOf(handler);
      if (i > -1)
        handlers.splice(i, 1);
    };
  }
  function reset() {
    handlers = [];
  }
  return {
    add: add2,
    list: () => handlers,
    reset
  };
}
function guardToPromiseFn(guard, to, from, record, name) {
  const enterCallbackArray = record && // name is defined if record is because of the function overload
  (record.enterCallbacks[name] = record.enterCallbacks[name] || []);
  return () => new Promise((resolve2, reject) => {
    const next = (valid) => {
      if (valid === false) {
        reject(createRouterError(4, {
          from,
          to
        }));
      } else if (valid instanceof Error) {
        reject(valid);
      } else if (isRouteLocation(valid)) {
        reject(createRouterError(2, {
          from: to,
          to: valid
        }));
      } else {
        if (enterCallbackArray && // since enterCallbackArray is truthy, both record and name also are
        record.enterCallbacks[name] === enterCallbackArray && typeof valid === "function") {
          enterCallbackArray.push(valid);
        }
        resolve2();
      }
    };
    const guardReturn = guard.call(record && record.instances[name], to, from, next);
    let guardCall = Promise.resolve(guardReturn);
    if (guard.length < 3)
      guardCall = guardCall.then(next);
    guardCall.catch((err) => reject(err));
  });
}
function extractComponentsGuards(matched, guardType, to, from) {
  const guards = [];
  for (const record of matched) {
    for (const name in record.components) {
      let rawComponent = record.components[name];
      if (guardType !== "beforeRouteEnter" && !record.instances[name])
        continue;
      if (isRouteComponent(rawComponent)) {
        const options = rawComponent.__vccOpts || rawComponent;
        const guard = options[guardType];
        guard && guards.push(guardToPromiseFn(guard, to, from, record, name));
      } else {
        let componentPromise = rawComponent();
        guards.push(() => componentPromise.then((resolved) => {
          if (!resolved)
            return Promise.reject(new Error(`Couldn't resolve component "${name}" at "${record.path}"`));
          const resolvedComponent = isESModule(resolved) ? resolved.default : resolved;
          record.components[name] = resolvedComponent;
          const options = resolvedComponent.__vccOpts || resolvedComponent;
          const guard = options[guardType];
          return guard && guardToPromiseFn(guard, to, from, record, name)();
        }));
      }
    }
  }
  return guards;
}
function isRouteComponent(component) {
  return typeof component === "object" || "displayName" in component || "props" in component || "__vccOpts" in component;
}
function useLink(props) {
  const router2 = inject(routerKey);
  const currentRoute = inject(routeLocationKey);
  const route = computed(() => router2.resolve(unref(props.to)));
  const activeRecordIndex = computed(() => {
    const { matched } = route.value;
    const { length } = matched;
    const routeMatched = matched[length - 1];
    const currentMatched = currentRoute.matched;
    if (!routeMatched || !currentMatched.length)
      return -1;
    const index2 = currentMatched.findIndex(isSameRouteRecord.bind(null, routeMatched));
    if (index2 > -1)
      return index2;
    const parentRecordPath = getOriginalPath(matched[length - 2]);
    return (
      // we are dealing with nested routes
      length > 1 && // if the parent and matched route have the same path, this link is
      // referring to the empty child. Or we currently are on a different
      // child of the same parent
      getOriginalPath(routeMatched) === parentRecordPath && // avoid comparing the child with its parent
      currentMatched[currentMatched.length - 1].path !== parentRecordPath ? currentMatched.findIndex(isSameRouteRecord.bind(null, matched[length - 2])) : index2
    );
  });
  const isActive = computed(() => activeRecordIndex.value > -1 && includesParams(currentRoute.params, route.value.params));
  const isExactActive = computed(() => activeRecordIndex.value > -1 && activeRecordIndex.value === currentRoute.matched.length - 1 && isSameRouteLocationParams(currentRoute.params, route.value.params));
  function navigate(e = {}) {
    if (guardEvent(e)) {
      return router2[unref(props.replace) ? "replace" : "push"](
        unref(props.to)
        // avoid uncaught errors are they are logged anyway
      ).catch(noop);
    }
    return Promise.resolve();
  }
  return {
    route,
    href: computed(() => route.value.href),
    isActive,
    isExactActive,
    navigate
  };
}
const RouterLinkImpl = /* @__PURE__ */ defineComponent({
  name: "RouterLink",
  compatConfig: { MODE: 3 },
  props: {
    to: {
      type: [String, Object],
      required: true
    },
    replace: Boolean,
    activeClass: String,
    // inactiveClass: String,
    exactActiveClass: String,
    custom: Boolean,
    ariaCurrentValue: {
      type: String,
      default: "page"
    }
  },
  useLink,
  setup(props, { slots }) {
    const link = reactive(useLink(props));
    const { options } = inject(routerKey);
    const elClass = computed(() => ({
      [getLinkClass(props.activeClass, options.linkActiveClass, "router-link-active")]: link.isActive,
      // [getLinkClass(
      //   props.inactiveClass,
      //   options.linkInactiveClass,
      //   'router-link-inactive'
      // )]: !link.isExactActive,
      [getLinkClass(props.exactActiveClass, options.linkExactActiveClass, "router-link-exact-active")]: link.isExactActive
    }));
    return () => {
      const children = slots.default && slots.default(link);
      return props.custom ? children : h("a", {
        "aria-current": link.isExactActive ? props.ariaCurrentValue : null,
        href: link.href,
        // this would override user added attrs but Vue will still add
        // the listener, so we end up triggering both
        onClick: link.navigate,
        class: elClass.value
      }, children);
    };
  }
});
const RouterLink = RouterLinkImpl;
function guardEvent(e) {
  if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)
    return;
  if (e.defaultPrevented)
    return;
  if (e.button !== void 0 && e.button !== 0)
    return;
  if (e.currentTarget && e.currentTarget.getAttribute) {
    const target = e.currentTarget.getAttribute("target");
    if (/\b_blank\b/i.test(target))
      return;
  }
  if (e.preventDefault)
    e.preventDefault();
  return true;
}
function includesParams(outer, inner) {
  for (const key in inner) {
    const innerValue = inner[key];
    const outerValue = outer[key];
    if (typeof innerValue === "string") {
      if (innerValue !== outerValue)
        return false;
    } else {
      if (!isArray(outerValue) || outerValue.length !== innerValue.length || innerValue.some((value, i) => value !== outerValue[i]))
        return false;
    }
  }
  return true;
}
function getOriginalPath(record) {
  return record ? record.aliasOf ? record.aliasOf.path : record.path : "";
}
const getLinkClass = (propClass, globalClass, defaultClass) => propClass != null ? propClass : globalClass != null ? globalClass : defaultClass;
const RouterViewImpl = /* @__PURE__ */ defineComponent({
  name: "RouterView",
  // #674 we manually inherit them
  inheritAttrs: false,
  props: {
    name: {
      type: String,
      default: "default"
    },
    route: Object
  },
  // Better compat for @vue/compat users
  // https://github.com/vuejs/router/issues/1315
  compatConfig: { MODE: 3 },
  setup(props, { attrs, slots }) {
    const injectedRoute = inject(routerViewLocationKey);
    const routeToDisplay = computed(() => props.route || injectedRoute.value);
    const injectedDepth = inject(viewDepthKey, 0);
    const depth = computed(() => {
      let initialDepth = unref(injectedDepth);
      const { matched } = routeToDisplay.value;
      let matchedRoute;
      while ((matchedRoute = matched[initialDepth]) && !matchedRoute.components) {
        initialDepth++;
      }
      return initialDepth;
    });
    const matchedRouteRef = computed(() => routeToDisplay.value.matched[depth.value]);
    provide(viewDepthKey, computed(() => depth.value + 1));
    provide(matchedRouteKey, matchedRouteRef);
    provide(routerViewLocationKey, routeToDisplay);
    const viewRef = ref();
    watch(() => [viewRef.value, matchedRouteRef.value, props.name], ([instance, to, name], [oldInstance, from, oldName]) => {
      if (to) {
        to.instances[name] = instance;
        if (from && from !== to && instance && instance === oldInstance) {
          if (!to.leaveGuards.size) {
            to.leaveGuards = from.leaveGuards;
          }
          if (!to.updateGuards.size) {
            to.updateGuards = from.updateGuards;
          }
        }
      }
      if (instance && to && // if there is no instance but to and from are the same this might be
      // the first visit
      (!from || !isSameRouteRecord(to, from) || !oldInstance)) {
        (to.enterCallbacks[name] || []).forEach((callback) => callback(instance));
      }
    }, { flush: "post" });
    return () => {
      const route = routeToDisplay.value;
      const currentName = props.name;
      const matchedRoute = matchedRouteRef.value;
      const ViewComponent = matchedRoute && matchedRoute.components[currentName];
      if (!ViewComponent) {
        return normalizeSlot(slots.default, { Component: ViewComponent, route });
      }
      const routePropsOption = matchedRoute.props[currentName];
      const routeProps = routePropsOption ? routePropsOption === true ? route.params : typeof routePropsOption === "function" ? routePropsOption(route) : routePropsOption : null;
      const onVnodeUnmounted = (vnode) => {
        if (vnode.component.isUnmounted) {
          matchedRoute.instances[currentName] = null;
        }
      };
      const component = h(ViewComponent, assign({}, routeProps, attrs, {
        onVnodeUnmounted,
        ref: viewRef
      }));
      return (
        // pass the vnode to the slot as a prop.
        // h and <component :is="..."> both accept vnodes
        normalizeSlot(slots.default, { Component: component, route }) || component
      );
    };
  }
});
function normalizeSlot(slot, data) {
  if (!slot)
    return null;
  const slotContent = slot(data);
  return slotContent.length === 1 ? slotContent[0] : slotContent;
}
const RouterView = RouterViewImpl;
function createRouter(options) {
  const matcher = createRouterMatcher(options.routes, options);
  const parseQuery$1 = options.parseQuery || parseQuery;
  const stringifyQuery$1 = options.stringifyQuery || stringifyQuery;
  const routerHistory = options.history;
  const beforeGuards = useCallbacks();
  const beforeResolveGuards = useCallbacks();
  const afterGuards = useCallbacks();
  const currentRoute = shallowRef(START_LOCATION_NORMALIZED);
  let pendingLocation = START_LOCATION_NORMALIZED;
  if (isBrowser && options.scrollBehavior && "scrollRestoration" in history) {
    history.scrollRestoration = "manual";
  }
  const normalizeParams = applyToParams.bind(null, (paramValue) => "" + paramValue);
  const encodeParams = applyToParams.bind(null, encodeParam);
  const decodeParams = (
    // @ts-expect-error: intentionally avoid the type check
    applyToParams.bind(null, decode)
  );
  function addRoute(parentOrRoute, route) {
    let parent;
    let record;
    if (isRouteName(parentOrRoute)) {
      parent = matcher.getRecordMatcher(parentOrRoute);
      record = route;
    } else {
      record = parentOrRoute;
    }
    return matcher.addRoute(record, parent);
  }
  function removeRoute(name) {
    const recordMatcher = matcher.getRecordMatcher(name);
    if (recordMatcher) {
      matcher.removeRoute(recordMatcher);
    }
  }
  function getRoutes() {
    return matcher.getRoutes().map((routeMatcher) => routeMatcher.record);
  }
  function hasRoute(name) {
    return !!matcher.getRecordMatcher(name);
  }
  function resolve2(rawLocation, currentLocation) {
    currentLocation = assign({}, currentLocation || currentRoute.value);
    if (typeof rawLocation === "string") {
      const locationNormalized = parseURL(parseQuery$1, rawLocation, currentLocation.path);
      const matchedRoute2 = matcher.resolve({ path: locationNormalized.path }, currentLocation);
      const href2 = routerHistory.createHref(locationNormalized.fullPath);
      return assign(locationNormalized, matchedRoute2, {
        params: decodeParams(matchedRoute2.params),
        hash: decode(locationNormalized.hash),
        redirectedFrom: void 0,
        href: href2
      });
    }
    let matcherLocation;
    if ("path" in rawLocation) {
      matcherLocation = assign({}, rawLocation, {
        path: parseURL(parseQuery$1, rawLocation.path, currentLocation.path).path
      });
    } else {
      const targetParams = assign({}, rawLocation.params);
      for (const key in targetParams) {
        if (targetParams[key] == null) {
          delete targetParams[key];
        }
      }
      matcherLocation = assign({}, rawLocation, {
        params: encodeParams(rawLocation.params)
      });
      currentLocation.params = encodeParams(currentLocation.params);
    }
    const matchedRoute = matcher.resolve(matcherLocation, currentLocation);
    const hash = rawLocation.hash || "";
    matchedRoute.params = normalizeParams(decodeParams(matchedRoute.params));
    const fullPath = stringifyURL(stringifyQuery$1, assign({}, rawLocation, {
      hash: encodeHash(hash),
      path: matchedRoute.path
    }));
    const href = routerHistory.createHref(fullPath);
    return assign({
      fullPath,
      // keep the hash encoded so fullPath is effectively path + encodedQuery +
      // hash
      hash,
      query: (
        // if the user is using a custom query lib like qs, we might have
        // nested objects, so we keep the query as is, meaning it can contain
        // numbers at `$route.query`, but at the point, the user will have to
        // use their own type anyway.
        // https://github.com/vuejs/router/issues/328#issuecomment-649481567
        stringifyQuery$1 === stringifyQuery ? normalizeQuery(rawLocation.query) : rawLocation.query || {}
      )
    }, matchedRoute, {
      redirectedFrom: void 0,
      href
    });
  }
  function locationAsObject(to) {
    return typeof to === "string" ? parseURL(parseQuery$1, to, currentRoute.value.path) : assign({}, to);
  }
  function checkCanceledNavigation(to, from) {
    if (pendingLocation !== to) {
      return createRouterError(8, {
        from,
        to
      });
    }
  }
  function push(to) {
    return pushWithRedirect(to);
  }
  function replace(to) {
    return push(assign(locationAsObject(to), { replace: true }));
  }
  function handleRedirectRecord(to) {
    const lastMatched = to.matched[to.matched.length - 1];
    if (lastMatched && lastMatched.redirect) {
      const { redirect } = lastMatched;
      let newTargetLocation = typeof redirect === "function" ? redirect(to) : redirect;
      if (typeof newTargetLocation === "string") {
        newTargetLocation = newTargetLocation.includes("?") || newTargetLocation.includes("#") ? newTargetLocation = locationAsObject(newTargetLocation) : (
          // force empty params
          { path: newTargetLocation }
        );
        newTargetLocation.params = {};
      }
      return assign({
        query: to.query,
        hash: to.hash,
        // avoid transferring params if the redirect has a path
        params: "path" in newTargetLocation ? {} : to.params
      }, newTargetLocation);
    }
  }
  function pushWithRedirect(to, redirectedFrom) {
    const targetLocation = pendingLocation = resolve2(to);
    const from = currentRoute.value;
    const data = to.state;
    const force = to.force;
    const replace2 = to.replace === true;
    const shouldRedirect = handleRedirectRecord(targetLocation);
    if (shouldRedirect)
      return pushWithRedirect(
        assign(locationAsObject(shouldRedirect), {
          state: typeof shouldRedirect === "object" ? assign({}, data, shouldRedirect.state) : data,
          force,
          replace: replace2
        }),
        // keep original redirectedFrom if it exists
        redirectedFrom || targetLocation
      );
    const toLocation = targetLocation;
    toLocation.redirectedFrom = redirectedFrom;
    let failure;
    if (!force && isSameRouteLocation(stringifyQuery$1, from, targetLocation)) {
      failure = createRouterError(16, { to: toLocation, from });
      handleScroll(
        from,
        from,
        // this is a push, the only way for it to be triggered from a
        // history.listen is with a redirect, which makes it become a push
        true,
        // This cannot be the first navigation because the initial location
        // cannot be manually navigated to
        false
      );
    }
    return (failure ? Promise.resolve(failure) : navigate(toLocation, from)).catch((error) => isNavigationFailure(error) ? (
      // navigation redirects still mark the router as ready
      isNavigationFailure(
        error,
        2
        /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */
      ) ? error : markAsReady(error)
    ) : (
      // reject any unknown error
      triggerError(error, toLocation, from)
    )).then((failure2) => {
      if (failure2) {
        if (isNavigationFailure(
          failure2,
          2
          /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */
        )) {
          return pushWithRedirect(
            // keep options
            assign({
              // preserve an existing replacement but allow the redirect to override it
              replace: replace2
            }, locationAsObject(failure2.to), {
              state: typeof failure2.to === "object" ? assign({}, data, failure2.to.state) : data,
              force
            }),
            // preserve the original redirectedFrom if any
            redirectedFrom || toLocation
          );
        }
      } else {
        failure2 = finalizeNavigation(toLocation, from, true, replace2, data);
      }
      triggerAfterEach(toLocation, from, failure2);
      return failure2;
    });
  }
  function checkCanceledNavigationAndReject(to, from) {
    const error = checkCanceledNavigation(to, from);
    return error ? Promise.reject(error) : Promise.resolve();
  }
  function navigate(to, from) {
    let guards;
    const [leavingRecords, updatingRecords, enteringRecords] = extractChangingRecords(to, from);
    guards = extractComponentsGuards(leavingRecords.reverse(), "beforeRouteLeave", to, from);
    for (const record of leavingRecords) {
      record.leaveGuards.forEach((guard) => {
        guards.push(guardToPromiseFn(guard, to, from));
      });
    }
    const canceledNavigationCheck = checkCanceledNavigationAndReject.bind(null, to, from);
    guards.push(canceledNavigationCheck);
    return runGuardQueue(guards).then(() => {
      guards = [];
      for (const guard of beforeGuards.list()) {
        guards.push(guardToPromiseFn(guard, to, from));
      }
      guards.push(canceledNavigationCheck);
      return runGuardQueue(guards);
    }).then(() => {
      guards = extractComponentsGuards(updatingRecords, "beforeRouteUpdate", to, from);
      for (const record of updatingRecords) {
        record.updateGuards.forEach((guard) => {
          guards.push(guardToPromiseFn(guard, to, from));
        });
      }
      guards.push(canceledNavigationCheck);
      return runGuardQueue(guards);
    }).then(() => {
      guards = [];
      for (const record of to.matched) {
        if (record.beforeEnter && !from.matched.includes(record)) {
          if (isArray(record.beforeEnter)) {
            for (const beforeEnter of record.beforeEnter)
              guards.push(guardToPromiseFn(beforeEnter, to, from));
          } else {
            guards.push(guardToPromiseFn(record.beforeEnter, to, from));
          }
        }
      }
      guards.push(canceledNavigationCheck);
      return runGuardQueue(guards);
    }).then(() => {
      to.matched.forEach((record) => record.enterCallbacks = {});
      guards = extractComponentsGuards(enteringRecords, "beforeRouteEnter", to, from);
      guards.push(canceledNavigationCheck);
      return runGuardQueue(guards);
    }).then(() => {
      guards = [];
      for (const guard of beforeResolveGuards.list()) {
        guards.push(guardToPromiseFn(guard, to, from));
      }
      guards.push(canceledNavigationCheck);
      return runGuardQueue(guards);
    }).catch((err) => isNavigationFailure(
      err,
      8
      /* ErrorTypes.NAVIGATION_CANCELLED */
    ) ? err : Promise.reject(err));
  }
  function triggerAfterEach(to, from, failure) {
    for (const guard of afterGuards.list())
      guard(to, from, failure);
  }
  function finalizeNavigation(toLocation, from, isPush, replace2, data) {
    const error = checkCanceledNavigation(toLocation, from);
    if (error)
      return error;
    const isFirstNavigation = from === START_LOCATION_NORMALIZED;
    const state = !isBrowser ? {} : history.state;
    if (isPush) {
      if (replace2 || isFirstNavigation)
        routerHistory.replace(toLocation.fullPath, assign({
          scroll: isFirstNavigation && state && state.scroll
        }, data));
      else
        routerHistory.push(toLocation.fullPath, data);
    }
    currentRoute.value = toLocation;
    handleScroll(toLocation, from, isPush, isFirstNavigation);
    markAsReady();
  }
  let removeHistoryListener;
  function setupListeners() {
    if (removeHistoryListener)
      return;
    removeHistoryListener = routerHistory.listen((to, _from, info) => {
      if (!router2.listening)
        return;
      const toLocation = resolve2(to);
      const shouldRedirect = handleRedirectRecord(toLocation);
      if (shouldRedirect) {
        pushWithRedirect(assign(shouldRedirect, { replace: true }), toLocation).catch(noop);
        return;
      }
      pendingLocation = toLocation;
      const from = currentRoute.value;
      if (isBrowser) {
        saveScrollPosition(getScrollKey(from.fullPath, info.delta), computeScrollPosition());
      }
      navigate(toLocation, from).catch((error) => {
        if (isNavigationFailure(
          error,
          4 | 8
          /* ErrorTypes.NAVIGATION_CANCELLED */
        )) {
          return error;
        }
        if (isNavigationFailure(
          error,
          2
          /* ErrorTypes.NAVIGATION_GUARD_REDIRECT */
        )) {
          pushWithRedirect(
            error.to,
            toLocation
            // avoid an uncaught rejection, let push call triggerError
          ).then((failure) => {
            if (isNavigationFailure(
              failure,
              4 | 16
              /* ErrorTypes.NAVIGATION_DUPLICATED */
            ) && !info.delta && info.type === NavigationType.pop) {
              routerHistory.go(-1, false);
            }
          }).catch(noop);
          return Promise.reject();
        }
        if (info.delta) {
          routerHistory.go(-info.delta, false);
        }
        return triggerError(error, toLocation, from);
      }).then((failure) => {
        failure = failure || finalizeNavigation(
          // after navigation, all matched components are resolved
          toLocation,
          from,
          false
        );
        if (failure) {
          if (info.delta && // a new navigation has been triggered, so we do not want to revert, that will change the current history
          // entry while a different route is displayed
          !isNavigationFailure(
            failure,
            8
            /* ErrorTypes.NAVIGATION_CANCELLED */
          )) {
            routerHistory.go(-info.delta, false);
          } else if (info.type === NavigationType.pop && isNavigationFailure(
            failure,
            4 | 16
            /* ErrorTypes.NAVIGATION_DUPLICATED */
          )) {
            routerHistory.go(-1, false);
          }
        }
        triggerAfterEach(toLocation, from, failure);
      }).catch(noop);
    });
  }
  let readyHandlers = useCallbacks();
  let errorHandlers = useCallbacks();
  let ready;
  function triggerError(error, to, from) {
    markAsReady(error);
    const list = errorHandlers.list();
    if (list.length) {
      list.forEach((handler) => handler(error, to, from));
    } else {
      console.error(error);
    }
    return Promise.reject(error);
  }
  function isReady() {
    if (ready && currentRoute.value !== START_LOCATION_NORMALIZED)
      return Promise.resolve();
    return new Promise((resolve3, reject) => {
      readyHandlers.add([resolve3, reject]);
    });
  }
  function markAsReady(err) {
    if (!ready) {
      ready = !err;
      setupListeners();
      readyHandlers.list().forEach(([resolve3, reject]) => err ? reject(err) : resolve3());
      readyHandlers.reset();
    }
    return err;
  }
  function handleScroll(to, from, isPush, isFirstNavigation) {
    const { scrollBehavior } = options;
    if (!isBrowser || !scrollBehavior)
      return Promise.resolve();
    const scrollPosition = !isPush && getSavedScrollPosition(getScrollKey(to.fullPath, 0)) || (isFirstNavigation || !isPush) && history.state && history.state.scroll || null;
    return nextTick().then(() => scrollBehavior(to, from, scrollPosition)).then((position) => position && scrollToPosition(position)).catch((err) => triggerError(err, to, from));
  }
  const go = (delta) => routerHistory.go(delta);
  let started;
  const installedApps = /* @__PURE__ */ new Set();
  const router2 = {
    currentRoute,
    listening: true,
    addRoute,
    removeRoute,
    hasRoute,
    getRoutes,
    resolve: resolve2,
    options,
    push,
    replace,
    go,
    back: () => go(-1),
    forward: () => go(1),
    beforeEach: beforeGuards.add,
    beforeResolve: beforeResolveGuards.add,
    afterEach: afterGuards.add,
    onError: errorHandlers.add,
    isReady,
    install(app2) {
      const router3 = this;
      app2.component("RouterLink", RouterLink);
      app2.component("RouterView", RouterView);
      app2.config.globalProperties.$router = router3;
      Object.defineProperty(app2.config.globalProperties, "$route", {
        enumerable: true,
        get: () => unref(currentRoute)
      });
      if (isBrowser && // used for the initial navigation client side to avoid pushing
      // multiple times when the router is used in multiple apps
      !started && currentRoute.value === START_LOCATION_NORMALIZED) {
        started = true;
        push(routerHistory.location).catch((err) => {
        });
      }
      const reactiveRoute = {};
      for (const key in START_LOCATION_NORMALIZED) {
        reactiveRoute[key] = computed(() => currentRoute.value[key]);
      }
      app2.provide(routerKey, router3);
      app2.provide(routeLocationKey, reactive(reactiveRoute));
      app2.provide(routerViewLocationKey, currentRoute);
      const unmountApp = app2.unmount;
      installedApps.add(app2);
      app2.unmount = function() {
        installedApps.delete(app2);
        if (installedApps.size < 1) {
          pendingLocation = START_LOCATION_NORMALIZED;
          removeHistoryListener && removeHistoryListener();
          removeHistoryListener = null;
          currentRoute.value = START_LOCATION_NORMALIZED;
          started = false;
          ready = false;
        }
        unmountApp();
      };
    }
  };
  return router2;
}
function runGuardQueue(guards) {
  return guards.reduce((promise, guard) => promise.then(() => guard()), Promise.resolve());
}
function extractChangingRecords(to, from) {
  const leavingRecords = [];
  const updatingRecords = [];
  const enteringRecords = [];
  const len2 = Math.max(from.matched.length, to.matched.length);
  for (let i = 0; i < len2; i++) {
    const recordFrom = from.matched[i];
    if (recordFrom) {
      if (to.matched.find((record) => isSameRouteRecord(record, recordFrom)))
        updatingRecords.push(recordFrom);
      else
        leavingRecords.push(recordFrom);
    }
    const recordTo = to.matched[i];
    if (recordTo) {
      if (!from.matched.find((record) => isSameRouteRecord(record, recordTo))) {
        enteringRecords.push(recordTo);
      }
    }
  }
  return [leavingRecords, updatingRecords, enteringRecords];
}
function useRouter() {
  return inject(routerKey);
}
function useRoute() {
  return inject(routeLocationKey);
}
class Screen {
  constructor(title, pods, screenLayout, layout, podLayout) {
    this.title = title;
    this.pods = pods;
    this.screenLayout = screenLayout;
    this.layout = layout;
    this.podLayout = podLayout;
  }
}
const configs$2 = [
  {
    terminal: "MT",
    screenID: "home",
    podID: "screen",
    podTitle: "Member Home",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [],
              rows: [
                {
                  classes: [],
                  columns: [
                    {
                      classes: [],
                      width: 1,
                      pods: [
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-policyholder-info",
                          podTitle: "Policyholder and Policy Information",
                          component: "MemberPolicyholderInfo",
                          hidePODTitle: "true"
                        }
                      ]
                    },
                    {
                      classes: [],
                      width: 1,
                      pods: [
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-addresses",
                          podTitle: "Policyholder Address",
                          component: "MemberAddresses",
                          hidePODTitle: "true"
                        }
                      ]
                    }
                  ]
                },
                {
                  classes: [],
                  columns: [
                    {
                      classes: [],
                      width: 1,
                      pods: [
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-critical-announcements",
                          podTitle: "",
                          component: "CriticalAnnouncements",
                          hidePODTitle: "true"
                        }
                      ]
                    }
                  ]
                },
                {
                  classes: [],
                  columns: [
                    {
                      classes: [
                        "column-wrapper"
                      ],
                      width: 3,
                      pods: [
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-plan-type-selector",
                          podTitle: "Select",
                          component: "MemberPlanTypeSelector",
                          hidePODTitle: "true"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-employee-info",
                          podTitle: "Plan Information",
                          component: "MemberEmployeeInfo",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-recent-claims",
                          podTitle: "Recent Claims",
                          component: "RecentClaims",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-my-deductibles",
                          podTitle: "My Deductibles",
                          component: "MyDeductibles",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-benefits-tracker-deductibles",
                          podTitle: "My Benefits Tracker",
                          component: "MemberBenefitsTracker",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "pension-member-info",
                          podTitle: "Pension Member Information",
                          component: "PensionMemberInfo",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "pension-member-addresses",
                          podTitle: "Pension Member Addresses",
                          component: "PensionMemberAddresses",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "pension-beneficiaries",
                          podTitle: "Pension Beneficiaries",
                          component: "PensionBeneficiaries",
                          hidePODTitle: "false"
                        }
                      ]
                    },
                    {
                      classes: [],
                      width: 1,
                      pods: [
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-announcements",
                          podTitle: "News and Announcements",
                          component: "MemberAnnouncement",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-recommended-for-you",
                          podTitle: "Recommended For You",
                          component: "MemberRecommended",
                          hidePODTitle: "false"
                        },
                        {
                          terminal: "MT",
                          screenID: "home",
                          podID: "member-resources",
                          podTitle: "Quick Links",
                          component: "MemberResources",
                          hidePODTitle: "false"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "marketing-info-screen",
    podID: "screen",
    podTitle: "Marketing Info Screen",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "marketing-info-screen",
                  podID: "marketing-info",
                  podTitle: "Marketing Info",
                  component: "MarketingInfo",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "generate-report",
    podID: "screen",
    podTitle: "Generate Report Screen Title",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "generate-report",
                  podID: "generate-report-pod",
                  podTitle: "Generate Report",
                  component: "GenerateReport",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-member-feedback-screen",
    podID: "screen",
    podTitle: "Member Feedback Screen Title",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-member-feedback-screen",
                  podID: "v-member-feedback",
                  podTitle: "Feedback",
                  component: "Questionnaire",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "claims-summary",
    podID: "screen",
    podTitle: "Claim Summary",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "claims-summary",
                  podID: "claims-summary-cards",
                  podTitle: "Claims Summary",
                  component: "ClaimsPage",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "claim-details",
    podID: "screen",
    podTitle: "Claim Details",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [
                "column-wrapper"
              ],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "claim-details",
                  podID: "claim-details-header",
                  podTitle: "Claim Details Header",
                  component: "ClaimDetailsHeader",
                  hidePODTitle: "true"
                },
                {
                  terminal: "MT",
                  screenID: "claim-details",
                  podID: "claim-details-card",
                  podTitle: "Claim Details",
                  component: "claimDetailsCard",
                  hidePODTitle: "false"
                },
                {
                  terminal: "MT",
                  screenID: "claim-details",
                  podID: "claim-details-timeline",
                  podTitle: "Claim Details Timeline",
                  component: "ClaimDetailsTimeline",
                  hidePODTitle: "true"
                },
                {
                  terminal: "MT",
                  screenID: "claim-details",
                  podID: "claim-details-cost-breakdown",
                  podTitle: "Cost Breakdown",
                  component: "ClaimDetailsCostBreakdown",
                  hidePODTitle: "false"
                },
                {
                  terminal: "MT",
                  screenID: "claim-details",
                  podID: "claim-details-faqs",
                  podTitle: "Frequently Asked Questions",
                  component: "FAQs",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "submit-a-claim",
    podID: "screen",
    podTitle: "Submit a Claim",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "submit-a-claim",
                  podID: "claim-submission-landing",
                  podTitle: "Submit a Claim",
                  component: "ClaimSubmissionLanding",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "submit-a-claim-other",
    podID: "screen",
    podTitle: "Submit a Claim",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "submit-a-claim-other",
                  podID: "claim-submission-alternative",
                  podTitle: "Submit a Claim",
                  component: "ClaimSubmissionAlternative",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "form",
    podID: "screen",
    podTitle: "Submit a Request",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "form",
                  podID: "new-form-submission-wizard",
                  podTitle: "Submit a New Request",
                  component: "FormSubmissionWizard",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "member-billing-history-screen",
    podID: "screen",
    podTitle: "Billing History",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "member-billing-history-screen",
                  podID: "member-billing-history",
                  podTitle: "Billing History",
                  component: "MemberBillingHistory",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-member-billing-details-screen",
    podID: "screen",
    podTitle: "Billing Details",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-member-billing-details-screen",
                  podID: "v-member-billing-details-uld",
                  podTitle: "Unintentional Lapse Designee",
                  component: "MemberULD",
                  hidePODTitle: "false"
                },
                {
                  terminal: "MT",
                  screenID: "v-member-billing-details-screen",
                  podID: "v-current-detail-billing-pod",
                  podTitle: "Current Detail Billing",
                  component: "CurrentDetailBillingPod",
                  hidePODTitle: "false"
                },
                {
                  terminal: "MT",
                  screenID: "v-member-billing-details-screen",
                  podID: "rerate-history-pod",
                  podTitle: "Re-Rate History",
                  component: "RerateHistoryPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "member-billing-history-details",
    podID: "screen",
    podTitle: "Billing History Details",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "member-billing-history-details",
                  podID: "member-billing-history-details",
                  podTitle: "Billing History Details",
                  component: "MemberBillingHistoryDetails",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "member-plan-overview",
    podID: "screen",
    podTitle: "Plan Overview",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "member-plan-overview",
                  podID: "member-plan-overview",
                  podTitle: "Plan Overview",
                  component: "PlanOverview",
                  hidePODTitle: "false"
                },
                {
                  terminal: "MT",
                  screenID: "member-plan-overview",
                  podID: "member-plan-overview-faqs",
                  podTitle: "Frequently Asked Questions",
                  component: "FAQs",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-member-id-wallet-screen",
    podID: "screen",
    podTitle: "Member Id Wallet Screen Title",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-member-id-wallet-screen",
                  podID: "v-member-id-wallet",
                  podTitle: "Member Id Wallet",
                  component: "MemberIdWallet",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "help",
    podID: "screen",
    podTitle: "Help Digest Screen",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "help",
                  podID: "member-help",
                  podTitle: "Help",
                  component: "HelpDigest",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "registration",
    podID: "screen",
    podTitle: "Registration",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "registration",
                  podID: "registration",
                  podTitle: "Registration",
                  component: "Registration",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "registration",
    podID: "screen",
    podTitle: "Registration",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "registration",
                  podID: "registration",
                  podTitle: "Registration",
                  component: "Registration",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-member-change-invoice-cycle-screen",
    podID: "screen",
    podTitle: "",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-member-change-invoice-cycle-screen",
                  podID: "v-member-change-invoice-cycle",
                  podTitle: "Update Invoice Cycle",
                  component: "UpdateInvoiceCycle",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-document-request-screen",
    podID: "screen",
    podTitle: "",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-document-request-screen",
                  podID: "document-request",
                  podTitle: "Upload Document",
                  component: "FillableDocuments",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-my-account-screen",
    podID: "screen",
    podTitle: "User Profile",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-my-account-screen",
                  podID: "v-user-profile",
                  podTitle: "User Profile",
                  component: "UserProfile",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-document-management-screen",
    podID: "screen",
    podTitle: "Document Management",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-document-management-screen",
                  podID: "v-document-management",
                  podTitle: "",
                  component: "DocumentManagement",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        },
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-document-management-screen",
                  podID: "policyholder-documents",
                  podTitle: "Policyholder Documents",
                  component: "PolicyholderDocuments",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "v-my-account-screen",
    podID: "screen",
    podTitle: "User Profile",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "v-my-account-screen",
                  podID: "v-user-profile",
                  podTitle: "User Profile",
                  component: "UserProfile",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "admin-home",
    podID: "screen",
    podTitle: "Admin Home",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [],
              rows: [
                {
                  classes: [],
                  columns: [
                    {
                      classes: [],
                      width: 1,
                      pods: [
                        {
                          terminal: "AT",
                          screenID: "admin-home",
                          podID: "admin-gateway-info",
                          podTitle: "",
                          component: "GatewayInfo",
                          hidePODTitle: "true"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "admin-manage-notifications-screen",
    podID: "screen",
    podTitle: "Admin Manage Notification",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "admin-manage-notifications-screen",
                  podID: "admin-manage-notifications",
                  podTitle: "Events Available for Notifications",
                  component: "AdminAvailableNotificationsPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        },
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "admin-manage-notifications-screen",
                  podID: "admin-configure-notifications",
                  podTitle: "Configure Notifications",
                  component: "AdminConfigureNotificationsPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "admin-request-types-screen",
    podID: "screen",
    podTitle: "admin-request-types-screen",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "admin-request-types-screen",
                  podID: "admin-request-types",
                  podTitle: "Configure Request Types",
                  component: "AdminRequestTypes",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "admin-users",
    podID: "screen",
    podTitle: "User Management",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "admin-users",
                  podID: "admin-users-grid",
                  podTitle: "Manage Users",
                  component: "AdminManageUsersPod",
                  hidePODTitle: "false"
                }
              ],
              rows: []
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-member-change-invoice-cycle-screen",
    podID: "screen",
    podTitle: "Update Invoice Cycle",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-member-change-invoice-cycle-screen",
                  podID: "v-member-change-invoice-cycle",
                  podTitle: "Update Invoice Cycle",
                  component: "UpdateInvoiceCycle",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-member-address-change-screen",
    podID: "screen",
    podTitle: "Update Member Address",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-member-address-change-screen",
                  podID: "v-member-address-change",
                  podTitle: "Update Member Address",
                  component: "MemberAddressChangePod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-ltc-claims-screen",
    podID: "screen",
    podTitle: "LTC Claims",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-ltc-claims-screen",
                  podID: "v-ltc-claims",
                  podTitle: "LTC Claims",
                  component: "LtcClaimsSummaryWithDetails",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "v-member-spending-account",
    podID: "screen",
    podTitle: "Spending Accounts",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "v-member-spending-account",
                  podID: "v-member-spending-account",
                  podTitle: "Select",
                  component: "MemberSpendingAccount",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "v-manage-announcements-screen",
    podID: "screen",
    podTitle: "Manage Announcements",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "v-manage-announcements-screen",
                  podID: "v-manage-announcements",
                  podTitle: "Manage Announcements",
                  component: "AdminManageAnnouncementsPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "employer-config-plans",
    podID: "screen",
    podTitle: "Configure Plans",
    component: "AdminConfigurePlan",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "employer-config-plans",
                  podID: "employer-config-plans-select-plan",
                  podTitle: "Select a Plan",
                  component: "AdminSelectPlanPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        },
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "employer-config-plans",
                  podID: "employer-config-plans-plan-options",
                  podTitle: "Plan Options",
                  component: "AdminPlanOptionsPod",
                  hidePODTitle: "false"
                }
              ]
            },
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "employer-config-plans",
                  podID: "employer-config-plans-plan-labels",
                  podTitle: "Plan Labels",
                  component: "AdminPlanLabelsPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "admin-message-center-screen",
    podID: "screen",
    podTitle: "Message Center",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "admin-message-center-screen",
                  podID: "admin-message-center",
                  podTitle: "Message Center",
                  component: "MessageCenterPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "admin-config-login-page-screen",
    podID: "screen",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "admin-config-login-page-screen",
                  podID: "admin-config-login-page",
                  podTitle: "Manage Login Page",
                  component: "AdminConfigureLoginPod",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "v-admin-docs",
    podID: "screen",
    podTitle: "Manage Documents",
    component: "",
    hidePODTitle: "false",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "v-admin-docs",
                  podID: "documents",
                  podTitle: "Manage Documents",
                  component: "AdminDocuments",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "AT",
    screenID: "v-fillable-doc-admin-screen",
    podID: "screen",
    podTitle: "Manage Fillable Documents",
    component: "",
    screenLayout: {
      rows: [
        {
          classes: [],
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "AT",
                  screenID: "v-fillable-doc-admin-screen",
                  podID: "fillable-documents",
                  podTitle: "Manage Fillable Documents",
                  component: "AdminFillableDocuments",
                  hidePODTitle: "false"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    terminal: "MT",
    screenID: "update-uld",
    podID: "screen",
    podTitle: "Update ULD",
    component: "",
    hidePODTitle: "true",
    screenLayout: {
      rows: [
        {
          classes: [],
          width: 1,
          columns: [
            {
              classes: [],
              width: 1,
              pods: [
                {
                  terminal: "MT",
                  screenID: "update-uld",
                  podID: "update-uld-pod",
                  podTitle: "Update ULD",
                  component: "UpdateUld",
                  hidePODTitle: "true"
                }
              ]
            }
          ]
        }
      ]
    }
  }
];
const configs$3 = {
  configs: configs$2
};
const useConfigStore = defineStore("config", () => {
  const apiService = new APIService();
  const clientScreenConfigs = ref([]);
  const clientConfigs = ref([]);
  const externalClientConfigs = ref([]);
  async function loadClientScreenConfigs(terminal) {
    clientScreenConfigs.value = await apiService.ClientScreenConfig(terminal);
    return await clientScreenConfigs.value;
  }
  function getScreen(terminal, screenID) {
    let title = "";
    let layout = "";
    let screenLayout;
    let podLayout = [];
    const pods = [];
    configs$3.configs.forEach((pod, index2) => {
      if (pod.podID !== "screen" && pod.screenID === screenID && pod.terminal === terminal) {
        pods.push(pod);
      } else if (pod.podID === "screen" && pod.screenID === screenID && pod.terminal === terminal) {
        title = pod.podTitle;
        layout = pod.layout;
        screenLayout = pod.screenLayout;
      }
    });
    return new Screen(title, pods, screenLayout, layout, podLayout);
  }
  function getClientScreenConfig(terminal, screenID) {
    return clientScreenConfigs.value?.find(({ Terminal, Screen_ID, POD_ID }) => {
      return Terminal === terminal && Screen_ID === screenID && POD_ID === "screen";
    });
  }
  function getClientPodConfig(terminal, screenID, podID) {
    if (clientScreenConfigs.value.length === 0) {
      return loadClientScreenConfigs(terminal).then(() => {
        return clientScreenConfigs.value?.find(({ Terminal, Screen_ID, POD_ID }) => {
          return Terminal === terminal && Screen_ID === screenID && POD_ID === podID;
        });
      });
    } else {
      return clientScreenConfigs.value?.find(({ Terminal, Screen_ID, POD_ID }) => {
        return Terminal === terminal && Screen_ID === screenID && POD_ID === podID;
      });
    }
  }
  function getEOBLink(claimID, claimNumber) {
    return `/#reports/eob/ClaimID:${claimID}|ClaimNum:${claimNumber}/true`;
  }
  function getMemberIdCardLink(subscriberId, memberSeq) {
    return `/#reports/card/SubscriberID:${subscriberId}|MemberSeq:${memberSeq}|Vue:true/true`;
  }
  function getPlanSum(planId) {
    return `/#reports/plansum/UserID:true|PlanID:${planId}/true`;
  }
  async function getClientConfigs(terminal) {
    clientConfigs.value = await apiService.getClientConfigs(terminal);
    return clientConfigs.value;
  }
  async function getExternalClientConfigs() {
    return apiService.getExternalClientConfigs().then((data) => {
      externalClientConfigs.value = data;
      return externalClientConfigs.value;
    });
  }
  async function getClientConfig(configId) {
    return clientConfigs.value?.find((x) => x.Config_ID === configId);
  }
  async function getExternalClientConfig(configId) {
    if (externalClientConfigs?.value.length == 0) {
      await getExternalClientConfigs();
    }
    return externalClientConfigs.value.find((x) => x.Config_ID === configId);
  }
  async function getOpenEnrollmentPeriodsByCategory(category) {
    return await apiService.getOpenEnrollmentPeriod(category);
  }
  return {
    clientScreenConfigs,
    loadClientScreenConfigs,
    getClientScreenConfig,
    getClientPodConfig,
    getScreen,
    getEOBLink,
    getPlanSum,
    getMemberIdCardLink,
    getClientConfigs,
    getExternalClientConfigs,
    getClientConfig,
    getExternalClientConfig,
    getOpenEnrollmentPeriodsByCategory
  };
});
const __variableDynamicImportRuntimeHelper = (glob, path) => {
  const v = glob[path];
  if (v) {
    return typeof v === "function" ? v() : Promise.resolve(v);
  }
  return new Promise((_, reject) => {
    (typeof queueMicrotask === "function" ? queueMicrotask : setTimeout)(reject.bind(null, new Error("Unknown variable dynamic import: " + path)));
  });
};
let Pod$1 = class Pod {
  constructor(displayTitle, helpHtml, component, hidePODTitle, actionButtons = [], options) {
    this.displayTitle = displayTitle;
    this.helpHtml = helpHtml;
    this.component = component;
    this.hidePODTitle = hidePODTitle;
    this.actionButtons = actionButtons;
    this.options = options;
  }
};
const _sfc_main$K = /* @__PURE__ */ defineComponent({
  __name: "ScreenColumn",
  props: {
    column: {
      type: Object,
      required: true
    }
  },
  emits: ["handleRoute"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    useCssVars((_ctx) => ({
      "791fda80": __props.column.width
    }));
    const pods = ref(Array());
    const { getClientPodConfig, clientScreenConfigs, loadClientScreenConfigs } = useConfigStore();
    const loadPods = () => {
      props.column.pods.forEach((pod) => {
        let dbPodConfig = getClientPodConfig(pod.terminal, pod.screenID, pod.podID);
        if (dbPodConfig?.POD_Display === "Y") {
          const podConfigs = new Pod$1(pod.podTitle, "", pod.component, pod.hidePODTitle === "true" ? true : false, pod.actionButtons, pod.options);
          const thisPod = defineAsyncComponent(() => __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "../views/AccountRecovery.vue": () => __vitePreload(() => Promise.resolve().then(() => AccountRecovery$1), true ? void 0 : void 0), "../views/AccountSecurity.vue": () => __vitePreload(() => import("./AccountSecurity-cc8101b0.js"), true ? ["assets/AccountSecurity-cc8101b0.js","assets/AccountSecurity.vue_vue_type_script_setup_true_lang-1259828d.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/ResetPasswordModal.vue_vue_type_script_setup_true_lang-c4198da7.js","assets/MFAModal.vue_vue_type_script_setup_true_lang-2bed1d37.js","assets/QRCodeAuthModal.vue_vue_type_script_setup_true_lang-6b1755ca.js"] : void 0), "../views/AddUpdateUld.vue": () => __vitePreload(() => import("./AddUpdateUld-02cf99be.js"), true ? ["assets/AddUpdateUld-02cf99be.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/ToastService-5d2c3c16.js","assets/AddUpdateUld-f0ff2a85.css"] : void 0), "../views/AdminAvailableNotificationsPod.vue": () => __vitePreload(() => import("./AdminAvailableNotificationsPod-1189e1dd.js"), true ? ["assets/AdminAvailableNotificationsPod-1189e1dd.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/AdminAvailableNotificationsPod-f30520a7.css"] : void 0), "../views/AdminConfigureLoginPod.vue": () => __vitePreload(() => import("./AdminConfigureLoginPod-de73027e.js"), true ? ["assets/AdminConfigureLoginPod-de73027e.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/ToastService-5d2c3c16.js","assets/TextEditor-636c1d0a.js","assets/TextEditor-db953729.css","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/AdminConfigureLoginPod-e5706775.css"] : void 0), "../views/AdminConfigureNotificationsPod.vue": () => __vitePreload(() => import("./AdminConfigureNotificationsPod-a4e77f1f.js"), true ? ["assets/AdminConfigureNotificationsPod-a4e77f1f.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/AdminConfigureNotificationsPod-83594114.css"] : void 0), "../views/AdminDocumentSettings.vue": () => __vitePreload(() => import("./AdminDocumentSettings-56054c28.js").then((n) => n.a), true ? ["assets/AdminDocumentSettings-56054c28.js","assets/AdminDocument-cc1df9fa.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/DocumentUploadModal.vue_vue_type_script_setup_true_lang-2831eb8e.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/ToastService-5d2c3c16.js","assets/AdminDocumentSettings-a1921149.css"] : void 0), "../views/AdminDocuments.vue": () => __vitePreload(() => import("./AdminDocuments-3c62303c.js"), true ? ["assets/AdminDocuments-3c62303c.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/AdminDocumentSettings-56054c28.js","assets/AdminDocument-cc1df9fa.js","assets/DocumentUploadModal.vue_vue_type_script_setup_true_lang-2831eb8e.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/ToastService-5d2c3c16.js","assets/AdminDocumentSettings-a1921149.css","assets/AdminDocuments-7f4852db.css"] : void 0), "../views/AdminFillableDocuments.vue": () => __vitePreload(() => import("./AdminFillableDocuments-f4c03704.js"), true ? ["assets/AdminFillableDocuments-f4c03704.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/AdminFillableDocumentsSettings-cb219ece.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/DocumentUploadModal.vue_vue_type_script_setup_true_lang-2831eb8e.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/ToastService-5d2c3c16.js","assets/AdminDocument-cc1df9fa.js","assets/AdminFillableDocumentsSettings-1f8592b7.css","assets/AdminFillableDocuments-f52520fb.css"] : void 0), "../views/AdminFillableDocumentsSettings.vue": () => __vitePreload(() => import("./AdminFillableDocumentsSettings-cb219ece.js"), true ? ["assets/AdminFillableDocumentsSettings-cb219ece.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/DocumentUploadModal.vue_vue_type_script_setup_true_lang-2831eb8e.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/ToastService-5d2c3c16.js","assets/AdminDocument-cc1df9fa.js","assets/AdminFillableDocumentsSettings-1f8592b7.css"] : void 0), "../views/AdminManageAnnouncements.vue": () => __vitePreload(() => import("./AdminManageAnnouncements-d88e1eda.js"), true ? ["assets/AdminManageAnnouncements-d88e1eda.js","assets/AdminManageAnnouncementsPod-636a40aa.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/TextEditor-636c1d0a.js","assets/TextEditor-db953729.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/ToastService-5d2c3c16.js","assets/AdminManageAnnouncementsPod-ce68568a.css"] : void 0), "../views/AdminManageAnnouncementsPod.vue": () => __vitePreload(() => import("./AdminManageAnnouncementsPod-636a40aa.js"), true ? ["assets/AdminManageAnnouncementsPod-636a40aa.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/TextEditor-636c1d0a.js","assets/TextEditor-db953729.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/ToastService-5d2c3c16.js","assets/AdminManageAnnouncementsPod-ce68568a.css"] : void 0), "../views/AdminManageUsersPod.vue": () => __vitePreload(() => import("./AdminManageUsersPod-e9f913f4.js"), true ? ["assets/AdminManageUsersPod-e9f913f4.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/Toggle-c0fb57f8.js","assets/Toggle-a72f04a6.css","assets/ToastService-5d2c3c16.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/AdminManageUsersPod-c7570c25.css"] : void 0), "../views/AdminPlanLabelsPod.vue": () => __vitePreload(() => import("./AdminPlanLabelsPod-4810e435.js"), true ? ["assets/AdminPlanLabelsPod-4810e435.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/AdminPlan-041c58d1.js","assets/ToastService-5d2c3c16.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/AdminPlanLabelsPod-350da718.css"] : void 0), "../views/AdminPlanOptionsPod.vue": () => __vitePreload(() => import("./AdminPlanOptionsPod-98201497.js"), true ? ["assets/AdminPlanOptionsPod-98201497.js","assets/AdminPlan-041c58d1.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/DocumentUploadModal.vue_vue_type_script_setup_true_lang-2831eb8e.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/ToastService-5d2c3c16.js","assets/AdminPlanOptionsPod-e9e82065.css"] : void 0), "../views/AdminRequestTypes.vue": () => __vitePreload(() => import("./AdminRequestTypes-914cea74.js"), true ? ["assets/AdminRequestTypes-914cea74.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/AdminRequestTypes-3412df44.css"] : void 0), "../views/AdminSelectPlanPod.vue": () => __vitePreload(() => import("./AdminSelectPlanPod-a67ec4d0.js"), true ? ["assets/AdminSelectPlanPod-a67ec4d0.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/AdminPlan-041c58d1.js","assets/AdminSelectPlanPod-29e9167b.css"] : void 0), "../views/BalanceVsElectionTable.vue": () => __vitePreload(() => import("./BalanceVsElectionTable-a0729c72.js"), true ? ["assets/BalanceVsElectionTable-a0729c72.js","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/BalanceVsElectionTable-206f88d6.css"] : void 0), "../views/ClaimDetailsCostBreakdown.vue": () => __vitePreload(() => import("./ClaimDetailsCostBreakdown-9bd8fd49.js"), true ? ["assets/ClaimDetailsCostBreakdown-9bd8fd49.js","assets/Member-9eabae6b.js","assets/ClaimDetailsCostBreakdown-04cdb02c.css"] : void 0), "../views/ClaimDetailsHeader.vue": () => __vitePreload(() => import("./ClaimDetailsHeader-cbd3b7c5.js"), true ? ["assets/ClaimDetailsHeader-cbd3b7c5.js","assets/StatusUtils-ae550d87.js","assets/Tag-ba2dc2c2.css","assets/Member-9eabae6b.js","assets/ClaimDetailsHeader-c6722e35.css"] : void 0), "../views/ClaimDetailsTimeline.vue": () => __vitePreload(() => import("./ClaimDetailsTimeline-d378e1fb.js"), true ? ["assets/ClaimDetailsTimeline-d378e1fb.js","assets/Member-9eabae6b.js","assets/ClaimDetailsTimeline-cdcf8346.css"] : void 0), "../views/ClaimSubmissionAlternative.vue": () => __vitePreload(() => import("./ClaimSubmissionAlternative-9eef0953.js"), true ? ["assets/ClaimSubmissionAlternative-9eef0953.js","assets/ClaimSubmissionAlternative-7d76afd4.css"] : void 0), "../views/ClaimSubmissionLanding.vue": () => __vitePreload(() => import("./ClaimSubmissionLanding-36add0e5.js"), true ? ["assets/ClaimSubmissionLanding-36add0e5.js","assets/ClaimSubmissionLanding-32e0da23.css"] : void 0), "../views/ClaimsPage.vue": () => __vitePreload(() => import("./ClaimsPage-c547ff50.js"), true ? ["assets/ClaimsPage-c547ff50.js","assets/LtcClaimsSummaryWithDetails-44e6b81f.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/StatusUtils-ae550d87.js","assets/Tag-ba2dc2c2.css","assets/LtcClaimsDetailsPage-2da4786c.js","assets/ToastService-5d2c3c16.js","assets/VbaCoreHelpers-703f9391.js","assets/LtcClaimsDetailsPage-364e6de1.css","assets/PageableItemList-1710e91b.js","assets/KeyUtils-b3b41b94.js","assets/PageableItemList-5ca89ed8.css","assets/FilterWidget-39b24b59.js","assets/FilterWidget-19d32565.css","assets/EligibilityTrackerPod-b21fc1b2.js","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/EligibilityTrackerPod-023fa77c.css","assets/LtcClaimsSummaryWithDetails-11e055d9.css","assets/ClaimsSummary-fab07dfa.js","assets/ClaimCard-7abdeaed.js","assets/ClaimCard-b5ea58bc.css","assets/ClaimsSummary-c4dc4135.css"] : void 0), "../views/ClaimsSummary.vue": () => __vitePreload(() => import("./ClaimsSummary-fab07dfa.js"), true ? ["assets/ClaimsSummary-fab07dfa.js","assets/Member-9eabae6b.js","assets/FilterWidget-39b24b59.js","assets/FilterWidget-19d32565.css","assets/PageableItemList-1710e91b.js","assets/KeyUtils-b3b41b94.js","assets/PageableItemList-5ca89ed8.css","assets/ClaimCard-7abdeaed.js","assets/StatusUtils-ae550d87.js","assets/Tag-ba2dc2c2.css","assets/ClaimCard-b5ea58bc.css","assets/ClaimsSummary-c4dc4135.css"] : void 0), "../views/ConfigureAccountAccess.vue": () => __vitePreload(() => import("./ConfigureAccountAccess-44eac4e3.js"), true ? ["assets/ConfigureAccountAccess-44eac4e3.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/ConfigureAccountAccess-9b9b125c.css"] : void 0), "../views/ContactUs.vue": () => __vitePreload(() => import("./ContactUs-dd397d6c.js"), true ? [] : void 0), "../views/CriticalAnnouncements.vue": () => __vitePreload(() => import("./CriticalAnnouncements-c917dff2.js"), true ? ["assets/CriticalAnnouncements-c917dff2.js","assets/Announcement-3f2c2a67.js","assets/CriticalAnnouncements-0331079e.css"] : void 0), "../views/CurrentDetailBillingPod.vue": () => __vitePreload(() => import("./CurrentDetailBillingPod-7a41d0d0.js"), true ? ["assets/CurrentDetailBillingPod-7a41d0d0.js","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/CurrentDetailBillingPod-a06e9c75.css"] : void 0), "../views/DocumentManagement.vue": () => __vitePreload(() => import("./DocumentManagement-0cb257ab.js"), true ? ["assets/DocumentManagement-0cb257ab.js","assets/MemberResources-984fc486.js","assets/Resources-60a949fd.js","assets/MemberResources-16d1e5be.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/KeyUtils-b3b41b94.js","assets/ToastService-5d2c3c16.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/DocumentManagement-7b9aff19.css"] : void 0), "../views/EligibilityLookup.vue": () => __vitePreload(() => Promise.resolve().then(() => EligibilityLookup$1), true ? void 0 : void 0), "../views/EligibilityLookupAccumulators.vue": () => __vitePreload(() => Promise.resolve().then(() => EligibilityLookupAccumulators$1), true ? void 0 : void 0), "../views/EligibilityLookupPlanSummary.vue": () => __vitePreload(() => Promise.resolve().then(() => EligibilityLookupPlanSummary$1), true ? void 0 : void 0), "../views/EligibilityTrackerPod.vue": () => __vitePreload(() => import("./EligibilityTrackerPod-b21fc1b2.js"), true ? ["assets/EligibilityTrackerPod-b21fc1b2.js","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/EligibilityTrackerPod-023fa77c.css"] : void 0), "../views/FAQs.vue": () => __vitePreload(() => import("./FAQs-6c94f0e7.js"), true ? ["assets/FAQs-6c94f0e7.js","assets/Question-e9fc6ff3.js","assets/FAQs-1e7f8d88.css"] : void 0), "../views/FillableDocuments.vue": () => __vitePreload(() => import("./FillableDocuments-e2d0e876.js"), true ? ["assets/FillableDocuments-e2d0e876.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/ToastService-5d2c3c16.js","assets/FillableDocuments-e0c3a894.css"] : void 0), "../views/FormConfirmation.vue": () => __vitePreload(() => import("./FormConfirmation-aad5eaf6.js").then((n) => n.b), true ? ["assets/FormConfirmation-aad5eaf6.js","assets/FormConfirmation-74ce098e.css"] : void 0), "../views/FormSubmissionWizard.vue": () => __vitePreload(() => import("./FormSubmissionWizard-4f234763.js"), true ? ["assets/FormSubmissionWizard-4f234763.js","assets/FormConfirmation-aad5eaf6.js","assets/FormConfirmation-74ce098e.css","assets/PanelAccordion-8357e744.js","assets/PanelAccordion-d7ffa68d.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/FormSubmissionWizard-199f0994.css"] : void 0), "../views/GatewayInfo.vue": () => __vitePreload(() => import("./GatewayInfo-43193e6e.js"), true ? [] : void 0), "../views/GenerateReport.vue": () => __vitePreload(() => import("./GenerateReport-4112182b.js"), true ? [] : void 0), "../views/HelpDigest.vue": () => __vitePreload(() => import("./HelpDigest-4eecfb6a.js"), true ? ["assets/HelpDigest-4eecfb6a.js","assets/HelpDigest-d8e8317d.css"] : void 0), "../views/ImpersonationAccountInfo.vue": () => __vitePreload(() => import("./ImpersonationAccountInfo-6f341258.js"), true ? ["assets/ImpersonationAccountInfo-6f341258.js","assets/ImpersonationAccountInfo.vue_vue_type_script_setup_true_lang-e01e1ba8.js","assets/ResetPasswordModal.vue_vue_type_script_setup_true_lang-c4198da7.js"] : void 0), "../views/Login.vue": () => __vitePreload(() => Promise.resolve().then(() => Login$1), true ? void 0 : void 0), "../views/LoginBannerMessages.vue": () => __vitePreload(() => Promise.resolve().then(() => LoginBannerMessages$1), true ? void 0 : void 0), "../views/LtcClaimsDetailsPage.vue": () => __vitePreload(() => import("./LtcClaimsDetailsPage-2da4786c.js").then((n) => n.b), true ? ["assets/LtcClaimsDetailsPage-2da4786c.js","assets/StatusUtils-ae550d87.js","assets/Tag-ba2dc2c2.css","assets/ToastService-5d2c3c16.js","assets/VbaCoreHelpers-703f9391.js","assets/LtcClaimsDetailsPage-364e6de1.css"] : void 0), "../views/LtcClaimsSummaryWithDetails.vue": () => __vitePreload(() => import("./LtcClaimsSummaryWithDetails-44e6b81f.js"), true ? ["assets/LtcClaimsSummaryWithDetails-44e6b81f.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/StatusUtils-ae550d87.js","assets/Tag-ba2dc2c2.css","assets/LtcClaimsDetailsPage-2da4786c.js","assets/ToastService-5d2c3c16.js","assets/VbaCoreHelpers-703f9391.js","assets/LtcClaimsDetailsPage-364e6de1.css","assets/PageableItemList-1710e91b.js","assets/KeyUtils-b3b41b94.js","assets/PageableItemList-5ca89ed8.css","assets/FilterWidget-39b24b59.js","assets/FilterWidget-19d32565.css","assets/EligibilityTrackerPod-b21fc1b2.js","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/EligibilityTrackerPod-023fa77c.css","assets/LtcClaimsSummaryWithDetails-11e055d9.css"] : void 0), "../views/LtcPlanOverview.vue": () => __vitePreload(() => import("./LtcPlanOverview-0ab8d6a2.js"), true ? ["assets/LtcPlanOverview-0ab8d6a2.js","assets/PlanOverviewBenefits-52031a34.js","assets/PanelAccordion-8357e744.js","assets/PanelAccordion-d7ffa68d.css","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/Member-9eabae6b.js","assets/AccumUtils-98f3b28e.js","assets/PlanOverviewBenefits-65a483c6.css","assets/Plan-b8db0fd6.js","assets/Dropdown-a445328d.js","assets/Dropdown-152a0ba5.css","assets/LtcPlanOverview-4d870e66.css"] : void 0), "../views/MFA.vue": () => __vitePreload(() => Promise.resolve().then(() => MFA$1), true ? void 0 : void 0), "../views/MFAModal.vue": () => __vitePreload(() => import("./MFAModal-9b901de2.js"), true ? ["assets/MFAModal-9b901de2.js","assets/MFAModal.vue_vue_type_script_setup_true_lang-2bed1d37.js"] : void 0), "../views/ManageMemberReps.vue": () => __vitePreload(() => import("./ManageMemberReps-e764d2dc.js"), true ? ["assets/ManageMemberReps-e764d2dc.js","assets/MemberRepDocModal.vue_vue_type_script_setup_true_lang-a9552b4d.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/MemberRepModal.vue_vue_type_script_setup_true_lang-6ec95395.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/ManageMemberReps-29f7c906.css"] : void 0), "../views/MarketingInfo.vue": () => __vitePreload(() => import("./MarketingInfo-6e31233a.js"), true ? [] : void 0), "../views/MemberAddressChange.vue": () => __vitePreload(() => import("./MemberAddressChange-9ec1f357.js"), true ? ["assets/MemberAddressChange-9ec1f357.js","assets/MemberAddressChangePod-34ebce49.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/VbaCoreHelpers-703f9391.js","assets/ToastService-5d2c3c16.js","assets/MemberAddressChangePod-b306c3ac.css","assets/HelpModal-bea71730.css"] : void 0), "../views/MemberAddressChangePod.vue": () => __vitePreload(() => import("./MemberAddressChangePod-34ebce49.js"), true ? ["assets/MemberAddressChangePod-34ebce49.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/VbaCoreHelpers-703f9391.js","assets/ToastService-5d2c3c16.js","assets/MemberAddressChangePod-b306c3ac.css","assets/HelpModal-bea71730.css"] : void 0), "../views/MemberAddresses.vue": () => __vitePreload(() => import("./MemberAddresses-4160cc0b.js"), true ? ["assets/MemberAddresses-4160cc0b.js","assets/Member-9eabae6b.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/Dropdown-a445328d.js","assets/Dropdown-152a0ba5.css","assets/ToastService-5d2c3c16.js","assets/PageableItemList-1710e91b.js","assets/KeyUtils-b3b41b94.js","assets/PageableItemList-5ca89ed8.css","assets/MemberAddresses-efd8b200.css"] : void 0), "../views/MemberAnnouncement.vue": () => __vitePreload(() => import("./MemberAnnouncement-7e433323.js"), true ? ["assets/MemberAnnouncement-7e433323.js","assets/Announcement-3f2c2a67.js","assets/MemberAnnouncement-1a772c27.css"] : void 0), "../views/MemberBenefitsTracker.vue": () => __vitePreload(() => import("./MemberBenefitsTracker-594b4c37.js"), true ? ["assets/MemberBenefitsTracker-594b4c37.js","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/Member-9eabae6b.js","assets/AccumUtils-98f3b28e.js","assets/MemberBenefitsTracker-85c3257c.css"] : void 0), "../views/MemberBillingDetails.vue": () => __vitePreload(() => import("./MemberBillingDetails-2466aec8.js"), true ? ["assets/MemberBillingDetails-2466aec8.js","assets/MemberULD-02b9c2ea.js","assets/Member-9eabae6b.js","assets/KeyUtils-b3b41b94.js","assets/MemberULD-1eb3947b.css","assets/CurrentDetailBillingPod-7a41d0d0.js","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/Dropdown-a445328d.js","assets/Dropdown-152a0ba5.css","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/CurrentDetailBillingPod-a06e9c75.css","assets/MemberBillingDetails-40cdc946.css"] : void 0), "../views/MemberBillingHistory.vue": () => __vitePreload(() => import("./MemberBillingHistory-e2fbe45f.js"), true ? ["assets/MemberBillingHistory-e2fbe45f.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/Invoice-f012adbc.js","assets/MemberBillingHistory-2cabc3e3.css"] : void 0), "../views/MemberBillingHistoryDetails.vue": () => __vitePreload(() => import("./MemberBillingHistoryDetails-c9d8f72b.js"), true ? ["assets/MemberBillingHistoryDetails-c9d8f72b.js","assets/StatusUtils-ae550d87.js","assets/Tag-ba2dc2c2.css","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/Invoice-f012adbc.js","assets/Member-9eabae6b.js","assets/KeyUtils-b3b41b94.js","assets/MemberBillingHistoryDetails-3579ba17.css"] : void 0), "../views/MemberEmployeeInfo.vue": () => __vitePreload(() => import("./MemberEmployeeInfo-3deb706b.js"), true ? ["assets/MemberEmployeeInfo-3deb706b.js","assets/Member-9eabae6b.js"] : void 0), "../views/MemberIdWallet.vue": () => __vitePreload(() => import("./MemberIdWallet-f8db502b.js"), true ? ["assets/MemberIdWallet-f8db502b.js","assets/MemberPlanTypeSelector-aae607d8.js","assets/Member-9eabae6b.js","assets/Dropdown-a445328d.js","assets/Dropdown-152a0ba5.css","assets/MemberPlanTypeSelector-05ab6a19.css","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/OrderNewMemberId-82ca8f09.js","assets/Request-47320a1c.js","assets/OrderNewMemberId-36784b04.css","assets/MemberIdWallet-5550a0a8.css"] : void 0), "../views/MemberLTCClaimsScreen.vue": () => __vitePreload(() => import("./MemberLTCClaimsScreen-9bc13a8f.js"), true ? ["assets/MemberLTCClaimsScreen-9bc13a8f.js","assets/EligibilityTrackerPod-b21fc1b2.js","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/EligibilityTrackerPod-023fa77c.css"] : void 0), "../views/MemberPlanSummary.vue": () => __vitePreload(() => import("./MemberPlanSummary-8fa7e8c8.js"), true ? ["assets/MemberPlanSummary-8fa7e8c8.js","assets/Plan-b8db0fd6.js","assets/Member-9eabae6b.js"] : void 0), "../views/MemberPlanTypeSelector.vue": () => __vitePreload(() => import("./MemberPlanTypeSelector-aae607d8.js"), true ? ["assets/MemberPlanTypeSelector-aae607d8.js","assets/Member-9eabae6b.js","assets/Dropdown-a445328d.js","assets/Dropdown-152a0ba5.css","assets/MemberPlanTypeSelector-05ab6a19.css"] : void 0), "../views/MemberPolicyholderInfo.vue": () => __vitePreload(() => import("./MemberPolicyholderInfo-0e9bd87b.js"), true ? ["assets/MemberPolicyholderInfo-0e9bd87b.js","assets/Member-9eabae6b.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/MemberPolicyholderInfo-e422ba96.css"] : void 0), "../views/MemberRecommended.vue": () => __vitePreload(() => import("./MemberRecommended-062748b1.js"), true ? ["assets/MemberRecommended-062748b1.js","assets/Resources-60a949fd.js","assets/MemberRecommended-4a1e4bb5.css"] : void 0), "../views/MemberRepAccountSetup.vue": () => __vitePreload(() => Promise.resolve().then(() => MemberRepAccountSetup$1), true ? void 0 : void 0), "../views/MemberRepActivate.vue": () => __vitePreload(() => Promise.resolve().then(() => MemberRepActivate$1), true ? void 0 : void 0), "../views/MemberRepDocModal.vue": () => __vitePreload(() => import("./MemberRepDocModal-857b86b1.js"), true ? ["assets/MemberRepDocModal-857b86b1.js","assets/MemberRepDocModal.vue_vue_type_script_setup_true_lang-a9552b4d.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css"] : void 0), "../views/MemberRepModal.vue": () => __vitePreload(() => import("./MemberRepModal-9b0aa618.js"), true ? ["assets/MemberRepModal-9b0aa618.js","assets/MemberRepModal.vue_vue_type_script_setup_true_lang-6ec95395.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css"] : void 0), "../views/MemberResources.vue": () => __vitePreload(() => import("./MemberResources-984fc486.js"), true ? ["assets/MemberResources-984fc486.js","assets/Resources-60a949fd.js","assets/MemberResources-16d1e5be.css"] : void 0), "../views/MemberSpendingAccount.vue": () => __vitePreload(() => import("./MemberSpendingAccount-2f578b91.js"), true ? ["assets/MemberSpendingAccount-2f578b91.js","assets/MemberSpendingPlanDetails-53cdfd7c.js","assets/KeyUtils-b3b41b94.js","assets/MemberSpendingPlanDetails-b71d26b6.css","assets/Member-9eabae6b.js","assets/Dropdown-a445328d.js","assets/Dropdown-152a0ba5.css","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/BalanceVsElectionTable-a0729c72.js","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/BalanceVsElectionTable-206f88d6.css","assets/MemberSpendingAccount-a758f03a.css"] : void 0), "../views/MemberSpendingPlanDetails.vue": () => __vitePreload(() => import("./MemberSpendingPlanDetails-53cdfd7c.js"), true ? ["assets/MemberSpendingPlanDetails-53cdfd7c.js","assets/KeyUtils-b3b41b94.js","assets/MemberSpendingPlanDetails-b71d26b6.css"] : void 0), "../views/MemberULD.vue": () => __vitePreload(() => import("./MemberULD-02b9c2ea.js"), true ? ["assets/MemberULD-02b9c2ea.js","assets/Member-9eabae6b.js","assets/KeyUtils-b3b41b94.js","assets/MemberULD-1eb3947b.css"] : void 0), "../views/MessageCenterPod.vue": () => __vitePreload(() => import("./MessageCenterPod-f2cc2f1f.js"), true ? ["assets/MessageCenterPod-f2cc2f1f.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/PageableItemList-1710e91b.js","assets/KeyUtils-b3b41b94.js","assets/PageableItemList-5ca89ed8.css","assets/ToastService-5d2c3c16.js","assets/VbaCoreHelpers-703f9391.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/Toggle-c0fb57f8.js","assets/Toggle-a72f04a6.css","assets/MessageCenterPod-40c72d6c.css"] : void 0), "../views/MyAccount.vue": () => __vitePreload(() => import("./MyAccount-ef293d0e.js"), true ? [] : void 0), "../views/MyDeductibles.vue": () => __vitePreload(() => import("./MyDeductibles-ab611eb5.js"), true ? ["assets/MyDeductibles-ab611eb5.js","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/ButtonGroup-84c6bf7a.js","assets/ButtonGroup-1f370922.css","assets/Member-9eabae6b.js","assets/AccumUtils-98f3b28e.js","assets/MyDeductibles-8ce19f38.css"] : void 0), "../views/OptInNotifications.vue": () => __vitePreload(() => Promise.resolve().then(() => OptInNotifications$1), true ? void 0 : void 0), "../views/OrderNewMemberId.vue": () => __vitePreload(() => import("./OrderNewMemberId-82ca8f09.js"), true ? ["assets/OrderNewMemberId-82ca8f09.js","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/Request-47320a1c.js","assets/OrderNewMemberId-36784b04.css"] : void 0), "../views/PasswordReset.vue": () => __vitePreload(() => Promise.resolve().then(() => PasswordReset$1), true ? void 0 : void 0), "../views/PensionBeneficiaries.vue": () => __vitePreload(() => import("./PensionBeneficiaries-fdb75b0d.js"), true ? ["assets/PensionBeneficiaries-fdb75b0d.js","assets/Member-9eabae6b.js"] : void 0), "../views/PensionMemberAddresses.vue": () => __vitePreload(() => import("./PensionMemberAddresses-77cd351e.js"), true ? ["assets/PensionMemberAddresses-77cd351e.js","assets/Member-9eabae6b.js"] : void 0), "../views/PensionMemberInfo.vue": () => __vitePreload(() => import("./PensionMemberInfo-c95160cc.js"), true ? ["assets/PensionMemberInfo-c95160cc.js","assets/Member-9eabae6b.js"] : void 0), "../views/PlanLimits.vue": () => __vitePreload(() => import("./PlanLimits-ef11ae8d.js"), true ? ["assets/PlanLimits-ef11ae8d.js","assets/Member-9eabae6b.js","assets/PlanLimits-c4744038.css"] : void 0), "../views/PlanOverview.vue": () => __vitePreload(() => import("./PlanOverview-204946ce.js"), true ? ["assets/PlanOverview-204946ce.js","assets/ButtonGroup-84c6bf7a.js","assets/ButtonGroup-1f370922.css","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/PlanSelector.vue_vue_type_script_setup_true_lang-63c6bfb6.js","assets/MemberPlanTypeSelector-aae607d8.js","assets/MemberPlanTypeSelector-05ab6a19.css","assets/PlanOverviewBenefits-52031a34.js","assets/PanelAccordion-8357e744.js","assets/PanelAccordion-d7ffa68d.css","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/AccumUtils-98f3b28e.js","assets/PlanOverviewBenefits-65a483c6.css","assets/PlanOverviewCoverage-6d6e58cc.js","assets/PlanOverviewCoverage-4b2d398c.css","assets/PlanLimits-ef11ae8d.js","assets/PlanLimits-c4744038.css","assets/LtcPlanOverview-0ab8d6a2.js","assets/Plan-b8db0fd6.js","assets/LtcPlanOverview-4d870e66.css","assets/PlanOverview-9d7bd6e7.css"] : void 0), "../views/PlanOverviewBenefits.vue": () => __vitePreload(() => import("./PlanOverviewBenefits-52031a34.js"), true ? ["assets/PlanOverviewBenefits-52031a34.js","assets/PanelAccordion-8357e744.js","assets/PanelAccordion-d7ffa68d.css","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/Member-9eabae6b.js","assets/AccumUtils-98f3b28e.js","assets/PlanOverviewBenefits-65a483c6.css"] : void 0), "../views/PlanOverviewCoverage.vue": () => __vitePreload(() => import("./PlanOverviewCoverage-6d6e58cc.js"), true ? ["assets/PlanOverviewCoverage-6d6e58cc.js","assets/ProgressBar-fb199fc4.js","assets/ProgressBar-8904b32d.css","assets/Member-9eabae6b.js","assets/AccumUtils-98f3b28e.js","assets/PlanOverviewCoverage-4b2d398c.css"] : void 0), "../views/PolicyholderDocuments.vue": () => __vitePreload(() => import("./PolicyholderDocuments-8c0d0bd4.js"), true ? ["assets/PolicyholderDocuments-8c0d0bd4.js","assets/Member-9eabae6b.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/Dropdown-a445328d.js","assets/Dropdown-152a0ba5.css","assets/VbaCoreHelpers-703f9391.js","assets/PolicyholderDocuments-4c8f28e7.css"] : void 0), "../views/PortalHeader.vue": () => __vitePreload(() => Promise.resolve().then(() => PortalHeader$1), true ? void 0 : void 0), "../views/ProviderLookup.vue": () => __vitePreload(() => Promise.resolve().then(() => ProviderLookup$1), true ? void 0 : void 0), "../views/QRCodeAuthModal.vue": () => __vitePreload(() => import("./QRCodeAuthModal-b1a49698.js"), true ? ["assets/QRCodeAuthModal-b1a49698.js","assets/QRCodeAuthModal.vue_vue_type_script_setup_true_lang-6b1755ca.js"] : void 0), "../views/Questionnaire.vue": () => __vitePreload(() => import("./Questionnaire-dc2ff274.js"), true ? ["assets/Questionnaire-dc2ff274.js","assets/Question-e9fc6ff3.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/Request-47320a1c.js","assets/Questionnaire-4c444067.css"] : void 0), "../views/RecentClaims.vue": () => __vitePreload(() => import("./RecentClaims-fdf74f94.js"), true ? ["assets/RecentClaims-fdf74f94.js","assets/ClaimCard-7abdeaed.js","assets/StatusUtils-ae550d87.js","assets/Tag-ba2dc2c2.css","assets/ClaimCard-b5ea58bc.css","assets/Member-9eabae6b.js","assets/RecentClaims-aacb0426.css"] : void 0), "../views/Registration.vue": () => __vitePreload(() => Promise.resolve().then(() => Registration$1), true ? void 0 : void 0), "../views/RerateHistoryPod.vue": () => __vitePreload(() => import("./RerateHistoryPod-3a248667.js"), true ? ["assets/RerateHistoryPod-3a248667.js","assets/ToastService-5d2c3c16.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/RerateHistoryPod-f2c17b66.css"] : void 0), "../views/ResetPasswordModal.vue": () => __vitePreload(() => import("./ResetPasswordModal-fb9062aa.js"), true ? ["assets/ResetPasswordModal-fb9062aa.js","assets/ResetPasswordModal.vue_vue_type_script_setup_true_lang-c4198da7.js"] : void 0), "../views/TermsAndConditions.vue": () => __vitePreload(() => Promise.resolve().then(() => TermsAndConditions$1), true ? void 0 : void 0), "../views/TestPod.vue": () => __vitePreload(() => import("./TestPod-e92fc5c8.js"), true ? [] : void 0), "../views/UpdateInvoiceCycle.vue": () => __vitePreload(() => import("./UpdateInvoiceCycle-c6ba7fb0.js"), true ? ["assets/UpdateInvoiceCycle-c6ba7fb0.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/VbaCoreHelpers-703f9391.js","assets/Plan-b8db0fd6.js","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/ToastService-5d2c3c16.js","assets/UpdateInvoiceCycle-e8ed07ac.css"] : void 0), "../views/UpdateUld.vue": () => __vitePreload(() => import("./UpdateUld-d0e48e1c.js"), true ? ["assets/UpdateUld-d0e48e1c.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/HelpModal-77e95ad7.js","assets/HelpModal-bea71730.css","assets/AddUpdateUld-02cf99be.js","assets/ToastService-5d2c3c16.js","assets/AddUpdateUld-f0ff2a85.css","assets/UpdateUld-5288457b.css"] : void 0), "../views/UserAccessPermissions.vue": () => __vitePreload(() => import("./UserAccessPermissions-3c680cfe.js"), true ? ["assets/UserAccessPermissions-3c680cfe.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/UserAccessPermissions-f726806d.css"] : void 0), "../views/UserInformation.vue": () => __vitePreload(() => import("./UserInformation-2372cc45.js"), true ? ["assets/UserInformation-2372cc45.js","assets/UserInformation.vue_vue_type_script_setup_true_lang-56e2a809.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/KeyUtils-b3b41b94.js"] : void 0), "../views/UserNotifications.vue": () => __vitePreload(() => import("./UserNotifications-5c3f2c68.js"), true ? ["assets/UserNotifications-5c3f2c68.js","assets/UserNotifications.vue_vue_type_script_setup_true_lang-9f8c7bbc.js"] : void 0), "../views/UserProfile.vue": () => __vitePreload(() => import("./UserProfile-53bcf51c.js"), true ? ["assets/UserProfile-53bcf51c.js","assets/UserInformation.vue_vue_type_script_setup_true_lang-56e2a809.js","assets/Dropdown-a445328d.js","assets/Member-9eabae6b.js","assets/Dropdown-152a0ba5.css","assets/KeyUtils-b3b41b94.js","assets/UserNotifications.vue_vue_type_script_setup_true_lang-9f8c7bbc.js","assets/AccountSecurity.vue_vue_type_script_setup_true_lang-1259828d.js","assets/ResetPasswordModal.vue_vue_type_script_setup_true_lang-c4198da7.js","assets/MFAModal.vue_vue_type_script_setup_true_lang-2bed1d37.js","assets/QRCodeAuthModal.vue_vue_type_script_setup_true_lang-6b1755ca.js","assets/UserAccessPermissions-3c680cfe.js","assets/Grid-7681fc55.js","assets/Grid-8d1a8ca2.css","assets/UserAccessPermissions-f726806d.css","assets/ConfigureAccountAccess-44eac4e3.js","assets/ConfigureAccountAccess-9b9b125c.css","assets/ManageMemberReps-e764d2dc.js","assets/MemberRepDocModal.vue_vue_type_script_setup_true_lang-a9552b4d.js","assets/DocumentUpload-2baee3b9.js","assets/DocumentUpload-7ddbc260.css","assets/MemberRepModal.vue_vue_type_script_setup_true_lang-6ec95395.js","assets/ManageMemberReps-29f7c906.css","assets/ImpersonationAccountInfo.vue_vue_type_script_setup_true_lang-e01e1ba8.js"] : void 0), "../views/claimDetailsCard.vue": () => __vitePreload(() => import("./claimDetailsCard-591fce30.js"), true ? ["assets/claimDetailsCard-591fce30.js","assets/Member-9eabae6b.js","assets/claimDetailsCard-7e4bce3a.css","assets/Tag-ba2dc2c2.css"] : void 0) }), `../views/${pod.component}.vue`));
          pods.value.push({ "config": podConfigs, "component": thisPod });
        } else {
          console.error("POD NOT ENABLED: ", pod.screenID, "+", pod.podID);
        }
      });
    };
    if (clientScreenConfigs.length == 0) {
      loadClientScreenConfigs(useUserStore().user.terminal).then(() => {
        loadPods();
      });
    } else {
      loadPods();
    }
    const handleRoute = (route) => {
      emit2("handleRoute", route);
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(["screen-column", ...props.column.classes])
      }, [
        (openBlock(true), createElementBlock(Fragment, null, renderList(pods.value, (pod, index2) => {
          return openBlock(), createBlock(resolveDynamicComponent({ ...pod.component }), {
            podConfig: pod.config,
            onHandleRoute: handleRoute,
            key: "pod" + index2
          }, null, 40, ["podConfig"]);
        }), 128)),
        (openBlock(true), createElementBlock(Fragment, null, renderList(__props.column.rows, (row) => {
          return openBlock(), createBlock(ScreenRow, {
            row,
            onHandleRoute: handleRoute
          }, null, 8, ["row"]);
        }), 256))
      ], 2);
    };
  }
});
const ScreenColumn_vue_vue_type_style_index_0_scoped_d8e726f8_lang = "";
const ScreenColumn = /* @__PURE__ */ _export_sfc(_sfc_main$K, [["__scopeId", "data-v-d8e726f8"]]);
const _sfc_main$J = /* @__PURE__ */ defineComponent({
  __name: "ScreenRow",
  props: {
    row: {
      type: Object
    }
  },
  emits: ["handleRoute"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const handleRoute = (route) => {
      emit2("handleRoute", route);
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(["screen-row", ...props.row.classes])
      }, [
        (openBlock(true), createElementBlock(Fragment, null, renderList(__props.row.columns, (column) => {
          return openBlock(), createBlock(ScreenColumn, {
            column,
            onHandleRoute: handleRoute
          }, null, 8, ["column"]);
        }), 256))
      ], 2);
    };
  }
});
const ScreenRow_vue_vue_type_style_index_0_scoped_cce91c77_lang = "";
const ScreenRow_vue_vue_type_style_index_1_lang = "";
const ScreenRow = /* @__PURE__ */ _export_sfc(_sfc_main$J, [["__scopeId", "data-v-cce91c77"]]);
const _hoisted_1$C = { class: "screen-container" };
const _sfc_main$I = /* @__PURE__ */ defineComponent({
  __name: "ScreenBuilder",
  props: {
    screen: {
      type: Object
    }
  },
  emits: ["handleRoute"],
  setup(__props, { emit: emit2 }) {
    shallowRef([]);
    const handleRoute = (route) => {
      emit2("handleRoute", route);
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$C, [
        (openBlock(true), createElementBlock(Fragment, null, renderList(__props.screen.screenLayout.rows, (row) => {
          return openBlock(), createBlock(ScreenRow, {
            row,
            onHandleRoute: handleRoute
          }, null, 8, ["row"]);
        }), 256))
      ]);
    };
  }
});
const ScreenBuilder_vue_vue_type_style_index_0_scoped_40530fe2_lang = "";
const ScreenBuilder = /* @__PURE__ */ _export_sfc(_sfc_main$I, [["__scopeId", "data-v-40530fe2"]]);
const _hoisted_1$B = ["href"];
const _hoisted_2$u = ["data-translation-key"];
const _hoisted_3$q = ["data-translation-key"];
const _hoisted_4$k = ["data-translation-key"];
const _hoisted_5$j = ["data-translation-key"];
const _hoisted_6$j = {
  key: 1,
  class: "ri-arrow-right-s-line vba-ux-menu_expandable-icon"
};
const _hoisted_7$h = {
  key: 2,
  class: "ri-arrow-down-s-line vba-ux-menu_expandable-icon"
};
const _hoisted_8$b = {
  key: 0,
  class: "vba-ux_sub-menu slide"
};
const _sfc_main$H = /* @__PURE__ */ defineComponent({
  __name: "MenuItem",
  props: {
    item: {
      type: Object
    }
  },
  emits: ["menuItemClicked", "openModal", "handleRoute"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const store = useConfigStore();
    const { clientScreenConfigs } = storeToRefs(store);
    const userStore = useUserStore();
    const screenConfig = computed(() => {
      let match = clientScreenConfigs.value.filter((x) => x.Screen_ID === props.item?.screenId && x.POD_ID === props.item?.podId)?.at(0);
      return match;
    });
    const vueAllowedTerminals = ["MT", "AT"];
    const computeClass = computed(() => {
      let c = "";
      props.item?.linkClasses?.forEach((x) => {
        c += x + " ";
      });
      if (screenConfig.value) {
        if (screenConfig.value.POD_Display !== "Y") {
          c += " hide";
        }
      } else {
        c += " hide";
      }
      if (!vueAllowedTerminals.includes(userStore.user.terminal)) {
        c += " hide";
      }
      if (isActive.value && props.item?.actionType !== "subMenu") {
        c += " vba-ux-menu_item_active";
      }
      return c;
    });
    const computeDisplayText = computed(() => {
      if (!props.item?.displayText) {
        if (screenConfig.value) {
          return screenConfig.value.POD_Title;
        }
        return "";
      } else {
        return props.item.displayText;
      }
    });
    const isActive = ref(false);
    const toggleSubMenu = () => {
      if (props.item?.actionType === "subMenu") {
        isActive.value = !isActive.value;
      }
    };
    const kendoItemHandler = (kendoFunction) => {
      let element = document.getElementById("vba-menu-kendo-function-placeholder");
      if (element !== null) {
        element.value = kendoFunction;
        var e = new CustomEvent("kendoFunction");
        element.dispatchEvent(e);
      }
    };
    const handleRoute = (route) => {
      emit2("handleRoute", route);
    };
    return (_ctx, _cache) => {
      return __props.item?.actionType == "kendoLink" ? (openBlock(), createElementBlock("a", {
        key: 0,
        href: __props.item.url,
        class: normalizeClass(["vba-ux-menu_item", [unref(computeClass)]])
      }, [
        __props.item?.icon ? (openBlock(), createElementBlock("i", {
          key: 0,
          class: normalizeClass(__props.item.icon)
        }, null, 2)) : createCommentVNode("", true),
        createBaseVNode("span", {
          "data-translation-key": __props.item.translationKey
        }, toDisplayString(unref(computeDisplayText)), 9, _hoisted_2$u)
      ], 10, _hoisted_1$B)) : __props.item?.actionType == "vueLink" ? (openBlock(), createElementBlock("a", {
        key: 1,
        onClick: _cache[0] || (_cache[0] = ($event) => handleRoute(__props.item.url || "")),
        class: normalizeClass(["vba-ux-menu_item", [unref(computeClass)]])
      }, [
        __props.item.icon ? (openBlock(), createElementBlock("i", {
          key: 0,
          class: normalizeClass(__props.item.icon)
        }, null, 2)) : createCommentVNode("", true),
        createBaseVNode("span", {
          "data-translation-key": __props.item.translationKey
        }, toDisplayString(unref(computeDisplayText)), 9, _hoisted_3$q)
      ], 2)) : __props.item?.actionType === "modal" || __props.item?.actionType === "SSO" || __props.item?.actionType === "report" ? (openBlock(), createElementBlock("button", {
        key: 2,
        class: normalizeClass(["vba-ux-menu_item", [unref(computeClass)]]),
        onClick: _cache[1] || (_cache[1] = ($event) => kendoItemHandler(__props.item?.kendoFunctionId || ""))
      }, [
        __props.item.icon ? (openBlock(), createElementBlock("i", {
          key: 0,
          class: normalizeClass(__props.item.icon)
        }, null, 2)) : createCommentVNode("", true),
        createBaseVNode("span", {
          "data-translation-key": __props.item.translationKey
        }, toDisplayString(unref(computeDisplayText)), 9, _hoisted_4$k)
      ], 2)) : __props.item?.actionType === "subMenu" ? (openBlock(), createElementBlock("div", {
        key: 3,
        class: normalizeClass([unref(computeClass)])
      }, [
        createBaseVNode("button", {
          class: normalizeClass(["vba-ux-menu_item", [unref(computeClass)]]),
          onClick: toggleSubMenu
        }, [
          __props.item.icon ? (openBlock(), createElementBlock("i", {
            key: 0,
            class: normalizeClass(__props.item.icon)
          }, null, 2)) : createCommentVNode("", true),
          createBaseVNode("span", {
            "data-translation-key": __props.item.translationKey
          }, toDisplayString(unref(computeDisplayText)), 9, _hoisted_5$j),
          isActive.value === false ? (openBlock(), createElementBlock("i", _hoisted_6$j)) : (openBlock(), createElementBlock("i", _hoisted_7$h))
        ], 2),
        isActive.value === true ? (openBlock(), createElementBlock("div", _hoisted_8$b, [
          createVNode(_sfc_main$G, {
            menuConfigs: __props.item?.subMenu?.items,
            onHandleRoute: handleRoute
          }, null, 8, ["menuConfigs"])
        ])) : createCommentVNode("", true)
      ], 2)) : createCommentVNode("", true);
    };
  }
});
const MenuItem_vue_vue_type_style_index_0_scoped_d8af7526_lang = "";
const MenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$H, [["__scopeId", "data-v-d8af7526"]]);
const _sfc_main$G = /* @__PURE__ */ defineComponent({
  __name: "Menu",
  props: {
    menuConfigs: {
      type: Array
    }
  },
  emits: ["openModal", "handleRoute"],
  setup(__props, { emit: emit2 }) {
    const openModal = (title) => {
      emit2("openModal", title);
    };
    const handleRoute = (route) => {
      emit2("handleRoute", route);
    };
    return (_ctx, _cache) => {
      return openBlock(true), createElementBlock(Fragment, null, renderList(__props.menuConfigs, (menuItem, index2) => {
        return openBlock(), createBlock(MenuItem, {
          item: menuItem,
          onOpenModal: openModal,
          onHandleRoute: handleRoute
        }, {
          default: withCtx(() => [
            createTextVNode(toDisplayString(menuItem.displayText), 1)
          ]),
          _: 2
        }, 1032, ["item"]);
      }), 256);
    };
  }
});
class ElementService {
  constructor() {
  }
  waitForElm(selector) {
    return new Promise((resolve2) => {
      if (document.querySelector(selector)) {
        return resolve2(document.querySelector(selector));
      }
      const observer = new MutationObserver((mutations) => {
        if (document.querySelector(selector)) {
          resolve2(document.querySelector(selector));
          observer.disconnect();
        }
      });
      observer.observe(document.body, {
        childList: true,
        subtree: true
      });
    });
  }
}
const configs = [
  {
    actionType: "kendoLink",
    displayText: "Dashboard",
    url: "#home",
    visible: true,
    icon: "ri-home-4-line",
    translationKey: "vba-menu-mt-home",
    order: 0,
    terminal: "MT",
    linkClasses: [],
    spanClasses: [
      "bold"
    ],
    screenId: "home",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "Messaging",
    url: "#messaging-mobile",
    visible: true,
    icon: "ri-mail-line",
    translationKey: "vba-menu-mt-messaging-mobile",
    order: 1,
    terminal: "MT",
    linkClasses: [
      "vba-hide-desktop"
    ],
    screenId: "messaging-mobile",
    podId: "messaging-mobile-threads"
  },
  {
    actionType: "vueLink",
    displayTextVar: "marketinginfoscreenText",
    displayText: "",
    url: "#marketing-info-screen",
    visible: true,
    icon: "ri-flag-line",
    translationKeyVar: "marketinginfoscreenTranslationKey",
    translationKey: "",
    order: 2,
    terminal: "MT",
    linkClasses: [],
    id: "vba-marketing-info-screen-menu-item",
    screenId: "marketing-info-screen",
    podId: "screen"
  },
  {
    actionType: "modal",
    displayText: "Open Enrollment",
    visible: true,
    icon: "ri-star-line",
    translationKey: "vba-menu-mt-open-enrollment",
    order: 3,
    terminal: "MT",
    linkClasses: [
      "vba-hide-mobile"
    ],
    id: "vba-member-oe-menu-item",
    screenId: "CLIENTCONFIG__MT_SHOW_OE_FOR_DISENROLLED_MBR",
    podId: "",
    kendoFunctionId: "memberOE"
  },
  {
    actionType: "modal",
    displayText: "Re-enroll",
    visible: true,
    icon: "ri-star-line",
    translationKey: "vba-menu-mt-re-enroll",
    order: 3,
    terminal: "MT",
    linkClasses: [
      "vba-hide-mobile"
    ],
    id: "vba-member-re-enroll-menu-item",
    screenId: "CLIENTCONFIG__PRVSLY_ENRLD_MBRS_CAN_REENROLL",
    podId: "",
    kendoFunctionId: "memberOE"
  },
  {
    actionType: "SSO",
    displayTextVar: "membercotevaText",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "membercotevaTranslationKey",
    translationKey: "",
    order: 4,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-coteva-menu-item",
    screenId: "menu",
    podId: "member-coteva",
    kendoFunctionId: "memberCotevaSSO"
  },
  {
    actionType: "kendoLink",
    displayTextVar: "myhealthscreenText",
    displayText: "",
    url: "#my-health-screen",
    visible: true,
    icon: "ri-empathize-line",
    translationKeyVar: "myhealthscreenTranslationKey",
    translationKey: "",
    order: 5,
    terminal: "MT",
    linkClasses: [],
    id: "vba-my-health-screen-menu-item",
    screenId: "my-health-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayTextVar: "claimsText",
    displayText: "",
    url: "#claims",
    visible: true,
    icon: "ri-file-add-line",
    translationKeyVar: "claimsTranslationKey",
    translationKey: "",
    order: 6,
    terminal: "MT",
    linkClasses: [],
    id: "vba-claims-menu-item",
    screenId: "claims",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayTextVar: "memberclaimsText",
    displayText: "",
    url: "#member-claims",
    visible: true,
    icon: "ri-file-add-line",
    translationKeyVar: "memberclaimsTranslationKey",
    translationKey: "",
    order: 7,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-claims-menu-item",
    screenId: "member-claims",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayTextVar: "memberauthorizationscreenText",
    displayText: "",
    url: "#member-authorization-screen",
    visible: true,
    icon: "ri-shield-user-line",
    translationKeyVar: "memberauthorizationscreenTranslationKey",
    translationKey: "",
    order: 8,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-authorization-menu-item",
    screenId: "member-authorization-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayTextVar: "memberplansummaryscreenText",
    displayText: "",
    url: "#member-plan-overview",
    visible: true,
    icon: "ri-file-list-3-line",
    translationKeyVar: "memberplansummaryscreenTranslationKey",
    translationKey: "",
    order: 9,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-plan-summary-screen-menu-item",
    screenId: "member-plan-summary-screen",
    podId: "screen"
  },
  {
    actionType: "SSO",
    displayTextVar: "memberbluebookText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "memberbluebookTranslationKey",
    translationKey: "",
    order: 10,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-bluebook-menu-item",
    screenId: "menu",
    podId: "member-bluebook",
    kendoFunctionId: "bluebookSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "memberdeerwalkText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "memberdeerwalkTranslationKey",
    translationKey: "",
    order: 11,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-deerwalk-menu-item",
    screenId: "menu",
    podId: "member-deerwalk",
    kendoFunctionId: "deerwalkSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "memberkemptonText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "memberkemptonTranslationKey",
    translationKey: "",
    order: 11,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-kempton-menu-item",
    screenId: "menu",
    podId: "member-kempton",
    kendoFunctionId: "kemptonSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "membercedargateText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "membercedargateTranslationKey",
    translationKey: "",
    order: 12,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-cedargate-menu-item",
    screenId: "menu",
    podId: "member-cedargate",
    kendoFunctionId: "cedargateSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "membersapphireText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "membersapphireTranslationKey",
    translationKey: "",
    order: 13,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-sapphire-menu-item",
    screenId: "menu",
    podId: "member-sapphire",
    kendoFunctionId: "sapphireSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "membertalonText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "membertalonTranslationKey",
    translationKey: "",
    order: 13,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-talon-menu-item",
    screenId: "menu",
    podId: "member-talon",
    kendoFunctionId: "talonSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "memberbmrText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "memberbmrTranslationKey",
    translationKey: "",
    order: 14,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-bmr-menu-item",
    screenId: "menu",
    podId: "member-bmr",
    kendoFunctionId: "bmrSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "membermpoweredText",
    displayText: "Find a Provider",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "membermpoweredTranslationKey",
    translationKey: "",
    order: 15,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-mpowered-menu-item",
    screenId: "menu",
    podId: "member-mpowered",
    kendoFunctionId: "mpoweredSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "memberwexText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "memberwexTranslationKey",
    translationKey: "",
    order: 16,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-wex-menu-item",
    screenId: "menu",
    podId: "member-wex",
    kendoFunctionId: "wexSSO"
  },
  {
    actionType: "kendoLink",
    hideOnPwa: true,
    displayTextVar: "membercareteamText",
    displayText: "",
    url: "#member-care-team",
    visible: true,
    icon: "ri-team-line",
    translationKeyVar: "membercareteamTranslationKey",
    translationKey: "",
    order: 17,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-care-team-menu-item",
    screenId: "member-care-team",
    podId: "screen"
  },
  {
    actionType: "subMenu",
    dataChild: "vba-member-billing-menu",
    displayText: "Billing",
    visible: true,
    icon: "ri-bank-card-line",
    translationKey: "vba-menu-mt-billing",
    order: 18,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-billing-menu-item",
    screenId: "member-billing",
    podId: "screen",
    subMenu: {
      classes: [
        "hide",
        "vba-ux_sub-menu"
      ],
      id: "vba-member-billing-menu",
      items: [
        {
          actionType: "vueLink",
          displayTextVar: "memberbillingdetailsText",
          displayText: "",
          url: "#v-member-billing-details-screen",
          visible: true,
          icon: "",
          translationKeyVar: "memberbillingdetailsTranslationKey",
          translationKey: "",
          order: 0,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-details-screen-menu-item",
          screenId: "v-member-billing-details-screen",
          podId: "screen"
        },
        {
          actionType: "vueLink",
          displayTextVar: "memberbillinghistoryText",
          displayText: "",
          url: "#member-billing-history",
          visible: true,
          icon: "",
          translationKeyVar: "memberbillinghistoryTranslationKey",
          translationKey: "",
          order: 0,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-billing-history-screen-menu-item",
          screenId: "member-billing-history-screen",
          podId: "screen"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "memberinfoText",
          displayText: "",
          url: "#member-info",
          visible: true,
          translationKeyVar: "memberinfoTranslationKey",
          translationKey: "",
          order: 1,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-info-menu-item",
          screenId: "member-info",
          podId: "screen"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "memberpaymentinfoText",
          displayText: "",
          url: "#member-payment-info",
          visible: true,
          translationKeyVar: "memberpaymentinfoTranslationKey",
          translationKey: "",
          order: 2,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-payment-info-menu-item",
          screenId: "member-payment-info",
          podId: "screen"
        },
        {
          actionType: "SSO",
          displayTextVar: "membermanagebillingText",
          displayText: "",
          visible: true,
          translationKeyVar: "membermanagebillingTranslationKey",
          translationKey: "",
          order: 3,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-manage-billing-menu-item",
          screenId: "menu",
          podId: "member-manage-billing",
          kendoFunctionId: "payspanSSO"
        }
      ]
    }
  },
  {
    actionType: "kendoLink",
    hideOnPwa: true,
    displayTextVar: "memberflexText",
    displayText: "",
    url: "#member-flex",
    visible: true,
    icon: "ri-money-dollar-circle-line",
    translationKeyVar: "memberflexTranslationKey",
    translationKey: "",
    order: 19,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-flex-menu-item",
    screenId: "member-flex",
    podId: "screen"
  },
  {
    actionType: "subMenu",
    dataChild: "vba-pension-menu",
    displayText: "",
    url: "#member-pension-home",
    visible: true,
    icon: "ri-stack-line",
    translationKeyVar: "pensionTranslationKey",
    translationKey: "",
    order: 20,
    terminal: "MT",
    linkClasses: [],
    id: "vba-pension-menu-item",
    screenId: "menu",
    podId: "pension",
    subMenu: {
      classes: [
        "hide",
        "vba-ux_sub-menu"
      ],
      id: "vba-pension-menu",
      items: [
        {
          actionType: "kendoLink",
          displayTextVar: "memberpensionhomeText",
          displayText: "",
          url: "#member-pension-home",
          visible: true,
          translationKeyVar: "memberpensionhomeTranslationKey",
          translationKey: "",
          order: 0,
          terminal: "MT",
          linkClasses: [
            "vba-pension-menu-item"
          ],
          id: "vba-member-pension-home-item",
          screenId: "member-pension-home",
          podId: "screen"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "pensionworkhistoryText",
          displayText: "",
          url: "#pension-work-history",
          visible: true,
          translationKeyVar: "pensionworkhistoryTranslationKey",
          translationKey: "",
          order: 1,
          terminal: "MT",
          linkClasses: [
            "vba-pension-menu-item"
          ],
          id: "vba-pension-work-history-item",
          screenId: "pension-work-history",
          podId: "screen"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "pensionpaymentscreenText",
          displayText: "",
          url: "#pension-payment-screen",
          visible: true,
          translationKeyVar: "pensionpaymentsscreenTranslationKey",
          translationKey: "",
          order: 2,
          terminal: "MT",
          linkClasses: [
            "vba-pension-menu-item"
          ],
          id: "vba-pension-payment-screen-item",
          screenId: "pension-payment-screen",
          podId: "screen"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "memberpensionapplicationText",
          displayText: "",
          url: "#member-pension-application",
          visible: true,
          translationKeyVar: "memberpensionapplicationTranslationKey",
          translationKey: "",
          order: 3,
          terminal: "MT",
          linkClasses: [
            "vba-pension-menu-item"
          ],
          id: "vba-member-pension-application-item",
          screenId: "member-pension-application",
          podId: "screen"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "memberbeneficiariesText",
          displayText: "",
          url: "#member-beneficiaries",
          visible: true,
          translationKeyVar: "faqsscreenTranslationKey",
          translationKey: "",
          order: 4,
          terminal: "MT",
          linkClasses: [
            "vba-pension-menu-item"
          ],
          id: "vba-member-beneficiaries-menu-item",
          screenId: "member-beneficiaries",
          podId: "screen"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "pensionwizard1screenText",
          displayText: "",
          url: "#pension-wizard-1-screen",
          visible: true,
          translationKeyVar: "pensionwizard1screenTranslationKey",
          translationKey: "",
          order: 5,
          terminal: "MT",
          linkClasses: [
            "vba-pension-menu-item"
          ],
          id: "vba-pension-wizard-1-screen-item",
          screenId: "pension-wizard-1-screen",
          podId: "screen"
        }
      ]
    }
  },
  {
    actionType: "kendoLink",
    displayTextVar: "providerlookupscreenText",
    displayText: "",
    url: "#provider-lookup-screen",
    visible: true,
    icon: "ri-search-line",
    translationKeyVar: "providerlookupscreenTranslationKey",
    translationKey: "",
    order: 21,
    terminal: "MT",
    linkClasses: [],
    id: "vba-provider-lookup-screen-menu-item",
    screenId: "provider-lookup-screen",
    podId: "screen"
  },
  {
    actionType: "modal",
    displayText: "View/Print ID Card",
    visible: true,
    icon: "ri-profile-line",
    translationKey: "vba-menu-mt-id-card",
    order: 22,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-temp-id-card-menu-item",
    screenId: "menu",
    podId: "member-temp-id-card",
    kendoFunctionId: "tempIDCardAlt"
  },
  {
    actionType: "report",
    displayTextVar: "membertempcardText",
    displayText: "",
    visible: true,
    icon: "ri-profile-line",
    translationKeyVar: "membertempcardTranslationKey",
    translationKey: "",
    order: 23,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-temp-card-menu-item",
    screenId: "menu",
    podId: "member-temp-card",
    kendoFunctionId: "tempCard"
  },
  {
    actionType: "subMenu",
    hideOnPwa: true,
    displayText: "Create a Request",
    visible: true,
    icon: "ri-edit-box-line",
    translationKey: "vba-menu-mt-request",
    order: 24,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-requests-menu-item",
    screenId: "member-request",
    podId: "screen",
    subMenu: {
      classes: [
        "hide",
        "vba-ux_sub-menu"
      ],
      id: "vba-member-request-menu",
      items: [
        {
          actionType: "modal",
          displayTextVar: "memberaddbeneficiaryText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberaddbeneficiaryTranslationKey",
          translationKey: "",
          order: 0,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-add-beneficiary-menu-item",
          screenId: "menu",
          podId: "member-add-beneficiary",
          kendoFunctionId: "addBeneficiary"
        },
        {
          actionType: "modal",
          displayTextVar: "memberaddcoverageText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberaddcoverageTranslationKey",
          translationKey: "",
          order: 1,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-add-coverage-menu-item",
          screenId: "menu",
          podId: "member-add-coverage",
          kendoFunctionId: "addCoverage"
        },
        {
          actionType: "modal",
          displayTextVar: "memberadddepcoverageText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberadddepcoverageTranslationKey",
          translationKey: "",
          order: 2,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-add-dep-coverage-menu-item",
          screenId: "menu",
          podId: "member-add-dep-coverage",
          kendoFunctionId: "addDepCoverage"
        },
        {
          actionType: "modal",
          displayTextVar: "memberaddmemberText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberaddmemberTranslationKey",
          translationKey: "",
          order: 3,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-add-member-menu-item",
          screenId: "menu",
          podId: "member-add-member",
          kendoFunctionId: "addMember"
        },
        {
          actionType: "modal",
          displayTextVar: "memberchangebillingfrequencyText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberchangebillingfrequencyTranslationKey",
          translationKey: "",
          order: 4,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-change-billing-frequency-menu-item",
          screenId: "menu",
          podId: "member-change-billing-frequency",
          kendoFunctionId: "changeBillingFrequency"
        },
        {
          actionType: "modal",
          displayTextVar: "memberchangedepaddressText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberchangeddepaddressTranslationKey",
          translationKey: "",
          order: 5,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-change-dep-address-menu-item",
          screenId: "menu",
          podId: "member-change-dep-address",
          kendoFunctionId: "changeDepAddress"
        },
        {
          actionType: "modal",
          displayTextVar: "memberdisenrollmemberText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberdisenrollmemberTranslationKey",
          translationKey: "",
          order: 6,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-disenroll-member-menu-item",
          screenId: "menu",
          podId: "member-disenroll-member",
          kendoFunctionId: "disenrollMember"
        },
        {
          actionType: "modal",
          displayTextVar: "memberflexrequestText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberflexrequestTranslationKey",
          translationKey: "",
          order: 7,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-flex-request-menu-item",
          screenId: "menu",
          podId: "member-flex-request",
          kendoFunctionId: "flexReceipt"
        },
        {
          actionType: "modal",
          displayTextVar: "membernewcardText",
          displayText: "",
          visible: true,
          translationKeyVar: "membernewcardTranslationKey",
          translationKey: "",
          order: 8,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-new-card-menu-item",
          screenId: "menu",
          podId: "member-new-card",
          kendoFunctionId: "newCard"
        },
        {
          actionType: "modal",
          displayTextVar: "memberterminatecoverageText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberterminatecoverageTranslationKey",
          translationKey: "",
          order: 9,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-terminate-coverage-menu-item",
          screenId: "menu",
          podId: "member-terminate-coverage",
          kendoFunctionId: "terminateCoverage"
        },
        {
          actionType: "modal",
          displayTextVar: "memberterminatedepcoverageText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberterminatedepcoverageTranslationKey",
          translationKey: "",
          order: 10,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-terminate-dep-coverage-menu-item",
          screenId: "menu",
          podId: "member-terminate-dep-coverage",
          kendoFunctionId: "terminateDepCoverage"
        },
        {
          actionType: "modal",
          displayTextVar: "memberbankinginfoText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberbankinginfoTranslationKey",
          translationKey: "",
          order: 11,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-banking-info-menu-item",
          screenId: "menu",
          podId: "member-banking-info",
          kendoFunctionId: "bankingInfo"
        },
        {
          actionType: "modal",
          displayTextVar: "memberfinancialText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberfinancialTranslationKey",
          translationKey: "",
          order: 12,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-financial-menu-item",
          screenId: "menu",
          podId: "member-financial",
          kendoFunctionId: "financial"
        },
        {
          actionType: "modal",
          displayTextVar: "memberchangeaddressText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberchangeaddressTranslationKey",
          translationKey: "",
          order: 14,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-change-address-menu-item",
          screenId: "menu",
          podId: "member-change-address",
          kendoFunctionId: "changeAddress"
        },
        {
          actionType: "modal",
          displayTextVar: "memberupdateotherinsuranceinfoText",
          displayText: "",
          visible: true,
          translationKeyVar: "memberupdateotherinsuranceinfoTranslationKey",
          translationKey: "",
          order: 15,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-update-other-insurance-info-menu-item",
          screenId: "menu",
          podId: "member-update-other-insurance-info",
          kendoFunctionId: "updateOtherInsurance"
        },
        {
          actionType: "kendoLink",
          displayTextVar: "documentrequestscreenText",
          displayText: "",
          url: "#document-request-screen",
          visible: true,
          translationKeyVar: "documentrequestscreenTranslationKey",
          translationKey: "",
          order: 16,
          terminal: "MT",
          linkClasses: [],
          id: "vba-document-request-screen-menu-item",
          screenId: "document-request-screen",
          podId: "screen"
        },
        {
          actionType: "vueLink",
          displayTextVar: "documentrequestscreenText",
          displayText: "",
          url: "#v-document-request-screen",
          visible: true,
          translationKeyVar: "documentrequestscreenTranslationKey",
          translationKey: "",
          order: 16,
          terminal: "MT",
          linkClasses: [],
          id: "vba-document-request-screen-menu-item",
          screenId: "v-document-request-screen",
          podId: "screen"
        },
        {
          actionType: "vueLink",
          displayTextVar: "memberaddresschangeText",
          displayText: "",
          url: "#v-member-address-change-screen",
          visible: true,
          icon: "",
          translationKeyVar: "memberAddressChangeTranslationKey",
          translationKey: "",
          order: 17,
          terminal: "MT",
          linkClasses: [],
          id: "v-member-address-change-screen-menu-item",
          screenId: "v-member-address-change-screen",
          podId: "screen"
        },
        {
          actionType: "vueLink",
          displayTextVar: "memberchangeinvoicecycleText",
          displayText: "",
          url: "#v-member-change-invoice-cycle-screen",
          visible: true,
          translationKeyVar: "memberchangeinvoicecycleTranslationKey",
          translationKey: "",
          order: 13,
          terminal: "MT",
          linkClasses: [],
          id: "vba-member-change-invoice-cycle-menu-item",
          screenId: "v-member-change-invoice-cycle-screen",
          podId: "screen"
        },
        {
          actionType: "vueLink",
          displayTextVar: "updateuldText",
          displayText: "",
          url: "#update-uld",
          visible: true,
          translationKeyVar: "updateuldTranslationKey",
          translationKey: "",
          order: 18,
          terminal: "MT",
          linkClasses: [],
          id: "vba-update-uld-menu-item",
          screenId: "update-uld",
          podId: "screen"
        }
      ]
    }
  },
  {
    actionType: "kendoLink",
    displayTextVar: "chathistoryscreenText",
    displayText: "",
    url: "#chat-history-screen",
    visible: true,
    icon: "ri-question-answer-line",
    translationKeyVar: "chathistoryscreenTranslationKey",
    translationKey: "",
    order: 25,
    terminal: "MT",
    linkClasses: [],
    id: "vba-chat-history-screen-menu-item",
    screenId: "chat-history-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayTextVar: "messagecenterscreenText",
    displayText: "",
    url: "#message-center-screen",
    visible: true,
    icon: "ri-mail-line",
    translationKeyVar: "messagecenterscreenTranslationKey",
    translationKey: "",
    order: 26,
    terminal: "MT",
    linkClasses: [
      "vba-hide-mobile"
    ],
    id: "vba-member-message-center-screen-menu-item",
    screenId: "message-center-screen",
    podId: "screen",
    notificationId: "vba-menu-MT-message-center-notification"
  },
  {
    actionType: "vueLink",
    displayTextVar: "helpText",
    displayText: "",
    url: "#help",
    visible: true,
    icon: "ri-information-fill",
    translationKeyVar: "helpTranslationKey",
    translationKey: "",
    order: 27,
    terminal: "MT",
    linkClasses: [],
    id: "vba-help-menu-item",
    screenId: "help",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayTextVar: "faqsscreenText",
    displayText: "",
    url: "#faqs-screen",
    visible: true,
    icon: "ri-questionnaire-line",
    translationKeyVar: "faqsscreenTranslationKey",
    translationKey: "",
    order: 28,
    terminal: "MT",
    linkClasses: [],
    id: "vba-faqs-screen-menu-item",
    screenId: "faqs-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayTextVar: "memberfeedbackscreenText",
    displayText: "",
    url: "#v-member-feedback-screen",
    visible: true,
    icon: "ri-questionnaire-line",
    translationKeyVar: "memberFeedbackTranslationKey",
    translationKey: "",
    order: 29,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-feedback-screen-menu-item",
    screenId: "v-member-feedback-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayTextVar: "memberclaimformscreenText",
    displayText: "",
    url: "#member-claim-form-screen",
    visible: true,
    icon: "ri-edit-box-line",
    translationKeyVar: "memberClaimFormTranslationKey",
    translationKey: "",
    order: 30,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-claim-form-screen-menu-item",
    screenId: "member-claim-form-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayTextVar: "memberidwalletscreenText",
    displayText: "",
    url: "#v-member-id-wallet-screen",
    visible: true,
    icon: "ri-profile-line",
    translationKeyVar: "memberIdWalletTranslationKey",
    translationKey: "",
    order: 30,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-id-wallet-screen-menu-item",
    screenId: "v-member-id-wallet-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    hideOnPwa: true,
    displayTextVar: "memberspendingText",
    displayText: "",
    url: "#v-member-spending-account",
    visible: true,
    icon: "ri-money-dollar-circle-line",
    translationKeyVar: "memberspendingTranslationKey",
    translationKey: "",
    order: 31,
    terminal: "MT",
    linkClasses: [],
    id: "vba-member-spending-account-menu-item",
    screenId: "v-member-spending-account",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "Home",
    url: "#admin-home",
    visible: true,
    icon: "ri-home-4-line",
    order: 0,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-home",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#admin-manage-notifications-screen",
    visible: true,
    icon: "ri-phone-line",
    order: 1,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-manage-notifications-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#admin-users",
    visible: true,
    icon: "ri-user-search-line",
    order: 2,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-users",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#claims",
    visible: true,
    icon: "ri-file-add-line",
    order: 3,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "claims",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-docs",
    visible: true,
    icon: "ri-file-text-line",
    order: 4,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-docs",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#v-admin-docs",
    visible: true,
    icon: "ri-file-text-line",
    order: 4,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "v-admin-docs",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#employer-config-plans",
    visible: true,
    icon: "ri-settings-3-line",
    order: 5,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "employer-config-plans",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#v-fillable-doc-admin-screen",
    visible: true,
    icon: "ri-file-pdf-line",
    order: 6,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "v-fillable-doc-admin-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-insights",
    visible: true,
    icon: "ri-pie-chart-line",
    order: 7,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-insights",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#plan-lineage-screen",
    visible: true,
    icon: "ri-file-4-line",
    order: 8,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "plan-lineage-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-manage-payments-screen",
    visible: true,
    icon: "ri-bank-card-line",
    order: 9,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-manage-payments-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#chat-switchboard-screen",
    visible: true,
    icon: "ri-question-answer-line",
    order: 10,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "chat-switchboard-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#chat-history-screen",
    visible: true,
    icon: "ri-discuss-line",
    order: 11,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "chat-history-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-pe-config",
    visible: true,
    icon: "ri-map-pin-user-line",
    order: 12,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-pe-config",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#admin-request-types-screen",
    visible: true,
    icon: "ri-information-fill",
    order: 13,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-request-types-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-message-thread-types-screen",
    visible: true,
    icon: "ri-information-fill",
    order: 14,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-message-thread-types-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-config-networks",
    visible: true,
    icon: "ri-hospital-line",
    order: 15,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-config-networks",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-member-requests",
    visible: true,
    icon: "ri-user-follow-line",
    order: 16,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-member-requests",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-message-center-screen",
    visible: true,
    icon: "ri-mail-line",
    order: 17,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-message-center-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-manage-cs-reps-screen",
    visible: true,
    icon: "ri-phone-line",
    order: 18,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-manage-cs-reps-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#admin-config-login-page-screen",
    visible: true,
    icon: "ri-login-circle-line",
    order: 19,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-config-login-page-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#enrollment-list",
    visible: true,
    icon: "ri-list-check",
    order: 20,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "enrollment-list",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-announcements-config-screen",
    visible: true,
    icon: "ri-chat-settings-line",
    order: 21,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-announcements-config-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-manage-questions-screen",
    visible: true,
    icon: "ri-information-line",
    order: 22,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-manage-questions-screen",
    podId: "screen"
  },
  {
    actionType: "kendoLink",
    displayText: "",
    url: "#admin-ufs-error-screen",
    visible: true,
    icon: "ri-information-line",
    order: 23,
    terminal: "AT",
    linkClasses: [],
    spanClasses: [],
    screenId: "admin-ufs-error-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayTextVar: "ltcclaimsText",
    displayText: "",
    url: "#v-ltc-claims-screen",
    visible: true,
    icon: "ri-file-add-line",
    translationKeyVar: "ltcclaimsTranslationKey",
    translationKey: "",
    order: 24,
    terminal: "MT",
    linkClasses: [],
    id: "v-ltc-claims-screen-menu-item",
    screenId: "v-ltc-claims-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayText: "",
    url: "#v-document-management-screen",
    visible: true,
    icon: "ri-file-line",
    order: 24,
    terminal: "MT",
    linkClasses: [],
    spanClasses: [],
    screenId: "v-document-management-screen",
    podId: "screen"
  },
  {
    actionType: "vueLink",
    displayTextVar: "manageannouncementsscreenText",
    displayText: "",
    url: "#v-manage-announcements-screen",
    visible: true,
    icon: "ri-chat-settings-line",
    translationKeyVar: "manageAnnouncementsTranslationKey",
    translationKey: "",
    order: 24,
    terminal: "AT",
    linkClasses: [],
    id: "v-manage-announcements-menu-item",
    screenId: "v-manage-announcements-screen",
    podId: "screen"
  },
  {
    actionType: "SSO",
    displayTextVar: "wiproText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "wiproTranslationKey",
    translationKey: "",
    order: 25,
    terminal: "MT",
    linkClasses: [],
    id: "vba-wipro-menu-item",
    screenId: "menu",
    podId: "wipro",
    kendoFunctionId: "wiproSSO"
  },
  {
    actionType: "SSO",
    displayTextVar: "realRxText",
    displayText: "",
    visible: true,
    icon: "ri-external-link-line",
    translationKeyVar: "realRxTranslationKey",
    translationKey: "",
    order: 26,
    terminal: "MT",
    linkClasses: [],
    id: "vba-real-rx-menu-item",
    screenId: "menu",
    podId: "realRx",
    kendoFunctionId: "realRxSSO"
  }
];
const configs$1 = {
  configs
};
let Field$1 = class Field {
  constructor(label, value) {
    this.label = label;
    this.value = value;
  }
};
class DateUtils {
  constructor() {
  }
  static formatDate(date) {
    if (!date)
      return;
    return new Date(date).toLocaleDateString();
  }
  static formatDateYYYYMMDD(date) {
    if (!date)
      return;
    return new Date(date).toISOString().split("T")[0];
  }
  static formatISODate(date) {
    if (!date)
      return;
    return new Date(date).toISOString();
  }
  static formatLongDate(date) {
    if (!date)
      return;
    return new Date(date).toLocaleDateString("en-us", { month: "long", day: "numeric", year: "numeric" });
  }
  static formatDateTime(date) {
    if (!date)
      return;
    return new Date(date).toLocaleDateString("en-us", { month: "numeric", day: "numeric", year: "numeric", hour: "numeric", minute: "2-digit", second: "2-digit" });
  }
  static formatDateMMDDYYY(date) {
    let year = date.getFullYear();
    let month = (1 + date.getMonth()).toString();
    month = month.length > 1 ? month : "0" + month;
    let day = date.getDate().toString();
    day = day.length > 1 ? day : "0" + day;
    return month + "/" + day + "/" + year;
  }
  static formatIsoDateToMMDDYYYY(isoDate) {
    const [datePart] = isoDate.split("T");
    const [year, month, day] = datePart.split("-");
    return `${month}/${day}/${year}`;
  }
  // return the number of the earlier date, i.e. return 1 if date1 is earlier than date2, return 2 if date2 is earlier than date1
  static compareDates(date1, date2) {
    const date1Converted = new Date(date1);
    const date2Converted = new Date(date2);
    return date1Converted <= date2Converted ? 1 : 2;
  }
}
const _NumberUtils = class {
};
let NumberUtils = _NumberUtils;
__publicField(NumberUtils, "formatterWithDecimals", new Intl.NumberFormat("en-US", {
  style: "currency",
  currency: "USD"
}));
__publicField(NumberUtils, "formatterWithoutDecimals", new Intl.NumberFormat("en-US", {
  style: "currency",
  currency: "USD",
  minimumFractionDigits: 0,
  maximumFractionDigits: 0
}));
__publicField(NumberUtils, "formatCurrency", (value, includeDecimals = true) => {
  if (includeDecimals) {
    return _NumberUtils.formatterWithDecimals.format(value);
  } else {
    return _NumberUtils.formatterWithoutDecimals.format(value);
  }
});
const _StringUtils = class {
  static byteArrayToHexString(byteArray) {
    return "0x" + Array.from(byteArray, function(byte) {
      return ("0" + (byte & 255).toString(16)).slice(-2);
    }).join("");
  }
};
let StringUtils = _StringUtils;
__publicField(StringUtils, "formatPhoneNumber", (phoneNumber) => {
  if (!phoneNumber)
    return "";
  if (!/^\d{10}$/.test(phoneNumber)) {
    throw new Error("Invalid phone number: Phone number must be 10 digits");
  }
  const areaCode = phoneNumber.substring(0, 3);
  const middleThree = phoneNumber.substring(3, 6);
  const lastFour = phoneNumber.substring(6);
  return `+1 ${areaCode} ${middleThree} ${lastFour}`;
});
__publicField(StringUtils, "formatPercentage", (percent) => {
  return percent + "%";
});
__publicField(StringUtils, "maskZipCode", (e) => {
  const target = e.target;
  const x = target.value.replace(/\D/g, "").match(/(\d{0,5})(\d{0,4})/);
  if (x) {
    const masked = !x[2] ? x[1] : x[1] + "-" + x[2];
    target.value = masked;
  }
});
__publicField(StringUtils, "maskPhoneNumber", (e) => {
  const target = e.target;
  const x = target.value.replace(/\D/g, "").match(/(\d{0,3})(\d{0,3})(\d{0,4})/);
  if (x) {
    const masked = !x[2] ? x[1] : "(" + x[1] + ") " + x[2] + (x[3] ? "-" + x[3] : "");
    target.value = masked;
  }
});
__publicField(StringUtils, "maskInput", (e, form, fieldId, type) => {
  const target = e.target;
  const nonMasked = target.value.replace(/\D/g, "");
  form.formData[form.currentStepObject.title][fieldId] = nonMasked;
  switch (type) {
    case "zipcode":
      _StringUtils.maskZipCode(e);
      break;
    case "phone":
      _StringUtils.maskPhoneNumber(e);
      break;
  }
});
__publicField(StringUtils, "maskValue", (input, type) => {
  switch (type) {
    case "zipcode":
      const x = input.replace(/\D/g, "").match(/(\d{0,5})(\d{0,4})/);
      if (x) {
        return !x[2] ? x[1] : x[1] + "-" + x[2];
      }
      break;
    case "phone":
      const y = input.replace(/\D/g, "").match(/(\d{0,3})(\d{0,3})(\d{0,4})/);
      if (y) {
        return !y[2] ? y[1] : "(" + y[1] + ") " + y[2] + (y[3] ? "-" + y[3] : "");
      }
      break;
    case "ssn":
      return input.replace(/\d(?=\d{4})/g, "*");
  }
  return input;
});
__publicField(StringUtils, "getMaxLength", (type) => {
  switch (type) {
    case "zipcode":
      return 10;
    case "phone":
      return 14;
    case "ssn":
      return 9;
    default:
      return;
  }
});
__publicField(StringUtils, "getDisplayName", (firstName, lastName) => {
  return `${firstName ?? ""} ${lastName ?? ""}`;
});
__publicField(StringUtils, "formatCurrency", (value, includeDecimals = true) => {
  let intValue = Number(value);
  if (includeDecimals) {
    return NumberUtils.formatterWithDecimals.format(intValue);
  } else {
    return NumberUtils.formatterWithoutDecimals.format(intValue);
  }
});
const _withScopeId$j = (n) => (pushScopeId("data-v-db20415a"), n = n(), popScopeId(), n);
const _hoisted_1$A = { key: 0 };
const _hoisted_2$t = {
  key: 0,
  class: "small-text__strong label"
};
const _hoisted_3$p = /* @__PURE__ */ _withScopeId$j(() => /* @__PURE__ */ createBaseVNode("br", null, null, -1));
const _hoisted_4$j = {
  key: 1,
  class: "small-text data"
};
const _hoisted_5$i = { key: 1 };
const _hoisted_6$i = {
  key: 0,
  class: "small-text__strong label"
};
const _hoisted_7$g = { class: "small-text data" };
const _sfc_main$F = /* @__PURE__ */ defineComponent({
  __name: "Field",
  props: {
    field: {
      type: Field$1
    },
    label: {
      type: String
    },
    data: {},
    type: {
      type: String,
      default: "string",
      validator: (value) => {
        const validTypes = ["price", "string", "date", "longDate", "phone", "percent"];
        return validTypes.indexOf(value) !== -1;
      }
    },
    mode: {
      type: String,
      default: "stacked",
      validator: (value) => {
        const validTypes = ["stacked", "inline"];
        return validTypes.indexOf(value) !== -1;
      }
    },
    hideNoData: {
      type: Boolean,
      default: false
    },
    hideLabelNoData: {
      type: Boolean,
      default: false
    }
  },
  setup(__props) {
    const props = __props;
    const { data } = toRefs(props);
    let label = props.field ? props.field.label : props.label;
    const computedData = computed(() => {
      return props.field ? props.field.value.data : data?.value;
    });
    const type = props.field ? props.field.value.type : props.type;
    const fieldValue = computed(() => {
      if (computedData.value === null || computedData.value === void 0 || computedData.value === "") {
        if (props.hideLabelNoData) {
          label = "";
        }
        if (!props.hideNoData) {
          return "N/A";
        } else {
          return null;
        }
      }
      switch (type) {
        case "price":
          return `$${computedData.value.toFixed(2)}`;
        case "string":
          return computedData.value;
        case "date":
          return DateUtils.formatDate(computedData.value);
        case "longDate":
          return DateUtils.formatLongDate(computedData.value);
        case "phone":
          return StringUtils.formatPhoneNumber(computedData.value);
        case "percent":
          return StringUtils.formatPercentage(computedData.value);
      }
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock(Fragment, null, [
        __props.mode === "stacked" ? (openBlock(), createElementBlock("span", _hoisted_1$A, [
          unref(label) ? (openBlock(), createElementBlock("span", _hoisted_2$t, toDisplayString(unref(label)), 1)) : createCommentVNode("", true),
          _hoisted_3$p,
          unref(fieldValue) !== null ? (openBlock(), createElementBlock("span", _hoisted_4$j, toDisplayString(unref(fieldValue)), 1)) : createCommentVNode("", true)
        ])) : createCommentVNode("", true),
        __props.mode === "inline" && (unref(fieldValue) || unref(label)) ? (openBlock(), createElementBlock("span", _hoisted_5$i, [
          unref(label) ? (openBlock(), createElementBlock("span", _hoisted_6$i, toDisplayString(unref(label)) + ": ", 1)) : createCommentVNode("", true),
          createBaseVNode("span", _hoisted_7$g, toDisplayString(unref(fieldValue)), 1)
        ])) : createCommentVNode("", true)
      ], 64);
    };
  }
});
const Field_vue_vue_type_style_index_0_scoped_db20415a_lang = "";
const Field2 = /* @__PURE__ */ _export_sfc(_sfc_main$F, [["__scopeId", "data-v-db20415a"]]);
const _sfc_main$E = /* @__PURE__ */ defineComponent({
  __name: "FieldGroup",
  props: {
    mode: {
      type: String,
      default: "stacked",
      validator: (value) => {
        const validTypes = ["stacked", "inline"];
        return validTypes.indexOf(value) !== -1;
      }
    }
  },
  setup(__props) {
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(__props.mode === "stacked" ? "flex-col" : "flex-row")
      }, [
        renderSlot(_ctx.$slots, "default")
      ], 2);
    };
  }
});
const _sfc_main$D = /* @__PURE__ */ defineComponent({
  __name: "Address",
  props: {
    bodyText: {
      type: Boolean,
      default: false
    },
    address: String,
    address2: String,
    city: String,
    state: String,
    zip: String,
    countryDesc: String,
    firstName: String,
    middleName: String,
    lastName: String,
    salutation: String,
    suffix: String,
    attn: String
  },
  setup(__props) {
    return (_ctx, _cache) => {
      return openBlock(), createBlock(_sfc_main$E, {
        mode: "stacked",
        class: ""
      }, {
        default: withCtx(() => [
          createVNode(_sfc_main$E, { mode: "inline" }, {
            default: withCtx(() => [
              __props.salutation ? (openBlock(), createBlock(Field2, {
                key: 0,
                data: __props.salutation,
                label: "",
                hideNoData: true,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true),
              __props.firstName ? (openBlock(), createBlock(Field2, {
                key: 1,
                data: __props.firstName,
                hideNoData: true,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true),
              __props.middleName ? (openBlock(), createBlock(Field2, {
                key: 2,
                data: __props.middleName,
                hideNoData: true,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true),
              __props.lastName ? (openBlock(), createBlock(Field2, {
                key: 3,
                data: __props.lastName,
                hideNoData: true,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true),
              __props.suffix ? (openBlock(), createBlock(Field2, {
                key: 4,
                data: __props.suffix,
                hideNoData: true,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true)
            ]),
            _: 1
          }),
          __props.attn ? (openBlock(), createBlock(Field2, {
            key: 0,
            data: `Attn. ${__props.attn}`,
            hideNoData: true,
            mode: "inline"
          }, null, 8, ["data"])) : createCommentVNode("", true),
          __props.address ? (openBlock(), createBlock(Field2, {
            key: 1,
            data: __props.address,
            mode: "inline"
          }, null, 8, ["data"])) : createCommentVNode("", true),
          __props.address2 ? (openBlock(), createBlock(Field2, {
            key: 2,
            data: __props.address2,
            mode: "inline"
          }, null, 8, ["data"])) : createCommentVNode("", true),
          createVNode(_sfc_main$E, { mode: "inline" }, {
            default: withCtx(() => [
              __props.city ? (openBlock(), createBlock(Field2, {
                key: 0,
                data: __props.city,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true),
              __props.state ? (openBlock(), createBlock(Field2, {
                key: 1,
                data: __props.state,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true),
              __props.zip ? (openBlock(), createBlock(Field2, {
                key: 2,
                data: __props.zip,
                mode: "inline"
              }, null, 8, ["data"])) : createCommentVNode("", true)
            ]),
            _: 1
          }),
          __props.countryDesc ? (openBlock(), createBlock(Field2, {
            key: 3,
            data: __props.countryDesc,
            hideNoData: true,
            mode: "inline"
          }, null, 8, ["data"])) : createCommentVNode("", true)
        ]),
        _: 1
      });
    };
  }
});
let Card$1 = class Card {
  constructor(variant) {
    this.variant = variant;
  }
};
class Tag {
  constructor(variant) {
    this.variant = variant;
  }
}
let Tooltip$1 = class Tooltip {
  constructor(label) {
    this.label = label;
  }
};
class FilterItem {
  constructor(name, pageId) {
    this.name = name;
    this.pageId = pageId;
  }
}
let InputLabel$1 = class InputLabel {
  constructor(id, label, isRequired) {
    this.id = id;
    this.label = label;
    this.isRequired = isRequired;
  }
};
class MaskedInput {
  constructor(form, fieldId, type) {
    this.form = form;
    this.fieldId = fieldId;
    this.type = type;
  }
}
class StepperUnit {
  constructor(variant) {
    this.variant = variant;
  }
}
class ClaimCard {
  constructor(claimStatus, claimStatusDescription, planTypeDescription, claimType, claimTypeDescription, procedureCodeDescription, serviceDate, providerName, memberFirstName, memberLastName, claimNumber, claimID, billed, allowed, paid, variant) {
    this.claimStatus = claimStatus;
    this.claimStatusDescription = claimStatusDescription;
    this.planTypeDescription = planTypeDescription;
    this.claimType = claimType;
    this.claimTypeDescription = claimTypeDescription;
    this.procedureCodeDescription = procedureCodeDescription;
    this.serviceDate = serviceDate;
    this.providerName = providerName;
    this.memberFirstName = memberFirstName;
    this.memberLastName = memberLastName;
    this.claimNumber = claimNumber;
    this.claimID = claimID;
    this.billed = billed;
    this.allowed = allowed;
    this.paid = paid;
    this.variant = variant;
  }
}
class PanelAccordion {
  constructor(index2, type, categoryLength, subCategoryLength, hideEdit, isExpanded) {
    this.index = index2;
    this.type = type;
    this.categoryLength = categoryLength;
    this.subCategoryLength = subCategoryLength;
    this.hideEdit = hideEdit;
    this.isExpanded = isExpanded;
  }
}
class HelpModal {
  constructor(title, body, width) {
    this.title = title;
    this.body = body;
    this.width = width;
  }
}
class Tab {
  constructor(label, icon, isExpanded, isExpandable, hideLabelOnMobile, onClick, content, isSelected, tabData) {
    this.label = label;
    this.icon = icon;
    this.isExpanded = isExpanded;
    this.isExpandable = isExpandable;
    this.hideLabelOnMobile = hideLabelOnMobile;
    this.onClick = onClick;
    this.content = content;
    this.isSelected = isSelected;
    this.tabData = tabData;
  }
}
class ComponentUtils {
  constructor() {
  }
  static initCard(variant) {
    return new Card$1(variant);
  }
  static initField(label, value) {
    return new Field$1(label, value);
  }
  static initTag(variant) {
    return new Tag(variant);
  }
  static initTooltip(label) {
    return new Tooltip$1(label);
  }
  static initFilterItem(filterItem, pageId) {
    return new FilterItem(filterItem, pageId);
  }
  static initInputLabel(id, label, required2) {
    return new InputLabel$1(id, label, required2);
  }
  static initMaskedInput(form, id, type) {
    return new MaskedInput(form, id, type);
  }
  static initStepperUnit(variant) {
    return new StepperUnit(variant);
  }
  static initPod(title, helpHtml, component, hidePodTitle, actionButtons, options) {
    return new Pod$1(title, helpHtml, component, hidePodTitle, actionButtons, options);
  }
  static initClaimCard(claimStatus, claimStatusDescription, planTypeDescription, claimType, claimTypeDescription, procedureCodeDesc, serviceDate, providerName, memberFirstName, memberLastName, claimNumber, claimID, billedAmt, allowedAmt, paidAmt, variant) {
    return new ClaimCard(
      claimStatus,
      claimStatusDescription,
      planTypeDescription,
      claimType,
      claimTypeDescription,
      procedureCodeDesc,
      serviceDate,
      providerName,
      memberFirstName,
      memberLastName,
      claimNumber,
      claimID,
      billedAmt,
      allowedAmt,
      paidAmt,
      variant
    );
  }
  static initAccordion(index2, type, categoryLength, subCategoryLength, hideEdit, isExpanded) {
    return new PanelAccordion(
      index2,
      type,
      categoryLength,
      subCategoryLength,
      hideEdit,
      isExpanded
    );
  }
  static initHelpModal(title, body, width) {
    return new HelpModal(title, body, width);
  }
  static initTab(tab) {
    return new Tab(tab.label, tab.icon, tab.isExpanded, tab.isExpandable, tab.hideLabelOnMobile, tab.onClick, tab.content);
  }
  // TODO: finish these types and implement where necessary
}
const _hoisted_1$z = { class: "menu-item" };
const _sfc_main$C = /* @__PURE__ */ defineComponent({
  __name: "ContextMenuItem",
  props: {
    width: {
      type: String,
      default: "auto"
    },
    menuItem: {
      type: Object
    }
  },
  emits: ["handleClick"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    useCssVars((_ctx) => ({
      "6cd894e2": props.width
    }));
    const onclick = () => {
      if (props.menuItem?.onClick)
        props.menuItem.onClick();
      emit2("handleClick");
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$z, [
        createBaseVNode("button", {
          class: "button",
          onClick: onclick
        }, toDisplayString(props.menuItem?.menuItemText), 1)
      ]);
    };
  }
});
const ContextMenuItem_vue_vue_type_style_index_0_scoped_0cf6a0db_lang = "";
const ContextMenuItem = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-0cf6a0db"]]);
const _sfc_main$B = /* @__PURE__ */ defineComponent({
  __name: "ContextMenu",
  props: {
    menuConfigs: {
      type: Array
    },
    width: {
      type: String,
      default: "auto"
    }
  },
  emits: ["contextMenuItemClick"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const handleClick = () => {
      emit2("contextMenuItemClick");
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", null, [
        (openBlock(true), createElementBlock(Fragment, null, renderList(__props.menuConfigs, (menuItem, index2) => {
          return openBlock(), createBlock(ContextMenuItem, {
            menuItem,
            width: props.width,
            onHandleClick: handleClick
          }, {
            default: withCtx(() => [
              createTextVNode(toDisplayString(menuItem.menuItemText), 1)
            ]),
            _: 2
          }, 1032, ["menuItem", "width"]);
        }), 256))
      ]);
    };
  }
});
const _withScopeId$i = (n) => (pushScopeId("data-v-a4ea15ed"), n = n(), popScopeId(), n);
const _hoisted_1$y = { class: "options-container" };
const _hoisted_2$s = /* @__PURE__ */ _withScopeId$i(() => /* @__PURE__ */ createBaseVNode("i", { class: "ri-more-2-fill" }, null, -1));
const _hoisted_3$o = [
  _hoisted_2$s
];
const _sfc_main$A = /* @__PURE__ */ defineComponent({
  __name: "OptionsMenu",
  props: {
    contextMenuItems: {
      type: Array,
      default: []
    }
  },
  setup(__props) {
    const props = __props;
    const showOptionsMenu = ref(false);
    const menuConfigs = reactive([]);
    watch(() => props.contextMenuItems, (newVal) => {
      if (newVal.length > 0) {
        menuConfigs.splice(0, menuConfigs.length, ...newVal);
      }
    });
    onMounted(() => {
      if (props.contextMenuItems.length > 0) {
        menuConfigs.splice(0, menuConfigs.length, ...props.contextMenuItems);
      }
    });
    const closeMenu = () => {
      showOptionsMenu.value = false;
    };
    const openCloseMenu = () => {
      showOptionsMenu.value = !showOptionsMenu.value;
    };
    const overlay = ref();
    const button = ref();
    const onOutsideClick = (event) => {
      if (overlay.value && !overlay.value.contains(event.target) && (button.value && !button.value.contains(event.target))) {
        showOptionsMenu.value = false;
      }
    };
    watchEffect(() => {
      if (showOptionsMenu.value) {
        const rect = button.value.getBoundingClientRect();
        overlay.value.style.top = `${rect.top}px`;
        overlay.value.style.left = `${rect.right}px`;
        document.addEventListener("click", onOutsideClick, { capture: true });
      } else {
        if (overlay.value) {
          overlay.value.style.top = "";
          overlay.value.style.left = "";
          document.removeEventListener("click", onOutsideClick, { capture: true });
        }
      }
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$y, [
        createBaseVNode("button", {
          onclick: openCloseMenu,
          class: "mdl-button--icon vba-help-button",
          ref_key: "button",
          ref: button
        }, _hoisted_3$o, 512),
        (openBlock(), createBlock(Teleport, { to: "#options-menu-overlay" }, [
          createBaseVNode("div", {
            class: "menu-container overlay",
            ref_key: "overlay",
            ref: overlay
          }, [
            withDirectives(createVNode(_sfc_main$B, {
              onContextMenuItemClick: closeMenu,
              menuConfigs
            }, null, 8, ["menuConfigs"]), [
              [vShow, showOptionsMenu.value]
            ])
          ], 512)
        ]))
      ]);
    };
  }
});
const OptionsMenu_vue_vue_type_style_index_0_scoped_a4ea15ed_lang = "";
const OptionsMenu = /* @__PURE__ */ _export_sfc(_sfc_main$A, [["__scopeId", "data-v-a4ea15ed"]]);
const _hoisted_1$x = {
  class: /* @__PURE__ */ normalizeClass("card-container")
};
const _sfc_main$z = /* @__PURE__ */ defineComponent({
  __name: "Card",
  props: {
    card: {
      type: Card$1,
      default: ComponentUtils.initCard("primary")
    },
    cardFlexWidth: {
      type: Number,
      default: 100
    },
    cardLeftMargin: {
      type: Number,
      default: 0
    },
    cardRightMargin: {
      type: Number,
      default: 0
    },
    cardTopMargin: {
      type: Number,
      default: 0
    },
    cardBottomMargin: {
      type: Number,
      default: 0
    },
    useDeleteOptions: {
      type: Boolean,
      default: false
    },
    useEditOptions: {
      type: Boolean,
      default: false
    },
    cardId: {
      type: Number,
      default: -1
    }
  },
  emits: ["handleClick"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const optionMenuItems = [
      {
        menuItemText: "Edit",
        onClick: () => handleClick("modal", props.cardId)
      },
      {
        menuItemText: "Delete",
        onClick: () => handleClick("clickAction", props.cardId)
      }
    ];
    const handleClick = (action, id) => {
      emit2("handleClick", action, id);
    };
    const useEditDeleteOptions = computed(() => {
      return props.useEditOptions || props.useDeleteOptions;
    });
    const variant = props.card?.variant ?? "primary";
    const cssProps = computed(() => {
      return {
        "--card-width": props.cardFlexWidth + "%",
        "--card-left-margin": props.cardLeftMargin + "px",
        "--card-right-margin": props.cardRightMargin + "px",
        "--card-top-margin": props.cardTopMargin + "px",
        "--card-bottom-margin": props.cardBottomMargin + "px"
      };
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(["options-and-card-container", unref(variant)]),
        style: normalizeStyle(unref(cssProps))
      }, [
        unref(useEditDeleteOptions) ? (openBlock(), createBlock(OptionsMenu, {
          key: 0,
          "context-menu-items": optionMenuItems,
          useEditOption: __props.useEditOptions,
          useDeleteOption: __props.useDeleteOptions,
          onHandleClick: handleClick,
          cardId: __props.cardId
        }, null, 8, ["useEditOption", "useDeleteOption", "cardId"])) : createCommentVNode("", true),
        createBaseVNode("div", _hoisted_1$x, [
          renderSlot(_ctx.$slots, "default", {}, void 0, true)
        ])
      ], 6);
    };
  }
});
const Card_vue_vue_type_style_index_0_scoped_0ac7a994_lang = "";
const Card2 = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-0ac7a994"]]);
const _hoisted_1$w = {
  key: 0,
  class: "tooltip-content"
};
const _sfc_main$y = /* @__PURE__ */ defineComponent({
  __name: "Tooltip",
  props: {
    tooltip: {
      type: Tooltip$1,
      default: ""
    }
  },
  setup(__props) {
    const props = __props;
    const showTooltip = ref(false);
    const { tooltip } = toRefs(props);
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        class: "tooltip",
        onMouseover: _cache[0] || (_cache[0] = ($event) => showTooltip.value = true),
        onMouseleave: _cache[1] || (_cache[1] = ($event) => showTooltip.value = false),
        onClick: _cache[2] || (_cache[2] = ($event) => showTooltip.value = !showTooltip.value)
      }, [
        renderSlot(_ctx.$slots, "default", {}, void 0, true),
        showTooltip.value ? (openBlock(), createElementBlock("div", _hoisted_1$w, toDisplayString(unref(tooltip).label), 1)) : createCommentVNode("", true)
      ], 32);
    };
  }
});
const Tooltip_vue_vue_type_style_index_0_scoped_2bf08569_lang = "";
const Tooltip2 = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-2bf08569"]]);
const _hoisted_1$v = ["type", "disabled", "aria-label"];
const _hoisted_2$r = ["type", "disabled", "aria-label"];
const _sfc_main$x = /* @__PURE__ */ defineComponent({
  __name: "Button",
  props: {
    onClick: {
      type: Function,
      default: () => {
      }
    },
    isDisabled: {
      type: Boolean,
      default: false
    },
    disabledTooltip: {
      type: String,
      default: ""
    },
    variant: {
      type: String,
      default: "primary"
    },
    prependIcon: {
      type: String,
      default: ""
    },
    appendIcon: {
      type: String,
      default: ""
    },
    label: {
      type: String,
      default: ""
    },
    hideLabelOnMobile: {
      type: Boolean,
      default: false
    },
    type: {
      type: String,
      default: "button"
    }
  },
  setup(__props) {
    return (_ctx, _cache) => {
      return __props.isDisabled && __props.disabledTooltip ? (openBlock(), createBlock(Tooltip2, {
        key: 0,
        tooltip: unref(ComponentUtils).initTooltip(__props.disabledTooltip)
      }, {
        default: withCtx(() => [
          createBaseVNode("button", {
            onClick: _cache[0] || (_cache[0] = ($event) => __props.onClick()),
            type: __props.type,
            disabled: __props.isDisabled,
            "aria-label": __props.label
          }, [
            createTextVNode(` :class="['button-base', 'base-text', 'flex-row', 'align-items-center', 'center', variant, isDisabled ? 'disabled' : 'enabled']"> `),
            __props.prependIcon ? (openBlock(), createElementBlock("i", {
              key: 0,
              class: normalizeClass(__props.prependIcon)
            }, null, 2)) : createCommentVNode("", true),
            createBaseVNode("span", {
              class: normalizeClass(__props.hideLabelOnMobile ? "hideLabel" : "")
            }, [
              renderSlot(_ctx.$slots, "default", {}, void 0, true)
            ], 2),
            __props.appendIcon ? (openBlock(), createElementBlock("i", {
              key: 1,
              class: normalizeClass(__props.appendIcon)
            }, null, 2)) : createCommentVNode("", true)
          ], 8, _hoisted_1$v)
        ]),
        _: 3
      }, 8, ["tooltip"])) : (openBlock(), createElementBlock("button", {
        key: 1,
        onClick: _cache[1] || (_cache[1] = ($event) => __props.onClick()),
        type: __props.type,
        disabled: __props.isDisabled,
        "aria-label": __props.label,
        class: normalizeClass(["button-base", "base-text", "flex-row", "align-items-center", "center", __props.variant, __props.isDisabled ? "disabled" : "enabled"])
      }, [
        __props.prependIcon ? (openBlock(), createElementBlock("i", {
          key: 0,
          class: normalizeClass(__props.prependIcon)
        }, null, 2)) : createCommentVNode("", true),
        createBaseVNode("span", {
          class: normalizeClass(__props.hideLabelOnMobile ? "hideLabel" : "")
        }, [
          renderSlot(_ctx.$slots, "default", {}, void 0, true)
        ], 2),
        __props.appendIcon ? (openBlock(), createElementBlock("i", {
          key: 1,
          class: normalizeClass(__props.appendIcon)
        }, null, 2)) : createCommentVNode("", true)
      ], 10, _hoisted_2$r));
    };
  }
});
const Button_vue_vue_type_style_index_0_scoped_81a0a47e_lang = "";
const Button = /* @__PURE__ */ _export_sfc(_sfc_main$x, [["__scopeId", "data-v-81a0a47e"]]);
const _withScopeId$h = (n) => (pushScopeId("data-v-30cf167a"), n = n(), popScopeId(), n);
const _hoisted_1$u = /* @__PURE__ */ _withScopeId$h(() => /* @__PURE__ */ createBaseVNode("i", { class: "ri-information-fill" }, null, -1));
const _hoisted_2$q = [
  _hoisted_1$u
];
const _sfc_main$w = /* @__PURE__ */ defineComponent({
  __name: "InfoIcon",
  props: {
    tooltipLabel: {
      type: String,
      default: ""
    },
    size: {
      type: Number,
      default: 20
    }
  },
  setup(__props) {
    const props = __props;
    const cssProps = computed(() => {
      return {
        "--icon-size": props.size + "px"
      };
    });
    return (_ctx, _cache) => {
      return openBlock(), createBlock(Tooltip2, {
        tooltip: unref(ComponentUtils).initTooltip(__props.tooltipLabel)
      }, {
        default: withCtx(() => [
          createBaseVNode("div", {
            class: "icon",
            style: normalizeStyle(unref(cssProps))
          }, _hoisted_2$q, 4)
        ]),
        _: 1
      }, 8, ["tooltip"]);
    };
  }
});
const InfoIcon_vue_vue_type_style_index_0_scoped_30cf167a_lang = "";
const InfoIcon = /* @__PURE__ */ _export_sfc(_sfc_main$w, [["__scopeId", "data-v-30cf167a"]]);
const _withScopeId$g = (n) => (pushScopeId("data-v-ced0adc7"), n = n(), popScopeId(), n);
const _hoisted_1$t = { class: "loader" };
const _hoisted_2$p = /* @__PURE__ */ _withScopeId$g(() => /* @__PURE__ */ createBaseVNode("div", null, null, -1));
const _hoisted_3$n = /* @__PURE__ */ _withScopeId$g(() => /* @__PURE__ */ createBaseVNode("div", null, null, -1));
const _hoisted_4$i = /* @__PURE__ */ _withScopeId$g(() => /* @__PURE__ */ createBaseVNode("div", null, null, -1));
const _hoisted_5$h = /* @__PURE__ */ _withScopeId$g(() => /* @__PURE__ */ createBaseVNode("div", null, null, -1));
const _hoisted_6$h = [
  _hoisted_2$p,
  _hoisted_3$n,
  _hoisted_4$i,
  _hoisted_5$h
];
const _hoisted_7$f = { class: "dot-spin" };
const _sfc_main$v = /* @__PURE__ */ defineComponent({
  __name: "Loader",
  props: {
    loading: {
      type: Boolean
    },
    dotSpin: {
      type: Boolean,
      default: false
    }
  },
  setup(__props) {
    const props = __props;
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock(Fragment, null, [
        withDirectives(createBaseVNode("div", _hoisted_1$t, _hoisted_6$h, 512), [
          [vShow, !props.dotSpin && __props.loading]
        ]),
        withDirectives(createBaseVNode("div", _hoisted_7$f, null, 512), [
          [vShow, props.dotSpin && __props.loading]
        ])
      ], 64);
    };
  }
});
const Loader_vue_vue_type_style_index_0_scoped_ced0adc7_lang = "";
const Loader = /* @__PURE__ */ _export_sfc(_sfc_main$v, [["__scopeId", "data-v-ced0adc7"]]);
const _withScopeId$f = (n) => (pushScopeId("data-v-d1b2eabd"), n = n(), popScopeId(), n);
const _hoisted_1$s = { class: "modal-backdrop" };
const _hoisted_2$o = { class: "modal" };
const _hoisted_3$m = { class: "modal-header" };
const _hoisted_4$h = {
  key: 0,
  class: "modal-description"
};
const _hoisted_5$g = { class: "modal-body" };
const _hoisted_6$g = /* @__PURE__ */ _withScopeId$f(() => /* @__PURE__ */ createBaseVNode("div", {
  id: "spacer",
  class: "flex-grow"
}, null, -1));
const _hoisted_7$e = {
  key: 1,
  class: "modal-footer"
};
const _sfc_main$u = /* @__PURE__ */ defineComponent({
  __name: "Modal",
  props: {
    showCloseButton: {
      type: Boolean,
      default: true
    },
    showSubmitButton: {
      type: Boolean,
      default: true
    },
    disableSubmit: {
      type: Boolean,
      default: false
    },
    header: {
      type: String,
      default: ""
    },
    submitButtonLabel: {
      type: String,
      default: "Submit"
    },
    cancelButtonLabel: {
      type: String,
      default: "Cancel"
    },
    hideFooter: {
      type: Boolean,
      default: false
    },
    width: {
      type: String,
      default: "80%"
    },
    description: {
      type: String,
      default: ""
    },
    isDestructiveModal: {
      type: Boolean,
      default: false
    }
  },
  emits: ["close", "submit"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    useCssVars((_ctx) => ({
      "49745692": props.width
    }));
    function close() {
      emit2("close");
    }
    function submit() {
      emit2("submit");
    }
    const { disableSubmit } = toRefs(props);
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$s, [
        createBaseVNode("div", _hoisted_2$o, [
          createBaseVNode("div", _hoisted_3$m, [
            createBaseVNode("h4", null, toDisplayString(__props.header), 1)
          ]),
          __props.description !== "" ? (openBlock(), createElementBlock("div", _hoisted_4$h, [
            createBaseVNode("p", null, toDisplayString(__props.description), 1)
          ])) : createCommentVNode("", true),
          createBaseVNode("div", _hoisted_5$g, [
            renderSlot(_ctx.$slots, "default", {}, void 0, true)
          ]),
          _hoisted_6$g,
          !__props.hideFooter ? (openBlock(), createElementBlock("div", _hoisted_7$e, [
            __props.showCloseButton ? (openBlock(), createBlock(Button, {
              key: 0,
              class: "modal-button",
              onClick: close,
              variant: "secondary"
            }, {
              default: withCtx(() => [
                createTextVNode(toDisplayString(_ctx.$props.cancelButtonLabel), 1)
              ]),
              _: 1
            })) : createCommentVNode("", true),
            __props.showSubmitButton ? (openBlock(), createBlock(Button, {
              key: 1,
              class: "modal-button",
              variant: props.isDestructiveModal ? "destructive" : "primary",
              onClick: submit,
              isDisabled: unref(disableSubmit)
            }, {
              default: withCtx(() => [
                createTextVNode(toDisplayString(_ctx.$props.submitButtonLabel), 1)
              ]),
              _: 1
            }, 8, ["variant", "isDisabled"])) : createCommentVNode("", true)
          ])) : createCommentVNode("", true)
        ])
      ]);
    };
  }
});
const Modal_vue_vue_type_style_index_0_scoped_d1b2eabd_lang = "";
const Modal = /* @__PURE__ */ _export_sfc(_sfc_main$u, [["__scopeId", "data-v-d1b2eabd"]]);
const _hoisted_1$r = { class: "pod" };
const _hoisted_2$n = { key: 0 };
const _hoisted_3$l = {
  key: 0,
  class: "pod-header"
};
const _hoisted_4$g = {
  key: 0,
  class: "pod-title"
};
const _hoisted_5$f = { class: "button-container" };
const _hoisted_6$f = { key: 1 };
const _hoisted_7$d = ["id"];
const _hoisted_8$a = ["id"];
const _hoisted_9$a = { class: "pod-content" };
const _sfc_main$t = /* @__PURE__ */ defineComponent({
  __name: "Pod",
  props: {
    podConfig: {
      type: Object,
      default: {}
    },
    loading: {
      type: Boolean
    }
  },
  emits: ["onClick"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const { podConfig } = toRefs(props);
    const isModalVisible = ref(false);
    const isTitleInvisible = ref(props.podConfig?.hidePODTitle);
    function closeModal() {
      isModalVisible.value = false;
    }
    computed((type) => {
      switch (type) {
        case "help":
          return "ri-information-fill";
        case "print":
          return "ri-printer-fill";
        case "excel":
          return "ri-file-excel-fill";
        default:
          return;
      }
    });
    const onClick = (e) => {
      emit2("onClick", e, e.target.id);
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", normalizeProps(guardReactiveProps(_ctx.$attrs)), [
        createBaseVNode("div", _hoisted_1$r, [
          createVNode(Loader, { loading: __props.loading }, null, 8, ["loading"]),
          !__props.loading ? (openBlock(), createElementBlock("div", _hoisted_2$n, [
            !unref(podConfig)?.hidePODTitle ? (openBlock(), createElementBlock("div", _hoisted_3$l, [
              !isTitleInvisible.value ? (openBlock(), createElementBlock("h2", _hoisted_4$g, toDisplayString(unref(podConfig)?.displayTitle), 1)) : createCommentVNode("", true),
              createBaseVNode("div", _hoisted_5$f, [
                (openBlock(true), createElementBlock(Fragment, null, renderList(unref(podConfig)?.actionButtons, (actionButton) => {
                  return openBlock(), createElementBlock("div", { onClick }, [
                    actionButton.type === "button" ? (openBlock(), createBlock(Button, {
                      key: 0,
                      class: "button",
                      id: actionButton.buttonId
                    }, {
                      default: withCtx(() => [
                        createTextVNode(toDisplayString(actionButton.message), 1)
                      ]),
                      _: 2
                    }, 1032, ["id"])) : (openBlock(), createElementBlock("button", _hoisted_6$f, [
                      actionButton.type === "help" ? (openBlock(), createBlock(InfoIcon, {
                        key: 0,
                        tooltipLabel: actionButton.message,
                        id: actionButton.buttonId
                      }, null, 8, ["tooltipLabel", "id"])) : actionButton.type === "excel" ? (openBlock(), createElementBlock("i", {
                        key: 1,
                        class: "mdl-button--icon ri-file-excel-fill",
                        id: actionButton.buttonId
                      }, null, 8, _hoisted_7$d)) : actionButton.type === "print" ? (openBlock(), createElementBlock("i", {
                        key: 2,
                        class: "mdl-button--icon ri-printer-fill",
                        id: actionButton.buttonId
                      }, null, 8, _hoisted_8$a)) : createCommentVNode("", true)
                    ]))
                  ]);
                }), 256))
              ]),
              renderSlot(_ctx.$slots, "header", {}, void 0, true)
            ])) : createCommentVNode("", true),
            createBaseVNode("div", _hoisted_9$a, [
              renderSlot(_ctx.$slots, "default", {}, void 0, true)
            ])
          ])) : createCommentVNode("", true)
        ]),
        withDirectives(createVNode(Modal, { onClose: closeModal }, null, 512), [
          [vShow, isModalVisible.value]
        ])
      ], 16);
    };
  }
});
const Pod_vue_vue_type_style_index_0_scoped_0b89dbb6_lang = "";
const Pod2 = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-0b89dbb6"]]);
const _hoisted_1$q = ["innerHTML"];
const _hoisted_2$m = { key: 1 };
const _hoisted_3$k = ["innerHTML"];
const _sfc_main$s = /* @__PURE__ */ defineComponent({
  __name: "ContactUs",
  setup(__props) {
    const { getClientConfig } = useConfigStore();
    const { user } = useUserStore();
    const terminal = user.terminal;
    const customHtml = ref("");
    const defaultContactInfo = reactive({
      adminName: "",
      adminContactName: "",
      adminContactPhone: "",
      adminContactFax: "",
      adminContactEmail: "",
      adminAddress: "",
      adminAddress2: "",
      adminCity: "",
      adminState: "",
      adminZip: "",
      adminMessage: ""
    });
    const { adminName, adminContactName, adminContactPhone, adminContactFax, adminContactEmail, adminAddress, adminAddress2, adminCity, adminState, adminZip, adminMessage } = toRefs(defaultContactInfo);
    const defaultContactInfoEmpty = computed(() => {
      return Object.values(defaultContactInfo).every((val) => val === "");
    });
    const getPortalHTML = async () => {
      const result = await getClientConfig(`ADMINHTML_${terminal}`);
      if (result && result.Config_String !== "") {
        customHtml.value = purify.sanitize(result.Config_String, { FORCE_BODY: true });
      } else {
        getAdminHTML();
      }
    };
    const getAdminHTML = async () => {
      const result = await getClientConfig("ADMINHTML");
      if (result && result.Config_String !== "") {
        customHtml.value = purify.sanitize(result.Config_String, { FORCE_BODY: true });
      } else {
        getDefaultContactInfo();
      }
    };
    const getDefaultContactInfo = () => {
      Object.keys(defaultContactInfo).forEach(async (key) => {
        const result = await getClientConfig(key.toUpperCase());
        if (key === "ADMINMESSAGE" && result && result.Config_String) {
          result.Config_String = purify.sanitize(result.Config_String, { FORCE_BODY: true });
        }
        defaultContactInfo[key] = result?.Config_String ?? "";
      });
    };
    getPortalHTML();
    return (_ctx, _cache) => {
      return openBlock(), createBlock(Pod2, {
        podConfig: unref(ComponentUtils).initPod("Contact Us", "", "", false, [], {}),
        class: "wrapper"
      }, {
        default: withCtx(() => [
          createVNode(Card2, {
            card: unref(ComponentUtils).initCard("secondary")
          }, {
            default: withCtx(() => [
              customHtml.value ? (openBlock(), createElementBlock("div", {
                key: 0,
                innerHTML: customHtml.value
              }, null, 8, _hoisted_1$q)) : !unref(defaultContactInfoEmpty) ? (openBlock(), createElementBlock("div", _hoisted_2$m, [
                createVNode(_sfc_main$D, {
                  address: unref(adminAddress),
                  address2: unref(adminAddress2),
                  city: unref(adminCity),
                  state: unref(adminState),
                  zip: unref(adminZip),
                  countryDesc: ""
                }, null, 8, ["address", "address2", "city", "state", "zip"]),
                createBaseVNode("div", { innerHTML: unref(adminMessage) }, null, 8, _hoisted_3$k),
                createVNode(_sfc_main$E, { mode: "stacked" }, {
                  default: withCtx(() => [
                    unref(adminContactName) ? (openBlock(), createBlock(Field2, {
                      key: 0,
                      label: "Contact",
                      data: unref(adminContactName),
                      mode: "inline"
                    }, null, 8, ["data"])) : createCommentVNode("", true),
                    unref(adminContactFax) ? (openBlock(), createBlock(Field2, {
                      key: 1,
                      label: "Fax",
                      data: unref(adminContactFax),
                      mode: "inline"
                    }, null, 8, ["data"])) : createCommentVNode("", true),
                    unref(adminContactPhone) ? (openBlock(), createBlock(Field2, {
                      key: 2,
                      label: "Phone",
                      data: unref(adminContactPhone),
                      mode: "inline"
                    }, null, 8, ["data"])) : createCommentVNode("", true),
                    unref(adminContactEmail) ? (openBlock(), createBlock(Field2, {
                      key: 3,
                      label: "Email",
                      data: unref(adminContactEmail),
                      mode: "inline"
                    }, null, 8, ["data"])) : createCommentVNode("", true)
                  ]),
                  _: 1
                })
              ])) : createCommentVNode("", true)
            ]),
            _: 1
          }, 8, ["card"])
        ]),
        _: 1
      }, 8, ["podConfig"]);
    };
  }
});
const _hoisted_1$p = { class: "base-text__strong" };
const _hoisted_2$l = { class: "flex-row flex-end" };
const _sfc_main$r = /* @__PURE__ */ defineComponent({
  __name: "MyAccount",
  emits: ["close", "handleRoute"],
  setup(__props, { emit: emit2 }) {
    const { getClientConfig } = useConfigStore();
    const { user, userProfile } = useUserStore();
    const { FirstName, LastName, Organization, UserEmail, PhoneNumber, PrudentialID, FaxNumber, ImpersonationUserName } = toRefs(userProfile);
    const showPrudentialId = ref(false);
    getClientConfig("SHOW_PRU_ID_ON_MANAGE_ACCT").then((result) => {
      showPrudentialId.value = result?.Config_String === "YES";
    });
    const displayName = computed(() => {
      return StringUtils.getDisplayName(FirstName.value, LastName.value);
    });
    const onManageAccountClick = () => {
      emit2("handleRoute", "/#v-my-account-screen");
      emit2("close");
    };
    return (_ctx, _cache) => {
      return openBlock(), createBlock(Pod2, {
        podConfig: unref(ComponentUtils).initPod("My Account", "", "", true, [], {})
      }, {
        default: withCtx(() => [
          createBaseVNode("p", _hoisted_1$p, toDisplayString(unref(displayName)), 1),
          createVNode(Card2, {
            card: unref(ComponentUtils).initCard("secondary")
          }, {
            default: withCtx(() => [
              createVNode(_sfc_main$E, { mode: "stacked" }, {
                default: withCtx(() => [
                  unref(user).terminal !== "MT" ? (openBlock(), createBlock(Field2, {
                    key: 0,
                    label: "Organization",
                    data: unref(Organization),
                    mode: "inline"
                  }, null, 8, ["data"])) : createCommentVNode("", true),
                  createVNode(Field2, {
                    label: "Email",
                    data: unref(UserEmail),
                    mode: "inline"
                  }, null, 8, ["data"]),
                  createVNode(Field2, {
                    label: "Phone Number",
                    data: unref(StringUtils).formatPhoneNumber(unref(PhoneNumber)),
                    mode: "inline"
                  }, null, 8, ["data"]),
                  showPrudentialId.value ? (openBlock(), createBlock(Field2, {
                    key: 1,
                    label: "Pru Peak ID",
                    data: unref(PrudentialID),
                    mode: "inline"
                  }, null, 8, ["data"])) : createCommentVNode("", true),
                  unref(FaxNumber) ? (openBlock(), createBlock(Field2, {
                    key: 2,
                    label: "Fax Number",
                    data: unref(StringUtils).formatPhoneNumber(unref(FaxNumber)),
                    mode: "inline"
                  }, null, 8, ["data"])) : createCommentVNode("", true),
                  unref(ImpersonationUserName) ? (openBlock(), createBlock(Field2, {
                    key: 3,
                    label: "Impersonation Username",
                    data: unref(ImpersonationUserName),
                    mode: "inline"
                  }, null, 8, ["data"])) : createCommentVNode("", true)
                ]),
                _: 1
              })
            ]),
            _: 1
          }, 8, ["card"]),
          createBaseVNode("div", _hoisted_2$l, [
            createVNode(Button, { onClick: onManageAccountClick }, {
              default: withCtx(() => [
                createTextVNode("Manage Account")
              ]),
              _: 1
            })
          ])
        ]),
        _: 1
      }, 8, ["podConfig"]);
    };
  }
});
const _hoisted_1$o = { class: "expandable-tab" };
const _sfc_main$q = /* @__PURE__ */ defineComponent({
  __name: "ExpandableTab",
  props: {
    tab: {
      type: Tab,
      default: () => {
      }
    }
  },
  emits: ["onToggle"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const { tab } = toRefs(props);
    const button = ref();
    const overlay = ref();
    const isMounted = computed(() => {
      return overlay.value !== null;
    });
    const onOutsideClick = (event) => {
      if (overlay.value && !overlay.value.contains(event.target) && (button.value && !button.value.contains(event.target))) {
        toggleExpanded();
      }
    };
    watchEffect(() => {
      if (isMounted.value) {
        document.addEventListener("click", onOutsideClick, { capture: true });
      } else {
        document.removeEventListener("click", onOutsideClick, { capture: true });
      }
    });
    const toggleExpanded = () => {
      emit2("onToggle");
    };
    const toggleIcon = computed(() => {
      return tab.value.isExpanded ? "ri-arrow-up-s-line" : "ri-arrow-down-s-line";
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$o, [
        createBaseVNode("div", {
          ref_key: "button",
          ref: button
        }, [
          createVNode(Button, {
            variant: "quaternary",
            onClick: toggleExpanded,
            prependIcon: unref(tab).icon,
            appendIcon: unref(toggleIcon),
            hideLabelOnMobile: unref(tab).hideLabelOnMobile
          }, {
            default: withCtx(() => [
              createTextVNode(toDisplayString(unref(tab).label), 1)
            ]),
            _: 1
          }, 8, ["prependIcon", "appendIcon", "hideLabelOnMobile"])
        ], 512),
        unref(tab).isExpanded ? (openBlock(), createElementBlock("div", {
          key: 0,
          class: "overlay",
          ref_key: "overlay",
          ref: overlay
        }, [
          renderSlot(_ctx.$slots, "default", { close: toggleExpanded }, void 0, true)
        ], 512)) : createCommentVNode("", true)
      ]);
    };
  }
});
const ExpandableTab_vue_vue_type_style_index_0_scoped_0384fce7_lang = "";
const ExpandableTab = /* @__PURE__ */ _export_sfc(_sfc_main$q, [["__scopeId", "data-v-0384fce7"]]);
const _hoisted_1$n = { class: "flex-row" };
const _sfc_main$p = /* @__PURE__ */ defineComponent({
  __name: "TabGroup",
  props: {
    tabs: {
      type: Array,
      default: () => []
    }
  },
  emits: ["handleRoute"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const { tabs } = toRefs(props);
    ref(-1);
    const onToggle = (index2) => {
      tabs.value.forEach((tab, i) => {
        if (i !== index2) {
          tabs.value[i] = { ...tab, isExpanded: false };
        }
      });
      tabs.value[index2] = { ...tabs.value[index2], isExpanded: !tabs.value[index2].isExpanded };
    };
    function onTabClick(index2, tabClickFunction) {
      const currentlySelectedTab = tabs.value.find((tab) => tab.isSelected == true);
      if (currentlySelectedTab)
        currentlySelectedTab.isSelected = false;
      tabs.value[index2].isSelected = true;
      tabClickFunction();
    }
    const handleRoute = (route) => {
      emit2("handleRoute", route);
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$n, [
        (openBlock(true), createElementBlock(Fragment, null, renderList(unref(tabs), (tab, index2) => {
          return openBlock(), createElementBlock(Fragment, null, [
            tab.isExpandable ? (openBlock(), createBlock(ExpandableTab, {
              key: 0,
              tab: unref(ComponentUtils).initTab(tab),
              onOnToggle: ($event) => onToggle(index2)
            }, {
              default: withCtx(() => [
                (openBlock(), createBlock(resolveDynamicComponent(tab.content), {
                  onClose: ($event) => onToggle(index2),
                  onHandleRoute: handleRoute
                }, null, 40, ["onClose"]))
              ]),
              _: 2
            }, 1032, ["tab", "onOnToggle"])) : (openBlock(), createBlock(Button, {
              key: 1,
              class: normalizeClass([_ctx.$attrs.class + " !pb-1 !px-0 !mx-4", { "selected": tab.isSelected }]),
              variant: "quaternary",
              prependIcon: tab.icon,
              onClick: () => onTabClick(index2, tab.onClick),
              hideLabelOnMobile: tab.hideLabelOnMobile
            }, {
              default: withCtx(() => [
                createTextVNode(toDisplayString(tab.label), 1)
              ]),
              _: 2
            }, 1032, ["class", "prependIcon", "onClick", "hideLabelOnMobile"]))
          ], 64);
        }), 256))
      ]);
    };
  }
});
const TabGroup_vue_vue_type_style_index_0_scoped_50d5471a_lang = "";
const TabGroup = /* @__PURE__ */ _export_sfc(_sfc_main$p, [["__scopeId", "data-v-50d5471a"]]);
const _hoisted_1$m = { id: "vue-portal-header" };
const _hoisted_2$k = ["data-translation-key"];
const _hoisted_3$j = {
  id: "portal-title",
  class: "xsmall-text"
};
const _hoisted_4$f = { class: "flex-row align-items-center space-between" };
const _hoisted_5$e = {
  key: 0,
  "data-translation-key": "vba-terminal-welcome",
  class: "welcome"
};
const _hoisted_6$e = { class: "tabs flex-row flex-end flex-grow" };
const _sfc_main$o = /* @__PURE__ */ defineComponent({
  __name: "PortalHeader",
  emits: ["handleRoute"],
  setup(__props, { emit: emit2 }) {
    const vbaCoreSecurity = new VbaCoreSecurity();
    const { userProfile, user } = useUserStore();
    const { getClientConfig } = useConfigStore();
    const clientId = ref("");
    const tabs = reactive([]);
    const getConfigs = async () => {
      getClientConfig("MT_HIDE_ICON_CONTACT").then((result) => {
        if (result?.Config_String === "NO") {
          tabs.push({
            label: "Contact Us",
            icon: "ri-phone-line",
            isExpanded: false,
            isExpandable: true,
            hideLabelOnMobile: true,
            onClick: () => {
            },
            content: markRaw(_sfc_main$s)
          });
        }
      });
      getClientConfig("MT_HIDE_ICON_PROFILE_CARD").then((result) => {
        if (result?.Config_String === "NO") {
          tabs.push({
            label: "My Account",
            icon: "ri-account-box-line",
            isExpanded: false,
            isExpandable: true,
            hideLabelOnMobile: true,
            onClick: () => {
            },
            content: markRaw(_sfc_main$r)
          });
        }
      });
      getClientConfig("MT_HIDE_ICON_LOGOUT").then((result) => {
        if (result?.Config_String === "NO") {
          tabs.push({
            label: "Logout",
            icon: "ri-logout-circle-line",
            isExpanded: false,
            isExpandable: false,
            hideLabelOnMobile: true,
            onClick: logout,
            content: null
          });
        }
      });
      getClientConfig("ADMINCLIENTID").then((result4) => {
        clientId.value = result4?.Config_String ?? "";
      });
    };
    const displayName = computed(() => {
      return StringUtils.getDisplayName(userProfile.FirstName, userProfile.LastName);
    });
    const isTestPortal = computed(() => {
      return user.isTestPortal;
    });
    const translationKey = computed(() => {
      return `vba-terminal-title-${user.terminal}-${clientId.value}`;
    });
    const portal = computed(() => {
      return user.portal.toUpperCase();
    });
    const logout = () => {
      vbaCoreSecurity.logout();
    };
    watchEffect(() => {
      getConfigs();
    });
    const handleRoute = (route) => {
      emit2("handleRoute", route);
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$m, [
        createBaseVNode("div", {
          "data-translation-key": unref(translationKey),
          class: normalizeClass(unref(isTestPortal) ? "test-bar" : "")
        }, [
          createBaseVNode("p", _hoisted_3$j, toDisplayString(unref(portal)), 1)
        ], 10, _hoisted_2$k),
        createBaseVNode("div", _hoisted_4$f, [
          unref(displayName) ? (openBlock(), createElementBlock("h3", _hoisted_5$e, "Welcome, " + toDisplayString(unref(displayName)), 1)) : createCommentVNode("", true),
          createBaseVNode("div", _hoisted_6$e, [
            createVNode(TabGroup, {
              tabs,
              onHandleRoute: handleRoute
            }, null, 8, ["tabs"])
          ])
        ])
      ]);
    };
  }
});
const PortalHeader_vue_vue_type_style_index_0_scoped_a72a00e9_lang = "";
const PortalHeader = /* @__PURE__ */ _export_sfc(_sfc_main$o, [["__scopeId", "data-v-a72a00e9"]]);
const PortalHeader$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: PortalHeader
}, Symbol.toStringTag, { value: "Module" }));
const _sfc_main$n = /* @__PURE__ */ defineComponent({
  __name: "Screen",
  props: {
    id: {
      type: String
    }
  },
  async setup(__props) {
    let __temp, __restore;
    const props = __props;
    const { getScreen, loadClientScreenConfigs, getClientConfigs } = useConfigStore();
    const elementService = new ElementService();
    const menuConfigs = reactive([]);
    const screenKey = ref("");
    loadClientScreenConfigs(useUserStore().user.terminal).then(() => {
      for (var i = 0; i < configs$1.configs.length; ++i) {
        let item = configs$1.configs[i];
        let mi = {};
        mi = {
          displayText: item.displayText,
          url: item.url,
          actionType: item.actionType,
          icon: item.icon,
          visible: item.visible,
          translationKey: item.translationKey,
          screenId: item.screenId,
          podId: item.podId,
          terminal: item.terminal,
          linkClasses: item.linkClasses,
          kendoFunctionId: item.kendoFunctionId,
          subMenu: {
            classes: item?.subMenu?.classes || [],
            id: item?.subMenu?.id || "",
            items: item?.subMenu?.items
          }
        };
        if (mi.terminal === useUserStore().user.terminal) {
          menuConfigs.push(mi);
        }
      }
    });
    getClientConfigs(useUserStore().user.terminal);
    const screen = ref(null);
    const route = useRoute();
    const router2 = useRouter();
    screen.value = getScreen(useUserStore().user.terminal, props?.id || "");
    watch(
      () => route.params,
      () => {
        loadScreen(route);
      },
      // force eager callback execution
      { immediate: true }
    );
    function loadScreen(routeInfo) {
      let routeHash = "";
      if (routeInfo.name) {
        routeHash = routeInfo.name.replace("#", "");
      } else {
        routeHash = routeInfo.hash.replace("#", "");
      }
      if (routeHash.includes("reports/eob/") || routeHash.includes("reports/card/") || routeHash.includes("reports/plansum")) {
        routeHash = "generate-report";
      }
      screen.value = getScreen(useUserStore().user.terminal, routeHash);
      screenKey.value = routeHash;
    }
    const screenLoaded = computed(() => {
      let screenLoaded2 = screen.value?.screenLayout !== null && typeof screen.value?.screenLayout !== "undefined";
      return screenLoaded2;
    });
    const userLoggedIn = computed(() => {
      return useUserStore().user !== null && typeof useUserStore().user !== "undefined";
    });
    const menuDivLoaded = ref(false);
    [__temp, __restore] = withAsyncContext(() => elementService.waitForElm(".vba-ux-menu_wrapper").then(() => {
      menuDivLoaded.value = true;
    })), await __temp, __restore();
    const headerLoaded = ref(false);
    [__temp, __restore] = withAsyncContext(() => elementService.waitForElm("#vba-ux_header").then(() => {
      headerLoaded.value = true;
    })), await __temp, __restore();
    function handleRoute(routeData) {
      if (typeof routeData === "object") {
        router2.push({ name: routeData.routeName, query: routeData.params });
      } else {
        router2.push(routeData);
      }
    }
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock(Fragment, null, [
        headerLoaded.value ? (openBlock(), createBlock(Teleport, {
          key: 0,
          to: "#vba-ux_header"
        }, [
          createVNode(PortalHeader, { onHandleRoute: handleRoute })
        ])) : createCommentVNode("", true),
        unref(userLoggedIn) && menuDivLoaded.value ? (openBlock(), createBlock(Teleport, {
          key: 1,
          to: ".vba-ux-menu_wrapper"
        }, [
          createVNode(_sfc_main$G, {
            menuConfigs,
            onHandleRoute: handleRoute
          }, null, 8, ["menuConfigs"])
        ])) : createCommentVNode("", true),
        unref(screenLoaded) ? (openBlock(), createBlock(Teleport, {
          key: 2,
          to: "#vba-terminal-vue"
        }, [
          (openBlock(), createBlock(ScreenBuilder, {
            screen: screen.value,
            key: screenKey.value,
            onHandleRoute: handleRoute
          }, null, 8, ["screen"]))
        ])) : createCommentVNode("", true)
      ], 64);
    };
  }
});
const _withScopeId$e = (n) => (pushScopeId("data-v-637c1801"), n = n(), popScopeId(), n);
const _hoisted_1$l = { class: "account-recovery-container" };
const _hoisted_2$j = /* @__PURE__ */ _withScopeId$e(() => /* @__PURE__ */ createBaseVNode("h2", null, "Recover your Account", -1));
const _hoisted_3$i = { class: "recovery-options" };
const _hoisted_4$e = { class: "username" };
const _hoisted_5$d = { class: "password" };
const _hoisted_6$d = { class: "recovery-form" };
const _hoisted_7$c = {
  key: 0,
  class: "form-group"
};
const _hoisted_8$9 = /* @__PURE__ */ _withScopeId$e(() => /* @__PURE__ */ createBaseVNode("p", null, "Please enter your email to help us recover your account. ", -1));
const _hoisted_9$9 = /* @__PURE__ */ _withScopeId$e(() => /* @__PURE__ */ createBaseVNode("label", null, "Email Address:", -1));
const _hoisted_10$8 = {
  key: 1,
  class: "form-group"
};
const _hoisted_11$7 = /* @__PURE__ */ _withScopeId$e(() => /* @__PURE__ */ createBaseVNode("p", null, "Please enter your username to help us recover your account. ", -1));
const _hoisted_12$6 = /* @__PURE__ */ _withScopeId$e(() => /* @__PURE__ */ createBaseVNode("label", null, "Username:", -1));
const _sfc_main$m = /* @__PURE__ */ defineComponent({
  __name: "AccountRecovery",
  emits: ["recover-done", "sign-in-click"],
  setup(__props, { emit: emit2 }) {
    const apiService = new APIService();
    const toast = useToast();
    const recoveryOption = ref("");
    const userEmail = ref("");
    const userName = ref("");
    const showToast = ref(false);
    const toastMessage = ref("");
    const submitForm = async () => {
      try {
        let response;
        if (recoveryOption.value === "username") {
          response = await apiService.SendUsernameRecoverEmail(userEmail.value);
        } else if (recoveryOption.value === "password") {
          response = await apiService.RecoverPassword(userName.value);
        }
        if (response.Success) {
          toast.success("Recovery Successful. Please check your email for instructions.");
          emit2("recover-done", "acct-recovery-done");
        } else {
          if (response.message === "RECOVER_ERROR_USE_REG_CODE") {
            toast.error("A Recovery Error Has Occurred. Please use your Registration Code to recover, or contact your admin.");
          } else {
            toast.error("A Recovery Error Has Occurred. " + response.Message);
          }
        }
      } catch (error) {
        toast.error("Something went wrong. Please try again.");
        console.error("Error:", error);
      }
    };
    const onSignInClick = () => {
      emit2("sign-in-click", "return-to-login");
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$l, [
        _hoisted_2$j,
        createBaseVNode("div", _hoisted_3$i, [
          createBaseVNode("div", _hoisted_4$e, [
            createBaseVNode("label", null, [
              withDirectives(createBaseVNode("input", {
                type: "radio",
                value: "username",
                "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => recoveryOption.value = $event)
              }, null, 512), [
                [vModelRadio, recoveryOption.value]
              ]),
              createTextVNode(" I don't know my username. ")
            ])
          ]),
          createBaseVNode("div", _hoisted_5$d, [
            createBaseVNode("label", null, [
              withDirectives(createBaseVNode("input", {
                type: "radio",
                value: "password",
                "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => recoveryOption.value = $event)
              }, null, 512), [
                [vModelRadio, recoveryOption.value]
              ]),
              createTextVNode(" I don't know my password. ")
            ])
          ])
        ]),
        createBaseVNode("form", _hoisted_6$d, [
          recoveryOption.value === "username" ? (openBlock(), createElementBlock("div", _hoisted_7$c, [
            _hoisted_8$9,
            _hoisted_9$9,
            withDirectives(createBaseVNode("input", {
              "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => userEmail.value = $event),
              type: "email",
              required: ""
            }, null, 512), [
              [vModelText, userEmail.value]
            ])
          ])) : createCommentVNode("", true),
          recoveryOption.value === "password" ? (openBlock(), createElementBlock("div", _hoisted_10$8, [
            _hoisted_11$7,
            _hoisted_12$6,
            withDirectives(createBaseVNode("input", {
              "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => userName.value = $event),
              type: "text",
              required: ""
            }, null, 512), [
              [vModelText, userName.value]
            ])
          ])) : createCommentVNode("", true),
          recoveryOption.value !== "" ? (openBlock(), createBlock(Button, {
            key: 2,
            onClick: submitForm
          }, {
            default: withCtx(() => [
              createTextVNode("Submit")
            ]),
            _: 1
          })) : createCommentVNode("", true)
        ]),
        createBaseVNode("button", {
          class: "sign-in-link",
          type: "button",
          onClick: onSignInClick
        }, "Sign in Instead"),
        showToast.value ? (openBlock(), createBlock(unref(toast), {
          key: 0,
          message: toastMessage.value,
          onClose: _cache[4] || (_cache[4] = ($event) => showToast.value = false)
        }, null, 8, ["message"])) : createCommentVNode("", true)
      ]);
    };
  }
});
const AccountRecovery_vue_vue_type_style_index_0_scoped_637c1801_lang = "";
const AccountRecovery = /* @__PURE__ */ _export_sfc(_sfc_main$m, [["__scopeId", "data-v-637c1801"]]);
const AccountRecovery$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: AccountRecovery
}, Symbol.toStringTag, { value: "Module" }));
const _hoisted_1$k = { class: "error-message font-size" };
const _sfc_main$l = /* @__PURE__ */ defineComponent({
  __name: "Error",
  props: {
    errorMessage: {
      type: String,
      default: ""
    },
    size: {
      type: String,
      default: "18.22px"
    }
  },
  setup(__props) {
    const props = __props;
    useCssVars((_ctx) => ({
      "1a6cce07": props.size
    }));
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$k, toDisplayString(props.errorMessage), 1);
    };
  }
});
const Error_vue_vue_type_style_index_0_lang = "";
const _hoisted_1$j = { class: "label-container" };
const _hoisted_2$i = ["for"];
const _hoisted_3$h = {
  key: 0,
  class: "required"
};
const _sfc_main$k = /* @__PURE__ */ defineComponent({
  __name: "InputLabel",
  props: {
    inputLabel: {
      type: InputLabel$1,
      required: true
    },
    isCheckboxLabel: {
      type: Boolean,
      default: false
    }
  },
  setup(__props) {
    const props = __props;
    const { inputLabel } = toRefs(props);
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$j, [
        createBaseVNode("label", {
          for: unref(inputLabel).id,
          class: normalizeClass([{ "small-text__strong": !__props.isCheckboxLabel }])
        }, [
          createTextVNode(toDisplayString(unref(inputLabel).label), 1),
          unref(inputLabel).isRequired ? (openBlock(), createElementBlock("span", _hoisted_3$h, "*")) : createCommentVNode("", true)
        ], 10, _hoisted_2$i)
      ]);
    };
  }
});
const InputLabel_vue_vue_type_style_index_0_scoped_9c5d4f12_lang = "";
const InputLabel2 = /* @__PURE__ */ _export_sfc(_sfc_main$k, [["__scopeId", "data-v-9c5d4f12"]]);
function ownKeys$1(object, enumerableOnly) {
  var keys = Object.keys(object);
  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    enumerableOnly && (symbols = symbols.filter(function(sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    })), keys.push.apply(keys, symbols);
  }
  return keys;
}
function _objectSpread2$1(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = null != arguments[i] ? arguments[i] : {};
    i % 2 ? ownKeys$1(Object(source), true).forEach(function(key) {
      _defineProperty$1(target, key, source[key]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$1(Object(source)).forEach(function(key) {
      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
    });
  }
  return target;
}
function _defineProperty$1(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }
  return obj;
}
function unwrapObj(obj) {
  let ignoreKeys = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
  return Object.keys(obj).reduce((o, k) => {
    if (ignoreKeys.includes(k))
      return o;
    o[k] = unref(obj[k]);
    return o;
  }, {});
}
function isFunction$1(val) {
  return typeof val === "function";
}
function isProxy(value) {
  return isReactive(value) || isReadonly(value);
}
function get(obj, stringPath, def2) {
  let current = obj;
  const path = stringPath.split(".");
  for (let i = 0; i < path.length; i++) {
    if (!current[path[i]])
      return def2;
    current = current[path[i]];
  }
  return current;
}
function gatherBooleanGroupProperties(group, nestedResults, property) {
  return computed(() => {
    return group.some((path) => {
      return get(nestedResults, path, {
        [property]: false
      })[property];
    });
  });
}
function gatherArrayGroupProperties(group, nestedResults, property) {
  return computed(() => {
    return group.reduce((all, path) => {
      const fetchedProperty = get(nestedResults, path, {
        [property]: false
      })[property] || [];
      return all.concat(fetchedProperty);
    }, []);
  });
}
function callRule(rule, value, siblingState, instance) {
  return rule.call(instance, unref(value), unref(siblingState), instance);
}
function normalizeValidatorResponse(result) {
  return result.$valid !== void 0 ? !result.$valid : !result;
}
function createAsyncResult(rule, model, $pending, $dirty, _ref2, $response, instance) {
  let {
    $lazy,
    $rewardEarly
  } = _ref2;
  let watchTargets = arguments.length > 7 && arguments[7] !== void 0 ? arguments[7] : [];
  let siblingState = arguments.length > 8 ? arguments[8] : void 0;
  let $lastInvalidState = arguments.length > 9 ? arguments[9] : void 0;
  let $lastCommittedOn = arguments.length > 10 ? arguments[10] : void 0;
  const $invalid = ref(!!$dirty.value);
  const $pendingCounter = ref(0);
  $pending.value = false;
  const $unwatch = watch([model, $dirty].concat(watchTargets, $lastCommittedOn), () => {
    if ($lazy && !$dirty.value || $rewardEarly && !$lastInvalidState.value && !$pending.value) {
      return;
    }
    let ruleResult;
    try {
      ruleResult = callRule(rule, model, siblingState, instance);
    } catch (err) {
      ruleResult = Promise.reject(err);
    }
    $pendingCounter.value++;
    $pending.value = !!$pendingCounter.value;
    $invalid.value = false;
    Promise.resolve(ruleResult).then((data) => {
      $pendingCounter.value--;
      $pending.value = !!$pendingCounter.value;
      $response.value = data;
      $invalid.value = normalizeValidatorResponse(data);
    }).catch((error) => {
      $pendingCounter.value--;
      $pending.value = !!$pendingCounter.value;
      $response.value = error;
      $invalid.value = true;
    });
  }, {
    immediate: true,
    deep: typeof model === "object"
  });
  return {
    $invalid,
    $unwatch
  };
}
function createSyncResult(rule, model, $dirty, _ref2, $response, instance, siblingState, $lastInvalidState) {
  let {
    $lazy,
    $rewardEarly
  } = _ref2;
  const $unwatch = () => ({});
  const $invalid = computed(() => {
    if ($lazy && !$dirty.value || $rewardEarly && !$lastInvalidState.value) {
      return false;
    }
    let returnValue = true;
    try {
      const result = callRule(rule, model, siblingState, instance);
      $response.value = result;
      returnValue = normalizeValidatorResponse(result);
    } catch (err) {
      $response.value = err;
    }
    return returnValue;
  });
  return {
    $unwatch,
    $invalid
  };
}
function createValidatorResult(rule, model, $dirty, config, instance, validatorName, propertyKey, propertyPath, siblingState, $lastInvalidState, $lastCommittedOn) {
  const $pending = ref(false);
  const $params = rule.$params || {};
  const $response = ref(null);
  let $invalid;
  let $unwatch;
  if (rule.$async) {
    ({
      $invalid,
      $unwatch
    } = createAsyncResult(rule.$validator, model, $pending, $dirty, config, $response, instance, rule.$watchTargets, siblingState, $lastInvalidState, $lastCommittedOn));
  } else {
    ({
      $invalid,
      $unwatch
    } = createSyncResult(rule.$validator, model, $dirty, config, $response, instance, siblingState, $lastInvalidState));
  }
  const message = rule.$message;
  const $message = isFunction$1(message) ? computed(() => message(unwrapObj({
    $pending,
    $invalid,
    $params: unwrapObj($params),
    $model: model,
    $response,
    $validator: validatorName,
    $propertyPath: propertyPath,
    $property: propertyKey
  }))) : message || "";
  return {
    $message,
    $params,
    $pending,
    $invalid,
    $response,
    $unwatch
  };
}
function sortValidations() {
  let validationsRaw = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
  const validations = unref(validationsRaw);
  const validationKeys = Object.keys(validations);
  const rules = {};
  const nestedValidators = {};
  const config = {};
  let validationGroups = null;
  validationKeys.forEach((key) => {
    const v = validations[key];
    switch (true) {
      case isFunction$1(v.$validator):
        rules[key] = v;
        break;
      case isFunction$1(v):
        rules[key] = {
          $validator: v
        };
        break;
      case key === "$validationGroups":
        validationGroups = v;
        break;
      case key.startsWith("$"):
        config[key] = v;
        break;
      default:
        nestedValidators[key] = v;
    }
  });
  return {
    rules,
    nestedValidators,
    config,
    validationGroups
  };
}
const ROOT_PATH = "__root";
function createValidationResults(rules, model, key, resultsCache, path, config, instance, externalResults, siblingState) {
  const ruleKeys = Object.keys(rules);
  const cachedResult = resultsCache.get(path, rules);
  const $dirty = ref(false);
  const $lastInvalidState = ref(false);
  const $lastCommittedOn = ref(0);
  if (cachedResult) {
    if (!cachedResult.$partial)
      return cachedResult;
    cachedResult.$unwatch();
    $dirty.value = cachedResult.$dirty.value;
  }
  const result = {
    $dirty,
    $path: path,
    $touch: () => {
      if (!$dirty.value)
        $dirty.value = true;
    },
    $reset: () => {
      if ($dirty.value)
        $dirty.value = false;
    },
    $commit: () => {
    }
  };
  if (!ruleKeys.length) {
    cachedResult && resultsCache.set(path, rules, result);
    return result;
  }
  ruleKeys.forEach((ruleKey) => {
    result[ruleKey] = createValidatorResult(rules[ruleKey], model, result.$dirty, config, instance, ruleKey, key, path, siblingState, $lastInvalidState, $lastCommittedOn);
  });
  result.$externalResults = computed(() => {
    if (!externalResults.value)
      return [];
    return [].concat(externalResults.value).map((stringError, index2) => ({
      $propertyPath: path,
      $property: key,
      $validator: "$externalResults",
      $uid: `${path}-externalResult-${index2}`,
      $message: stringError,
      $params: {},
      $response: null,
      $pending: false
    }));
  });
  result.$invalid = computed(() => {
    const r = ruleKeys.some((ruleKey) => unref(result[ruleKey].$invalid));
    $lastInvalidState.value = r;
    return !!result.$externalResults.value.length || r;
  });
  result.$pending = computed(() => ruleKeys.some((ruleKey) => unref(result[ruleKey].$pending)));
  result.$error = computed(() => result.$dirty.value ? result.$pending.value || result.$invalid.value : false);
  result.$silentErrors = computed(() => ruleKeys.filter((ruleKey) => unref(result[ruleKey].$invalid)).map((ruleKey) => {
    const res = result[ruleKey];
    return reactive({
      $propertyPath: path,
      $property: key,
      $validator: ruleKey,
      $uid: `${path}-${ruleKey}`,
      $message: res.$message,
      $params: res.$params,
      $response: res.$response,
      $pending: res.$pending
    });
  }).concat(result.$externalResults.value));
  result.$errors = computed(() => result.$dirty.value ? result.$silentErrors.value : []);
  result.$unwatch = () => ruleKeys.forEach((ruleKey) => {
    result[ruleKey].$unwatch();
  });
  result.$commit = () => {
    $lastInvalidState.value = true;
    $lastCommittedOn.value = Date.now();
  };
  resultsCache.set(path, rules, result);
  return result;
}
function collectNestedValidationResults(validations, nestedState, path, resultsCache, config, instance, nestedExternalResults) {
  const nestedValidationKeys = Object.keys(validations);
  if (!nestedValidationKeys.length)
    return {};
  return nestedValidationKeys.reduce((results, nestedKey) => {
    results[nestedKey] = setValidations({
      validations: validations[nestedKey],
      state: nestedState,
      key: nestedKey,
      parentKey: path,
      resultsCache,
      globalConfig: config,
      instance,
      externalResults: nestedExternalResults
    });
    return results;
  }, {});
}
function createMetaFields(results, nestedResults, childResults) {
  const allResults = computed(() => [nestedResults, childResults].filter((res) => res).reduce((allRes, res) => {
    return allRes.concat(Object.values(unref(res)));
  }, []));
  const $dirty = computed({
    get() {
      return results.$dirty.value || (allResults.value.length ? allResults.value.every((r) => r.$dirty) : false);
    },
    set(v) {
      results.$dirty.value = v;
    }
  });
  const $silentErrors = computed(() => {
    const modelErrors = unref(results.$silentErrors) || [];
    const nestedErrors = allResults.value.filter((result) => (unref(result).$silentErrors || []).length).reduce((errors, result) => {
      return errors.concat(...result.$silentErrors);
    }, []);
    return modelErrors.concat(nestedErrors);
  });
  const $errors = computed(() => {
    const modelErrors = unref(results.$errors) || [];
    const nestedErrors = allResults.value.filter((result) => (unref(result).$errors || []).length).reduce((errors, result) => {
      return errors.concat(...result.$errors);
    }, []);
    return modelErrors.concat(nestedErrors);
  });
  const $invalid = computed(() => allResults.value.some((r) => r.$invalid) || unref(results.$invalid) || false);
  const $pending = computed(() => allResults.value.some((r) => unref(r.$pending)) || unref(results.$pending) || false);
  const $anyDirty = computed(() => allResults.value.some((r) => r.$dirty) || allResults.value.some((r) => r.$anyDirty) || $dirty.value);
  const $error = computed(() => $dirty.value ? $pending.value || $invalid.value : false);
  const $touch = () => {
    results.$touch();
    allResults.value.forEach((result) => {
      result.$touch();
    });
  };
  const $commit = () => {
    results.$commit();
    allResults.value.forEach((result) => {
      result.$commit();
    });
  };
  const $reset = () => {
    results.$reset();
    allResults.value.forEach((result) => {
      result.$reset();
    });
  };
  if (allResults.value.length && allResults.value.every((nr) => nr.$dirty))
    $touch();
  return {
    $dirty,
    $errors,
    $invalid,
    $anyDirty,
    $error,
    $pending,
    $touch,
    $reset,
    $silentErrors,
    $commit
  };
}
function setValidations(_ref2) {
  let {
    validations,
    state,
    key,
    parentKey,
    childResults,
    resultsCache,
    globalConfig = {},
    instance,
    externalResults
  } = _ref2;
  const path = parentKey ? `${parentKey}.${key}` : key;
  const {
    rules,
    nestedValidators,
    config,
    validationGroups
  } = sortValidations(validations);
  const mergedConfig = _objectSpread2$1(_objectSpread2$1({}, globalConfig), config);
  const nestedState = key ? computed(() => {
    const s = unref(state);
    return s ? unref(s[key]) : void 0;
  }) : state;
  const cachedExternalResults = _objectSpread2$1({}, unref(externalResults) || {});
  const nestedExternalResults = computed(() => {
    const results2 = unref(externalResults);
    if (!key)
      return results2;
    return results2 ? unref(results2[key]) : void 0;
  });
  const results = createValidationResults(rules, nestedState, key, resultsCache, path, mergedConfig, instance, nestedExternalResults, state);
  const nestedResults = collectNestedValidationResults(nestedValidators, nestedState, path, resultsCache, mergedConfig, instance, nestedExternalResults);
  const $validationGroups = {};
  if (validationGroups) {
    Object.entries(validationGroups).forEach((_ref22) => {
      let [key2, group] = _ref22;
      $validationGroups[key2] = {
        $invalid: gatherBooleanGroupProperties(group, nestedResults, "$invalid"),
        $error: gatherBooleanGroupProperties(group, nestedResults, "$error"),
        $pending: gatherBooleanGroupProperties(group, nestedResults, "$pending"),
        $errors: gatherArrayGroupProperties(group, nestedResults, "$errors"),
        $silentErrors: gatherArrayGroupProperties(group, nestedResults, "$silentErrors")
      };
    });
  }
  const {
    $dirty,
    $errors,
    $invalid,
    $anyDirty,
    $error,
    $pending,
    $touch,
    $reset,
    $silentErrors,
    $commit
  } = createMetaFields(results, nestedResults, childResults);
  const $model = key ? computed({
    get: () => unref(nestedState),
    set: (val) => {
      $dirty.value = true;
      const s = unref(state);
      const external = unref(externalResults);
      if (external) {
        external[key] = cachedExternalResults[key];
      }
      if (isRef(s[key])) {
        s[key].value = val;
      } else {
        s[key] = val;
      }
    }
  }) : null;
  if (key && mergedConfig.$autoDirty) {
    watch(nestedState, () => {
      if (!$dirty.value)
        $touch();
      const external = unref(externalResults);
      if (external) {
        external[key] = cachedExternalResults[key];
      }
    }, {
      flush: "sync"
    });
  }
  async function $validate() {
    $touch();
    if (mergedConfig.$rewardEarly) {
      $commit();
      await nextTick();
    }
    await nextTick();
    return new Promise((resolve2) => {
      if (!$pending.value)
        return resolve2(!$invalid.value);
      const unwatch = watch($pending, () => {
        resolve2(!$invalid.value);
        unwatch();
      });
    });
  }
  function $getResultsForChild(key2) {
    return (childResults.value || {})[key2];
  }
  function $clearExternalResults() {
    if (isRef(externalResults)) {
      externalResults.value = cachedExternalResults;
    } else {
      if (Object.keys(cachedExternalResults).length === 0) {
        Object.keys(externalResults).forEach((k) => {
          delete externalResults[k];
        });
      } else {
        Object.assign(externalResults, cachedExternalResults);
      }
    }
  }
  return reactive(_objectSpread2$1(_objectSpread2$1(_objectSpread2$1({}, results), {}, {
    $model,
    $dirty,
    $error,
    $errors,
    $invalid,
    $anyDirty,
    $pending,
    $touch,
    $reset,
    $path: path || ROOT_PATH,
    $silentErrors,
    $validate,
    $commit
  }, childResults && {
    $getResultsForChild,
    $clearExternalResults,
    $validationGroups
  }), nestedResults));
}
class ResultsStorage {
  constructor() {
    this.storage = /* @__PURE__ */ new Map();
  }
  set(path, rules, result) {
    this.storage.set(path, {
      rules,
      result
    });
  }
  checkRulesValidity(path, rules, storedRules) {
    const storedRulesKeys = Object.keys(storedRules);
    const newRulesKeys = Object.keys(rules);
    if (newRulesKeys.length !== storedRulesKeys.length)
      return false;
    const hasAllValidators = newRulesKeys.every((ruleKey) => storedRulesKeys.includes(ruleKey));
    if (!hasAllValidators)
      return false;
    return newRulesKeys.every((ruleKey) => {
      if (!rules[ruleKey].$params)
        return true;
      return Object.keys(rules[ruleKey].$params).every((paramKey) => {
        return unref(storedRules[ruleKey].$params[paramKey]) === unref(rules[ruleKey].$params[paramKey]);
      });
    });
  }
  get(path, rules) {
    const storedRuleResultPair = this.storage.get(path);
    if (!storedRuleResultPair)
      return void 0;
    const {
      rules: storedRules,
      result
    } = storedRuleResultPair;
    const isValidCache = this.checkRulesValidity(path, rules, storedRules);
    const $unwatch = result.$unwatch ? result.$unwatch : () => ({});
    if (!isValidCache)
      return {
        $dirty: result.$dirty,
        $partial: true,
        $unwatch
      };
    return result;
  }
}
const CollectFlag = {
  COLLECT_ALL: true,
  COLLECT_NONE: false
};
const VuelidateInjectChildResults = Symbol("vuelidate#injectChildResults");
const VuelidateRemoveChildResults = Symbol("vuelidate#removeChildResults");
function nestedValidations(_ref2) {
  let {
    $scope,
    instance
  } = _ref2;
  const childResultsRaw = {};
  const childResultsKeys = ref([]);
  const childResults = computed(() => childResultsKeys.value.reduce((results, key) => {
    results[key] = unref(childResultsRaw[key]);
    return results;
  }, {}));
  function injectChildResultsIntoParent(results, _ref22) {
    let {
      $registerAs: key,
      $scope: childScope,
      $stopPropagation
    } = _ref22;
    if ($stopPropagation || $scope === CollectFlag.COLLECT_NONE || childScope === CollectFlag.COLLECT_NONE || $scope !== CollectFlag.COLLECT_ALL && $scope !== childScope)
      return;
    childResultsRaw[key] = results;
    childResultsKeys.value.push(key);
  }
  instance.__vuelidateInjectInstances = [].concat(instance.__vuelidateInjectInstances || [], injectChildResultsIntoParent);
  function removeChildResultsFromParent(key) {
    childResultsKeys.value = childResultsKeys.value.filter((childKey) => childKey !== key);
    delete childResultsRaw[key];
  }
  instance.__vuelidateRemoveInstances = [].concat(instance.__vuelidateRemoveInstances || [], removeChildResultsFromParent);
  const sendValidationResultsToParent = inject(VuelidateInjectChildResults, []);
  provide(VuelidateInjectChildResults, instance.__vuelidateInjectInstances);
  const removeValidationResultsFromParent = inject(VuelidateRemoveChildResults, []);
  provide(VuelidateRemoveChildResults, instance.__vuelidateRemoveInstances);
  return {
    childResults,
    sendValidationResultsToParent,
    removeValidationResultsFromParent
  };
}
function ComputedProxyFactory(target) {
  return new Proxy(target, {
    get(target2, prop) {
      return typeof target2[prop] === "object" ? ComputedProxyFactory(target2[prop]) : computed(() => target2[prop]);
    }
  });
}
let uid = 0;
function useVuelidate(validations, state) {
  var _getCurrentInstance;
  let globalConfig = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : {};
  if (arguments.length === 1) {
    globalConfig = validations;
    validations = void 0;
    state = void 0;
  }
  let {
    $registerAs,
    $scope = CollectFlag.COLLECT_ALL,
    $stopPropagation,
    $externalResults,
    currentVueInstance
  } = globalConfig;
  const instance = currentVueInstance || ((_getCurrentInstance = getCurrentInstance()) === null || _getCurrentInstance === void 0 ? void 0 : _getCurrentInstance.proxy);
  const componentOptions = instance ? instance.$options : {};
  if (!$registerAs) {
    uid += 1;
    $registerAs = `_vuelidate_${uid}`;
  }
  const validationResults = ref({});
  const resultsCache = new ResultsStorage();
  const {
    childResults,
    sendValidationResultsToParent,
    removeValidationResultsFromParent
  } = instance ? nestedValidations({
    $scope,
    instance
  }) : {
    childResults: ref({})
  };
  if (!validations && componentOptions.validations) {
    const rules = componentOptions.validations;
    state = ref({});
    onBeforeMount(() => {
      state.value = instance;
      watch(() => isFunction$1(rules) ? rules.call(state.value, new ComputedProxyFactory(state.value)) : rules, (validations2) => {
        validationResults.value = setValidations({
          validations: validations2,
          state,
          childResults,
          resultsCache,
          globalConfig,
          instance,
          externalResults: $externalResults || instance.vuelidateExternalResults
        });
      }, {
        immediate: true
      });
    });
    globalConfig = componentOptions.validationsConfig || globalConfig;
  } else {
    const validationsWatchTarget = isRef(validations) || isProxy(validations) ? validations : reactive(validations || {});
    watch(validationsWatchTarget, (newValidationRules) => {
      validationResults.value = setValidations({
        validations: newValidationRules,
        state,
        childResults,
        resultsCache,
        globalConfig,
        instance: instance !== null && instance !== void 0 ? instance : {},
        externalResults: $externalResults
      });
    }, {
      immediate: true
    });
  }
  if (instance) {
    sendValidationResultsToParent.forEach((f) => f(validationResults, {
      $registerAs,
      $scope,
      $stopPropagation
    }));
    onBeforeUnmount(() => removeValidationResultsFromParent.forEach((f) => f($registerAs)));
  }
  return computed(() => {
    return _objectSpread2$1(_objectSpread2$1({}, unref(validationResults.value)), childResults.value);
  });
}
function ownKeys(object, enumerableOnly) {
  var keys = Object.keys(object);
  if (Object.getOwnPropertySymbols) {
    var symbols = Object.getOwnPropertySymbols(object);
    enumerableOnly && (symbols = symbols.filter(function(sym) {
      return Object.getOwnPropertyDescriptor(object, sym).enumerable;
    })), keys.push.apply(keys, symbols);
  }
  return keys;
}
function _objectSpread2(target) {
  for (var i = 1; i < arguments.length; i++) {
    var source = null != arguments[i] ? arguments[i] : {};
    i % 2 ? ownKeys(Object(source), true).forEach(function(key) {
      _defineProperty(target, key, source[key]);
    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function(key) {
      Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
    });
  }
  return target;
}
function _defineProperty(obj, key, value) {
  if (key in obj) {
    Object.defineProperty(obj, key, {
      value,
      enumerable: true,
      configurable: true,
      writable: true
    });
  } else {
    obj[key] = value;
  }
  return obj;
}
function isFunction(val) {
  return typeof val === "function";
}
function isObject(o) {
  return o !== null && typeof o === "object" && !Array.isArray(o);
}
function normalizeValidatorObject(validator) {
  return isFunction(validator.$validator) ? _objectSpread2({}, validator) : {
    $validator: validator
  };
}
function unwrapValidatorResponse(result) {
  if (typeof result === "object")
    return result.$valid;
  return result;
}
function unwrapNormalizedValidator(validator) {
  return validator.$validator || validator;
}
function withParams($params, $validator) {
  if (!isObject($params))
    throw new Error(`[@vuelidate/validators]: First parameter to "withParams" should be an object, provided ${typeof $params}`);
  if (!isObject($validator) && !isFunction($validator))
    throw new Error(`[@vuelidate/validators]: Validator must be a function or object with $validator parameter`);
  const validatorObj = normalizeValidatorObject($validator);
  validatorObj.$params = _objectSpread2(_objectSpread2({}, validatorObj.$params || {}), $params);
  return validatorObj;
}
function withMessage($message, $validator) {
  if (!isFunction($message) && typeof unref($message) !== "string")
    throw new Error(`[@vuelidate/validators]: First parameter to "withMessage" should be string or a function returning a string, provided ${typeof $message}`);
  if (!isObject($validator) && !isFunction($validator))
    throw new Error(`[@vuelidate/validators]: Validator must be a function or object with $validator parameter`);
  const validatorObj = normalizeValidatorObject($validator);
  validatorObj.$message = $message;
  return validatorObj;
}
function withAsync($validator) {
  let $watchTargets = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
  const validatorObj = normalizeValidatorObject($validator);
  return _objectSpread2(_objectSpread2({}, validatorObj), {}, {
    $async: true,
    $watchTargets
  });
}
function forEach(validators) {
  return {
    $validator(collection) {
      for (var _len = arguments.length, others = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
        others[_key - 1] = arguments[_key];
      }
      return unref(collection).reduce((previous, collectionItem, index2) => {
        const collectionEntryResult = Object.entries(collectionItem).reduce((all, _ref2) => {
          let [property, $model] = _ref2;
          const innerValidators = validators[property] || {};
          const propertyResult = Object.entries(innerValidators).reduce((all2, _ref22) => {
            let [validatorName, currentValidator] = _ref22;
            const validatorFunction = unwrapNormalizedValidator(currentValidator);
            const $response = validatorFunction.call(this, $model, collectionItem, index2, ...others);
            const $valid = unwrapValidatorResponse($response);
            all2.$data[validatorName] = $response;
            all2.$data.$invalid = !$valid || !!all2.$data.$invalid;
            all2.$data.$error = all2.$data.$invalid;
            if (!$valid) {
              let $message = currentValidator.$message || "";
              const $params = currentValidator.$params || {};
              if (typeof $message === "function") {
                $message = $message({
                  $pending: false,
                  $invalid: !$valid,
                  $params,
                  $model,
                  $response
                });
              }
              all2.$errors.push({
                $property: property,
                $message,
                $params,
                $response,
                $model,
                $pending: false,
                $validator: validatorName
              });
            }
            return {
              $valid: all2.$valid && $valid,
              $data: all2.$data,
              $errors: all2.$errors
            };
          }, {
            $valid: true,
            $data: {},
            $errors: []
          });
          all.$data[property] = propertyResult.$data;
          all.$errors[property] = propertyResult.$errors;
          return {
            $valid: all.$valid && propertyResult.$valid,
            $data: all.$data,
            $errors: all.$errors
          };
        }, {
          $valid: true,
          $data: {},
          $errors: {}
        });
        return {
          $valid: previous.$valid && collectionEntryResult.$valid,
          $data: previous.$data.concat(collectionEntryResult.$data),
          $errors: previous.$errors.concat(collectionEntryResult.$errors)
        };
      }, {
        $valid: true,
        $data: [],
        $errors: []
      });
    },
    $message: (_ref3) => {
      let {
        $response
      } = _ref3;
      return $response ? $response.$errors.map((context) => {
        return Object.values(context).map((errors) => errors.map((error) => error.$message)).reduce((a, b) => a.concat(b), []);
      }) : [];
    }
  };
}
const req = (value) => {
  value = unref(value);
  if (Array.isArray(value))
    return !!value.length;
  if (value === void 0 || value === null) {
    return false;
  }
  if (value === false) {
    return true;
  }
  if (value instanceof Date) {
    return !isNaN(value.getTime());
  }
  if (typeof value === "object") {
    for (let _ in value)
      return true;
    return false;
  }
  return !!String(value).length;
};
const len = (value) => {
  value = unref(value);
  if (Array.isArray(value))
    return value.length;
  if (typeof value === "object") {
    return Object.keys(value).length;
  }
  return String(value).length;
};
function regex() {
  for (var _len = arguments.length, expr = new Array(_len), _key = 0; _key < _len; _key++) {
    expr[_key] = arguments[_key];
  }
  return (value) => {
    value = unref(value);
    return !req(value) || expr.every((reg) => {
      reg.lastIndex = 0;
      return reg.test(value);
    });
  };
}
var common = /* @__PURE__ */ Object.freeze({
  __proto__: null,
  forEach,
  len,
  normalizeValidatorObject,
  regex,
  req,
  unwrap: unref,
  unwrapNormalizedValidator,
  unwrapValidatorResponse,
  withAsync,
  withMessage,
  withParams
});
regex(/^[a-zA-Z]*$/);
var alphaNum$1 = regex(/^[a-zA-Z0-9]*$/);
var alphaNum = {
  $validator: alphaNum$1,
  $message: "The value must be alpha-numeric",
  $params: {
    type: "alphaNum"
  }
};
regex(/^\d*(\.\d+)?$/);
const emailRegex = /^(?:[A-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[A-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9]{2,}(?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])$/i;
var email$1 = regex(emailRegex);
var email = {
  $validator: email$1,
  $message: "Value is not a valid email address",
  $params: {
    type: "email"
  }
};
function maxLength$1(length) {
  return (value) => !req(value) || len(value) <= unref(length);
}
function maxLength(max) {
  return {
    $validator: maxLength$1(max),
    $message: (_ref2) => {
      let {
        $params
      } = _ref2;
      return `The maximum length allowed is ${$params.max}`;
    },
    $params: {
      max,
      type: "maxLength"
    }
  };
}
function minLength$1(length) {
  return (value) => !req(value) || len(value) >= unref(length);
}
function minLength(min) {
  return {
    $validator: minLength$1(min),
    $message: (_ref2) => {
      let {
        $params
      } = _ref2;
      return `This field should be at least ${$params.min} characters long`;
    },
    $params: {
      min,
      type: "minLength"
    }
  };
}
function required$1(value) {
  if (typeof value === "string") {
    value = value.trim();
  }
  return req(value);
}
var required = {
  $validator: required$1,
  $message: "Value is required",
  $params: {
    type: "required"
  }
};
const validate$1 = (prop, val) => prop ? req(typeof val === "string" ? val.trim() : val) : true;
function requiredIf$1(propOrFunction) {
  return function(value, parentVM) {
    if (typeof propOrFunction !== "function") {
      return validate$1(unref(propOrFunction), value);
    }
    const result = propOrFunction.call(this, value, parentVM);
    return validate$1(result, value);
  };
}
function requiredIf(prop) {
  return {
    $validator: requiredIf$1(prop),
    $message: "The value is required",
    $params: {
      type: "requiredIf",
      prop
    }
  };
}
function sameAs$1(equalTo) {
  return (value) => unref(value) === unref(equalTo);
}
function sameAs(equalTo) {
  let otherName = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : "other";
  return {
    $validator: sameAs$1(equalTo),
    $message: (_ref2) => {
      return `The value must be equal to the ${otherName} value`;
    },
    $params: {
      equalTo,
      otherName,
      type: "sameAs"
    }
  };
}
const urlRegex = /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i;
regex(urlRegex);
regex(/(^[0-9]*$)|(^-[0-9]+$)/);
regex(/^[-]?\d*(\.\d+)?$/);
const _sfc_main$j = /* @__PURE__ */ defineComponent({
  __name: "Checkbox",
  props: {
    checkStatus: {
      type: Boolean,
      default: false
    }
  },
  emits: ["isChecked"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const checked = ref(props.checkStatus);
    watch(
      () => props.checkStatus,
      (newVal) => {
        checked.value = newVal;
      },
      { immediate: true }
    );
    const onClick = () => {
      checked.value = !checked.value;
      emit2("isChecked", checked.value);
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        onClick,
        class: normalizeClass(["checkbox", checked.value ? "checked" : "unchecked"])
      }, [
        createBaseVNode("i", {
          class: normalizeClass(["ri-check-line", checked.value ? "checked-icon" : "unchecked-icon"])
        }, null, 2)
      ], 2);
    };
  }
});
const Checkbox_vue_vue_type_style_index_0_scoped_f9aec71a_lang = "";
const Checkbox = /* @__PURE__ */ _export_sfc(_sfc_main$j, [["__scopeId", "data-v-f9aec71a"]]);
const _hoisted_1$i = { class: "flex items-center" };
const _hoisted_2$h = ["id", "type", "value", "maxlength", "disabled", "placeholder", "min"];
const _hoisted_3$g = ["aria-pressed"];
const _hoisted_4$d = {
  key: 0,
  class: "ri-eye-off-line"
};
const _hoisted_5$c = {
  key: 1,
  class: "ri-eye-line"
};
const _hoisted_6$c = { class: "inline-flex items-center w-full" };
const _hoisted_7$b = ["id", "type", "value", "disabled", "placeholder", "min"];
const _hoisted_8$8 = ["aria-pressed"];
const _hoisted_9$8 = {
  key: 0,
  class: "ri-eye-off-line"
};
const _hoisted_10$7 = {
  key: 1,
  class: "ri-eye-line"
};
const _sfc_main$i = /* @__PURE__ */ defineComponent({
  __name: "Input",
  props: {
    id: {
      type: String,
      required: true
    },
    type: {
      type: String,
      default: "text"
    },
    required: {
      type: Boolean,
      default: false
    },
    label: {
      type: String,
      default: ""
    },
    modelValue: {
      type: null
    },
    errors: {
      type: Array,
      default: []
    },
    useValidation: {
      type: Boolean,
      default: true
    },
    customValidation: {
      type: Object,
      default: null
    },
    disabled: {
      type: Boolean,
      default: false
    },
    placeHolder: {
      type: String,
      default: ""
    },
    min: {
      type: Number,
      default: 0
    },
    checked: {
      type: Boolean,
      default: false,
      required: false
    },
    checkboxValue: {
      type: [String, Boolean],
      default: "on"
    }
  },
  emits: ["update:modelValue", "submit", "blur", "onValidChanged", "inputChange"],
  setup(__props, { expose, emit: emit2 }) {
    const props = __props;
    onMounted(() => {
      emit2("onValidChanged", !v$.value.$invalid, props.id);
    });
    let v$ = useVuelidate();
    const validateInput = () => {
      v$.value.$touch();
    };
    expose({ validateInput });
    const inputValue = reactive({
      field: props.modelValue
    });
    let validationRules = { field: {} };
    const getValidationRules = () => {
      if (props.useValidation) {
        if (props.customValidation) {
          v$ = useVuelidate(props.customValidation, inputValue);
        } else {
          switch (props.type) {
            case "phone":
              validationRules = {
                field: {
                  validPhoneNumber: common.withMessage(
                    "Invalid phone number",
                    common.regex(/^[0-9]{10}$/)
                  )
                }
              };
              break;
            case "email":
              validationRules = {
                field: { email }
              };
              break;
            case "zipcode":
              validationRules = {
                field: {
                  validZipCode: common.withMessage(
                    "Invalid zip code",
                    common.regex(/^\d{5}(?:\d{4})?$/)
                  )
                }
              };
              break;
          }
          if (props.required) {
            validationRules = { field: { ...validationRules.field, required: common.withMessage(`${props.label === "" ? "Value" : props.label} is required`, required) } };
          }
          v$ = useVuelidate(validationRules, inputValue);
        }
      }
    };
    getValidationRules();
    watch(
      () => props.modelValue,
      (value) => {
        emit2("update:modelValue", value, props.id);
        inputValue.field = value;
      },
      { immediate: true }
    );
    const maskedValue = computed(() => StringUtils.maskValue(props.modelValue, props.type));
    const handleMaskedInput = (event) => {
      let rawValue;
      if (props.type === "phone" || props.type === "zipcode") {
        rawValue = event.target.value.replace(/\D/g, "");
        inputValue.field = rawValue;
      } else {
        rawValue = event.target.value;
      }
      emit2("update:modelValue", rawValue, props.id);
    };
    let valid = !v$.value.$invalid;
    const onValidChanged = () => {
      if (valid != !v$.value.$invalid) {
        valid = !v$.value.$invalid;
        emit2("onValidChanged", valid, props.id);
      }
    };
    watchEffect(() => onValidChanged(!v$.value.$invalid));
    const showHidden = ref(false);
    const hiddenInputTypes = ["password"];
    const showHiddenToggle = computed(() => {
      return hiddenInputTypes.includes(props.type);
    });
    const toggleHidden = (e) => {
      e.preventDefault();
      showHidden.value = !showHidden.value;
    };
    const inputType = computed(() => {
      if (props.type === "password") {
        return showHidden.value ? "text" : "password";
      } else {
        return props.type;
      }
    });
    const checkboxStatus = ref(props.checked);
    watch(() => props.checked, (value) => {
      checkboxStatus.value = value;
    });
    const handleCheckboxIsChecked = (isChecked) => {
      if (props.type !== "checkbox")
        return;
      checkboxStatus.value = isChecked;
      emit2("update:modelValue", isChecked ? props.checkboxValue : null, props.id);
    };
    watch(
      () => props.modelValue,
      (value) => {
        emit2("update:modelValue", value, props.id);
        inputValue.field = value;
      },
      { immediate: true }
    );
    const handleInputChange = (e) => {
      if (props.type === "file") {
        const target2 = e.target;
        const files = target2.files;
        emit2("inputChange", files);
        return;
      }
      const target = e.target;
      inputValue.field = target.value;
      emit2("update:modelValue", target.value, props.id);
    };
    return (_ctx, _cache) => {
      return props.useValidation ? (openBlock(), createElementBlock("div", {
        key: 0,
        class: normalizeClass([{ "mb-4": __props.type !== "checkbox" }])
      }, [
        __props.type !== "checkbox" ? (openBlock(), createBlock(InputLabel2, {
          key: 0,
          "input-label": unref(ComponentUtils).initInputLabel(props.id, props.label, props.required)
        }, null, 8, ["input-label"])) : createCommentVNode("", true),
        createBaseVNode("div", {
          class: normalizeClass(["input-container", [{ "input-padding": __props.type === "file" }]])
        }, [
          createBaseVNode("div", _hoisted_1$i, [
            props.type !== "checkbox" ? (openBlock(), createElementBlock("input", {
              key: 0,
              id: __props.id,
              type: unref(inputType),
              class: normalizeClass([{ "error": unref(v$).field.$errors.length > 0, "input-checkbox": __props.type === "checkbox", "input-box": __props.type !== "file" }]),
              onInput: handleMaskedInput,
              onBlur: _cache[0] || (_cache[0] = //@ts-ignore
              (...args) => unref(v$).field.$touch && unref(v$).field.$touch(...args)),
              value: unref(maskedValue),
              maxlength: unref(StringUtils).getMaxLength(__props.type),
              disabled: props.disabled,
              placeholder: props.placeHolder,
              min: __props.min,
              onChange: handleInputChange
            }, null, 42, _hoisted_2$h)) : createCommentVNode("", true),
            __props.type === "checkbox" ? (openBlock(), createBlock(Checkbox, {
              key: 1,
              "check-status": checkboxStatus.value,
              onIsChecked: handleCheckboxIsChecked
            }, null, 8, ["check-status"])) : createCommentVNode("", true),
            __props.type === "checkbox" ? (openBlock(), createBlock(InputLabel2, {
              key: 2,
              "is-checkbox-label": true,
              "input-label": unref(ComponentUtils).initInputLabel(props.id, props.label, props.required),
              class: "ml-2",
              onClick: _cache[1] || (_cache[1] = ($event) => handleCheckboxIsChecked(!checkboxStatus.value))
            }, null, 8, ["input-label"])) : createCommentVNode("", true)
          ]),
          unref(showHiddenToggle) ? (openBlock(), createElementBlock("button", {
            key: 0,
            class: "right-input-icon",
            onClick: toggleHidden,
            "aria-label": "toggle input visibility",
            "aria-pressed": showHidden.value
          }, [
            showHidden.value ? (openBlock(), createElementBlock("i", _hoisted_4$d)) : (openBlock(), createElementBlock("i", _hoisted_5$c))
          ], 8, _hoisted_3$g)) : createCommentVNode("", true)
        ], 2),
        (openBlock(true), createElementBlock(Fragment, null, renderList(unref(v$).field.$errors, (e) => {
          return openBlock(), createBlock(_sfc_main$l, {
            size: "16px",
            "error-message": e.$message.toString()
          }, null, 8, ["error-message"]);
        }), 256))
      ], 2)) : (openBlock(), createElementBlock("div", {
        key: 1,
        class: normalizeClass([{ "mb-4": __props.type !== "checkbox" }])
      }, [
        unref(inputType) !== "checkbox" ? (openBlock(), createBlock(InputLabel2, {
          key: 0,
          "input-label": unref(ComponentUtils).initInputLabel(props.id, props.label, props.required)
        }, null, 8, ["input-label"])) : createCommentVNode("", true),
        createBaseVNode("div", {
          class: normalizeClass(["input-container", [{ "input-padding": __props.type === "file" }]])
        }, [
          createBaseVNode("div", _hoisted_6$c, [
            props.type !== "checkbox" ? (openBlock(), createElementBlock("input", {
              key: 0,
              id: __props.id,
              type: unref(inputType),
              class: normalizeClass([{ "error": props.errors.length > 0, "input-checkbox": __props.type === "checkbox", "input-box": __props.type !== "file" }]),
              onInput: _cache[2] || (_cache[2] = ($event) => _ctx.$emit("update:modelValue", $event.target.value)),
              onBlur: _cache[3] || (_cache[3] = ($event) => _ctx.$emit("blur")),
              value: props.modelValue,
              onKeyup: _cache[4] || (_cache[4] = withKeys(($event) => _ctx.$emit("submit"), ["enter"])),
              disabled: props.disabled,
              placeholder: props.placeHolder,
              min: __props.min,
              onChange: handleInputChange
            }, null, 42, _hoisted_7$b)) : createCommentVNode("", true),
            __props.type === "checkbox" ? (openBlock(), createBlock(Checkbox, {
              key: 1,
              name: "umasked-checkbox",
              "check-status": checkboxStatus.value,
              onIsChecked: handleCheckboxIsChecked
            }, null, 8, ["check-status"])) : createCommentVNode("", true),
            __props.type === "checkbox" ? (openBlock(), createBlock(InputLabel2, {
              key: 2,
              "is-checkbox-label": true,
              "input-label": unref(ComponentUtils).initInputLabel(props.id, props.label, props.required),
              class: "ml-2",
              onClick: _cache[5] || (_cache[5] = ($event) => handleCheckboxIsChecked(!checkboxStatus.value))
            }, null, 8, ["input-label"])) : createCommentVNode("", true)
          ]),
          unref(showHiddenToggle) ? (openBlock(), createElementBlock("button", {
            key: 0,
            class: "right-input-icon",
            onClick: toggleHidden,
            "aria-label": "toggle input visibility",
            "aria-pressed": showHidden.value
          }, [
            showHidden.value ? (openBlock(), createElementBlock("i", _hoisted_9$8)) : (openBlock(), createElementBlock("i", _hoisted_10$7))
          ], 8, _hoisted_8$8)) : createCommentVNode("", true)
        ], 2),
        (openBlock(true), createElementBlock(Fragment, null, renderList(props.errors, (error) => {
          return openBlock(), createBlock(_sfc_main$l, {
            size: "16px",
            errorMessage: error.$message.toString()
          }, null, 8, ["errorMessage"]);
        }), 256))
      ], 2));
    };
  }
});
const Input_vue_vue_type_style_index_0_scoped_3c750d2c_lang = "";
const Input_vue_vue_type_style_index_1_lang = "";
const Input = /* @__PURE__ */ _export_sfc(_sfc_main$i, [["__scopeId", "data-v-3c750d2c"]]);
const _withScopeId$d = (n) => (pushScopeId("data-v-faf8e95d"), n = n(), popScopeId(), n);
const _hoisted_1$h = { class: "plan-dropdown-container" };
const _hoisted_2$g = { class: "small-text" };
const _hoisted_3$f = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("option", {
  value: {},
  disabled: ""
}, "Select a Plan to View Plan Summary...", -1));
const _hoisted_4$c = ["value"];
const _hoisted_5$b = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("br", null, null, -1));
const _hoisted_6$b = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("hr", null, null, -1));
const _hoisted_7$a = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("br", null, null, -1));
const _hoisted_8$7 = { key: 0 };
const _hoisted_9$7 = {
  key: 1,
  class: "small-text__strong"
};
const _hoisted_10$6 = { id: "vba-eligibility-lookup-plan-summary-table" };
const _hoisted_11$6 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("div", { class: "xsmall-text header-padding" }, "Deductible Limits", -1));
const _hoisted_12$5 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("thead", null, [
  /* @__PURE__ */ createBaseVNode("tr", null, [
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "In Network"),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "Out of Network")
  ])
], -1));
const _hoisted_13$5 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Individual", -1));
const _hoisted_14$4 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Family", -1));
const _hoisted_15$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("div", { class: "xsmall-text header-padding" }, "Out of Pocket Limits", -1));
const _hoisted_16$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("thead", null, [
  /* @__PURE__ */ createBaseVNode("tr", null, [
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "In Network"),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "Out of Network")
  ])
], -1));
const _hoisted_17$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Individual", -1));
const _hoisted_18$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Family", -1));
const _hoisted_19$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("div", { class: "xsmall-text header-padding" }, "Coinsurance Limits", -1));
const _hoisted_20$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("thead", null, [
  /* @__PURE__ */ createBaseVNode("tr", null, [
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "In Network"),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "Out of Network")
  ])
], -1));
const _hoisted_21$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Individual", -1));
const _hoisted_22$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Family", -1));
const _hoisted_23$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("div", { class: "xsmall-text header-padding" }, "Annual/Lifetime Paid Limits", -1));
const _hoisted_24$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("thead", null, [
  /* @__PURE__ */ createBaseVNode("tr", null, [
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "In Network"),
    /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-center" }, "Out of Network")
  ])
], -1));
const _hoisted_25$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Individual", -1));
const _hoisted_26$3 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("td", null, "Family", -1));
const _hoisted_27$2 = { id: "vba-eligibility-lookup-plan-summary-benefits-table" };
const _hoisted_28$2 = { class: "xsmall-text header-padding" };
const _hoisted_29$2 = /* @__PURE__ */ _withScopeId$d(() => /* @__PURE__ */ createBaseVNode("thead", null, [
  /* @__PURE__ */ createBaseVNode("tr", null, [
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }, "Benefit"),
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }, "In Network"),
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }, "Out of Network"),
    /* @__PURE__ */ createBaseVNode("th", { class: "header" }, "Benefit Max")
  ])
], -1));
const _hoisted_30$2 = { class: "mobile-wrap-overflow" };
const _hoisted_31$2 = { class: "mobile-font-size" };
const _hoisted_32$2 = { class: "mobile-font-size" };
const _hoisted_33$2 = { class: "mobile-font-size" };
const _sfc_main$h = /* @__PURE__ */ defineComponent({
  __name: "EligibilityLookupPlanSummary",
  props: {
    subscriberId: {
      type: String,
      default: ""
    },
    memberSeq: {
      type: String,
      default: ""
    }
  },
  setup(__props) {
    const props = __props;
    const apiService = new APIService();
    const { subscriberId, memberSeq } = toRefs(props);
    const selected = ref({});
    const planSummaryDataExists = ref(false);
    const planBenefitsDataExists = ref(false);
    const planBenefitsSummary = ref([]);
    const plans = ref([]);
    const planSummary = reactive({
      planSelected: false,
      planID: null,
      addedAccumCode: null,
      addedAccumCodes: [],
      dedNetMemMax: null,
      dedOonMemMax: null,
      dedNetFamMax: null,
      dedOonFamMax: null,
      oopNetMemMax: null,
      oopOonMemMax: null,
      oopNetFamMax: null,
      oopOonFam_Max: null,
      coInsNetMemMax: null,
      coInsOonMemMax: null,
      coInsNetFamMax: null,
      coInsOonFamMax: null,
      paidMemAnnualMax: null,
      paidMemLifetimeMax: null,
      paidSubAnnualMax: null,
      paidSubLifetimeMax: null
    });
    watchEffect(() => {
      apiService.getExDDListPlanSummary(subscriberId.value, memberSeq.value).then((res) => {
        plans.value = res;
      });
    });
    const onSelectedPlanChange = (e) => {
      apiService.getExPlanBenefitSummary(e.target?.value).then((res) => {
        if (res.length > 0) {
          planBenefitsDataExists.value = true;
          planBenefitsSummary.value = [];
          planBenefitsSummary.value = res;
          getUniqueBenefitsCode(res);
          getUniqueBenefitsCategory(res);
        } else {
          planBenefitsDataExists.value = false;
        }
      });
      apiService.getExPlanSummary(e.target?.value).then((res) => {
        if (res.length > 0) {
          planSummaryDataExists.value = true;
          planSummary.dedNetMemMax = res[0].Deductible_Mem_Max_Net > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Deductible_Mem_Max_Net);
          planSummary.dedOonMemMax = res[0].Deductible_Mem_Max_OON > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Deductible_Mem_Max_OON);
          planSummary.dedNetFamMax = res[0].Deductible_Sub_Max_Net > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Deductible_Sub_Max_Net);
          planSummary.dedOonFamMax = res[0].Deductible_Sub_Max_OON > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Deductible_Sub_Max_OON);
          planSummary.oopNetMemMax = res[0].OOP_Mem_Max_Net > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].OOP_Mem_Max_Net);
          planSummary.oopOonMemMax = res[0].OOP_Mem_Max_OON > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].OOP_Mem_Max_OON);
          planSummary.oopNetFamMax = res[0].OOP_Sub_Max_Net > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].OOP_Sub_Max_Net);
          planSummary.oopOonFam_Max = res[0].OOP_Sub_Max_OON > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].OOP_Sub_Max_OON);
          planSummary.coInsNetMemMax = res[0].CoIns_Mem_Max_Net > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].CoIns_Mem_Max_Net);
          planSummary.coInsOonMemMax = res[0].CoIns_Mem_Max_OON > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].CoIns_Mem_Max_OON);
          planSummary.coInsNetFamMax = res[0].CoIns_Sub_Max_Net > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].CoIns_Sub_Max_Net);
          planSummary.coInsOonFamMax = res[0].CoIns_Sub_Max_OON > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].CoIns_Sub_Max_OON);
          planSummary.paidMemAnnualMax = res[0].Paid_Mem_Annual_Max > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Paid_Mem_Annual_Max);
          planSummary.paidMemLifetimeMax = res[0].Paid_Mem_Lifetime_Max > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Paid_Mem_Lifetime_Max);
          planSummary.paidSubAnnualMax = res[0].Paid_Sub_Annual_Max > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Paid_Sub_Annual_Max);
          planSummary.paidSubLifetimeMax = res[0].Paid_Sub_Lifetime_Max > 9e8 ? "No Limit" : NumberUtils.formatCurrency(res[0].Paid_Sub_Lifetime_Max);
        } else {
          planSummaryDataExists.value = false;
        }
      });
    };
    const uniqueBenefitsCategory = ref();
    const getUniqueBenefitsCategory = (arr) => {
      uniqueBenefitsCategory.value = [...new Set(arr.map((item) => item.Benefit_Category_Description))];
    };
    const uniqueBenefitsCode = ref();
    const getUniqueBenefitsCode = (arr) => {
      uniqueBenefitsCode.value = [...new Map(arr.map((item) => [item["Benefit_Code_Description"], { code: item["Benefit_Code_Description"], category: item["Benefit_Category_Description"] }])).values()];
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", null, [
        createBaseVNode("div", _hoisted_1$h, [
          createVNode(InputLabel2, {
            inputLabel: unref(ComponentUtils).initInputLabel("plan-dropdown", "Selected Plan:", true)
          }, null, 8, ["inputLabel"]),
          createBaseVNode("div", _hoisted_2$g, [
            withDirectives(createBaseVNode("select", {
              onChange: _cache[0] || (_cache[0] = ($event) => onSelectedPlanChange($event)),
              "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => selected.value = $event)
            }, [
              _hoisted_3$f,
              (openBlock(true), createElementBlock(Fragment, null, renderList(plans.value, (plan) => {
                return openBlock(), createElementBlock("option", {
                  value: plan.Plan_ID
                }, toDisplayString(plan.Display), 9, _hoisted_4$c);
              }), 256))
            ], 544), [
              [vModelSelect, selected.value]
            ])
          ])
        ]),
        _hoisted_5$b,
        _hoisted_6$b,
        _hoisted_7$a,
        planSummaryDataExists.value ? (openBlock(), createElementBlock("h4", _hoisted_8$7, "Plan Summary")) : (openBlock(), createElementBlock("div", _hoisted_9$7, "No Plan Summary to Display")),
        withDirectives(createBaseVNode("div", _hoisted_10$6, [
          _hoisted_11$6,
          createBaseVNode("div", null, [
            createBaseVNode("table", null, [
              _hoisted_12$5,
              createBaseVNode("tbody", null, [
                createBaseVNode("tr", null, [
                  _hoisted_13$5,
                  createBaseVNode("td", null, toDisplayString(planSummary.dedNetMemMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.dedOonMemMax), 1)
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_14$4,
                  createBaseVNode("td", null, toDisplayString(planSummary.dedNetFamMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.dedOonFamMax), 1)
                ])
              ])
            ])
          ]),
          _hoisted_15$3,
          createBaseVNode("div", null, [
            createBaseVNode("table", null, [
              _hoisted_16$3,
              createBaseVNode("tbody", null, [
                createBaseVNode("tr", null, [
                  _hoisted_17$3,
                  createBaseVNode("td", null, toDisplayString(planSummary.oopNetMemMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.oopOonMemMax), 1)
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_18$3,
                  createBaseVNode("td", null, toDisplayString(planSummary.oopNetFamMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.oopOonFam_Max), 1)
                ])
              ])
            ])
          ]),
          _hoisted_19$3,
          createBaseVNode("div", null, [
            createBaseVNode("table", null, [
              _hoisted_20$3,
              createBaseVNode("tbody", null, [
                createBaseVNode("tr", null, [
                  _hoisted_21$3,
                  createBaseVNode("td", null, toDisplayString(planSummary.coInsNetMemMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.coInsOonMemMax), 1)
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_22$3,
                  createBaseVNode("td", null, toDisplayString(planSummary.coInsNetFamMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.coInsOonFamMax), 1)
                ])
              ])
            ])
          ]),
          _hoisted_23$3,
          createBaseVNode("div", null, [
            createBaseVNode("table", null, [
              _hoisted_24$3,
              createBaseVNode("tbody", null, [
                createBaseVNode("tr", null, [
                  _hoisted_25$3,
                  createBaseVNode("td", null, toDisplayString(planSummary.paidMemAnnualMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.paidMemLifetimeMax), 1)
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_26$3,
                  createBaseVNode("td", null, toDisplayString(planSummary.paidSubAnnualMax), 1),
                  createBaseVNode("td", null, toDisplayString(planSummary.paidSubLifetimeMax), 1)
                ])
              ])
            ])
          ])
        ], 512), [
          [vShow, planSummaryDataExists.value]
        ]),
        withDirectives(createBaseVNode("div", _hoisted_27$2, [
          (openBlock(true), createElementBlock(Fragment, null, renderList(uniqueBenefitsCategory.value, (category, index2) => {
            return openBlock(), createElementBlock("div", null, [
              createBaseVNode("div", _hoisted_28$2, toDisplayString(category), 1),
              createBaseVNode("table", null, [
                _hoisted_29$2,
                createBaseVNode("tbody", null, [
                  (openBlock(true), createElementBlock(Fragment, null, renderList(uniqueBenefitsCode.value.filter((x) => x.category === category), (code, index22) => {
                    return openBlock(), createElementBlock("tr", null, [
                      createBaseVNode("td", _hoisted_30$2, [
                        createBaseVNode("strong", null, toDisplayString(code.code), 1)
                      ]),
                      createBaseVNode("td", null, [
                        (openBlock(true), createElementBlock(Fragment, null, renderList(planBenefitsSummary.value.filter((x) => x.Benefit_Code_Description === code.code), (benefitSummary, index3) => {
                          return openBlock(), createElementBlock("div", _hoisted_31$2, [
                            createBaseVNode("td", null, toDisplayString(benefitSummary?.In_Network_Benefit_Detail), 1)
                          ]);
                        }), 256))
                      ]),
                      createBaseVNode("td", null, [
                        (openBlock(true), createElementBlock(Fragment, null, renderList(planBenefitsSummary.value.filter((x) => x.Benefit_Code_Description === code.code), (benefitSummary, index3) => {
                          return openBlock(), createElementBlock("div", _hoisted_32$2, [
                            createBaseVNode("td", null, toDisplayString(benefitSummary?.Out_Of_Network_Benefit_Detail), 1)
                          ]);
                        }), 256))
                      ]),
                      createBaseVNode("td", null, [
                        (openBlock(true), createElementBlock(Fragment, null, renderList(planBenefitsSummary.value.filter((x) => x.Benefit_Code_Description === code.code), (benefitSummary, index3) => {
                          return openBlock(), createElementBlock("div", _hoisted_33$2, [
                            createBaseVNode("td", null, toDisplayString(benefitSummary?.Benefit_Max_Benefit_Detail), 1)
                          ]);
                        }), 256))
                      ])
                    ]);
                  }), 256))
                ])
              ])
            ]);
          }), 256))
        ], 512), [
          [vShow, planBenefitsDataExists.value]
        ])
      ]);
    };
  }
});
const EligibilityLookupPlanSummary_vue_vue_type_style_index_0_scoped_faf8e95d_lang = "";
const EligibilityLookupPlanSummary = /* @__PURE__ */ _export_sfc(_sfc_main$h, [["__scopeId", "data-v-faf8e95d"]]);
const EligibilityLookupPlanSummary$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: EligibilityLookupPlanSummary
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId$c = (n) => (pushScopeId("data-v-c10cae05"), n = n(), popScopeId(), n);
const _hoisted_1$g = { key: 0 };
const _hoisted_2$f = {
  key: 1,
  class: "small-text__strong"
};
const _hoisted_3$e = { id: "vba-eligibility-lookup-accum-table" };
const _hoisted_4$b = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("div", { class: "xsmall-text header-padding" }, "Member Totals", -1));
const _hoisted_5$a = { class: "table-content" };
const _hoisted_6$a = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("tr", null, [
  /* @__PURE__ */ createBaseVNode("th", { class: "header" }),
  /* @__PURE__ */ createBaseVNode("th", {
    class: "header cell-align-center",
    colspan: "3"
  }, "Deductible"),
  /* @__PURE__ */ createBaseVNode("th", {
    class: "header cell-align-center",
    colspan: "3"
  }, "Out of Pocket")
], -1));
const _hoisted_7$9 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header" }, null, -1));
const _hoisted_8$6 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "In Net", -1));
const _hoisted_9$6 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "OON", -1));
const _hoisted_10$5 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "Total", -1));
const _hoisted_11$5 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "In Net", -1));
const _hoisted_12$4 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "OON", -1));
const _hoisted_13$4 = { class: "header cell-align-right" };
const _hoisted_14$3 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "4Q Carryover", -1));
const _hoisted_15$2 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "Used", -1));
const _hoisted_16$2 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "Max", -1));
const _hoisted_17$2 = { key: 0 };
const _hoisted_18$2 = { key: 1 };
const _hoisted_19$2 = { class: "top-border" };
const _hoisted_20$2 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "Remaining", -1));
const _hoisted_21$2 = { key: 0 };
const _hoisted_22$2 = { key: 1 };
const _hoisted_23$2 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("div", { class: "xsmall-text header-padding" }, "Family Totals", -1));
const _hoisted_24$2 = { class: "table-content" };
const _hoisted_25$2 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("tr", null, [
  /* @__PURE__ */ createBaseVNode("th", { class: "header" }),
  /* @__PURE__ */ createBaseVNode("th", {
    class: "header cell-align-center",
    colspan: "3"
  }, "Deductible"),
  /* @__PURE__ */ createBaseVNode("th", {
    class: "header cell-align-center",
    colspan: "3"
  }, "Out of Pocket")
], -1));
const _hoisted_26$2 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header" }, null, -1));
const _hoisted_27$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "In Net", -1));
const _hoisted_28$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "OON", -1));
const _hoisted_29$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "Total", -1));
const _hoisted_30$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "In Net", -1));
const _hoisted_31$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("th", { class: "header cell-align-right" }, "OON", -1));
const _hoisted_32$1 = { class: "header cell-align-right" };
const _hoisted_33$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "4Q Carryover", -1));
const _hoisted_34$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "Used", -1));
const _hoisted_35$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "Max", -1));
const _hoisted_36$1 = { key: 0 };
const _hoisted_37$1 = { key: 1 };
const _hoisted_38$1 = { class: "top-border" };
const _hoisted_39$1 = /* @__PURE__ */ _withScopeId$c(() => /* @__PURE__ */ createBaseVNode("td", null, "Remaining", -1));
const _hoisted_40$1 = { key: 0 };
const _hoisted_41$1 = { key: 1 };
const _sfc_main$g = /* @__PURE__ */ defineComponent({
  __name: "EligibilityLookupAccumulators",
  props: {
    subscriberId: {
      type: String,
      default: ""
    },
    memberSeq: {
      type: String,
      default: ""
    },
    planType: {
      type: String,
      default: ""
    },
    accumPeriodStart: {
      type: String,
      default: null
    }
  },
  setup(__props) {
    const props = __props;
    const apiService = new APIService();
    const { subscriberId, memberSeq, planType, accumPeriodStart } = toRefs(props);
    const accumDataExists = ref(false);
    const accumData = reactive({
      Ded_Mem: 0,
      Ded_Mem_Max: 0,
      Ded_Fam: 0,
      Ded_Fam_Max: 0,
      Ded_Mem_Net: 0,
      Ded_Mem_Net_Max: 0,
      Ded_Fam_Net: 0,
      Ded_Fam_Net_Max: 0,
      Ded_Mem_OON: 0,
      Ded_Mem_OON_Max: 0,
      Ded_Fam_OON: 0,
      Ded_Fam_OON_Max: 0,
      OOP_Mem: 0,
      OOP_Mem_Max: 0,
      OOP_Fam: 0,
      OOP_Fam_Max: 0,
      OOP_Mem_Net: 0,
      OOP_Mem_Net_Max: 0,
      OOP_Fam_Net: 0,
      OOP_Fam_Net_Max: 0,
      OOP_Mem_OON: 0,
      OOP_Mem_OON_Max: 0,
      OOP_Fam_OON: 0,
      OOP_Fam_OON_Max: 0,
      Q4_Carry_Ded_Mem: 0,
      Q4_Carry_Ded_Mem_Net: 0,
      Q4_Carry_Ded_Mem_OON: 0,
      Q4_Carry_Ded_Fam: 0,
      Q4_Carry_Ded_Fam_Net: 0,
      Q4_Carry_Ded_Fam_OON: 0,
      Q4_Carry_OOP_Mem: 0,
      Q4_Carry_OOP_Mem_Net: 0,
      Q4_Carry_OOP_Mem_OON: 0,
      Q4_Carry_OOP_Fam: 0,
      Q4_Carry_OOP_Fam_Net: 0,
      Q4_Carry_OOP_Fam_OON: 0
    });
    const noMaxFam = ref(false);
    const noMaxMem = ref(false);
    watchEffect(() => {
      apiService.getExAccumulatorDetailsPlanTypeAccumStart(subscriberId.value, memberSeq.value, planType.value, accumPeriodStart.value).then((res) => {
        if (res.length > 0) {
          accumDataExists.value = true;
          accumData.Q4_Carry_Ded_Mem_Net = res[0].Q4_Carry_Ded_Mem_Net;
          accumData.Q4_Carry_Ded_Mem_OON = res[0].Q4_Carry_Ded_Mem_OON;
          accumData.Q4_Carry_Ded_Mem = res[0].Q4_Carry_Ded_Mem;
          accumData.Q4_Carry_OOP_Mem_Net = res[0].Q4_Carry_OOP_Mem_Net;
          accumData.Q4_Carry_OOP_Mem_OON = res[0].Q4_Carry_OOP_Mem_OON;
          accumData.Q4_Carry_OOP_Mem = res[0].Q4_Carry_OOP_Mem;
          accumData.Ded_Mem_Net = res[0].Ded_Mem_Net;
          accumData.Ded_Mem_OON = res[0].Ded_Mem_OON;
          accumData.Ded_Mem = res[0].Ded_Mem;
          accumData.OOP_Mem_Net = res[0].OOP_Mem_Net;
          accumData.OOP_Mem_OON = res[0].OOP_Mem_OON;
          accumData.OOP_Mem = res[0].OOP_Mem;
          accumData.Ded_Mem_Net_Max = res[0].Ded_Mem_Net_Max;
          accumData.Ded_Mem_OON_Max = res[0].Ded_Mem_OON_Max;
          accumData.Ded_Mem_Max = res[0].Ded_Mem_Max;
          accumData.OOP_Mem_Net_Max = res[0].OOP_Mem_Net_Max;
          accumData.OOP_Mem_OON_Max = res[0].OOP_Mem_OON_Max;
          accumData.OOP_Mem_Max = res[0].OOP_Mem_Max;
          accumData.Q4_Carry_Ded_Fam_Net = res[0].Q4_Carry_Ded_Fam_Net;
          accumData.Q4_Carry_Ded_Fam_OON = res[0].Q4_Carry_Ded_Fam_OON;
          accumData.Q4_Carry_Ded_Fam = res[0].Q4_Carry_Ded_Fam;
          accumData.Q4_Carry_OOP_Fam_Net = res[0].Q4_Carry_OOP_Fam_Net;
          accumData.Q4_Carry_OOP_Fam_OON = res[0].Q4_Carry_OOP_Fam_OON;
          accumData.Q4_Carry_OOP_Fam = res[0].Q4_Carry_OOP_Fam;
          accumData.Ded_Fam_Net = res[0].Ded_Fam_Net;
          accumData.Ded_Fam_OON = res[0].Ded_Fam_OON;
          accumData.Ded_Fam = res[0].Ded_Fam;
          accumData.OOP_Fam_Net = res[0].OOP_Fam_Net;
          accumData.OOP_Fam_OON = res[0].OOP_Fam_OON;
          accumData.OOP_Fam = res[0].OOP_Fam;
          accumData.Ded_Fam_Net_Max = res[0].Ded_Fam_Net_Max;
          accumData.Ded_Fam_OON_Max = res[0].Ded_Fam_OON_Max;
          accumData.Ded_Fam_Max = res[0].Ded_Fam_Max;
          accumData.OOP_Fam_Net_Max = res[0].OOP_Fam_Net_Max;
          accumData.OOP_Fam_OON_Max = res[0].OOP_Fam_OON_Max;
          accumData.OOP_Fam_Max = res[0].OOP_Fam_Max;
          noMaxMem.value = accumData.OOP_Mem_OON_Max > 999e6 ? true : false;
          noMaxFam.value = accumData.OOP_Fam_OON_Max > 999e6 ? true : false;
        } else {
          accumDataExists.value = false;
        }
      });
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock(Fragment, null, [
        accumDataExists.value ? (openBlock(), createElementBlock("h4", _hoisted_1$g, "Accumulators")) : (openBlock(), createElementBlock("div", _hoisted_2$f, "No Accumulators Details to Display")),
        withDirectives(createBaseVNode("div", _hoisted_3$e, [
          _hoisted_4$b,
          createBaseVNode("div", _hoisted_5$a, [
            createBaseVNode("table", null, [
              createBaseVNode("thead", null, [
                _hoisted_6$a,
                createBaseVNode("tr", null, [
                  _hoisted_7$9,
                  _hoisted_8$6,
                  _hoisted_9$6,
                  _hoisted_10$5,
                  _hoisted_11$5,
                  _hoisted_12$4,
                  withDirectives(createBaseVNode("th", _hoisted_13$4, "Total", 512), [
                    [vShow, !noMaxMem.value]
                  ])
                ])
              ]),
              createBaseVNode("tbody", null, [
                createBaseVNode("tr", null, [
                  _hoisted_14$3,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_Ded_Mem_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_Ded_Mem_OON)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_Ded_Mem)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_OOP_Mem_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_OOP_Mem_OON)), 1),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_OOP_Mem)), 513), [
                    [vShow, !noMaxMem.value]
                  ])
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_15$2,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_OON)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_OON)), 1),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem)), 513), [
                    [vShow, !noMaxMem.value]
                  ])
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_16$2,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_Net_Max)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_OON_Max)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_Max)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_Net_Max)), 1),
                  noMaxMem.value ? (openBlock(), createElementBlock("td", _hoisted_17$2, "No Max")) : (openBlock(), createElementBlock("td", _hoisted_18$2, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_OON_Max)), 1)),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_Max)), 513), [
                    [vShow, !noMaxMem.value]
                  ])
                ]),
                createBaseVNode("tr", _hoisted_19$2, [
                  _hoisted_20$2,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_Net_Max - accumData.Q4_Carry_Ded_Mem_Net - accumData.Ded_Mem_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_OON_Max - accumData.Q4_Carry_Ded_Mem_OON - accumData.Ded_Mem_OON)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Mem_Max - accumData.Q4_Carry_Ded_Mem - accumData.Ded_Mem)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_Net_Max - accumData.Q4_Carry_OOP_Mem_Net - accumData.OOP_Mem_Net)), 1),
                  noMaxMem.value ? (openBlock(), createElementBlock("td", _hoisted_21$2, "Not Applicable")) : (openBlock(), createElementBlock("td", _hoisted_22$2, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_OON_Max - accumData.Q4_Carry_OOP_Mem_OON - accumData.OOP_Mem_OON)), 1)),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Mem_Max - accumData.Q4_Carry_OOP_Mem - accumData.OOP_Mem)), 513), [
                    [vShow, !noMaxMem.value]
                  ])
                ])
              ])
            ])
          ]),
          _hoisted_23$2,
          createBaseVNode("div", _hoisted_24$2, [
            createBaseVNode("table", null, [
              createBaseVNode("thead", null, [
                _hoisted_25$2,
                createBaseVNode("tr", null, [
                  _hoisted_26$2,
                  _hoisted_27$1,
                  _hoisted_28$1,
                  _hoisted_29$1,
                  _hoisted_30$1,
                  _hoisted_31$1,
                  withDirectives(createBaseVNode("th", _hoisted_32$1, "Total", 512), [
                    [vShow, !noMaxFam.value]
                  ])
                ])
              ]),
              createBaseVNode("tbody", null, [
                createBaseVNode("tr", null, [
                  _hoisted_33$1,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_Ded_Fam_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_Ded_Fam_OON)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_Ded_Fam)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_OOP_Fam_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_OOP_Fam_OON)), 1),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Q4_Carry_OOP_Fam)), 513), [
                    [vShow, !noMaxFam.value]
                  ])
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_34$1,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_OON)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_OON)), 1),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam)), 513), [
                    [vShow, !noMaxFam.value]
                  ])
                ]),
                createBaseVNode("tr", null, [
                  _hoisted_35$1,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_Net_Max)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_OON_Max)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_Max)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_Net_Max)), 1),
                  noMaxFam.value ? (openBlock(), createElementBlock("td", _hoisted_36$1, "No Max")) : (openBlock(), createElementBlock("td", _hoisted_37$1, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_OON_Max)), 1)),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_Max)), 513), [
                    [vShow, !noMaxFam.value]
                  ])
                ]),
                createBaseVNode("tr", _hoisted_38$1, [
                  _hoisted_39$1,
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_Net_Max - accumData.Q4_Carry_Ded_Fam_Net - accumData.Ded_Fam_Net)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_OON_Max - accumData.Q4_Carry_Ded_Fam_OON - accumData.Ded_Fam_OON)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.Ded_Fam_Max - accumData.Q4_Carry_Ded_Fam - accumData.Ded_Fam)), 1),
                  createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_Net_Max - accumData.Q4_Carry_OOP_Fam_Net - accumData.OOP_Fam_Net)), 1),
                  noMaxFam.value ? (openBlock(), createElementBlock("td", _hoisted_40$1, "Not Applicable")) : (openBlock(), createElementBlock("td", _hoisted_41$1, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_OON_Max - accumData.Q4_Carry_OOP_Fam_OON - accumData.OOP_Fam_OON)), 1)),
                  withDirectives(createBaseVNode("td", null, toDisplayString(unref(NumberUtils).formatCurrency(accumData.OOP_Fam_Max - accumData.Q4_Carry_OOP_Fam - accumData.OOP_Fam)), 513), [
                    [vShow, !noMaxFam.value]
                  ])
                ])
              ])
            ])
          ])
        ], 512), [
          [vShow, accumDataExists.value]
        ])
      ], 64);
    };
  }
});
const EligibilityLookupAccumulators_vue_vue_type_style_index_0_scoped_c10cae05_lang = "";
const EligibilityLookupAccumulators = /* @__PURE__ */ _export_sfc(_sfc_main$g, [["__scopeId", "data-v-c10cae05"]]);
const EligibilityLookupAccumulators$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: EligibilityLookupAccumulators
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId$b = (n) => (pushScopeId("data-v-74689ec0"), n = n(), popScopeId(), n);
const _hoisted_1$f = {
  class: "pod-container",
  id: "pod-container"
};
const _hoisted_2$e = /* @__PURE__ */ _withScopeId$b(() => /* @__PURE__ */ createBaseVNode("h2", null, "Eligibility Lookup", -1));
const _hoisted_3$d = /* @__PURE__ */ _withScopeId$b(() => /* @__PURE__ */ createBaseVNode("hr", null, null, -1));
const _hoisted_4$a = {
  class: "input-row",
  id: "input-container"
};
const _hoisted_5$9 = {
  class: "button-container",
  id: "input-container"
};
const _hoisted_6$9 = {
  key: 0,
  id: "query-results-container"
};
const _hoisted_7$8 = { class: "small-text__strong" };
const _hoisted_8$5 = { class: "small-text" };
const _hoisted_9$5 = {
  key: 1,
  id: "plan-summary-container"
};
const _hoisted_10$4 = {
  key: 2,
  id: "accum-container"
};
const _hoisted_11$4 = /* @__PURE__ */ _withScopeId$b(() => /* @__PURE__ */ createBaseVNode("br", null, null, -1));
const _hoisted_12$3 = /* @__PURE__ */ _withScopeId$b(() => /* @__PURE__ */ createBaseVNode("hr", null, null, -1));
const _hoisted_13$3 = /* @__PURE__ */ _withScopeId$b(() => /* @__PURE__ */ createBaseVNode("br", null, null, -1));
const _sfc_main$f = /* @__PURE__ */ defineComponent({
  __name: "EligibilityLookup",
  emits: ["return-to-login"],
  setup(__props, { emit: emit2 }) {
    const apiService = new APIService();
    const fields = reactive({
      ProviderTaxId: "",
      ProviderZip: "",
      MemberId: "",
      BirthDate: new Date()
    });
    const isFieldValid = ref({
      ProviderTaxId: false,
      ProviderZip: false,
      MemberId: false,
      BirthDate: false
    });
    const memberAccumPlanSummary = ref(null);
    const searched = ref(false);
    const showPlanSummary = ref(false);
    const showAccums = ref(false);
    const returnToLogin = () => {
      fields.ProviderTaxId = "";
      fields.ProviderZip = "";
      fields.MemberId = "";
      fields.BirthDate = new Date();
      showPlanSummary.value = false;
      showAccums.value = false;
      memberAccumPlanSummary.value = null;
      searched.value = false;
      emit2("return-to-login");
    };
    const checkValidation = (isValid, id) => {
      switch (id) {
        case "provider-tax-id":
          isFieldValid.value.ProviderTaxId = isValid;
          break;
        case "provider-zip":
          isFieldValid.value.ProviderZip = isValid;
          break;
        case "member-id":
          isFieldValid.value.MemberId = isValid;
          break;
        case "member-birthdate":
          isFieldValid.value.BirthDate = isValid;
          break;
      }
    };
    const onSubmit = async () => {
      await apiService.getExMemberAccumPlanSummary(fields.ProviderTaxId, fields.ProviderZip, fields.MemberId, fields.BirthDate).then((res) => {
        if (res.length > 0) {
          memberAccumPlanSummary.value = res[0];
          if (memberAccumPlanSummary.value.Member_Count > 0) {
            showPlanSummary.value = true;
            showAccums.value = true;
          } else {
            showPlanSummary.value = false;
            showAccums.value = false;
          }
        } else {
          memberAccumPlanSummary.value = null;
        }
      });
      searched.value = true;
    };
    return (_ctx, _cache) => {
      return openBlock(), createBlock(Pod2, null, {
        default: withCtx(() => [
          createBaseVNode("div", _hoisted_1$f, [
            _hoisted_2$e,
            _hoisted_3$d,
            createBaseVNode("div", _hoisted_4$a, [
              createVNode(Input, {
                id: "member-id",
                label: "Member's ID",
                name: "member-id",
                type: "text",
                required: "",
                modelValue: fields.MemberId,
                "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => fields.MemberId = $event),
                onOnValidChanged: checkValidation
              }, null, 8, ["modelValue"]),
              createVNode(Input, {
                id: "member-birthdate",
                label: "Member's Birth Date",
                type: "date",
                required: "",
                modelValue: fields.BirthDate,
                "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => fields.BirthDate = $event)
              }, null, 8, ["modelValue"])
            ]),
            createBaseVNode("div", _hoisted_5$9, [
              createVNode(Button, {
                onClick: returnToLogin,
                class: "button"
              }, {
                default: withCtx(() => [
                  createTextVNode("Return to Login")
                ]),
                _: 1
              }),
              createVNode(Button, {
                onClick: onSubmit,
                class: "button"
              }, {
                default: withCtx(() => [
                  createTextVNode("Submit")
                ]),
                _: 1
              })
            ]),
            searched.value ? (openBlock(), createElementBlock("div", _hoisted_6$9, [
              createBaseVNode("div", _hoisted_7$8, toDisplayString(`Your query returned ${memberAccumPlanSummary.value.Member_Count} member(s).`), 1),
              createBaseVNode("div", _hoisted_8$5, toDisplayString(memberAccumPlanSummary.value.Lookup_Message), 1)
            ])) : createCommentVNode("", true),
            showPlanSummary.value && searched.value ? (openBlock(), createElementBlock("div", _hoisted_9$5, [
              createVNode(EligibilityLookupPlanSummary, {
                subscriberId: memberAccumPlanSummary.value.Subscriber_ID,
                memberSeq: memberAccumPlanSummary.value.Member_Seq
              }, null, 8, ["subscriberId", "memberSeq"])
            ])) : createCommentVNode("", true),
            showAccums.value && searched.value ? (openBlock(), createElementBlock("div", _hoisted_10$4, [
              _hoisted_11$4,
              _hoisted_12$3,
              _hoisted_13$3,
              createVNode(EligibilityLookupAccumulators, {
                subscriberId: memberAccumPlanSummary.value.Subscriber_ID,
                memberSeq: memberAccumPlanSummary.value.Member_Seq,
                planType: memberAccumPlanSummary.value.Plan_Type,
                accumPeriodStart: memberAccumPlanSummary.value.Accum_Period_Start
              }, null, 8, ["subscriberId", "memberSeq", "planType", "accumPeriodStart"])
            ])) : createCommentVNode("", true)
          ])
        ]),
        _: 1
      });
    };
  }
});
const EligibilityLookup_vue_vue_type_style_index_0_scoped_74689ec0_lang = "";
const EligibilityLookup = /* @__PURE__ */ _export_sfc(_sfc_main$f, [["__scopeId", "data-v-74689ec0"]]);
const EligibilityLookup$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: EligibilityLookup
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId$a = (n) => (pushScopeId("data-v-41544c5e"), n = n(), popScopeId(), n);
const _hoisted_1$e = {
  class: "input-container",
  id: "vba-login-username"
};
const _hoisted_2$d = /* @__PURE__ */ _withScopeId$a(() => /* @__PURE__ */ createBaseVNode("label", {
  for: "vba-login-username",
  "data-translation-key": "vba-common-username"
}, "Username", -1));
const _hoisted_3$c = ["disabled"];
const _hoisted_4$9 = {
  class: "loader-container",
  id: "loader-container"
};
const _hoisted_5$8 = {
  class: "input-container",
  id: "vba-login-password"
};
const _hoisted_6$8 = /* @__PURE__ */ _withScopeId$a(() => /* @__PURE__ */ createBaseVNode("label", {
  for: "vba-login-password",
  "data-translation-key": "vba-common-password"
}, "Password", -1));
const _hoisted_7$7 = { class: "password-container" };
const _hoisted_8$4 = ["disabled"];
const _hoisted_9$4 = ["disabled"];
const _hoisted_10$3 = {
  key: 0,
  class: "ri-eye-off-line"
};
const _hoisted_11$3 = {
  key: 1,
  class: "ri-eye-line"
};
const _hoisted_12$2 = /* @__PURE__ */ _withScopeId$a(() => /* @__PURE__ */ createBaseVNode("div", { class: "login-button-container" }, [
  /* @__PURE__ */ createBaseVNode("button", {
    "data-translation-key": "vba-common-login",
    type: "submit",
    id: "vba-sign-in-button",
    class: "login-button"
  }, "Log In")
], -1));
const _hoisted_13$2 = {
  key: 0,
  class: "eligibility-lookup-container"
};
const _hoisted_14$2 = /* @__PURE__ */ _withScopeId$a(() => /* @__PURE__ */ createBaseVNode("span", { "data-translation-key": "vba-login-translate-unregistered-provider" }, "Unregistered Provider?", -1));
const _sfc_main$e = /* @__PURE__ */ defineComponent({
  __name: "Login",
  emits: ["registration-clicked", "mfa-required", "recover-clicked", "lookup-clicked"],
  setup(__props, { emit: emit2 }) {
    const apiService = new APIService();
    const vbaCoreSecurity = new VbaCoreSecurity();
    const showPassword = ref(false);
    const loading = ref(false);
    const password = ref("");
    const userName = ref("");
    const useEligibilityLookup = ref(true);
    apiService.getExternalClientConfigs().then((result) => {
      useEligibilityLookup.value = result.find((x) => x.Config_ID === "EX_ELIGIBILITY_LOOKUP")?.Config_String === "YES" ? true : false;
    });
    const passwordVisibleToggle = () => {
      showPassword.value = !showPassword.value;
    };
    const onSubmit = (e) => {
      e.preventDefault();
      loading.value = !loading.value;
      vbaCoreSecurity.login(userName.value, password.value).then((resp) => {
        if (!resp.login && resp.mfa) {
          mfaRequired(resp.authType, userName.value, password.value);
        }
      }).catch((e2) => {
        if (!e2.login && !e2.mfa) {
          loading.value = !loading.value;
        }
      });
    };
    const registerOnClick = () => {
      emit2("registration-clicked");
    };
    const mfaRequired = (authType, username, password2) => {
      emit2("mfa-required", authType, username, password2);
    };
    const recoverOnClick = () => {
      emit2("recover-clicked");
    };
    const lookupOnClick = () => {
      emit2("lookup-clicked");
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", null, [
        createBaseVNode("form", {
          id: "vba-sign-in-form",
          onSubmit,
          class: normalizeClass([loading.value ? "submitted-form" : "form"])
        }, [
          createBaseVNode("div", _hoisted_1$e, [
            _hoisted_2$d,
            withDirectives(createBaseVNode("input", {
              class: "input-with-icon",
              type: "text",
              "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => userName.value = $event),
              autocomplete: "off",
              required: "",
              disabled: loading.value
            }, null, 8, _hoisted_3$c), [
              [vModelText, userName.value]
            ])
          ]),
          createBaseVNode("div", _hoisted_4$9, [
            createVNode(Loader, {
              loading: loading.value,
              dotSpin: true
            }, null, 8, ["loading"])
          ]),
          createBaseVNode("div", _hoisted_5$8, [
            _hoisted_6$8,
            createBaseVNode("div", _hoisted_7$7, [
              showPassword.value ? withDirectives((openBlock(), createElementBlock("input", {
                key: 0,
                class: "input-with-icon",
                type: "text",
                "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => password.value = $event),
                autocomplete: "off",
                required: "",
                disabled: loading.value
              }, null, 8, _hoisted_8$4)), [
                [vModelText, password.value]
              ]) : withDirectives((openBlock(), createElementBlock("input", {
                key: 1,
                class: "input-with-icon",
                type: "password",
                "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => password.value = $event),
                autocomplete: "off",
                required: "",
                disabled: loading.value
              }, null, 8, _hoisted_9$4)), [
                [vModelText, password.value]
              ]),
              createBaseVNode("button", {
                type: "button",
                class: "input-icon",
                onClick: _cache[3] || (_cache[3] = ($event) => passwordVisibleToggle())
              }, [
                showPassword.value ? (openBlock(), createElementBlock("i", _hoisted_10$3)) : (openBlock(), createElementBlock("i", _hoisted_11$3))
              ])
            ])
          ]),
          _hoisted_12$2,
          createBaseVNode("div", { class: "button-container register" }, [
            createBaseVNode("button", {
              type: "button",
              onClick: registerOnClick,
              id: "register-button"
            }, "Register")
          ]),
          createBaseVNode("div", { class: "forgot-button-container" }, [
            createBaseVNode("button", {
              type: "button",
              onClick: recoverOnClick,
              class: "register-recovery-link"
            }, "Forgot password?")
          ]),
          useEligibilityLookup.value ? (openBlock(), createElementBlock("div", _hoisted_13$2, [
            _hoisted_14$2,
            createBaseVNode("div", {
              class: "button-container",
              id: "lookup-container"
            }, [
              createBaseVNode("button", {
                type: "button",
                onClick: lookupOnClick,
                class: "register-recovery-link"
              }, "Click here to find eligibility info.")
            ])
          ])) : createCommentVNode("", true)
        ], 34)
      ]);
    };
  }
});
const Login_vue_vue_type_style_index_0_scoped_41544c5e_lang = "";
const Login = /* @__PURE__ */ _export_sfc(_sfc_main$e, [["__scopeId", "data-v-41544c5e"]]);
const Login$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: Login
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId$9 = (n) => (pushScopeId("data-v-3dfaa3f0"), n = n(), popScopeId(), n);
const _hoisted_1$d = { class: "banner-content-container" };
const _hoisted_2$c = { class: "content" };
const _hoisted_3$b = { class: "title" };
const _hoisted_4$8 = { class: "body" };
const _hoisted_5$7 = /* @__PURE__ */ _withScopeId$9(() => /* @__PURE__ */ createBaseVNode("i", { class: "ri-close-line" }, null, -1));
const _hoisted_6$7 = [
  _hoisted_5$7
];
const _sfc_main$d = /* @__PURE__ */ defineComponent({
  __name: "Banner",
  props: {
    bannerVariant: {
      type: String
    },
    bannerTitle: {
      type: String
    },
    bannerBody: {
      type: String
    },
    width: {
      type: String,
      default: "auto"
    },
    hideCloseButton: {
      type: Boolean,
      default: false
    }
  },
  emits: ["close"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    useCssVars((_ctx) => ({
      "7fd6fe0a": props.width
    }));
    const icon = computed(() => {
      if (props.bannerVariant == "success") {
        return "ri-check-line";
      } else if (props.bannerVariant == "warning") {
        return "ri-alert-line";
      } else if (props.bannerVariant == "error") {
        return "ri-error-warning-line";
      } else if (props.bannerVariant == "info") {
        return "ri-information-line";
      }
      return "";
    });
    function close() {
      emit2("close");
    }
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", {
        class: normalizeClass(["banner", props.bannerVariant])
      }, [
        createBaseVNode("div", {
          class: normalizeClass(["left-panel", props.bannerVariant])
        }, null, 2),
        createBaseVNode("div", _hoisted_1$d, [
          createBaseVNode("div", _hoisted_2$c, [
            createBaseVNode("i", {
              class: normalizeClass([unref(icon), __props.bannerVariant, "icon"])
            }, null, 2),
            createBaseVNode("h5", _hoisted_3$b, toDisplayString(props.bannerTitle), 1),
            createBaseVNode("p", _hoisted_4$8, toDisplayString(props.bannerBody), 1)
          ]),
          !props.hideCloseButton ? (openBlock(), createElementBlock("div", {
            key: 0,
            class: "banner-button",
            onClick: close
          }, _hoisted_6$7)) : createCommentVNode("", true)
        ])
      ], 2);
    };
  }
});
const Banner_vue_vue_type_style_index_0_scoped_3dfaa3f0_lang = "";
const Banner = /* @__PURE__ */ _export_sfc(_sfc_main$d, [["__scopeId", "data-v-3dfaa3f0"]]);
const _withScopeId$8 = (n) => (pushScopeId("data-v-68df8759"), n = n(), popScopeId(), n);
const _hoisted_1$c = { class: "alert-container" };
const _hoisted_2$b = {
  class: "input-container",
  id: "vba-login-mfa"
};
const _hoisted_3$a = /* @__PURE__ */ _withScopeId$8(() => /* @__PURE__ */ createBaseVNode("label", {
  for: "vba-login-mfa",
  "data-translation-key": "vba-login-translate-verification"
}, "Verification Code", -1));
const _hoisted_4$7 = ["disabled"];
const _hoisted_5$6 = {
  class: "loader-container",
  id: "loader-container"
};
const _hoisted_6$6 = /* @__PURE__ */ _withScopeId$8(() => /* @__PURE__ */ createBaseVNode("div", { class: "continue-button-container" }, [
  /* @__PURE__ */ createBaseVNode("button", {
    "data-translation-key": "vba-login-translate-continue",
    type: "submit",
    id: "vba-mfa-continue-button",
    class: "continue-button"
  }, "Continue")
], -1));
const _hoisted_7$6 = { class: "caption" };
const _sfc_main$c = /* @__PURE__ */ defineComponent({
  __name: "MFA",
  props: {
    mfaInfo: {
      type: Object
    }
  },
  setup(__props) {
    const props = __props;
    const vbaCoreSecurity = new VbaCoreSecurity();
    const loading = ref(false);
    const mfaInput = ref("");
    const bannerBody = computed(() => {
      if (props.mfaInfo?.authType == "GOOGLE_AUTH") {
        return "A verification code has been sent to the authenticator app on your specified device. Please enter the code below to continue.";
      } else if (props.mfaInfo?.authType == "EMAIL") {
        return "A verification code has been sent to the email address attached to your account. Please enter the code below to continue.";
      } else if (props.mfaInfo?.authType == "TEXT") {
        return "A verification code has been sent to the phone number attached to your account. Please enter the code below to continue.";
      }
      return "";
    });
    const caption = ref("If you need assistance with signing in, please contact your administrator.");
    let authInfo = {
      pin: "",
      username: props.mfaInfo?.username,
      password: props.mfaInfo?.password
    };
    const onSubmit = (e) => {
      e.preventDefault();
      loading.value = !loading.value;
      authInfo.pin = mfaInput.value;
      vbaCoreSecurity.loginWithMfaPin(authInfo).then((resp) => {
      }).catch((e2) => {
        loading.value = !loading.value;
      });
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$c, [
        createVNode(Banner, {
          bannerVariant: "info",
          bannerTitle: "Two-Factor Authentication",
          bannerBody: unref(bannerBody),
          hideCloseButton: true
        }, null, 8, ["bannerBody"]),
        createBaseVNode("form", {
          id: "vba-mfa-form",
          onSubmit,
          class: normalizeClass([loading.value ? "submitted-form" : "form"])
        }, [
          createBaseVNode("div", _hoisted_2$b, [
            _hoisted_3$a,
            withDirectives(createBaseVNode("input", {
              class: "input-with-icon",
              type: "text",
              "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => mfaInput.value = $event),
              autocomplete: "off",
              required: "",
              disabled: loading.value
            }, null, 8, _hoisted_4$7), [
              [vModelText, mfaInput.value]
            ]),
            createBaseVNode("div", _hoisted_5$6, [
              createVNode(Loader, {
                loading: loading.value,
                dotSpin: true
              }, null, 8, ["loading"])
            ])
          ]),
          _hoisted_6$6
        ], 34),
        createBaseVNode("div", _hoisted_7$6, toDisplayString(caption.value), 1)
      ]);
    };
  }
});
const MFA_vue_vue_type_style_index_0_scoped_68df8759_lang = "";
const MFA = /* @__PURE__ */ _export_sfc(_sfc_main$c, [["__scopeId", "data-v-68df8759"]]);
const MFA$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: MFA
}, Symbol.toStringTag, { value: "Module" }));
const _hoisted_1$b = { class: "radio-button" };
const _hoisted_2$a = ["id", "name", "value", "onChange", "checked"];
const _hoisted_3$9 = ["for"];
const _sfc_main$b = /* @__PURE__ */ defineComponent({
  __name: "RadioButton",
  props: {
    field: {
      type: Object,
      required: true
    },
    value: {
      type: String,
      required: true
    }
  },
  emits: ["onChange"],
  setup(__props, { emit: emit2 }) {
    const { field, value } = __props;
    const selectedOption = ref(value);
    function onRadioChange(event, selectedValue) {
      selectedOption.value = selectedValue;
      emit2("onChange", event, field.id);
    }
    function generateRadioId(key) {
      return `${field.id}-${key}`;
    }
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$b, [
        (openBlock(true), createElementBlock(Fragment, null, renderList(__props.field.options, (option) => {
          return openBlock(), createElementBlock("div", {
            key: option.key,
            class: "radio-option"
          }, [
            withDirectives(createBaseVNode("input", {
              type: "radio",
              id: generateRadioId(option.key),
              name: __props.field.id,
              value: option.key,
              "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedOption.value = $event),
              onChange: ($event) => onRadioChange($event, option.key),
              class: "radio-button__input",
              checked: option.checked
            }, null, 40, _hoisted_2$a), [
              [vModelRadio, selectedOption.value]
            ]),
            createBaseVNode("label", {
              for: generateRadioId(option.key),
              class: "small-text__strong"
            }, toDisplayString(option.value), 9, _hoisted_3$9)
          ]);
        }), 128))
      ]);
    };
  }
});
const RadioButton_vue_vue_type_style_index_0_scoped_f494a8d2_lang = "";
const RadioButton = /* @__PURE__ */ _export_sfc(_sfc_main$b, [["__scopeId", "data-v-f494a8d2"]]);
const _withScopeId$7 = (n) => (pushScopeId("data-v-cdd22e4b"), n = n(), popScopeId(), n);
const _hoisted_1$a = ["innerHTML"];
const _hoisted_2$9 = {
  key: 0,
  class: "check-box-container"
};
const _hoisted_3$8 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ createBaseVNode("h6", null, "User Preferences", -1));
const _hoisted_4$6 = { class: "check-box" };
const _hoisted_5$5 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ createBaseVNode("div", { class: "font-size" }, "Opt in to Text Messages", -1));
const _hoisted_6$5 = {
  key: 0,
  class: "input-field"
};
const _hoisted_7$5 = { class: "check-box" };
const _hoisted_8$3 = /* @__PURE__ */ _withScopeId$7(() => /* @__PURE__ */ createBaseVNode("div", { class: "font-size" }, "Opt in to Emails", -1));
const _hoisted_9$3 = {
  key: 1,
  class: "input-field"
};
const _sfc_main$a = /* @__PURE__ */ defineComponent({
  __name: "OptInNotifications",
  emits: ["checkValidation", "onClose"],
  setup(__props, { emit: emit2 }) {
    const apiService = new APIService();
    const { getExternalClientConfig } = useConfigStore();
    const { userNotifications, getUserNotifications } = useUserStore();
    const userNotification = ref({
      NotificationsEnabled: false,
      TextEnabled: false,
      EmailEnabled: false,
      ClientNotificationsEnabled: false,
      NotificationLanguage: "",
      PhoneNumber: "",
      EmailAddress: ""
    });
    const userNotifsFields = ref({
      id: "userNotifs",
      options: [
        {
          key: "agreeWithNotifs",
          value: "I agree",
          checked: true
        },
        {
          key: "disagreeWithNotifs",
          value: "I disagree",
          checked: false
        }
      ]
    });
    const toast = useToast();
    const modalVisible = ref(true);
    const modalTitle = ref("User Notifications");
    const loading = ref(true);
    const emailValid = ref(false);
    const phoneValid = ref(false);
    onMounted(async () => {
      let config = false;
      await getExternalClientConfig("OPT_IN_OUT_SET_TO_AGREE").then((res) => {
        if (res.Config_String === "YES") {
          config = true;
        }
      });
      if (userNotifications.Notification.NotificationsEnabled !== null) {
        userNotification.value.NotificationsEnabled = userNotifications.Notification.NotificationsEnabled;
        userNotification.value.EmailEnabled = userNotifications.Notification.EmailEnabled;
        userNotification.value.TextEnabled = userNotifications.Notification.TextEnabled;
      } else if (config) {
        userNotification.value.NotificationsEnabled = true;
        userNotification.value.TextEnabled = true;
        userNotification.value.EmailEnabled = true;
      }
      userNotification.value.NotificationLanguage = purify.sanitize(userNotifications.NotificationLanguage);
      userNotification.value.ClientNotificationsEnabled = userNotifications.ClientNotificationsEnabled;
      userNotification.value.EmailAddress = userNotifications.Notification.EmailAddress;
      userNotification.value.PhoneNumber = userNotifications.Notification.PhoneNumber;
      if (!userNotification.value.NotificationsEnabled) {
        userNotifsFields.value.options[0].checked = false;
        userNotifsFields.value.options[1].checked = true;
      }
      loading.value = false;
    });
    const closeModal = () => {
      modalVisible.value = false;
      emit2("onClose");
    };
    const userNotifsOnChange = (event) => {
      if (event?.target?.value === "agreeWithNotifs") {
        userNotification.value.NotificationsEnabled = true;
      } else {
        userNotification.value.NotificationsEnabled = false;
      }
    };
    const textCheckBoxOnChange = (selectedVal) => {
      if (selectedVal) {
        userNotification.value.TextEnabled = true;
      } else {
        userNotification.value.TextEnabled = false;
      }
    };
    const emailCheckBoxOnChange = (selectedVal) => {
      if (selectedVal) {
        userNotification.value.EmailEnabled = true;
      } else {
        userNotification.value.EmailEnabled = false;
      }
    };
    const preferencesToUpdate = () => {
      const updateUserNotifs = {
        "NotificationsEnabled": userNotification.value.NotificationsEnabled,
        "TextEnabled": false,
        "EmailEnabled": false,
        "PhoneNumber": "",
        "EmailAddress": ""
      };
      if (userNotification.value.NotificationsEnabled) {
        updateUserNotifs.TextEnabled = userNotification.value.TextEnabled;
        updateUserNotifs.EmailEnabled = userNotification.value.EmailEnabled;
        if (userNotification.value.EmailEnabled) {
          updateUserNotifs.EmailAddress = userNotification.value.EmailAddress;
        }
        if (userNotification.value.TextEnabled) {
          updateUserNotifs.PhoneNumber = userNotification.value.PhoneNumber;
        }
      }
      return updateUserNotifs;
    };
    const checkPhoneValidation = (valid) => {
      phoneValid.value = valid;
    };
    const checkEmailValidation = (valid) => {
      emailValid.value = valid;
    };
    const allFieldsValid = computed(() => {
      if (userNotification.value.EmailEnabled && userNotification.value.TextEnabled) {
        return phoneValid.value && emailValid.value;
      } else if (userNotification.value.TextEnabled) {
        return phoneValid.value;
      } else if (userNotification.value.EmailEnabled) {
        return emailValid.value;
      } else {
        return true;
      }
    });
    const onSubmit = async () => {
      await apiService.logUserNotifications(preferencesToUpdate()).then((res) => {
        if (res.status === 200) {
          getUserNotifications();
          closeModal();
          toast.success("Notification preferences updated successfully");
        } else {
          toast.error("Something went wrong. Please contact your administrator.");
        }
      });
    };
    return (_ctx, _cache) => {
      return modalVisible.value === true && !loading.value ? (openBlock(), createBlock(Modal, {
        key: 0,
        onClose: closeModal,
        onSubmit,
        header: modalTitle.value,
        width: "40%",
        disableSubmit: !unref(allFieldsValid)
      }, {
        default: withCtx(() => [
          createBaseVNode("div", {
            class: "notification-language",
            innerHTML: userNotification.value.NotificationLanguage
          }, null, 8, _hoisted_1$a),
          createVNode(RadioButton, {
            field: userNotifsFields.value,
            value: "userNotifs",
            onOnChange: userNotifsOnChange
          }, null, 8, ["field"]),
          userNotification.value.NotificationsEnabled ? (openBlock(), createElementBlock("div", _hoisted_2$9, [
            _hoisted_3$8,
            createBaseVNode("div", _hoisted_4$6, [
              createVNode(Checkbox, {
                onIsChecked: textCheckBoxOnChange,
                checkedByDefault: userNotification.value.TextEnabled
              }, null, 8, ["checkedByDefault"]),
              _hoisted_5$5
            ]),
            userNotification.value.TextEnabled ? (openBlock(), createElementBlock("div", _hoisted_6$5, [
              createVNode(Input, {
                id: "phone",
                name: "phone",
                label: "Please confirm or enter your phone number",
                type: "phone",
                modelValue: userNotification.value.PhoneNumber,
                "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => userNotification.value.PhoneNumber = $event),
                onOnValidChanged: checkPhoneValidation
              }, null, 8, ["modelValue"])
            ])) : createCommentVNode("", true),
            createBaseVNode("div", _hoisted_7$5, [
              createVNode(Checkbox, {
                onIsChecked: emailCheckBoxOnChange,
                checkedByDefault: userNotification.value.EmailEnabled
              }, null, 8, ["checkedByDefault"]),
              _hoisted_8$3
            ]),
            userNotification.value.EmailEnabled ? (openBlock(), createElementBlock("div", _hoisted_9$3, [
              createVNode(Input, {
                id: "email",
                name: "email",
                label: "Please confirm or enter your email",
                type: "email",
                modelValue: userNotification.value.EmailAddress,
                "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => userNotification.value.EmailAddress = $event),
                onOnValidChanged: checkEmailValidation
              }, null, 8, ["modelValue"])
            ])) : createCommentVNode("", true)
          ])) : createCommentVNode("", true)
        ]),
        _: 1
      }, 8, ["header", "disableSubmit"])) : createCommentVNode("", true);
    };
  }
});
const OptInNotifications_vue_vue_type_style_index_0_scoped_cdd22e4b_lang = "";
const OptInNotifications = /* @__PURE__ */ _export_sfc(_sfc_main$a, [["__scopeId", "data-v-cdd22e4b"]]);
const OptInNotifications$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: OptInNotifications
}, Symbol.toStringTag, { value: "Module" }));
class VbaCoreSecurityAdvanced {
  constructor() {
    __publicField(this, "configStore", useConfigStore());
    __publicField(this, "CONFIGS", {
      SEC_USE_ADVANCED: "",
      SEC_PASSWORD_COMP_MSG: "",
      SEC_PASSWORD_COMPLEXITY: "",
      SEC_PASSWORD_MIN_LENGTH: ""
    });
    this.initializeConfigs();
  }
  async initializeConfigs() {
    await this.configStore.getExternalClientConfig("SEC_USE_ADVANCED").then((result) => {
      this.CONFIGS.SEC_USE_ADVANCED = result.Config_String;
    });
    await this.configStore.getExternalClientConfig("SEC_PASSWORD_COMP_MSG").then((result) => {
      this.CONFIGS.SEC_PASSWORD_COMP_MSG = result.Config_String;
    });
    await this.configStore.getExternalClientConfig("SEC_PASSWORD_COMPLEXITY").then((result) => {
      this.CONFIGS.SEC_PASSWORD_COMPLEXITY = result.Config_String;
    });
    await this.configStore.getExternalClientConfig("SEC_PASSWORD_MIN_LENGTH").then((result) => {
      this.CONFIGS.SEC_PASSWORD_MIN_LENGTH = result.Config_String;
    });
  }
  getAdvancedSec() {
    return this.CONFIGS.SEC_USE_ADVANCED;
  }
  getPasswordComplexityMessage() {
    return this.CONFIGS.SEC_PASSWORD_COMP_MSG;
  }
  getPasswordRegex() {
    return this.CONFIGS.SEC_PASSWORD_COMPLEXITY;
  }
  async checkPasswordComplexity(password) {
    let result;
    let pwComplexity = (await this.configStore.getExternalClientConfig("SEC_PASSWORD_COMPLEXITY"))?.Config_String;
    if (!pwComplexity) {
      pwComplexity = "";
    }
    let pattern = new RegExp(pwComplexity);
    result = pattern.test(password);
    return result;
  }
  getMinPasswordLength() {
    return this.CONFIGS.SEC_PASSWORD_MIN_LENGTH;
  }
}
class RegistrationValidator {
  constructor() {
    __publicField(this, "vbaCoreSecurityAdvanced", new VbaCoreSecurityAdvanced());
    __publicField(this, "registrationRules", {
      validationStep: {
        Portal: {},
        SsnLastFour: {},
        DOB: {},
        SSN: {},
        TaxID: {},
        MedicalIDCardNumber: {},
        RegCode: {},
        NPI: {},
        ProvZip: {},
        Terminal: {},
        VeteranID: {},
        EmployerID: {},
        AssociationID: {}
      },
      registrationStep: {
        FirstName: { required },
        LastName: { required },
        UserName: { required },
        UserEmail: { required, email },
        Password: {},
        ConfirmPassword: {
          required,
          sameAsPassword: common.withMessage(
            "Passwords do not match",
            this.confirmPasswordValidation
          )
        },
        PhoneNumber: {},
        ImpersonationUserName: {},
        ImpersonationPassword: {},
        ConfirmImpersonationPassword: {}
      }
    });
  }
  passwordValidation(regexString) {
    const regex2 = new RegExp(regexString);
    return common.regex(regex2);
  }
  confirmPasswordValidation(value, regFields) {
    const same = sameAs(regFields.Password);
    const match = value == regFields.Password;
    return same && match;
  }
  confirmImpersonationPasswordValidation(value, regFields) {
    const same = sameAs(regFields.ImpersonationPassword);
    const match = value == regFields.ImpersonationPassword;
    return same && match;
  }
  useAdvancedSec(portal) {
    const length = Number(this.vbaCoreSecurityAdvanced.getMinPasswordLength());
    if (this.vbaCoreSecurityAdvanced.getAdvancedSec() == "YES") {
      this.registrationRules.registrationStep.Password = {
        required,
        validRegex: common.withMessage(
          this.vbaCoreSecurityAdvanced.getPasswordComplexityMessage(),
          this.passwordValidation(this.vbaCoreSecurityAdvanced.getPasswordRegex())
        ),
        validLength: common.withMessage(
          "Password must be at least " + length + " characters long.",
          minLength(length)
        )
      };
      if (portal == "REG_AT") {
        this.registrationRules.registrationStep.ImpersonationPassword = {
          required,
          validRegex: common.withMessage(
            this.vbaCoreSecurityAdvanced.getPasswordComplexityMessage(),
            this.passwordValidation(this.vbaCoreSecurityAdvanced.getPasswordRegex())
          ),
          validLength: common.withMessage(
            "Password must be at least " + length + " characters long.",
            minLength(length)
          )
        };
      }
    } else {
      this.registrationRules.registrationStep.Password = { required };
      if (portal == "REG_AT") {
        this.registrationRules.registrationStep.ImpersonationPassword = { required };
      }
    }
  }
  getValidationStepRules(portal, configs2, clientID, enrollmentOption) {
    this.setValidationStepRules(portal, configs2, clientID, enrollmentOption);
    return this.registrationRules.validationStep;
  }
  getRegStepRules(portal) {
    this.setRegStepRules(portal);
    return this.registrationRules.registrationStep;
  }
  resetValidationRules() {
    this.registrationRules.validationStep = {
      Portal: {},
      SsnLastFour: {},
      DOB: {},
      SSN: {},
      TaxID: {},
      MedicalIDCardNumber: {},
      RegCode: {},
      NPI: {},
      ProvZip: {},
      Terminal: {},
      VeteranID: {},
      EmployerID: {},
      AssociationID: {}
    };
  }
  resetRegistrationRules() {
    this.registrationRules.registrationStep = {
      FirstName: { required },
      LastName: { required },
      UserEmail: { required, email },
      Password: {},
      ConfirmPassword: {
        required,
        sameAsPassword: common.withMessage(
          "Passwords do not match",
          this.confirmPasswordValidation
        )
      },
      UserName: { required },
      PhoneNumber: {},
      ImpersonationUserName: {},
      ImpersonationPassword: {},
      ConfirmImpersonationPassword: {}
    };
  }
  setValidationStepRules(portal, configs2, clientID, enrollmentOption) {
    this.resetValidationRules();
    switch (portal) {
      case "REG_MT":
        if (configs2.REG_MT_ALLOW_MEDICAL_ID == "YES" && configs2.USE_MEDICAL_ID == true) {
          this.registrationRules.validationStep.MedicalIDCardNumber = { required };
        } else if (configs2.REG_MT_USE_SSN == "YES" && configs2.USE_MEDICAL_ID == false) {
          if (configs2.REG_MT_USE_FULL_SSN == "YES") {
            this.registrationRules.validationStep.SSN = {
              required,
              alphaNum,
              minLength: common.withMessage(
                "Please enter a 9 digit SSN",
                minLength(9)
              )
            };
          } else {
            this.registrationRules.validationStep.SsnLastFour = { required, alphaNum, minLength: minLength(4), maxLength: maxLength(4) };
          }
        }
        if (configs2.REG_MT_HIDE_REG_CODE == "NO" && configs2.USE_MEDICAL_ID == false) {
          this.registrationRules.validationStep.RegCode = { required };
        }
        if (configs2.USE_MEDICAL_ID == false) {
          this.registrationRules.validationStep.DOB = { required };
        }
        break;
      case "REG_PT":
        if (configs2.EX_USE_ALT_PROVIDER_REG_ONLY !== "YES") {
          if (configs2.EX_USE_ALT_PROVIDER_REG == "YES") {
            this.registrationRules.validationStep.TaxID = { required };
            this.registrationRules.validationStep.ProvZip = { required };
          } else {
            if (configs2.PT_USE_NPI_REGISTRATION == "YES") {
              this.registrationRules.validationStep.NPI = { required };
            }
            if (configs2.PT_ALT_NAME_FOR_TAX_ID !== "" || "NO") {
              this.registrationRules.validationStep.TaxID = { required };
            }
            this.registrationRules.validationStep.ProvZip = { required };
            this.registrationRules.validationStep.RegCode = { required };
          }
        }
        break;
      case "REG_OE":
        if (clientID === "TLP") {
          this.registrationRules.validationStep.DOB = { required };
          switch (enrollmentOption) {
            case "registrationCode":
              this.registrationRules.validationStep.RegCode = { required };
              break;
            case "veteran":
              this.registrationRules.validationStep.VeteranID = { required };
              break;
            case "employer":
              this.registrationRules.validationStep.EmployerID = { required };
              break;
            case "association":
              this.registrationRules.validationStep.AssociationID = { required };
              break;
          }
        } else {
          this.registrationRules.validationStep.RegCode = { required };
          this.registrationRules.validationStep.SSN = {
            required,
            alphaNum,
            minLength: common.withMessage(
              "Please enter a 9 digit SSN",
              minLength(9)
            )
          };
          this.registrationRules.validationStep.DOB = { required };
        }
        break;
      case "REG_PE":
      case "REG_ET":
      case "REG_AT":
      case "REG_CS":
      case "REG_BT":
      default:
        this.registrationRules.validationStep.RegCode = { required };
        break;
    }
  }
  setRegStepRules(portal) {
    this.resetRegistrationRules();
    switch (portal) {
      case "REG_MT":
        this.registrationRules.registrationStep.PhoneNumber = {
          required,
          validPhoneNumber: common.withMessage(
            "Invalid phone number",
            common.regex(/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/)
          )
        };
        break;
      case "REG_AT":
        this.registrationRules.registrationStep.ImpersonationUserName = {
          required
        };
        this.registrationRules.registrationStep.ImpersonationPassword = {
          required
        };
        this.registrationRules.registrationStep.ConfirmImpersonationPassword = {
          required,
          sameAsImpersonationPassword: common.withMessage(
            "Passwords do not match",
            this.confirmImpersonationPasswordValidation
          )
        };
        break;
      case "REG_BT":
        this.registrationRules.registrationStep.PhoneNumber = {
          required,
          validPhoneNumber: common.withMessage(
            "Invalid phone number",
            common.regex(/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/)
          )
        };
        break;
    }
    this.useAdvancedSec(portal);
  }
}
const _withScopeId$6 = (n) => (pushScopeId("data-v-4383cbd0"), n = n(), popScopeId(), n);
const _hoisted_1$9 = { class: "provider-lookup-container" };
const _hoisted_2$8 = { class: "provider-lookup-form" };
const _hoisted_3$7 = { id: "provider-help-text-div" };
const _hoisted_4$5 = ["innerHTML"];
const _hoisted_5$4 = { class: "form-container" };
const _hoisted_6$4 = {
  key: 0,
  class: "col-xs-12"
};
const _hoisted_7$4 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ createBaseVNode("label", {
  for: "regCodeLookup",
  class: "small-text__strong"
}, "Lookup By Registration Code", -1));
const _hoisted_8$2 = { class: "col-md-6 col-xs-12" };
const _hoisted_9$2 = { class: "col-md-6 col-xs-12" };
const _hoisted_10$2 = {
  key: 1,
  class: "col-md-6 col-xs-12"
};
const _hoisted_11$2 = {
  key: 2,
  class: "col-md-6 col-xs-12"
};
const _hoisted_12$1 = {
  key: 3,
  class: "col-md-6 col-xs-12"
};
const _hoisted_13$1 = { class: "search-btn-div col-xs-12" };
const _hoisted_14$1 = { class: "provider-lookup-results" };
const _hoisted_15$1 = {
  key: 0,
  class: "provider-lookup-no-providers"
};
const _hoisted_16$1 = /* @__PURE__ */ _withScopeId$6(() => /* @__PURE__ */ createBaseVNode("p", null, "No providers found", -1));
const _hoisted_17$1 = [
  _hoisted_16$1
];
const _hoisted_18$1 = { class: "provider-lookup-card" };
const _hoisted_19$1 = { class: "provider-checkbox-div" };
const _hoisted_20$1 = { class: "provider-content-div" };
const _hoisted_21$1 = { class: "provider-name-div" };
const _hoisted_22$1 = { class: "provider-address-div" };
const _hoisted_23$1 = { class: "provider-address2-div" };
const _hoisted_24$1 = { class: "provider-location-div" };
const _hoisted_25$1 = {
  key: 0,
  class: "provider-npi-div"
};
const _hoisted_26$1 = { class: "provider-tax-id-div" };
const _sfc_main$9 = /* @__PURE__ */ defineComponent({
  __name: "ProviderLookup",
  emits: ["onSubmit"],
  setup(__props, { emit: emit2 }) {
    const apiService = new APIService();
    const { getExternalClientConfig } = useConfigStore();
    const providerHelpText = ref("");
    getExternalClientConfig("REGISTER_PROVIDER_HELP_TEXT").then((result) => {
      providerHelpText.value = result.Config_String;
    });
    const taxIdAlternateName = ref("Tax ID");
    getExternalClientConfig("PT_ALT_NAME_FOR_TAX_ID").then((result) => {
      if (result && result.Config_String) {
        taxIdAlternateName.value = result.Config_String;
      }
    });
    const hideNPI = ref(false);
    getExternalClientConfig("PT_HIDE_NPI").then((result) => {
      hideNPI.value = result.Config_String === "YES";
    });
    const hideRegCodeOption = ref(false);
    getExternalClientConfig("PT_REG_HIDE_REG_CODE_OPT").then((result) => {
      hideRegCodeOption.value = result.Config_String === "YES";
    });
    const lookupByRegCode = ref(false);
    const taxId = ref("");
    const zipCode = ref("");
    const claim1 = ref("");
    const claim2 = ref("");
    const regCode = ref("");
    const showNoProvidersPlaceholder = ref(false);
    let providers = reactive([]);
    const searchProviders = () => {
      apiService.getProviderLookup(taxId.value, zipCode.value, claim1.value, claim2.value, regCode.value, lookupByRegCode.value).then((result) => {
        providers.length = 0;
        showNoProvidersPlaceholder.value = false;
        result.forEach((r) => {
          r.Selected = false;
          r.Claim_Number1 = claim1.value;
          r.Claim_Number2 = claim2.value;
          providers.push(r);
        });
        if (providers.length === 0) {
          showNoProvidersPlaceholder.value = true;
        }
      });
    };
    const addProvider = (providerId, checked) => {
      if (checked) {
        let pIndex = providers.findIndex((x) => x.Provider_ID === providerId);
        providers[pIndex].Selected = !providers[pIndex].Selected;
      }
    };
    const onSubmit = () => {
      let selectedProviders = providers.filter((p2) => {
        return p2.Selected === true;
      });
      emit2("onSubmit", { selectedProviders, lookupByRegCode: lookupByRegCode.value });
    };
    return (_ctx, _cache) => {
      return openBlock(), createBlock(Modal, {
        onSubmit,
        header: "Provider Lookup",
        "submit-button-label": "Add Providers"
      }, {
        default: withCtx(() => [
          createBaseVNode("div", _hoisted_1$9, [
            createBaseVNode("div", _hoisted_2$8, [
              createBaseVNode("div", _hoisted_3$7, [
                createBaseVNode("p", { innerHTML: providerHelpText.value }, null, 8, _hoisted_4$5)
              ]),
              createBaseVNode("div", _hoisted_5$4, [
                !hideRegCodeOption.value ? (openBlock(), createElementBlock("div", _hoisted_6$4, [
                  _hoisted_7$4,
                  createVNode(Checkbox, {
                    onIsChecked: _cache[0] || (_cache[0] = ($event) => lookupByRegCode.value = $event)
                  })
                ])) : createCommentVNode("", true),
                createBaseVNode("div", _hoisted_8$2, [
                  createVNode(InputLabel2, {
                    inputLabel: unref(ComponentUtils).initInputLabel("register-provider-tax-id", taxIdAlternateName.value, true)
                  }, null, 8, ["inputLabel"]),
                  withDirectives(createBaseVNode("input", {
                    id: "register-provider-tax-id",
                    name: "register-provider-tax-id",
                    type: "text",
                    "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => taxId.value = $event)
                  }, null, 512), [
                    [vModelText, taxId.value]
                  ])
                ]),
                createBaseVNode("div", _hoisted_9$2, [
                  createVNode(InputLabel2, {
                    inputLabel: unref(ComponentUtils).initInputLabel("register-provider-zip", "Zip Code", true)
                  }, null, 8, ["inputLabel"]),
                  withDirectives(createBaseVNode("input", {
                    id: "register-provider-zip",
                    name: "register-provider-zip",
                    type: "text",
                    "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => zipCode.value = $event)
                  }, null, 512), [
                    [vModelText, zipCode.value]
                  ])
                ]),
                !lookupByRegCode.value ? (openBlock(), createElementBlock("div", _hoisted_10$2, [
                  createVNode(InputLabel2, {
                    inputLabel: unref(ComponentUtils).initInputLabel("register-provider-claim-1", "Claim ID/Claim Number 1", true)
                  }, null, 8, ["inputLabel"]),
                  withDirectives(createBaseVNode("input", {
                    id: "register-provider-claim-1",
                    name: "register-provider-claim-1",
                    type: "text",
                    "onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => claim1.value = $event)
                  }, null, 512), [
                    [vModelText, claim1.value]
                  ])
                ])) : createCommentVNode("", true),
                !lookupByRegCode.value ? (openBlock(), createElementBlock("div", _hoisted_11$2, [
                  createVNode(InputLabel2, {
                    inputLabel: unref(ComponentUtils).initInputLabel("register-provider-claim-2", "Claim ID/Claim Number 2", true)
                  }, null, 8, ["inputLabel"]),
                  withDirectives(createBaseVNode("input", {
                    id: "register-provider-claim-2",
                    name: "register-provider-claim-2",
                    type: "text",
                    "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => claim2.value = $event)
                  }, null, 512), [
                    [vModelText, claim2.value]
                  ])
                ])) : createCommentVNode("", true),
                lookupByRegCode.value ? (openBlock(), createElementBlock("div", _hoisted_12$1, [
                  createVNode(InputLabel2, {
                    inputLabel: unref(ComponentUtils).initInputLabel("register-provider-reg-code", "Registration Code", true)
                  }, null, 8, ["inputLabel"]),
                  withDirectives(createBaseVNode("input", {
                    id: "register-provider-reg-code",
                    name: "register-provider-reg-code",
                    type: "text",
                    "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => regCode.value = $event)
                  }, null, 512), [
                    [vModelText, regCode.value]
                  ])
                ])) : createCommentVNode("", true)
              ]),
              createBaseVNode("div", _hoisted_13$1, [
                createVNode(Button, {
                  class: "modal-button",
                  onClick: searchProviders
                }, {
                  default: withCtx(() => [
                    createTextVNode("Search")
                  ]),
                  _: 1
                })
              ])
            ]),
            createBaseVNode("div", _hoisted_14$1, [
              showNoProvidersPlaceholder.value ? (openBlock(), createElementBlock("div", _hoisted_15$1, _hoisted_17$1)) : createCommentVNode("", true),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(providers), (p2) => {
                return openBlock(), createBlock(Card2, {
                  key: p2.Provider_ID,
                  "card-flex-width": 33,
                  "card-left-margin": 8,
                  "card-right-margin": 8
                }, {
                  default: withCtx(() => [
                    createBaseVNode("div", _hoisted_18$1, [
                      createBaseVNode("div", _hoisted_19$1, [
                        createVNode(Checkbox, {
                          onIsChecked: ($event) => addProvider(p2.Provider_ID, $event)
                        }, null, 8, ["onIsChecked"])
                      ]),
                      createBaseVNode("div", _hoisted_20$1, [
                        createBaseVNode("div", null, [
                          createBaseVNode("div", _hoisted_21$1, [
                            createBaseVNode("h6", null, toDisplayString(p2.First_Name) + " " + toDisplayString(p2.Last_Name), 1)
                          ]),
                          createBaseVNode("div", null, [
                            createBaseVNode("div", _hoisted_22$1, [
                              createBaseVNode("span", null, toDisplayString(p2.Address), 1)
                            ]),
                            createBaseVNode("div", _hoisted_23$1, [
                              createBaseVNode("span", null, toDisplayString(p2.Address2), 1)
                            ]),
                            createBaseVNode("div", _hoisted_24$1, [
                              createBaseVNode("span", null, toDisplayString(p2.City) + ", " + toDisplayString(p2.State) + " " + toDisplayString(p2.Zip_Code), 1)
                            ])
                          ])
                        ]),
                        createBaseVNode("div", null, [
                          !hideNPI.value ? (openBlock(), createElementBlock("div", _hoisted_25$1, "NPI: " + toDisplayString(p2.NPI), 1)) : createCommentVNode("", true),
                          createBaseVNode("div", _hoisted_26$1, "TIN: " + toDisplayString(p2.Federal_ID), 1)
                        ])
                      ])
                    ])
                  ]),
                  _: 2
                }, 1024);
              }), 128))
            ])
          ])
        ]),
        _: 1
      });
    };
  }
});
const ProviderLookup_vue_vue_type_style_index_0_scoped_4383cbd0_lang = "";
const ProviderLookup = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-4383cbd0"]]);
const ProviderLookup$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: ProviderLookup
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId$5 = (n) => (pushScopeId("data-v-06bdf1a5"), n = n(), popScopeId(), n);
const _hoisted_1$8 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createBaseVNode("h2", null, "Please select your organization", -1));
const _hoisted_2$7 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createBaseVNode("p", null, "It looks like you have accounts with multiple groups. Please select which account you would like to register.", -1));
const _hoisted_3$6 = { class: "row" };
const _hoisted_4$4 = {
  key: 0,
  class: "active-label"
};
const _hoisted_5$3 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createBaseVNode("i", { class: "ri-checkbox-circle-fill" }, null, -1));
const _hoisted_6$3 = {
  key: 1,
  class: "active-label"
};
const _hoisted_7$3 = /* @__PURE__ */ _withScopeId$5(() => /* @__PURE__ */ createBaseVNode("i", { class: "ri-close-circle-fill" }, null, -1));
const _sfc_main$8 = /* @__PURE__ */ defineComponent({
  __name: "GroupSelectionModal",
  props: {
    modelValue: Boolean,
    groups: Array
  },
  emits: ["update:modelValue", "group-selected", "close"],
  setup(__props, { emit: emits }) {
    const close = () => {
      emits("close");
    };
    const onGroupSelect = (group) => {
      emits("group-selected", group);
      close();
    };
    return (_ctx, _cache) => {
      return __props.modelValue ? (openBlock(), createBlock(Modal, {
        key: 0,
        onClose: close,
        "show-submit-button": false
      }, {
        default: withCtx(() => [
          _hoisted_1$8,
          _hoisted_2$7,
          (openBlock(true), createElementBlock(Fragment, null, renderList(__props.groups, (group) => {
            return openBlock(), createBlock(Card2, {
              "card-top-margin": 15,
              key: group.Group_ID
            }, {
              default: withCtx(() => [
                createBaseVNode("div", _hoisted_3$6, [
                  group.Active ? (openBlock(), createElementBlock("p", _hoisted_4$4, [
                    _hoisted_5$3,
                    createTextVNode(" Active")
                  ])) : (openBlock(), createElementBlock("p", _hoisted_6$3, [
                    _hoisted_7$3,
                    createTextVNode(" Inactive")
                  ])),
                  createVNode(Field2, {
                    field: unref(ComponentUtils).initField("Member ID", { data: group.Subscriber_ID + " - " + group.Member_Seq, type: "string" }),
                    class: "field-margin"
                  }, null, 8, ["field"]),
                  createVNode(Field2, {
                    field: unref(ComponentUtils).initField("Group", { data: group.Group_Name + " (" + group.Group_ID + ")", type: "string" }),
                    class: "field-margin"
                  }, null, 8, ["field"]),
                  createVNode(Field2, {
                    field: unref(ComponentUtils).initField("Division", { data: group.Division_Name, type: "string" }),
                    class: "field-margin"
                  }, null, 8, ["field"]),
                  createVNode(Button, {
                    class: "select-button",
                    onClick: ($event) => onGroupSelect(group)
                  }, {
                    default: withCtx(() => [
                      createTextVNode("Select")
                    ]),
                    _: 2
                  }, 1032, ["onClick"])
                ])
              ]),
              _: 2
            }, 1024);
          }), 128))
        ]),
        _: 1
      })) : createCommentVNode("", true);
    };
  }
});
const GroupSelectionModal_vue_vue_type_style_index_0_scoped_06bdf1a5_lang = "";
const GroupSelectionModal = /* @__PURE__ */ _export_sfc(_sfc_main$8, [["__scopeId", "data-v-06bdf1a5"]]);
const _hoisted_1$7 = ["innerHTML"];
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
  __name: "TermsAndConditions",
  props: {
    loginTermsAndConditions: {
      type: Boolean,
      default: false
    },
    dataForReg: {
      type: Object,
      default: {}
    }
  },
  emits: ["close-terms-modal", "accepted-terms"],
  setup(__props, { emit: emit2 }) {
    const props = __props;
    const apiService = new APIService();
    const vbaCoreSecurity = new VbaCoreSecurity();
    const toast = useToast();
    const modalVisible = ref(true);
    const modalTitle = ref("Terms and Conditions");
    const termsAndConditions = ref("");
    const termsRequired = ref(true);
    const loading = ref(true);
    const termsAndConditionsKey = ref("");
    onMounted(async () => {
      if (props.loginTermsAndConditions) {
        await apiService.getLoginTermsAndConditions().then((result) => {
          termsAndConditions.value = result?.TermsAndConditions_Value;
          termsAndConditionsKey.value = result?.TermsAndConditions_Key;
          loading.value = false;
          if (termsAndConditions.value === void 0) {
            termsRequired.value = false;
          }
        });
      } else {
        if (props.dataForReg.regCode == "") {
          try {
            await apiService.getRegTermsAndConditions(props.dataForReg.ssn, props.dataForReg.dob, "").then((result) => {
              termsAndConditions.value = result.TermsAndConditions_Value;
              termsAndConditionsKey.value = result.TermsAndConditions_Key;
              loading.value = false;
            });
          } catch (error) {
            termsRequired.value = false;
          }
        } else {
          try {
            await apiService.getRegTermsAndConditions("", "", props.dataForReg.regCode).then((result) => {
              termsAndConditions.value = result.TermsAndConditions_Value;
              termsAndConditionsKey.value = result.TermsAndConditions_Key;
              loading.value = false;
            });
          } catch (error) {
            termsRequired.value = false;
          }
        }
      }
    });
    const closeModal = () => {
      if (props.loginTermsAndConditions) {
        vbaCoreSecurity.logout();
      } else {
        emit2("close-terms-modal");
      }
      modalVisible.value = false;
    };
    const onSubmit = async (e) => {
      if (props.loginTermsAndConditions) {
        await apiService.logLoginTermsAndConditions({ "termsAndConditionsKey": termsAndConditionsKey.value }).then((res) => {
          if (res.status === 200) {
            modalVisible.value = false;
          } else {
            toast.error("Something went wrong. Please contact your administrator.");
          }
        });
      } else {
        emit2("accepted-terms", termsAndConditionsKey.value);
        modalVisible.value = false;
      }
    };
    return (_ctx, _cache) => {
      return modalVisible.value === true && termsRequired.value && !loading.value ? (openBlock(), createBlock(Modal, {
        key: 0,
        onClose: closeModal,
        onSubmit,
        header: modalTitle.value,
        width: "40%",
        submitButtonLabel: props.loginTermsAndConditions ? "Submit" : "Accept & Submit",
        cancelButtonLabel: props.loginTermsAndConditions ? "Cancel & Logout" : "Cancel",
        class: "terms-and-conditions"
      }, {
        default: withCtx(() => [
          createBaseVNode("div", { innerHTML: termsAndConditions.value }, null, 8, _hoisted_1$7)
        ]),
        _: 1
      }, 8, ["header", "submitButtonLabel", "cancelButtonLabel"])) : createCommentVNode("", true);
    };
  }
});
const TermsAndConditions_vue_vue_type_style_index_0_scoped_c3aceb61_lang = "";
const TermsAndConditions = /* @__PURE__ */ _export_sfc(_sfc_main$7, [["__scopeId", "data-v-c3aceb61"]]);
const TermsAndConditions$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: TermsAndConditions
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId$4 = (n) => (pushScopeId("data-v-58a44032"), n = n(), popScopeId(), n);
const _hoisted_1$6 = { class: "container" };
const _hoisted_2$6 = { class: "left-side" };
const _hoisted_3$5 = { key: 0 };
const _hoisted_4$3 = { class: "progress-bar" };
const _hoisted_5$2 = { key: 0 };
const _hoisted_6$2 = ["innerHTML"];
const _hoisted_7$2 = {
  key: 1,
  class: "portal-text"
};
const _hoisted_8$1 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("option", {
  edisabled: "",
  valu: ""
}, "Please select a portal", -1));
const _hoisted_9$1 = ["value"];
const _hoisted_10$1 = { key: 3 };
const _hoisted_11$1 = { class: "directions" };
const _hoisted_12 = ["innerHTML"];
const _hoisted_13 = { key: 0 };
const _hoisted_14 = { key: 1 };
const _hoisted_15 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Medical Card ID Number", -1));
const _hoisted_16 = { key: 2 };
const _hoisted_17 = { key: 0 };
const _hoisted_18 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Full SSN", -1));
const _hoisted_19 = { class: "input-wrapper input-icon-wrapper" };
const _hoisted_20 = ["type"];
const _hoisted_21 = {
  key: 0,
  class: "ri-eye-line"
};
const _hoisted_22 = {
  key: 1,
  class: "ri-eye-off-line"
};
const _hoisted_23 = { key: 1 };
const _hoisted_24 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Last 4 digits of SSN", -1));
const _hoisted_25 = { class: "input-wrapper input-icon-wrapper" };
const _hoisted_26 = ["type"];
const _hoisted_27 = {
  key: 0,
  class: "ri-eye-line"
};
const _hoisted_28 = {
  key: 1,
  class: "ri-eye-off-line"
};
const _hoisted_29 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Birthdate", -1));
const _hoisted_30 = { class: "input-wrapper" };
const _hoisted_31 = { key: 2 };
const _hoisted_32 = { class: "form-text" };
const _hoisted_33 = { class: "input-wrapper" };
const _hoisted_34 = { key: 4 };
const _hoisted_35 = { class: "directions" };
const _hoisted_36 = ["innerHTML"];
const _hoisted_37 = {
  key: 0,
  class: "checkbox"
};
const _hoisted_38 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", null, "I don't know my NPI or Registration Code", -1));
const _hoisted_39 = { key: 1 };
const _hoisted_40 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Validate your provider information with the Add Provider button listed below", -1));
const _hoisted_41 = { class: "form-text" };
const _hoisted_42 = { class: "input-wrapper" };
const _hoisted_43 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Zip Code", -1));
const _hoisted_44 = { class: "input-wrapper" };
const _hoisted_45 = { key: 2 };
const _hoisted_46 = { key: 0 };
const _hoisted_47 = { key: 0 };
const _hoisted_48 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "NPI", -1));
const _hoisted_49 = { class: "input-wrapper" };
const _hoisted_50 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Registration Code", -1));
const _hoisted_51 = { class: "input-wrapper" };
const _hoisted_52 = { class: "form-text" };
const _hoisted_53 = { class: "input-wrapper" };
const _hoisted_54 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Zip Code", -1));
const _hoisted_55 = { class: "input-wrapper" };
const _hoisted_56 = { key: 3 };
const _hoisted_57 = { id: "providers-to-add-section" };
const _hoisted_58 = { key: 0 };
const _hoisted_59 = { class: "federal-id" };
const _hoisted_60 = ["onClick"];
const _hoisted_61 = { key: 5 };
const _hoisted_62 = { class: "directions" };
const _hoisted_63 = ["innerHTML"];
const _hoisted_64 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Registration Code", -1));
const _hoisted_65 = { class: "input-wrapper" };
const _hoisted_66 = { key: 6 };
const _hoisted_67 = { class: "directions" };
const _hoisted_68 = ["innerHTML"];
const _hoisted_69 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Registration Code", -1));
const _hoisted_70 = { class: "input-wrapper" };
const _hoisted_71 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "SSN", -1));
const _hoisted_72 = { class: "input-wrapper input-icon-wrapper" };
const _hoisted_73 = ["type"];
const _hoisted_74 = {
  key: 0,
  class: "ri-eye-line"
};
const _hoisted_75 = {
  key: 1,
  class: "ri-eye-off-line"
};
const _hoisted_76 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Birthdate", -1));
const _hoisted_77 = { class: "input-wrapper" };
const _hoisted_78 = { key: 7 };
const _hoisted_79 = { class: "directions" };
const _hoisted_80 = ["innerHTML"];
const _hoisted_81 = { class: "texas-legal-form" };
const _hoisted_82 = { class: "form-group" };
const _hoisted_83 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("label", null, "Enrollment Option:", -1));
const _hoisted_84 = ["value"];
const _hoisted_85 = {
  key: 0,
  class: "form-group"
};
const _hoisted_86 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("label", null, "Registration Code:", -1));
const _hoisted_87 = { class: "input-wrapper" };
const _hoisted_88 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Birthdate", -1));
const _hoisted_89 = { class: "input-wrapper" };
const _hoisted_90 = {
  key: 1,
  class: "form-group"
};
const _hoisted_91 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("label", null, "Please select your Employer: ", -1));
const _hoisted_92 = { class: "input-wrapper" };
const _hoisted_93 = ["value"];
const _hoisted_94 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Birthdate", -1));
const _hoisted_95 = { class: "input-wrapper" };
const _hoisted_96 = {
  key: 2,
  class: "form-group"
};
const _hoisted_97 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("label", null, "Please select your Association/Affiliation: ", -1));
const _hoisted_98 = { class: "input-wrapper" };
const _hoisted_99 = ["value"];
const _hoisted_100 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Birthdate", -1));
const _hoisted_101 = { class: "input-wrapper" };
const _hoisted_102 = {
  key: 3,
  class: "form-group"
};
const _hoisted_103 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("label", null, "Select your Veteran's group:", -1));
const _hoisted_104 = { class: "input-wrapper" };
const _hoisted_105 = ["value"];
const _hoisted_106 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Birthdate", -1));
const _hoisted_107 = { class: "input-wrapper" };
const _hoisted_108 = {
  key: 4,
  class: "form-group"
};
const _hoisted_109 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Birthdate", -1));
const _hoisted_110 = { class: "input-wrapper" };
const _hoisted_111 = { key: 8 };
const _hoisted_112 = { class: "directions" };
const _hoisted_113 = ["innerHTML"];
const _hoisted_114 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Registration Code", -1));
const _hoisted_115 = { class: "input-wrapper" };
const _hoisted_116 = { key: 9 };
const _hoisted_117 = { class: "directions" };
const _hoisted_118 = ["innerHTML"];
const _hoisted_119 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Registration Code", -1));
const _hoisted_120 = { class: "input-wrapper" };
const _hoisted_121 = { key: 10 };
const _hoisted_122 = { class: "directions" };
const _hoisted_123 = ["innerHTML"];
const _hoisted_124 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Registration Code", -1));
const _hoisted_125 = { class: "input-wrapper" };
const _hoisted_126 = { key: 11 };
const _hoisted_127 = { class: "directions" };
const _hoisted_128 = ["innerHTML"];
const _hoisted_129 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Registration Code", -1));
const _hoisted_130 = { class: "input-wrapper" };
const _hoisted_131 = { key: 12 };
const _hoisted_132 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "First Name", -1));
const _hoisted_133 = { class: "input-wrapper" };
const _hoisted_134 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Last Name", -1));
const _hoisted_135 = { class: "input-wrapper" };
const _hoisted_136 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Username", -1));
const _hoisted_137 = { class: "input-wrapper" };
const _hoisted_138 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Email", -1));
const _hoisted_139 = { class: "input-wrapper" };
const _hoisted_140 = { key: 0 };
const _hoisted_141 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Phone Number", -1));
const _hoisted_142 = { class: "input-wrapper" };
const _hoisted_143 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text phone-number" }, "(If you prefer not to enter your cell phone number, please enter 999-999-9999. Thank you.) ", -1));
const _hoisted_144 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Password", -1));
const _hoisted_145 = { class: "input-wrapper" };
const _hoisted_146 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Confirm Password", -1));
const _hoisted_147 = { class: "input-wrapper" };
const _hoisted_148 = { key: 1 };
const _hoisted_149 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Impersonation Username", -1));
const _hoisted_150 = { class: "input-wrapper" };
const _hoisted_151 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Impersonation Password", -1));
const _hoisted_152 = { class: "input-wrapper" };
const _hoisted_153 = /* @__PURE__ */ _withScopeId$4(() => /* @__PURE__ */ createBaseVNode("p", { class: "form-text" }, "Confirm Impersonation Password", -1));
const _hoisted_154 = { class: "input-wrapper" };
const _hoisted_155 = {
  key: 14,
  class: "confirm-page"
};
const _hoisted_156 = { key: 4 };
const _sfc_main$6 = /* @__PURE__ */ defineComponent({
  __name: "Registration",
  emits: ["registration-done", "sign-in-click"],
  setup(__props, { emit: emit2 }) {
    const { getExternalClientConfig, getExternalClientConfigs, getOpenEnrollmentPeriodsByCategory } = useConfigStore();
    const apiService = new APIService();
    const toast = useToast();
    const registrationValidator = new RegistrationValidator();
    const currentStep = ref(0);
    const formSteps = ref(["Identification", "Account Details"]);
    const showProviderLookup = ref(false);
    const acceptedTerms = ref(false);
    const showTerms = ref(false);
    const onSubmit = async () => {
      emit2("registration-done", "reg-done");
    };
    const onSignInClick = () => {
      emit2("sign-in-click", 'return-to-login"');
    };
    const goBack = () => {
      if (currentStep.value > 0) {
        currentStep.value--;
      }
    };
    const errorMessage = ref("");
    const registrationFields = reactive({
      Portal: "",
      SsnLastFour: "",
      DOB: "",
      SSN: "",
      FirstName: "",
      LastName: "",
      UserEmail: "",
      Password: "",
      ConfirmPassword: "",
      TaxID: "",
      TermsAndConditionsKey: 0,
      TermsAndConditions: "",
      UserGuid: "",
      MedicalIDCardNumber: "",
      Subscriber_ID: "",
      Member_Seq: "",
      UserName: "",
      RegCode: "",
      NPI: "",
      ProvZip: "",
      Terminal: "",
      EmailTitleRegConfirm: "",
      PhoneNumber: null,
      ImpersonationUserName: "",
      ImpersonationPassword: "",
      ConfirmImpersonationPassword: "",
      Provider_ID: "",
      LookupByRegCode: false,
      Providers: new Array(),
      EmployerID: "",
      AssociationID: "",
      VeteranID: ""
    });
    const resetRegistrationFields = (portal) => {
      registrationFields.Portal = portal ? portal : "";
      registrationFields.SsnLastFour = "";
      registrationFields.DOB = "";
      registrationFields.SSN = "";
      registrationFields.FirstName = "";
      registrationFields.LastName = "";
      registrationFields.UserEmail = "";
      registrationFields.Password = "";
      registrationFields.ConfirmPassword = "";
      registrationFields.TaxID = "";
      registrationFields.TermsAndConditionsKey = 0;
      registrationFields.TermsAndConditions = "";
      registrationFields.UserGuid = "";
      registrationFields.MedicalIDCardNumber = "";
      registrationFields.Subscriber_ID = "";
      registrationFields.Member_Seq = "";
      registrationFields.UserName = "";
      registrationFields.RegCode = "";
      registrationFields.NPI = Configs.PT_USE_NPI_REGISTRATION === "YES" ? "" : "XXX999XXX";
      registrationFields.ProvZip = "";
      registrationFields.Terminal = "";
      registrationFields.EmailTitleRegConfirm = "";
      registrationFields.PhoneNumber = null;
      registrationFields.ImpersonationUserName = "";
      registrationFields.ImpersonationPassword = "";
      registrationFields.ConfirmImpersonationPassword = "";
      registrationFields.Provider_ID = "";
      registrationFields.LookupByRegCode = false;
      registrationFields.Providers = new Array();
      registrationFields.EmployerID = "";
      registrationFields.AssociationID = "";
      registrationFields.VeteranID = "";
    };
    const ValAndNxt = async () => {
      if (currentStep.value === 0) {
        currentStep.value++;
      } else if (currentStep.value === 1) {
        let isValid = await validation$.value.$validate();
        if (!isValid) {
          return;
        }
        try {
          registrationFields.Providers = providers;
          await apiService.validateRegistrationFields(registrationFields).then((data) => {
            if (!data.status) {
              if (data.Success === true) {
                isValid = true;
                if (registrationFields.Portal === "REG_MT") {
                  registrationFields.Subscriber_ID = data.Subscriber_ID;
                  registrationFields.Member_Seq = data.MemberSeq;
                  registrationFields.Terminal = "MT";
                } else if (registrationFields.Portal === "REG_PT") {
                  registrationFields.Provider_ID = data.Provider_ID;
                  registrationFields.Terminal = "PT";
                } else if (registrationFields.Portal === "REG_PE") {
                  registrationFields.Terminal = "PE";
                } else if (registrationFields.Portal === "REG_OE") {
                  registrationFields.Terminal = "OE";
                } else if (registrationFields.Portal === "REG_ET") {
                  registrationFields.Terminal = "ET";
                } else if (registrationFields.Portal === "REG_AT") {
                  registrationFields.Terminal = "AT";
                } else if (registrationFields.Portal === "REG_CS") {
                  registrationFields.Terminal = "CS";
                } else if (registrationFields.Portal === "REG_BT") {
                  registrationFields.Terminal = "BT";
                }
                isValid = true;
                currentStep.value++;
              } else {
                if (data.Groups && registrationFields.Portal === "REG_MT") {
                  groupList.value = data.Groups;
                  showModal.value = true;
                }
              }
            } else {
              isValid = false;
              let message = data.message ? data.message : "Failed to validate with registration info provided. Please check your inputs and try again.";
              toast.error(message);
            }
          });
        } catch (error) {
          console.error("Error validating registration fields:", error);
          isValid = false;
        }
      }
    };
    const isLoading = ref(false);
    const submitForm = async () => {
      let isValid = await registration$.value.$validate();
      if (!isValid) {
        return;
      }
      if (Configs.REG_MT_TERMS_REQD == "YES" && !acceptedTerms.value && selectedPortal.value == "REG_MT") {
        showTerms.value = true;
      } else {
        isLoading.value = true;
        try {
          const result = await apiService.Register(registrationFields);
          if (result && result.status !== 500) {
            currentStep.value++;
          } else {
            console.error("Error during registration: Server returned 500");
            let error = result.message ? "Registration failed.\n" + result.message : "Registration failed. Please try again.";
            useToast().error(error);
          }
        } catch (error) {
          console.error("Error during registration:", error);
        } finally {
          isLoading.value = false;
        }
      }
    };
    const closeTermsAndConditionsModal = () => {
      showTerms.value = false;
    };
    const acceptedTermsAndConditions = (termsKey) => {
      registrationFields.TermsAndConditionsKey = termsKey;
      acceptedTerms.value = true;
      showTerms.value = false;
      submitForm();
    };
    const selectedPortal = ref("");
    const selectPortals = ref([
      { value: "REG_AT", text: "" },
      { value: "REG_BT", text: "" },
      { value: "REG_CS", text: "" },
      { value: "REG_ET", text: "" },
      { value: "REG_MT", text: "" },
      { value: "REG_OE", text: "" },
      { value: "REG_PT", text: "" },
      { value: "REG_PE", text: "" }
    ]);
    const enrollmentOption = ref("");
    const selectEnrollmentOptions = ref([
      { value: "registrationCode", text: "I have a registration code" },
      { value: "veteran", text: "I am a Veteran" },
      { value: "employer", text: "My Employer" },
      { value: "association", text: "Association/Affiliation" },
      { value: "individual", text: "I am enrolling as an Individual not a part of a Group" }
    ]);
    let validation$ = useVuelidate();
    let registration$ = useVuelidate();
    watch([selectedPortal, enrollmentOption], ([newPortal, newEnrollmentOption]) => {
      resetRegistrationFields(newPortal);
      validation$ = useVuelidate(registrationValidator.getValidationStepRules(newPortal, Configs, clientID.value, newEnrollmentOption), registrationFields);
      registration$ = useVuelidate(registrationValidator.getRegStepRules(newPortal), registrationFields);
    });
    const Config_Directions = reactive({
      REG_DIRECTIONS_AT: "",
      REG_DIRECTIONS_BT: "",
      REG_DIRECTIONS_CS: "",
      REG_DIRECTIONS_ET: "",
      REG_DIRECTIONS_MT: "",
      REG_DIRECTIONS_OE: "",
      REG_DIRECTIONS_PE: "",
      REG_DIRECTIONS_PT: "",
      REG_CONTACT_MESSAGE: ""
    });
    const Configs = reactive({
      REG_MT_USE_SSN: "NO",
      REG_MT_USE_FULL_SSN: "NO",
      REG_MT_HIDE_REG_CODE: "NO",
      REG_MT_ALLOW_MEDICAL_ID: "NO",
      PT_HIDE_NPI: "NO",
      PT_USE_NPI_REGISTRATION: "NO",
      PT_ALT_NAME_FOR_TAX_ID: "",
      REG_HIDE_PROVIDER_LOOKUP_BUTTON: "NO",
      EX_USE_ALT_PROVIDER_REG_ONLY: "NO",
      USE_MEDICAL_ID: false,
      REG_MT_TERMS_REQD: "NO",
      EX_USE_ALT_PROVIDER_REG: "NO",
      PROVIDER_ALT: "NO",
      REG_MT_REG_CODE_LABEL: "NO"
    });
    getExternalClientConfigs().then(() => {
      getExternalClientConfig("REG_HIDE_PORTALS").then((result) => {
        const hidePortals = result.Config_String.split(",");
        selectPortals.value = selectPortals.value.filter((portal) => !hidePortals.includes(portal.value.replace("REG_", "")));
        const configPromises = selectPortals.value.map(
          (portal, index2) => getExternalClientConfig(portal.value + "_DISPLAYNAME").then((result2) => {
            selectPortals.value[index2].text = result2.Config_String;
          })
        );
        Promise.all(configPromises).then(() => {
          selectPortals.value.sort(
            (a, b) => a.text.localeCompare(b.text)
          );
        });
      });
      getExternalClientConfig("REG_DIRECTIONS_AT").then((result) => {
        Config_Directions.REG_DIRECTIONS_AT = result.Config_String;
      });
      getExternalClientConfig("REG_DIRECTIONS_BT").then((result) => {
        Config_Directions.REG_DIRECTIONS_BT = result.Config_String;
      });
      getExternalClientConfig("REG_DIRECTIONS_CS").then((result) => {
        Config_Directions.REG_DIRECTIONS_CS = result.Config_String;
      });
      getExternalClientConfig("REG_DIRECTIONS_ET").then((result) => {
        Config_Directions.REG_DIRECTIONS_ET = result.Config_String;
      });
      getExternalClientConfig("REG_DIRECTIONS_MT").then((result) => {
        Config_Directions.REG_DIRECTIONS_MT = result.Config_String;
      });
      getExternalClientConfig("REG_DIRECTIONS_OE").then((result) => {
        Config_Directions.REG_DIRECTIONS_OE = result.Config_String;
      });
      getExternalClientConfig("REG_DIRECTIONS_PE").then((result) => {
        Config_Directions.REG_DIRECTIONS_PE = result.Config_String;
      });
      getExternalClientConfig("REG_DIRECTIONS_PT").then((result) => {
        Config_Directions.REG_DIRECTIONS_PT = result.Config_String;
      });
      getExternalClientConfig("REG_CONTACT_MESSAGE").then((result) => {
        Config_Directions.REG_CONTACT_MESSAGE = result.Config_String;
      });
      getExternalClientConfig("REG_MT_USE_SSN").then((result) => {
        Configs.REG_MT_USE_SSN = result.Config_String;
      });
      getExternalClientConfig("REG_MT_USE_FULL_SSN").then((result) => {
        Configs.REG_MT_USE_FULL_SSN = result.Config_String;
      });
      getExternalClientConfig("REG_MT_HIDE_REG_CODE").then((result) => {
        Configs.REG_MT_HIDE_REG_CODE = result.Config_String;
      });
      getExternalClientConfig("REG_MT_ALLOW_MEDICAL_ID").then((result) => {
        Configs.REG_MT_ALLOW_MEDICAL_ID = result.Config_String;
      });
      getExternalClientConfig("PT_USE_NPI_REGISTRATION").then((result) => {
        Configs.PT_USE_NPI_REGISTRATION = result.Config_String;
        if (Configs.PT_USE_NPI_REGISTRATION !== "YES") {
          registrationFields.NPI = "XXX999XXX";
        }
      });
      getExternalClientConfig("PT_ALT_NAME_FOR_TAX_ID").then((result) => {
        Configs.PT_ALT_NAME_FOR_TAX_ID = result.Config_String;
      });
      getExternalClientConfig("EX_USE_ALT_PROVIDER_REG_ONLY").then((result) => {
        Configs.EX_USE_ALT_PROVIDER_REG_ONLY = result.Config_String;
      });
      getExternalClientConfig("REG_MT_TERMS_REQD").then((result) => {
        Configs.REG_MT_TERMS_REQD = result.Config_String;
      });
      getExternalClientConfig("EX_USE_ALT_PROVIDER_REG").then((result) => {
        Configs.EX_USE_ALT_PROVIDER_REG = result.Config_String;
      });
      getExternalClientConfig("REG_MT_REG_CODE_LABEL").then((result) => {
        Configs.REG_MT_REG_CODE_LABEL = result.Config_String;
      });
      getExternalClientConfig("ADMINCLIENTID").then((result) => {
        clientID.value = result.Config_String;
        isLegalClient.value = legalClients.includes(clientID.value);
      });
      getExternalClientConfig("REG_HIDE_PROVIDER_LOOKUP_BUTTON").then((result) => {
        Configs.REG_HIDE_PROVIDER_LOOKUP_BUTTON = result.Config_String;
      });
    });
    const providers = reactive([]);
    const providerLookupSubmit = (data) => {
      let p2 = data.selectedProviders;
      registrationFields.LookupByRegCode = data.lookupByRegCode;
      registrationFields.Provider_ID = data.selectedProviders[0].Provider_ID;
      registrationFields.RegCode = data.selectedProviders[0].VBAGateway_Registration_Code;
      showProviderLookup.value = false;
      p2.forEach((provider) => {
        if (!providers.some((x) => x.Provider_ID === provider.Provider_ID)) {
          providers.push(provider);
        }
      });
    };
    const removeProvider = (providerId) => {
      let pIndex = providers.findIndex((x) => x.Provider_ID === providerId);
      if (pIndex > -1) {
        providers.splice(pIndex, 1);
      }
    };
    const employers = ref([]);
    const associations = ref([]);
    const veterans = ref([]);
    const enrollmentOption_ID = reactive({
      registrationCode: "",
      employers: "",
      association: "",
      individual: "",
      veterans: ""
    });
    getOpenEnrollmentPeriodsByCategory("EMPLOYER").then((result) => {
      employers.value = result;
    });
    getOpenEnrollmentPeriodsByCategory("ASSOCIATION").then((result) => {
      associations.value = result;
    });
    getOpenEnrollmentPeriodsByCategory("VETERAN").then((result) => {
      veterans.value = result;
    });
    watch(enrollmentOption, (newEnrollmentOption) => {
      registrationFields.EmployerID = "";
      registrationFields.AssociationID = "";
      registrationFields.VeteranID = "";
      enrollmentOption_ID.registrationCode = "";
      enrollmentOption_ID.employers = "";
      enrollmentOption_ID.association = "";
      enrollmentOption_ID.individual = "";
      enrollmentOption_ID.veterans = "";
      if (newEnrollmentOption === "employer") {
        registrationFields.EmployerID = employers.value[0];
      } else if (newEnrollmentOption === "association") {
        registrationFields.AssociationID = associations.value[0];
      } else if (newEnrollmentOption === "veteran") {
        registrationFields.VeteranID = veterans.value[0];
      }
    });
    const legalClients = ["TLP"];
    const isLegalClient = ref(false);
    const clientID = ref("");
    const registrationText = computed(() => {
      return legalClients.includes(clientID.value) ? "Which portal would you like to register for? Select Join Texas Legal to enroll." : "Which portal would you like to register for?";
    });
    const close = () => {
      showModal.value = false;
    };
    const groupList = ref(Array());
    const showModal = ref(false);
    const onGroupSelect = (group) => {
      registrationFields.Subscriber_ID = group.Subscriber_ID;
      registrationFields.Member_Seq = group.Member_Seq;
      showModal.value = false;
      ValAndNxt();
    };
    const updateConfigsAndValidate = (configs2, validationFields) => {
      validation$ = useVuelidate(registrationValidator.getValidationStepRules(registrationFields.Portal, configs2), validationFields);
    };
    const onUseMedicalIdCheck = (useMedicalId) => {
      Configs.USE_MEDICAL_ID = useMedicalId;
      updateConfigsAndValidate(Configs, registrationFields);
    };
    const checkboxClicked = ref(false);
    const useAlternateRegistration = (useProviderAlternate) => {
      Configs.PROVIDER_ALT = useProviderAlternate;
      checkboxClicked.value = true;
      updateConfigsAndValidate(Configs, registrationFields);
    };
    const maskMTFullSsn = ref(true);
    const maskMTLastFour = ref(true);
    const maskOEFullSsn = ref(true);
    const toggleMaskSSN = (toHide) => {
      switch (toHide) {
        case "MT_FULL_SSN":
          maskMTFullSsn.value = !maskMTFullSsn.value;
          break;
        case "MT_LAST_FOUR_SSN":
          maskMTLastFour.value = !maskMTLastFour.value;
          break;
        case "OE_FULL_SSN":
          maskOEFullSsn.value = !maskOEFullSsn.value;
          break;
      }
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$6, [
        createBaseVNode("div", _hoisted_2$6, [
          currentStep.value !== 3 ? (openBlock(), createElementBlock("h1", _hoisted_3$5, "Register")) : createCommentVNode("", true),
          createBaseVNode("div", _hoisted_4$3, [
            currentStep.value > 0 && currentStep.value !== 3 ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(formSteps.value, (form, index2) => {
              return openBlock(), createElementBlock("span", {
                class: normalizeClass(["progress-step", { "active": index2 === currentStep.value - 1, "completed": index2 < currentStep.value - 1 }]),
                key: index2
              }, [
                createTextVNode(toDisplayString(form) + " ", 1),
                index2 < formSteps.value.length - 1 ? (openBlock(), createElementBlock("span", _hoisted_5$2)) : createCommentVNode("", true)
              ], 2);
            }), 128)) : createCommentVNode("", true)
          ]),
          createBaseVNode("p", null, [
            createBaseVNode("span", {
              innerHTML: Config_Directions.REG_CONTACT_MESSAGE
            }, null, 8, _hoisted_6$2)
          ]),
          currentStep.value === 0 ? (openBlock(), createElementBlock("p", _hoisted_7$2, toDisplayString(unref(registrationText)), 1)) : createCommentVNode("", true),
          currentStep.value === 0 ? withDirectives((openBlock(), createElementBlock("select", {
            key: 2,
            class: "portal-select",
            "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => selectedPortal.value = $event)
          }, [
            _hoisted_8$1,
            (openBlock(true), createElementBlock(Fragment, null, renderList(selectPortals.value, (portal) => {
              return openBlock(), createElementBlock("option", {
                value: portal.value
              }, toDisplayString(portal.text), 9, _hoisted_9$1);
            }), 256))
          ], 512)), [
            [vModelSelect, selectedPortal.value]
          ]) : createCommentVNode("", true),
          currentStep.value === 1 && selectedPortal.value === "REG_MT" ? (openBlock(), createElementBlock("form", _hoisted_10$1, [
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_MT")?.text), 1),
            createBaseVNode("p", _hoisted_11$1, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_MT
              }, null, 8, _hoisted_12)
            ]),
            Configs.REG_MT_ALLOW_MEDICAL_ID === "YES" ? (openBlock(), createElementBlock("div", _hoisted_13, [
              createVNode(Checkbox, { onIsChecked: onUseMedicalIdCheck }),
              createTextVNode("Register with Medical ID Card Number ")
            ])) : createCommentVNode("", true),
            Configs.USE_MEDICAL_ID ? (openBlock(), createElementBlock("div", _hoisted_14, [
              _hoisted_15,
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => registrationFields.MedicalIDCardNumber = $event)
              }, null, 512), [
                [vModelText, registrationFields.MedicalIDCardNumber]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).MedicalIDCardNumber.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ])) : (openBlock(), createElementBlock("div", _hoisted_16, [
              Configs.REG_MT_USE_SSN === "YES" && Configs.REG_MT_USE_FULL_SSN === "YES" ? (openBlock(), createElementBlock("div", _hoisted_17, [
                _hoisted_18,
                createBaseVNode("div", _hoisted_19, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: maskMTFullSsn.value ? "password" : "text",
                    "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => registrationFields.SSN = $event),
                    onInput: _cache[3] || (_cache[3] = (event) => registrationFields.SSN = event.target?.value.replace(/\D/g, "").slice(0, 9))
                  }, null, 40, _hoisted_20), [
                    [vModelDynamic, registrationFields.SSN]
                  ]),
                  createBaseVNode("button", {
                    type: "button",
                    class: "input-icon",
                    onClick: _cache[4] || (_cache[4] = ($event) => toggleMaskSSN("MT_FULL_SSN"))
                  }, [
                    maskMTFullSsn.value ? (openBlock(), createElementBlock("i", _hoisted_21)) : (openBlock(), createElementBlock("i", _hoisted_22))
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).SSN.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true),
              Configs.REG_MT_USE_SSN === "YES" && Configs.REG_MT_USE_FULL_SSN === "NO" ? (openBlock(), createElementBlock("div", _hoisted_23, [
                _hoisted_24,
                createBaseVNode("div", _hoisted_25, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: maskMTLastFour.value ? "password" : "text",
                    "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => registrationFields.SsnLastFour = $event),
                    onInput: _cache[6] || (_cache[6] = (event) => registrationFields.SsnLastFour = event.target?.value.replace(/\D/g, "").slice(0, 4))
                  }, null, 40, _hoisted_26), [
                    [vModelDynamic, registrationFields.SsnLastFour]
                  ]),
                  createBaseVNode("button", {
                    type: "button",
                    class: "input-icon",
                    onClick: _cache[7] || (_cache[7] = ($event) => toggleMaskSSN("MT_LAST_FOUR_SSN"))
                  }, [
                    maskMTLastFour.value ? (openBlock(), createElementBlock("i", _hoisted_27)) : (openBlock(), createElementBlock("i", _hoisted_28))
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).SsnLastFour.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true),
              createBaseVNode("div", null, [
                _hoisted_29,
                createBaseVNode("div", _hoisted_30, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "date",
                    "onUpdate:modelValue": _cache[8] || (_cache[8] = ($event) => registrationFields.DOB = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.DOB]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).DOB.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ]),
              Configs.REG_MT_HIDE_REG_CODE === "NO" ? (openBlock(), createElementBlock("div", _hoisted_31, [
                createBaseVNode("p", _hoisted_32, toDisplayString(Configs.REG_MT_REG_CODE_LABEL !== "" ? Configs.REG_MT_REG_CODE_LABEL : "Registration Code"), 1),
                createBaseVNode("div", _hoisted_33, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "text",
                    "onUpdate:modelValue": _cache[9] || (_cache[9] = ($event) => registrationFields.RegCode = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.RegCode]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true)
            ]))
          ])) : createCommentVNode("", true),
          currentStep.value === 1 && selectedPortal.value === "REG_PT" ? (openBlock(), createElementBlock("form", _hoisted_34, [
            createBaseVNode("p", _hoisted_35, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_PT
              }, null, 8, _hoisted_36)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_PT")?.text), 1),
            Configs.EX_USE_ALT_PROVIDER_REG === "YES" && Configs.EX_USE_ALT_PROVIDER_REG_ONLY === "NO" ? (openBlock(), createElementBlock("div", _hoisted_37, [
              createVNode(Checkbox, { onIsChecked: useAlternateRegistration }),
              _hoisted_38
            ])) : createCommentVNode("", true),
            Configs.PROVIDER_ALT && checkboxClicked.value ? (openBlock(), createElementBlock("div", _hoisted_39, [
              _hoisted_40,
              createBaseVNode("p", _hoisted_41, toDisplayString(Configs.PT_ALT_NAME_FOR_TAX_ID !== "" ? Configs.PT_ALT_NAME_FOR_TAX_ID : "Tax ID"), 1),
              createBaseVNode("div", _hoisted_42, [
                withDirectives(createBaseVNode("input", {
                  class: "input-box",
                  type: "text",
                  "onUpdate:modelValue": _cache[10] || (_cache[10] = ($event) => registrationFields.TaxID = $event)
                }, null, 512), [
                  [vModelText, registrationFields.TaxID]
                ]),
                (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).TaxID.$errors, (e) => {
                  return openBlock(), createBlock(_sfc_main$l, {
                    "error-message": e.$message.toString()
                  }, null, 8, ["error-message"]);
                }), 256))
              ]),
              _hoisted_43,
              createBaseVNode("div", _hoisted_44, [
                withDirectives(createBaseVNode("input", {
                  class: "input-box",
                  type: "text",
                  "onUpdate:modelValue": _cache[11] || (_cache[11] = ($event) => registrationFields.ProvZip = $event)
                }, null, 512), [
                  [vModelText, registrationFields.ProvZip]
                ]),
                (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).ProvZip.$errors, (e) => {
                  return openBlock(), createBlock(_sfc_main$l, {
                    "error-message": e.$message.toString()
                  }, null, 8, ["error-message"]);
                }), 256))
              ])
            ])) : (openBlock(), createElementBlock("div", _hoisted_45, [
              Configs.EX_USE_ALT_PROVIDER_REG_ONLY === "NO" ? (openBlock(), createElementBlock("div", _hoisted_46, [
                Configs.PT_USE_NPI_REGISTRATION === "YES" ? (openBlock(), createElementBlock("div", _hoisted_47, [
                  _hoisted_48,
                  createBaseVNode("div", _hoisted_49, [
                    withDirectives(createBaseVNode("input", {
                      class: "input-box",
                      type: "text",
                      "onUpdate:modelValue": _cache[12] || (_cache[12] = ($event) => registrationFields.NPI = $event)
                    }, null, 512), [
                      [vModelText, registrationFields.NPI]
                    ]),
                    (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).NPI.$errors, (e) => {
                      return openBlock(), createBlock(_sfc_main$l, {
                        "error-message": e.$message.toString()
                      }, null, 8, ["error-message"]);
                    }), 256))
                  ])
                ])) : createCommentVNode("", true),
                createBaseVNode("div", null, [
                  _hoisted_50,
                  createBaseVNode("div", _hoisted_51, [
                    withDirectives(createBaseVNode("input", {
                      class: "input-box",
                      type: "text",
                      "onUpdate:modelValue": _cache[13] || (_cache[13] = ($event) => registrationFields.RegCode = $event)
                    }, null, 512), [
                      [vModelText, registrationFields.RegCode]
                    ]),
                    (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                      return openBlock(), createBlock(_sfc_main$l, {
                        "error-message": e.$message.toString()
                      }, null, 8, ["error-message"]);
                    }), 256))
                  ])
                ]),
                createBaseVNode("div", null, [
                  createBaseVNode("p", _hoisted_52, toDisplayString(Configs.PT_ALT_NAME_FOR_TAX_ID !== "" ? Configs.PT_ALT_NAME_FOR_TAX_ID : "Tax ID"), 1),
                  createBaseVNode("div", _hoisted_53, [
                    withDirectives(createBaseVNode("input", {
                      class: "input-box",
                      type: "text",
                      "onUpdate:modelValue": _cache[14] || (_cache[14] = ($event) => registrationFields.TaxID = $event)
                    }, null, 512), [
                      [vModelText, registrationFields.TaxID]
                    ]),
                    (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).TaxID.$errors, (e) => {
                      return openBlock(), createBlock(_sfc_main$l, {
                        "error-message": e.$message.toString()
                      }, null, 8, ["error-message"]);
                    }), 256))
                  ])
                ]),
                createBaseVNode("div", null, [
                  _hoisted_54,
                  createBaseVNode("div", _hoisted_55, [
                    withDirectives(createBaseVNode("input", {
                      class: "input-box",
                      type: "text",
                      "onUpdate:modelValue": _cache[15] || (_cache[15] = ($event) => registrationFields.ProvZip = $event)
                    }, null, 512), [
                      [vModelText, registrationFields.ProvZip]
                    ]),
                    (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).ProvZip.$errors, (e) => {
                      return openBlock(), createBlock(_sfc_main$l, {
                        "error-message": e.$message.toString()
                      }, null, 8, ["error-message"]);
                    }), 256))
                  ])
                ])
              ])) : createCommentVNode("", true)
            ])),
            Configs.REG_HIDE_PROVIDER_LOOKUP_BUTTON === "NO" ? (openBlock(), createElementBlock("div", _hoisted_56, [
              createVNode(Button, {
                variant: "secondary",
                onClick: _cache[16] || (_cache[16] = ($event) => showProviderLookup.value = true)
              }, {
                default: withCtx(() => [
                  createTextVNode("Add Provider(s)")
                ]),
                _: 1
              })
            ])) : createCommentVNode("", true),
            showProviderLookup.value ? (openBlock(), createBlock(ProviderLookup, {
              key: 4,
              onClose: _cache[17] || (_cache[17] = ($event) => showProviderLookup.value = false),
              onOnSubmit: providerLookupSubmit
            })) : createCommentVNode("", true),
            createBaseVNode("div", _hoisted_57, [
              providers.length > 0 ? (openBlock(), createElementBlock("h6", _hoisted_58, "Selected Providers:")) : createCommentVNode("", true),
              (openBlock(true), createElementBlock(Fragment, null, renderList(providers, (prov) => {
                return openBlock(), createElementBlock("div", null, [
                  createBaseVNode("p", _hoisted_59, [
                    createTextVNode(toDisplayString(prov.Federal_ID) + ": " + toDisplayString(prov.First_Name) + " " + toDisplayString(prov.Last_Name) + " ", 1),
                    createBaseVNode("i", {
                      class: "ri-delete-bin-line",
                      onClick: ($event) => removeProvider(prov.Provider_ID)
                    }, null, 8, _hoisted_60)
                  ])
                ]);
              }), 256))
            ])
          ])) : createCommentVNode("", true),
          currentStep.value === 1 && selectedPortal.value === "REG_PE" ? (openBlock(), createElementBlock("form", _hoisted_61, [
            createBaseVNode("p", _hoisted_62, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_PE
              }, null, 8, _hoisted_63)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_PE")?.text), 1),
            _hoisted_64,
            createBaseVNode("div", _hoisted_65, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[18] || (_cache[18] = ($event) => registrationFields.RegCode = $event)
              }, null, 512), [
                [vModelText, registrationFields.RegCode]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ])
          ])) : createCommentVNode("", true),
          !isLegalClient.value && currentStep.value === 1 && selectedPortal.value === "REG_OE" ? (openBlock(), createElementBlock("form", _hoisted_66, [
            createBaseVNode("p", _hoisted_67, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_OE
              }, null, 8, _hoisted_68)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_OE")?.text), 1),
            _hoisted_69,
            createBaseVNode("div", _hoisted_70, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[19] || (_cache[19] = ($event) => registrationFields.RegCode = $event)
              }, null, 512), [
                [vModelText, registrationFields.RegCode]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            _hoisted_71,
            createBaseVNode("div", _hoisted_72, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: maskOEFullSsn.value ? "password" : "text",
                "onUpdate:modelValue": _cache[20] || (_cache[20] = ($event) => registrationFields.SSN = $event),
                onInput: _cache[21] || (_cache[21] = (event) => registrationFields.SSN = event.target?.value.replace(/\D/g, "").slice(0, 9))
              }, null, 40, _hoisted_73), [
                [vModelDynamic, registrationFields.SSN]
              ]),
              createBaseVNode("button", {
                type: "button",
                class: "input-icon",
                onClick: _cache[22] || (_cache[22] = ($event) => toggleMaskSSN("OE_FULL_SSN"))
              }, [
                maskOEFullSsn.value ? (openBlock(), createElementBlock("i", _hoisted_74)) : (openBlock(), createElementBlock("i", _hoisted_75))
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).SSN.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            _hoisted_76,
            createBaseVNode("div", _hoisted_77, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "date",
                "onUpdate:modelValue": _cache[23] || (_cache[23] = ($event) => registrationFields.DOB = $event)
              }, null, 512), [
                [vModelText, registrationFields.DOB]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).DOB.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ])
          ])) : isLegalClient.value && selectedPortal.value === "REG_OE" && currentStep.value === 1 ? (openBlock(), createElementBlock("form", _hoisted_78, [
            createBaseVNode("p", _hoisted_79, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_OE
              }, null, 8, _hoisted_80)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_OE")?.text), 1),
            createBaseVNode("form", _hoisted_81, [
              createBaseVNode("div", _hoisted_82, [
                _hoisted_83,
                withDirectives(createBaseVNode("select", {
                  class: "portal-select-TLP",
                  "onUpdate:modelValue": _cache[24] || (_cache[24] = ($event) => enrollmentOption.value = $event)
                }, [
                  (openBlock(true), createElementBlock(Fragment, null, renderList(selectEnrollmentOptions.value, (option) => {
                    return openBlock(), createElementBlock("option", {
                      key: option.value,
                      value: option.value
                    }, toDisplayString(option.text), 9, _hoisted_84);
                  }), 128))
                ], 512), [
                  [vModelSelect, enrollmentOption.value]
                ])
              ]),
              enrollmentOption.value === "registrationCode" ? (openBlock(), createElementBlock("div", _hoisted_85, [
                _hoisted_86,
                createBaseVNode("div", _hoisted_87, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "text",
                    "onUpdate:modelValue": _cache[25] || (_cache[25] = ($event) => registrationFields.RegCode = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.RegCode]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ]),
                _hoisted_88,
                createBaseVNode("div", _hoisted_89, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "date",
                    "onUpdate:modelValue": _cache[26] || (_cache[26] = ($event) => registrationFields.DOB = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.DOB]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).DOB.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true),
              enrollmentOption.value === "employer" ? (openBlock(), createElementBlock("div", _hoisted_90, [
                _hoisted_91,
                createBaseVNode("div", _hoisted_92, [
                  withDirectives(createBaseVNode("select", {
                    class: "portal-select-tlp",
                    "onUpdate:modelValue": _cache[27] || (_cache[27] = ($event) => registrationFields.EmployerID = $event)
                  }, [
                    (openBlock(true), createElementBlock(Fragment, null, renderList(employers.value, (employer) => {
                      return openBlock(), createElementBlock("option", {
                        key: employer,
                        value: employer.Description
                      }, toDisplayString(employer.Description), 9, _hoisted_93);
                    }), 128))
                  ], 512), [
                    [vModelSelect, registrationFields.EmployerID]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).EmployerID.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ]),
                _hoisted_94,
                createBaseVNode("div", _hoisted_95, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "date",
                    "onUpdate:modelValue": _cache[28] || (_cache[28] = ($event) => registrationFields.DOB = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.DOB]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).DOB.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true),
              enrollmentOption.value === "association" ? (openBlock(), createElementBlock("div", _hoisted_96, [
                _hoisted_97,
                createBaseVNode("div", _hoisted_98, [
                  withDirectives(createBaseVNode("select", {
                    class: "portal-select-tlp",
                    "onUpdate:modelValue": _cache[29] || (_cache[29] = ($event) => registrationFields.AssociationID = $event)
                  }, [
                    (openBlock(true), createElementBlock(Fragment, null, renderList(associations.value, (association) => {
                      return openBlock(), createElementBlock("option", {
                        key: association,
                        value: association.Description
                      }, toDisplayString(association.Description), 9, _hoisted_99);
                    }), 128))
                  ], 512), [
                    [vModelSelect, registrationFields.AssociationID]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).AssociationID.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ]),
                _hoisted_100,
                createBaseVNode("div", _hoisted_101, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "date",
                    "onUpdate:modelValue": _cache[30] || (_cache[30] = ($event) => registrationFields.DOB = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.DOB]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).DOB.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true),
              enrollmentOption.value === "veteran" ? (openBlock(), createElementBlock("div", _hoisted_102, [
                _hoisted_103,
                createBaseVNode("div", _hoisted_104, [
                  withDirectives(createBaseVNode("select", {
                    class: "portal-select-tlp",
                    "onUpdate:modelValue": _cache[31] || (_cache[31] = ($event) => registrationFields.VeteranID = $event)
                  }, [
                    (openBlock(true), createElementBlock(Fragment, null, renderList(veterans.value, (veteran) => {
                      return openBlock(), createElementBlock("option", {
                        key: veteran,
                        value: veteran.Description
                      }, toDisplayString(veteran.Description), 9, _hoisted_105);
                    }), 128))
                  ], 512), [
                    [vModelSelect, registrationFields.VeteranID]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).VeteranID.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ]),
                _hoisted_106,
                createBaseVNode("div", _hoisted_107, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "date",
                    "onUpdate:modelValue": _cache[32] || (_cache[32] = ($event) => registrationFields.DOB = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.DOB]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).DOB.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true),
              enrollmentOption.value === "individual" ? (openBlock(), createElementBlock("div", _hoisted_108, [
                _hoisted_109,
                createBaseVNode("div", _hoisted_110, [
                  withDirectives(createBaseVNode("input", {
                    class: "input-box",
                    type: "date",
                    "onUpdate:modelValue": _cache[33] || (_cache[33] = ($event) => registrationFields.DOB = $event)
                  }, null, 512), [
                    [vModelText, registrationFields.DOB]
                  ]),
                  (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).DOB.$errors, (e) => {
                    return openBlock(), createBlock(_sfc_main$l, {
                      "error-message": e.$message.toString()
                    }, null, 8, ["error-message"]);
                  }), 256))
                ])
              ])) : createCommentVNode("", true)
            ])
          ])) : createCommentVNode("", true),
          currentStep.value === 1 && selectedPortal.value === "REG_ET" ? (openBlock(), createElementBlock("form", _hoisted_111, [
            createBaseVNode("p", _hoisted_112, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_ET
              }, null, 8, _hoisted_113)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_ET")?.text), 1),
            _hoisted_114,
            createBaseVNode("div", _hoisted_115, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[34] || (_cache[34] = ($event) => registrationFields.RegCode = $event)
              }, null, 512), [
                [vModelText, registrationFields.RegCode]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ])
          ])) : createCommentVNode("", true),
          currentStep.value === 1 && selectedPortal.value === "REG_AT" ? (openBlock(), createElementBlock("form", _hoisted_116, [
            createBaseVNode("p", _hoisted_117, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_AT
              }, null, 8, _hoisted_118)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_AT")?.text), 1),
            _hoisted_119,
            createBaseVNode("div", _hoisted_120, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[35] || (_cache[35] = ($event) => registrationFields.RegCode = $event)
              }, null, 512), [
                [vModelText, registrationFields.RegCode]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ])
          ])) : createCommentVNode("", true),
          currentStep.value === 1 && selectedPortal.value === "REG_CS" ? (openBlock(), createElementBlock("form", _hoisted_121, [
            createBaseVNode("p", _hoisted_122, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_CS
              }, null, 8, _hoisted_123)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_CS")?.text), 1),
            _hoisted_124,
            createBaseVNode("div", _hoisted_125, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[36] || (_cache[36] = ($event) => registrationFields.RegCode = $event)
              }, null, 512), [
                [vModelText, registrationFields.RegCode]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ])
          ])) : createCommentVNode("", true),
          currentStep.value === 1 && selectedPortal.value === "REG_BT" ? (openBlock(), createElementBlock("form", _hoisted_126, [
            createBaseVNode("p", _hoisted_127, [
              createBaseVNode("span", {
                innerHTML: Config_Directions.REG_DIRECTIONS_BT
              }, null, 8, _hoisted_128)
            ]),
            createBaseVNode("h3", null, toDisplayString(selectPortals.value.find((x) => x.value === "REG_BT")?.text), 1),
            _hoisted_129,
            createBaseVNode("div", _hoisted_130, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[37] || (_cache[37] = ($event) => registrationFields.RegCode = $event)
              }, null, 512), [
                [vModelText, registrationFields.RegCode]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(validation$).RegCode.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ])
          ])) : createCommentVNode("", true),
          currentStep.value === 2 ? (openBlock(), createElementBlock("form", _hoisted_131, [
            _hoisted_132,
            createBaseVNode("div", _hoisted_133, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[38] || (_cache[38] = ($event) => registrationFields.FirstName = $event)
              }, null, 512), [
                [vModelText, registrationFields.FirstName]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).FirstName.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            _hoisted_134,
            createBaseVNode("div", _hoisted_135, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[39] || (_cache[39] = ($event) => registrationFields.LastName = $event)
              }, null, 512), [
                [vModelText, registrationFields.LastName]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).LastName.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            _hoisted_136,
            createBaseVNode("div", _hoisted_137, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "text",
                "onUpdate:modelValue": _cache[40] || (_cache[40] = ($event) => registrationFields.UserName = $event)
              }, null, 512), [
                [vModelText, registrationFields.UserName]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).UserName.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            _hoisted_138,
            createBaseVNode("div", _hoisted_139, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "email",
                "onUpdate:modelValue": _cache[41] || (_cache[41] = ($event) => registrationFields.UserEmail = $event)
              }, null, 512), [
                [vModelText, registrationFields.UserEmail]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).UserEmail.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            selectedPortal.value === "REG_BT" || selectedPortal.value === "REG_MT" ? (openBlock(), createElementBlock("div", _hoisted_140, [
              _hoisted_141,
              createBaseVNode("div", _hoisted_142, [
                _hoisted_143,
                withDirectives(createBaseVNode("input", {
                  class: "input-box",
                  type: "text",
                  "onUpdate:modelValue": _cache[42] || (_cache[42] = ($event) => registrationFields.PhoneNumber = $event),
                  placeholder: "999-999-9999"
                }, null, 512), [
                  [vModelText, registrationFields.PhoneNumber]
                ]),
                (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).PhoneNumber.$errors, (e) => {
                  return openBlock(), createBlock(_sfc_main$l, {
                    "error-message": e.$message.toString()
                  }, null, 8, ["error-message"]);
                }), 256))
              ])
            ])) : createCommentVNode("", true),
            _hoisted_144,
            createBaseVNode("div", _hoisted_145, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "password",
                "onUpdate:modelValue": _cache[43] || (_cache[43] = ($event) => registrationFields.Password = $event)
              }, null, 512), [
                [vModelText, registrationFields.Password]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).Password.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            _hoisted_146,
            createBaseVNode("div", _hoisted_147, [
              withDirectives(createBaseVNode("input", {
                class: "input-box",
                type: "password",
                "onUpdate:modelValue": _cache[44] || (_cache[44] = ($event) => registrationFields.ConfirmPassword = $event)
              }, null, 512), [
                [vModelText, registrationFields.ConfirmPassword]
              ]),
              (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).ConfirmPassword.$errors, (e) => {
                return openBlock(), createBlock(_sfc_main$l, {
                  "error-message": e.$message.toString()
                }, null, 8, ["error-message"]);
              }), 256))
            ]),
            selectedPortal.value === "REG_AT" ? (openBlock(), createElementBlock("div", _hoisted_148, [
              _hoisted_149,
              createBaseVNode("div", _hoisted_150, [
                withDirectives(createBaseVNode("input", {
                  class: "input-box",
                  type: "text",
                  "onUpdate:modelValue": _cache[45] || (_cache[45] = ($event) => registrationFields.ImpersonationUserName = $event)
                }, null, 512), [
                  [vModelText, registrationFields.ImpersonationUserName]
                ]),
                (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).ImpersonationUserName.$errors, (e) => {
                  return openBlock(), createBlock(_sfc_main$l, {
                    "error-message": e.$message.toString()
                  }, null, 8, ["error-message"]);
                }), 256))
              ]),
              _hoisted_151,
              createBaseVNode("div", _hoisted_152, [
                withDirectives(createBaseVNode("input", {
                  class: "input-box",
                  type: "password",
                  "onUpdate:modelValue": _cache[46] || (_cache[46] = ($event) => registrationFields.ImpersonationPassword = $event)
                }, null, 512), [
                  [vModelText, registrationFields.ImpersonationPassword]
                ]),
                (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).ImpersonationPassword.$errors, (e) => {
                  return openBlock(), createBlock(_sfc_main$l, {
                    "error-message": e.$message.toString()
                  }, null, 8, ["error-message"]);
                }), 256))
              ]),
              _hoisted_153,
              createBaseVNode("div", _hoisted_154, [
                withDirectives(createBaseVNode("input", {
                  class: "input-box",
                  type: "password",
                  "onUpdate:modelValue": _cache[47] || (_cache[47] = ($event) => registrationFields.ConfirmImpersonationPassword = $event)
                }, null, 512), [
                  [vModelText, registrationFields.ConfirmImpersonationPassword]
                ]),
                (openBlock(true), createElementBlock(Fragment, null, renderList(unref(registration$).ConfirmImpersonationPassword.$errors, (e) => {
                  return openBlock(), createBlock(_sfc_main$l, {
                    "error-message": e.$message.toString()
                  }, null, 8, ["error-message"]);
                }), 256))
              ])
            ])) : createCommentVNode("", true)
          ])) : createCommentVNode("", true),
          showTerms.value ? (openBlock(), createBlock(TermsAndConditions, {
            key: 13,
            onCloseTermsModal: closeTermsAndConditionsModal,
            onAcceptedTerms: acceptedTermsAndConditions
          })) : createCommentVNode("", true),
          currentStep.value === 3 ? (openBlock(), createElementBlock("div", _hoisted_155, [
            createVNode(Banner, {
              bannerVariant: "success",
              bannerTitle: "Registration Successful",
              bannerBody: "Thank you for registering. An activation email has been sent to your email address. Please check your email to activate your account.",
              hideCloseButton: true,
              class: "confirm-banner"
            }, null, 8, ["bannerBody"]),
            createVNode(Button, { onClick: onSubmit }, {
              default: withCtx(() => [
                createTextVNode("Go to Login")
              ]),
              _: 1
            })
          ])) : createCommentVNode("", true),
          createBaseVNode("div", {
            class: normalizeClass([{ "btn-on-top": currentStep.value === 0 }, "btn-container"])
          }, [
            currentStep.value !== 0 && currentStep.value !== 3 ? (openBlock(), createBlock(Button, {
              key: 0,
              class: "btn",
              onClick: goBack,
              variant: "secondary"
            }, {
              default: withCtx(() => [
                createTextVNode("Back")
              ]),
              _: 1
            })) : createCommentVNode("", true),
            currentStep.value !== 2 && currentStep.value !== 3 ? (openBlock(), createBlock(Button, {
              key: 1,
              class: "btn",
              onClick: ValAndNxt,
              disabled: currentStep.value === 0 && !selectedPortal.value
            }, {
              default: withCtx(() => [
                createTextVNode(" Next ")
              ]),
              _: 1
            }, 8, ["disabled"])) : createCommentVNode("", true),
            currentStep.value === 0 ? (openBlock(), createElementBlock("button", {
              key: 2,
              class: "sign-in-instead",
              type: "button",
              onClick: onSignInClick
            }, "Sign in Instead")) : createCommentVNode("", true),
            currentStep.value === 2 ? (openBlock(), createBlock(Button, {
              key: 3,
              class: "btn",
              onClick: submitForm
            }, {
              default: withCtx(() => [
                createTextVNode(" Submit ")
              ]),
              _: 1
            })) : createCommentVNode("", true),
            errorMessage.value ? (openBlock(), createElementBlock("div", _hoisted_156, toDisplayString(errorMessage.value), 1)) : createCommentVNode("", true)
          ], 2),
          createVNode(GroupSelectionModal, {
            modelValue: showModal.value,
            onGroupSelected: onGroupSelect,
            groups: groupList.value,
            onClose: close
          }, null, 8, ["modelValue", "groups"])
        ])
      ]);
    };
  }
});
const Registration_vue_vue_type_style_index_0_scoped_58a44032_lang = "";
const Registration = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["__scopeId", "data-v-58a44032"]]);
const Registration$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: Registration
}, Symbol.toStringTag, { value: "Module" }));
class ModalService {
  constructor() {
    __publicField(this, "isVisible", ref(false));
    __publicField(this, "options", shallowRef(null));
  }
  show(options) {
    this.options.value = options;
    this.isVisible.value = true;
  }
  hide() {
    this.isVisible.value = false;
    this.options.value = null;
  }
}
const modalService = new ModalService();
class PasswordValidator {
  constructor() {
    __publicField(this, "vbaCoreSecurityAdvanced", new VbaCoreSecurityAdvanced());
    __publicField(this, "passwordRules", {
      password: {},
      confirmPassword: {
        required,
        sameAsPassword: common.withMessage(
          "Passwords do not match",
          this.confirmPasswordValidation
        )
      }
    });
  }
  passwordValidation(regexString) {
    const regex2 = new RegExp(regexString);
    return common.regex(regex2);
  }
  confirmPasswordValidation(value, password) {
    const same = sameAs(password.password);
    const match = value == password.password;
    return same && match;
  }
  async useAdvancedSec() {
    await this.vbaCoreSecurityAdvanced.initializeConfigs().then(() => {
      const length = Number(this.vbaCoreSecurityAdvanced.getMinPasswordLength());
      if (this.vbaCoreSecurityAdvanced.getAdvancedSec() == "YES") {
        this.passwordRules.password = {
          required,
          validRegex: common.withMessage(
            this.vbaCoreSecurityAdvanced.getPasswordComplexityMessage(),
            this.passwordValidation(this.vbaCoreSecurityAdvanced.getPasswordRegex())
          ),
          validLength: common.withMessage(
            "Password must be at least " + length + " characters long.",
            minLength(length)
          )
        };
      } else {
        this.passwordRules.password = { required };
      }
    });
  }
  async getPasswordRules() {
    await this.useAdvancedSec();
    return this.passwordRules;
  }
}
const _withScopeId$3 = (n) => (pushScopeId("data-v-93b19a01"), n = n(), popScopeId(), n);
const _hoisted_1$5 = { class: "flex flex-col h-screen justify-center align-middle mt-4 pt-6 mx-auto w-2/3 container" };
const _hoisted_2$5 = { key: 0 };
const _hoisted_3$4 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createBaseVNode("h1", null, " Set Up Your Account ", -1));
const _hoisted_4$2 = { class: "w-full pt-2" };
const _hoisted_5$1 = { class: "mb-5" };
const _hoisted_6$1 = { class: "mb-5" };
const _hoisted_7$1 = { class: "mb-5" };
const _hoisted_8 = { class: "flex justify-end" };
const _hoisted_9 = { key: 1 };
const _hoisted_10 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createBaseVNode("h1", null, " Account Activated ", -1));
const _hoisted_11 = /* @__PURE__ */ _withScopeId$3(() => /* @__PURE__ */ createBaseVNode("p", null, [
  /* @__PURE__ */ createBaseVNode("a", { href: "/" }, "Click here to login")
], -1));
const _sfc_main$5 = /* @__PURE__ */ defineComponent({
  __name: "MemberRepAccountSetup",
  async setup(__props) {
    let __temp, __restore;
    const toast = useToast();
    const router2 = useRouter();
    const apiService = new APIService();
    const passwordValidator = new PasswordValidator();
    const state = reactive({
      username: "",
      password: "",
      confirmPassword: ""
    });
    const token = ref(router2.currentRoute.value.query.token?.toString() || "");
    const accountCreated = ref(false);
    const activationMessage = ref("Your account is now active. Please log in using the link below.");
    let v$ = useVuelidate();
    v$ = useVuelidate(([__temp, __restore] = withAsyncContext(() => passwordValidator.getPasswordRules()), __temp = await __temp, __restore(), __temp), state);
    const validateForm = async () => {
      let isValid = await v$.value.$validate();
      if (!isValid) {
        return;
      } else {
        const payload = {
          token: token.value,
          username: state.username,
          password: state.password
        };
        apiService.postAccountInfo(payload).then((res) => {
          if (res.status !== 200) {
            toast.error(`Account update failed
User has already been registered.`);
            activationMessage.value = "Your account is already active. Please login at the link below.";
          }
          accountCreated.value = true;
        });
      }
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock("div", _hoisted_1$5, [
        !accountCreated.value ? (openBlock(), createElementBlock("div", _hoisted_2$5, [
          _hoisted_3$4,
          createBaseVNode("div", _hoisted_4$2, [
            createBaseVNode("form", null, [
              createBaseVNode("div", _hoisted_5$1, [
                createVNode(Input, {
                  id: "username",
                  label: "Username",
                  name: "username",
                  type: "text",
                  modelValue: state.username,
                  "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.username = $event),
                  placeholder: "Please enter desired Username",
                  required: ""
                }, null, 8, ["modelValue"])
              ]),
              createBaseVNode("div", _hoisted_6$1, [
                createVNode(Input, {
                  id: "new-password",
                  label: "New Password",
                  name: "new-password",
                  type: "password",
                  modelValue: state.password,
                  "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.password = $event),
                  placeholder: "Please enter your new password",
                  required: "",
                  useValidation: false,
                  onBlur: unref(v$).password.$validate,
                  errors: unref(v$).password.$errors
                }, null, 8, ["modelValue", "onBlur", "errors"])
              ]),
              createBaseVNode("div", _hoisted_7$1, [
                createVNode(Input, {
                  id: "confirm-password",
                  label: "Re-enter New Password",
                  name: "confirm-password",
                  type: "password",
                  modelValue: state.confirmPassword,
                  "onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => state.confirmPassword = $event),
                  placeholder: "Please re-enter your new password",
                  required: "",
                  useValidation: false,
                  onBlur: unref(v$).confirmPassword.$validate,
                  errors: unref(v$).confirmPassword.$errors,
                  onSubmit: validateForm
                }, null, 8, ["modelValue", "onBlur", "errors"])
              ])
            ])
          ]),
          createBaseVNode("div", _hoisted_8, [
            createVNode(Button, {
              isDisabled: false,
              onClick: validateForm
            }, {
              default: withCtx(() => [
                createTextVNode("SUBMIT")
              ]),
              _: 1
            })
          ])
        ])) : (openBlock(), createElementBlock("div", _hoisted_9, [
          _hoisted_10,
          createBaseVNode("p", null, toDisplayString(activationMessage.value), 1),
          _hoisted_11
        ]))
      ]);
    };
  }
});
const MemberRepAccountSetup_vue_vue_type_style_index_0_scoped_93b19a01_lang = "";
const MemberRepAccountSetup = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["__scopeId", "data-v-93b19a01"]]);
const MemberRepAccountSetup$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: MemberRepAccountSetup
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId$2 = (n) => (pushScopeId("data-v-a37018cb"), n = n(), popScopeId(), n);
const _hoisted_1$4 = {
  key: 0,
  class: "flex flex-col h-screen justify-center align-middle mt-4 pt-7 container"
};
const _hoisted_2$4 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createBaseVNode("h1", null, " Activate Your Account ", -1));
const _hoisted_3$3 = { class: "w-full" };
const _hoisted_4$1 = ["onSubmit"];
const _hoisted_5 = { class: "flex justify-end" };
const _hoisted_6 = { key: 1 };
const _hoisted_7 = /* @__PURE__ */ _withScopeId$2(() => /* @__PURE__ */ createBaseVNode("div", null, "Loading...", -1));
const _sfc_main$4 = /* @__PURE__ */ defineComponent({
  __name: "MemberRepActivate",
  props: {
    token: {
      type: String,
      default: ""
    }
  },
  setup(__props) {
    const props = __props;
    const toast = useToast();
    useRouter();
    const apiService = new APIService();
    const token = ref(props.token);
    const state = reactive({
      birthdate: "",
      activated: false
    });
    const rules = {
      birthdate: {
        required: common.withMessage("Birthdate is required", required)
      }
    };
    const v$ = useVuelidate(rules, state);
    onMounted(() => {
      apiService.getConfirmationStatus(token.value).then((res) => {
        state.activated = res;
      });
    });
    const validateForm = async () => {
      if (await !v$.value.$validate()) {
        return;
      } else {
        apiService.activateRepresentative(token.value, new Date(state.birthdate)).then((res) => {
          if (res.status === 404) {
            toast.error("Activation Failed\nPlease verify your information and try again.");
          } else {
            state.activated = true;
          }
        });
      }
    };
    return (_ctx, _cache) => {
      return !state.activated ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
        _hoisted_2$4,
        createBaseVNode("div", _hoisted_3$3, [
          createBaseVNode("form", {
            onSubmit: withModifiers(validateForm, ["prevent"])
          }, [
            createVNode(Input, {
              id: "birthdate",
              name: "birthdate",
              label: "Please enter the Members Birth Date",
              type: "date",
              modelValue: state.birthdate,
              "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.birthdate = $event),
              placeholder: "Please enter desired Username",
              onSubmit: validateForm,
              "is-error": unref(v$).birthdate.$error,
              useValidation: false
            }, null, 8, ["modelValue", "is-error"]),
            (openBlock(true), createElementBlock(Fragment, null, renderList(unref(v$).birthdate.$errors, (error) => {
              return openBlock(), createBlock(_sfc_main$l, {
                "error-message": error.$message.toString()
              }, null, 8, ["error-message"]);
            }), 256))
          ], 40, _hoisted_4$1)
        ]),
        createBaseVNode("div", _hoisted_5, [
          createVNode(Button, {
            isDisabled: false,
            onClick: validateForm
          }, {
            default: withCtx(() => [
              createTextVNode("ACTIVATE ACCOUNT")
            ]),
            _: 1
          })
        ])
      ])) : (openBlock(), createElementBlock("div", _hoisted_6, [
        (openBlock(), createBlock(Suspense, null, {
          fallback: withCtx(() => [
            _hoisted_7
          ]),
          default: withCtx(() => [
            createVNode(MemberRepAccountSetup)
          ]),
          _: 1
        }))
      ]));
    };
  }
});
const MemberRepActivate_vue_vue_type_style_index_0_scoped_a37018cb_lang = "";
const MemberRepActivate = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-a37018cb"]]);
const MemberRepActivate$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: MemberRepActivate
}, Symbol.toStringTag, { value: "Module" }));
const _hoisted_1$3 = { key: 0 };
const _hoisted_2$3 = { key: 1 };
const _sfc_main$3 = /* @__PURE__ */ defineComponent({
  __name: "Toast",
  props: {
    title: {
      type: String,
      default: ""
    },
    message: {
      type: String,
      default: ""
    }
  },
  setup(__props) {
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock(Fragment, null, [
        __props.title ? (openBlock(), createElementBlock("h4", _hoisted_1$3, toDisplayString(__props.title), 1)) : createCommentVNode("", true),
        __props.message ? (openBlock(), createElementBlock("p", _hoisted_2$3, toDisplayString(__props.message), 1)) : createCommentVNode("", true)
      ], 64);
    };
  }
});
const Toast_vue_vue_type_style_index_0_scoped_1007db32_lang = "";
const Toast = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["__scopeId", "data-v-1007db32"]]);
const _withScopeId$1 = (n) => (pushScopeId("data-v-f39c914e"), n = n(), popScopeId(), n);
const _hoisted_1$2 = {
  key: 0,
  class: "form-container"
};
const _hoisted_2$2 = /* @__PURE__ */ _withScopeId$1(() => /* @__PURE__ */ createBaseVNode("h1", null, "Reset Password", -1));
const _hoisted_3$2 = {
  key: 1,
  class: "password-reset-confirmation"
};
const _sfc_main$2 = /* @__PURE__ */ defineComponent({
  __name: "PasswordReset",
  props: {
    token: {
      type: String,
      default: ""
    }
  },
  async setup(__props) {
    let __temp, __restore;
    const props = __props;
    const apiService = new APIService();
    const passwordValidator = new PasswordValidator();
    const toast = useToast();
    const state = reactive({
      password: "",
      confirmPassword: ""
    });
    let validationToken = ref(props.token);
    let userGuid = ref("");
    let passwordResetSuccessful = ref(false);
    const onLoginClick = () => {
      window.location.href = "/";
    };
    let v$ = useVuelidate();
    v$ = useVuelidate(([__temp, __restore] = withAsyncContext(() => passwordValidator.getPasswordRules()), __temp = await __temp, __restore(), __temp), state);
    const resetPassword = async () => {
      try {
        let isValid = await v$.value.$validate();
        if (!isValid) {
          return;
        }
        let response;
        response = await apiService.resetPassword(validationToken.value, state.password, userGuid.value, "");
        if (response.Success) {
          toast.success("Password reset successfully");
          passwordResetSuccessful.value = true;
        } else {
          let toastError = {
            component: Toast,
            props: {
              title: "A Reset Error Has Occurred",
              message: ""
            }
          };
          if (response.message === "RESET_ERROR_USE_REG_CODE") {
            toastError.props.message = "Please use your Registration Code to reset, or contact your admin.";
            toast.error(toastError);
          } else {
            toastError.props.message = response.message;
            toast.error(toastError);
          }
        }
      } catch (error) {
        toast.error("Something went wrong. Please try again.");
      }
    };
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock(Fragment, null, [
        !unref(passwordResetSuccessful) ? (openBlock(), createElementBlock("div", _hoisted_1$2, [
          createBaseVNode("form", null, [
            _hoisted_2$2,
            createVNode(Input, {
              id: "new-password",
              label: "New Password",
              name: "new-password",
              type: "password",
              modelValue: state.password,
              "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => state.password = $event),
              placeholder: "Please enter your new password",
              required: "",
              useValidation: false,
              onBlur: unref(v$).password.$validate,
              errors: unref(v$).password.$errors
            }, null, 8, ["modelValue", "onBlur", "errors"]),
            createVNode(Input, {
              id: "confirm-password",
              label: "Confirm Password",
              name: "confirm-password",
              type: "password",
              modelValue: state.confirmPassword,
              "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => state.confirmPassword = $event),
              placeholder: "Please re-enter your new password",
              required: "",
              useValidation: false,
              onBlur: unref(v$).confirmPassword.$validate,
              errors: unref(v$).confirmPassword.$errors
            }, null, 8, ["modelValue", "onBlur", "errors"]),
            createVNode(Button, { onClick: resetPassword }, {
              default: withCtx(() => [
                createTextVNode("Reset Password")
              ]),
              _: 1
            })
          ])
        ])) : createCommentVNode("", true),
        unref(passwordResetSuccessful) ? (openBlock(), createElementBlock("div", _hoisted_3$2, [
          createVNode(Banner, {
            bannerVariant: "success",
            bannerTitle: "Success",
            bannerBody: "Your password has been reset successfully",
            hideCloseButton: true,
            class: "reset-banner"
          }),
          createVNode(Button, { onClick: onLoginClick }, {
            default: withCtx(() => [
              createTextVNode("Click here to Login")
            ]),
            _: 1
          })
        ])) : createCommentVNode("", true)
      ], 64);
    };
  }
});
const PasswordReset_vue_vue_type_style_index_0_scoped_f39c914e_lang = "";
const PasswordReset = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-f39c914e"]]);
const PasswordReset$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: PasswordReset
}, Symbol.toStringTag, { value: "Module" }));
const _hoisted_1$1 = { class: "banner-body" };
const _hoisted_2$1 = { class: "banner-text-area" };
const _hoisted_3$1 = { class: "banner-title" };
const _hoisted_4 = ["innerHTML"];
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
  __name: "LoginBannerMessages",
  setup(__props) {
    const apiService = new APIService();
    const banners = ref([]);
    apiService.getPublishedLoginAnnouncements().then((result) => {
      banners.value = result.filter((announcement) => announcement.Announcement_Type === "VBAGATEWAYLOGINMESSAGE");
    });
    const getBannerIcon = (bannerType) => {
      switch (bannerType) {
        case "NEGATIVE":
          return "ri-error-warning-line";
        case "WARNING":
          return "ri-alert-line";
        case "SUCCESS":
          return "ri-check-line";
        default:
          return "ri-information-line";
      }
    };
    return (_ctx, _cache) => {
      return openBlock(true), createElementBlock(Fragment, null, renderList(banners.value, (banner) => {
        return openBlock(), createElementBlock("div", {
          class: normalizeClass(["banner-container", banner.BannerType?.Banner_Type ?? "INFORMATION"])
        }, [
          createBaseVNode("div", _hoisted_1$1, [
            createBaseVNode("i", {
              class: normalizeClass(["banner-icon", [{ "title-present": banner.Announcement_Title }, getBannerIcon(banner.BannerType?.Banner_Type ?? "")]])
            }, null, 2),
            createBaseVNode("div", _hoisted_2$1, [
              createBaseVNode("div", _hoisted_3$1, toDisplayString(banner.Announcement_Title), 1),
              createBaseVNode("div", {
                class: "banner-message",
                innerHTML: unref(purify).sanitize(banner.Announcement_Body ?? "")
              }, null, 8, _hoisted_4)
            ])
          ])
        ], 2);
      }), 256);
    };
  }
});
const LoginBannerMessages_vue_vue_type_style_index_0_scoped_b9881794_lang = "";
const LoginBannerMessages = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-b9881794"]]);
const LoginBannerMessages$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
  __proto__: null,
  default: LoginBannerMessages
}, Symbol.toStringTag, { value: "Module" }));
const _withScopeId = (n) => (pushScopeId("data-v-f78a294a"), n = n(), popScopeId(), n);
const _hoisted_1 = { key: 0 };
const _hoisted_2 = { key: 1 };
const _hoisted_3 = /* @__PURE__ */ _withScopeId(() => /* @__PURE__ */ createBaseVNode("div", { id: "options-menu-overlay" }, null, -1));
const _sfc_main = /* @__PURE__ */ defineComponent({
  __name: "App",
  setup(__props) {
    const apiService = new APIService();
    const vbaCoreSecurity = new VbaCoreSecurity();
    useRouter();
    const toast = useToast();
    let activate = {
      UserPassword: "",
      Token: ""
    };
    const memberRepActivationToken = ref("");
    const passwordResetToken = ref("");
    const activatingMemberRep = ref(false);
    const resettingPassword = ref(false);
    onMounted(async () => {
      const params = new URLSearchParams(window.location.search);
      if (params) {
        const action = params.get("action");
        if (action) {
          switch (action) {
            case "activate":
              let token = params.get("token") || "";
              handleActivation(token);
              break;
            case "member-rep-activate":
              memberRepActivationToken.value = params.get("token") || "";
              if (memberRepActivationToken.value !== "")
                activatingMemberRep.value = true;
              break;
            case "password-reset":
              passwordResetToken.value = params.get("token") || "";
              if (passwordResetToken.value !== "")
                resettingPassword.value = true;
              break;
          }
        }
      }
    });
    const handleActivation = async (token) => {
      if (token != "") {
        try {
          activate.Token = token;
          let response = await apiService.activateReg(activate);
          if (response.Success) {
            toast.success("Your account has been successfully activated. Close to dismiss this message.", {
              timeout: false
            });
          } else if (response.message == "Already Activated") {
            toast.error("Your activation link has already been used", {
              timeout: false
            });
          } else {
            toast.error("Your account could not be activated. Please contact your administrator.", {
              timeout: false
            });
          }
        } catch (error) {
          toast.error("Your account could not be activated. Please contact your administrator.", {
            timeout: false
          });
        }
        window.history.replaceState(null, "Login", "/");
      }
    };
    const elementService = new ElementService();
    const termsRequired = ref(false);
    ref(true);
    ref("");
    const loggedIn = ref(false);
    const isOptInNotificationsVisible = ref(false);
    document.getElementById("app-vue")?.addEventListener("vue/logged-in", function(event) {
      loggedIn.value = true;
      const { getExternalClientConfig } = useConfigStore();
      const { getUserNotifications } = useUserStore();
      const memberTerminal = vbaCoreSecurity.getTerminal() === "MT";
      getExternalClientConfig("REG_MT_TERMS_REQD").then((result) => {
        termsRequired.value = result.Config_String === "YES";
      });
      getUserNotifications().then((result) => {
        isOptInNotificationsVisible.value = result?.ClientNotificationsEnabled && result?.Notification.NotificationsEnabled == null && memberTerminal;
      });
    });
    const enableVueOnLogin = ref(false);
    elementService.waitForElm("#vba-terminal-vue").then(() => {
      var e = document.getElementById("vba-terminal-vue");
      var vueMember = e?.getAttribute("data-enabled-member") === "true";
      var vueAdmin = e?.getAttribute("data-enabled-admin") === "true";
      var terminal = e?.getAttribute("data-enabled-terminal");
      if (loggedIn) {
        if (vueMember && terminal == "MT") {
          enableVueOnLogin.value = true;
        }
        if (vueAdmin && terminal == "AT") {
          enableVueOnLogin.value = true;
        }
      }
    });
    const loginLoaded = ref(false);
    elementService.waitForElm("#vue-login").then(() => {
      loginLoaded.value = true;
    });
    const registrationLoaded = ref(false);
    elementService.waitForElm("#vue-registration").then(() => {
      registrationLoaded.value = true;
    });
    const recoverLoaded = ref(false);
    elementService.waitForElm("#vue-recover").then(() => {
      recoverLoaded.value = true;
    });
    const registerClicked = ref(false);
    const recoverClicked = ref(false);
    const lookupClicked = ref(false);
    const registrationClicked = () => {
      var login = document.getElementById("vue-login-container");
      if (login) {
        login.hidden = true;
      }
      var register = document.getElementById("vue-register");
      if (register) {
        register.hidden = false;
      }
      var lookup = document.getElementById("vue-eligibility-lookup");
      if (lookup) {
        lookup.hidden = true;
      }
      registerClicked.value = true;
    };
    const mfaScreen = ref(false);
    const mfaInfo = {
      authType: "",
      username: "",
      password: ""
    };
    const mfaRequired = (authType, username, password) => {
      var login = document.getElementById("vba-sign-in-form-container");
      if (login) {
        login.hidden = true;
      }
      var register = document.getElementById("vue-register");
      if (register) {
        register.hidden = true;
      }
      var mfa = document.getElementById("vue-mfa");
      if (mfa) {
        mfa.hidden = false;
      }
      var lookup = document.getElementById("vue-eligibility-lookup");
      if (lookup) {
        lookup.hidden = true;
      }
      mfaInfo.authType = authType;
      mfaInfo.username = username;
      mfaInfo.password = password;
      mfaScreen.value = true;
    };
    const goToLogin = (reasonToLogin) => {
      var login = document.getElementById("vue-login-container");
      if (login) {
        login.hidden = false;
      }
      var register = document.getElementById("vue-register");
      if (register) {
        register.hidden = true;
      }
      var recover = document.getElementById("vue-recover");
      if (recover) {
        recover.hidden = true;
      }
      var lookup = document.getElementById("vue-eligibility-lookup");
      if (lookup) {
        lookup.hidden = true;
      }
      var background = document.getElementById("vue-login-background");
      if (background) {
        background.hidden = false;
      }
      if (reasonToLogin == "reg-done") {
        registerClicked.value = false;
      } else if (reasonToLogin == "acct-recovery-done") {
        recoverClicked.value = false;
      } else if (reasonToLogin == "return-to-login") {
        registerClicked.value = false;
        recoverClicked.value = false;
      }
    };
    const recoverOnClick = () => {
      var login = document.getElementById("vue-login-container");
      if (login) {
        login.hidden = true;
      }
      var register = document.getElementById("vue-register");
      if (register) {
        register.hidden = true;
      }
      var recover = document.getElementById("vue-recover");
      if (recover) {
        recover.hidden = false;
      }
      var lookup = document.getElementById("vue-eligibility-lookup");
      if (lookup) {
        lookup.hidden = true;
      }
      recoverClicked.value = true;
    };
    const lookupOnClick = () => {
      var login = document.getElementById("vue-login-container");
      if (login) {
        login.hidden = true;
      }
      var register = document.getElementById("vue-register");
      if (register) {
        register.hidden = true;
      }
      var recover = document.getElementById("vue-recover");
      if (recover) {
        recover.hidden = true;
      }
      var background = document.getElementById("vue-login-background");
      if (background) {
        background.hidden = true;
      }
      var lookup = document.getElementById("vue-eligibility-lookup");
      if (lookup) {
        lookup.hidden = false;
      }
      lookupClicked.value = true;
    };
    const isMobile = ref(false);
    window.addEventListener("resize", () => {
      isMobile.value = window.innerWidth <= 767;
    });
    return (_ctx, _cache) => {
      return openBlock(), createElementBlock(Fragment, null, [
        (openBlock(), createBlock(Teleport, {
          to: "body",
          id: "global-modal"
        }, [
          (openBlock(), createBlock(Suspense, null, {
            default: withCtx(() => [
              (unref(modalService).isVisible?.value && unref(modalService).options?.value) ?? false ? (openBlock(), createBlock(resolveDynamicComponent(unref(modalService).options.value?.component), normalizeProps(mergeProps({ key: 0 }, unref(modalService).options.value?.componentProps ?? null)), null, 16)) : createCommentVNode("", true)
            ]),
            _: 1
          }))
        ])),
        enableVueOnLogin.value ? (openBlock(), createElementBlock("div", _hoisted_1, [
          (openBlock(), createBlock(Suspense, null, {
            fallback: withCtx(() => [
              createTextVNode(" Loading... ")
            ]),
            default: withCtx(() => [
              createVNode(_sfc_main$n)
            ]),
            _: 1
          })),
          isOptInNotificationsVisible.value ? (openBlock(), createBlock(OptInNotifications, { key: 0 })) : createCommentVNode("", true),
          termsRequired.value ? (openBlock(), createBlock(TermsAndConditions, {
            key: 1,
            loginTermsAndConditions: true
          })) : createCommentVNode("", true)
        ])) : (openBlock(), createElementBlock("div", _hoisted_2, [
          loginLoaded.value ? (openBlock(), createBlock(Teleport, {
            key: 0,
            to: "#login-banner-messages"
          }, [
            createVNode(LoginBannerMessages)
          ])) : createCommentVNode("", true),
          loginLoaded.value ? (openBlock(), createBlock(Teleport, {
            key: 1,
            to: "#vue-login"
          }, [
            createVNode(Login, {
              onRegistrationClicked: registrationClicked,
              onMfaRequired: mfaRequired,
              onRecoverClicked: recoverOnClick,
              onLookupClicked: lookupOnClick
            })
          ])) : createCommentVNode("", true),
          loginLoaded.value && !isMobile.value ? (openBlock(), createBlock(Teleport, {
            key: 2,
            to: "#vue-login-background"
          }, [
            createVNode(LoginBackground)
          ])) : createCommentVNode("", true),
          loginLoaded.value && registerClicked.value ? (openBlock(), createBlock(Teleport, {
            key: 3,
            to: "#vue-register"
          }, [
            createVNode(Registration, {
              onRegistrationDone: goToLogin,
              onSignInClick: goToLogin
            })
          ])) : createCommentVNode("", true),
          loginLoaded.value && recoverClicked.value ? (openBlock(), createBlock(Teleport, {
            key: 4,
            to: "#vue-recover"
          }, [
            createVNode(AccountRecovery, {
              onRecoverDone: goToLogin,
              onSignInClick: goToLogin
            })
          ])) : createCommentVNode("", true),
          loginLoaded.value && lookupClicked.value ? (openBlock(), createBlock(Teleport, {
            key: 5,
            to: "#vue-eligibility-lookup"
          }, [
            createVNode(EligibilityLookup, { onReturnToLogin: goToLogin })
          ])) : createCommentVNode("", true),
          loginLoaded.value && mfaScreen.value ? (openBlock(), createBlock(Teleport, {
            key: 6,
            to: "#vue-mfa"
          }, [
            createVNode(MFA, { mfaInfo })
          ])) : createCommentVNode("", true),
          activatingMemberRep.value ? (openBlock(), createBlock(MemberRepActivate, {
            key: 7,
            token: memberRepActivationToken.value
          }, null, 8, ["token"])) : createCommentVNode("", true),
          (openBlock(), createBlock(Suspense, null, {
            fallback: withCtx(() => [
              createTextVNode(" Loading... ")
            ]),
            default: withCtx(() => [
              resettingPassword.value ? (openBlock(), createBlock(PasswordReset, {
                key: 0,
                token: passwordResetToken.value
              }, null, 8, ["token"])) : createCommentVNode("", true)
            ]),
            _: 1
          }))
        ])),
        _hoisted_3
      ], 64);
    };
  }
});
const App_vue_vue_type_style_index_0_scoped_f78a294a_lang = "";
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-f78a294a"]]);
const index = "";
const routes = [
  //{ path: '/#employer-home', component: Screen, props: { id: 'home' } },
  { path: "/screen1", component: _sfc_main$n, props: { id: "home" } },
  { path: "/screen2", component: _sfc_main$n, props: { id: "screen2" } },
  { path: "/#claim-details", name: "claim-details", component: _sfc_main$n, props: { id: "claim-details" } },
  { path: "/#form", name: "form", component: _sfc_main$n, props: { id: "form" } },
  {
    path: "/#member-billing-history",
    name: "member-billing-history",
    component: _sfc_main$n,
    props: { id: "member-billing-history" }
  },
  {
    path: "/#member-billing-history-details",
    name: "member-billing-history-details",
    component: _sfc_main$n,
    props: (route) => ({ invoiceKey: route.params.invoice_key })
  },
  {
    path: "/#member-plan-overview",
    name: "member-plan-overview",
    component: _sfc_main$n,
    props: (route) => ({ planId: route.params.plan_id })
  }
];
const router = createRouter({
  history: createWebHistory(),
  routes
});
const app = createApp(App);
app.use(router);
const pinia = createPinia();
app.use(pinia);
app.use(src_default);
fetch("config.json").then((response) => response.json()).then(
  (data) => {
    app.config.globalProperties.$appConfig = data;
    app.mount("#app-vue");
  }
);
const { globalProperties } = app.config;
const globalProperties$1 = globalProperties;
export {
  Field2 as $,
  APIService as A,
  Button as B,
  ComponentUtils as C,
  DateUtils as D,
  Encoding as E,
  Fragment as F,
  renderList as G,
  _sfc_main$l as H,
  Input as I,
  modalService as J,
  useConfigStore as K,
  withDirectives as L,
  Modal as M,
  vModelText as N,
  OptionsMenu as O,
  Pod2 as P,
  useToast as Q,
  requiredIf as R,
  KeyValuePair as S,
  Teleport as T,
  vShow as U,
  Card2 as V,
  WebPlugin as W,
  RadioButton as X,
  toRefs as Y,
  vModelSelect as Z,
  _export_sfc as _,
  createElementBlock as a,
  useUserStore as a0,
  vModelCheckbox as a1,
  InfoIcon as a2,
  onBeforeUnmount as a3,
  h as a4,
  getCurrentInstance as a5,
  watchEffect as a6,
  shallowRef as a7,
  markRaw as a8,
  customRef as a9,
  Tag as aA,
  renderSlot as aB,
  normalizeProps as aC,
  resolveDynamicComponent as aD,
  FilterItem as aE,
  VbaCoreSecurity as aF,
  resolveComponent as aG,
  globalProperties$1 as aH,
  Checkbox as aI,
  __vitePreload as aJ,
  StepperUnit as aK,
  MaskedInput as aL,
  vModelDynamic as aM,
  Card$1 as aN,
  PanelAccordion as aO,
  purify as aP,
  _sfc_main$E as aQ,
  _sfc_main$D as aR,
  normalizeStyle as aS,
  _sfc_main$r as aT,
  TabGroup as aU,
  OptInNotifications as aV,
  purify_es as aW,
  createStaticVNode as aa,
  vModelRadio as ab,
  VbaCoreSecurityAdvanced as ac,
  withAsyncContext as ad,
  sameAs as ae,
  minLength as af,
  withModifiers as ag,
  HelpModal as ah,
  onUnmounted as ai,
  useRoute as aj,
  Pod$1 as ak,
  ClaimCard as al,
  _sfc_main$s as am,
  storeToRefs as an,
  Banner as ao,
  Toast as ap,
  isRef as aq,
  ElementService as ar,
  CookiesService as as,
  PasswordValidator as at,
  Loader as au,
  render$1 as av,
  StringUtils as aw,
  mergeProps as ax,
  useCssVars as ay,
  NumberUtils as az,
  buildRequestInit as b,
  computed as c,
  defineComponent as d,
  createVNode as e,
  createBaseVNode as f,
  createBlock as g,
  popScopeId as h,
  defineStore as i,
  reactive as j,
  onMounted as k,
  common as l,
  required as m,
  watch as n,
  openBlock as o,
  pushScopeId as p,
  nextTick as q,
  ref as r,
  InputLabel2 as s,
  unref as t,
  useVuelidate as u,
  normalizeClass as v,
  withCtx as w,
  createCommentVNode as x,
  createTextVNode as y,
  toDisplayString as z
};
