{"version":3,"file":"definitions-C56nHYyy.cjs","names":[],"sources":["../../node_modules/@capacitor/core/dist/index.js","../../node_modules/@capacitor/haptics/dist/esm/definitions.js"],"sourcesContent":["/*! Capacitor: https://capacitorjs.com/ - MIT License */\nvar ExceptionCode;\n(function (ExceptionCode) {\n    /**\n     * API is not implemented.\n     *\n     * This usually means the API can't be used because it is not implemented for\n     * the current platform.\n     */\n    ExceptionCode[\"Unimplemented\"] = \"UNIMPLEMENTED\";\n    /**\n     * API is not available.\n     *\n     * This means the API can't be used right now because:\n     *   - it is currently missing a prerequisite, such as network connectivity\n     *   - it requires a particular platform or browser version\n     */\n    ExceptionCode[\"Unavailable\"] = \"UNAVAILABLE\";\n})(ExceptionCode || (ExceptionCode = {}));\nclass CapacitorException extends Error {\n    constructor(message, code, data) {\n        super(message);\n        this.message = message;\n        this.code = code;\n        this.data = data;\n    }\n}\nconst getPlatformId = (win) => {\n    var _a, _b;\n    if (win === null || win === void 0 ? void 0 : win.androidBridge) {\n        return 'android';\n    }\n    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) {\n        return 'ios';\n    }\n    else {\n        return 'web';\n    }\n};\n\nconst createCapacitor = (win) => {\n    const capCustomPlatform = win.CapacitorCustomPlatform || null;\n    const cap = win.Capacitor || {};\n    const Plugins = (cap.Plugins = cap.Plugins || {});\n    const getPlatform = () => {\n        return capCustomPlatform !== null ? capCustomPlatform.name : getPlatformId(win);\n    };\n    const isNativePlatform = () => getPlatform() !== 'web';\n    const isPluginAvailable = (pluginName) => {\n        const plugin = registeredPlugins.get(pluginName);\n        if (plugin === null || plugin === void 0 ? void 0 : plugin.platforms.has(getPlatform())) {\n            // JS implementation available for the current platform.\n            return true;\n        }\n        if (getPluginHeader(pluginName)) {\n            // Native implementation available.\n            return true;\n        }\n        return false;\n    };\n    const getPluginHeader = (pluginName) => { var _a; return (_a = cap.PluginHeaders) === null || _a === void 0 ? void 0 : _a.find((h) => h.name === pluginName); };\n    const handleError = (err) => win.console.error(err);\n    const registeredPlugins = new Map();\n    const registerPlugin = (pluginName, jsImplementations = {}) => {\n        const registeredPlugin = registeredPlugins.get(pluginName);\n        if (registeredPlugin) {\n            console.warn(`Capacitor plugin \"${pluginName}\" already registered. Cannot register plugins twice.`);\n            return registeredPlugin.proxy;\n        }\n        const platform = getPlatform();\n        const pluginHeader = getPluginHeader(pluginName);\n        let jsImplementation;\n        const loadPluginImplementation = async () => {\n            if (!jsImplementation && platform in jsImplementations) {\n                jsImplementation =\n                    typeof jsImplementations[platform] === 'function'\n                        ? (jsImplementation = await jsImplementations[platform]())\n                        : (jsImplementation = jsImplementations[platform]);\n            }\n            else if (capCustomPlatform !== null && !jsImplementation && 'web' in jsImplementations) {\n                jsImplementation =\n                    typeof jsImplementations['web'] === 'function'\n                        ? (jsImplementation = await jsImplementations['web']())\n                        : (jsImplementation = jsImplementations['web']);\n            }\n            return jsImplementation;\n        };\n        const createPluginMethod = (impl, prop) => {\n            var _a, _b;\n            if (pluginHeader) {\n                const methodHeader = pluginHeader === null || pluginHeader === void 0 ? void 0 : pluginHeader.methods.find((m) => prop === m.name);\n                if (methodHeader) {\n                    if (methodHeader.rtype === 'promise') {\n                        return (options) => cap.nativePromise(pluginName, prop.toString(), options);\n                    }\n                    else {\n                        return (options, callback) => cap.nativeCallback(pluginName, prop.toString(), options, callback);\n                    }\n                }\n                else if (impl) {\n                    return (_a = impl[prop]) === null || _a === void 0 ? void 0 : _a.bind(impl);\n                }\n            }\n            else if (impl) {\n                return (_b = impl[prop]) === null || _b === void 0 ? void 0 : _b.bind(impl);\n            }\n            else {\n                throw new CapacitorException(`\"${pluginName}\" plugin is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n            }\n        };\n        const createPluginMethodWrapper = (prop) => {\n            let remove;\n            const wrapper = (...args) => {\n                const p = loadPluginImplementation().then((impl) => {\n                    const fn = createPluginMethod(impl, prop);\n                    if (fn) {\n                        const p = fn(...args);\n                        remove = p === null || p === void 0 ? void 0 : p.remove;\n                        return p;\n                    }\n                    else {\n                        throw new CapacitorException(`\"${pluginName}.${prop}()\" is not implemented on ${platform}`, ExceptionCode.Unimplemented);\n                    }\n                });\n                if (prop === 'addListener') {\n                    p.remove = async () => remove();\n                }\n                return p;\n            };\n            // Some flair ✨\n            wrapper.toString = () => `${prop.toString()}() { [capacitor code] }`;\n            Object.defineProperty(wrapper, 'name', {\n                value: prop,\n                writable: false,\n                configurable: false,\n            });\n            return wrapper;\n        };\n        const addListener = createPluginMethodWrapper('addListener');\n        const removeListener = createPluginMethodWrapper('removeListener');\n        const addListenerNative = (eventName, callback) => {\n            const call = addListener({ eventName }, callback);\n            const remove = async () => {\n                const callbackId = await call;\n                removeListener({\n                    eventName,\n                    callbackId,\n                }, callback);\n            };\n            const p = new Promise((resolve) => call.then(() => resolve({ remove })));\n            p.remove = async () => {\n                console.warn(`Using addListener() without 'await' is deprecated.`);\n                await remove();\n            };\n            return p;\n        };\n        const proxy = new Proxy({}, {\n            get(_, prop) {\n                switch (prop) {\n                    // https://github.com/facebook/react/issues/20030\n                    case '$$typeof':\n                        return undefined;\n                    case 'toJSON':\n                        return () => ({});\n                    case 'addListener':\n                        return pluginHeader ? addListenerNative : addListener;\n                    case 'removeListener':\n                        return removeListener;\n                    default:\n                        return createPluginMethodWrapper(prop);\n                }\n            },\n        });\n        Plugins[pluginName] = proxy;\n        registeredPlugins.set(pluginName, {\n            name: pluginName,\n            proxy,\n            platforms: new Set([...Object.keys(jsImplementations), ...(pluginHeader ? [platform] : [])]),\n        });\n        return proxy;\n    };\n    // Add in convertFileSrc for web, it will already be available in native context\n    if (!cap.convertFileSrc) {\n        cap.convertFileSrc = (filePath) => filePath;\n    }\n    cap.getPlatform = getPlatform;\n    cap.handleError = handleError;\n    cap.isNativePlatform = isNativePlatform;\n    cap.isPluginAvailable = isPluginAvailable;\n    cap.registerPlugin = registerPlugin;\n    cap.Exception = CapacitorException;\n    cap.DEBUG = !!cap.DEBUG;\n    cap.isLoggingEnabled = !!cap.isLoggingEnabled;\n    return cap;\n};\nconst initCapacitorGlobal = (win) => (win.Capacitor = createCapacitor(win));\n\nconst Capacitor = /*#__PURE__*/ initCapacitorGlobal(typeof globalThis !== 'undefined'\n    ? globalThis\n    : typeof self !== 'undefined'\n        ? self\n        : typeof window !== 'undefined'\n            ? window\n            : typeof global !== 'undefined'\n                ? global\n                : {});\nconst registerPlugin = Capacitor.registerPlugin;\n\n/**\n * Base class web plugins should extend.\n */\nclass WebPlugin {\n    constructor() {\n        this.listeners = {};\n        this.retainedEventArguments = {};\n        this.windowListeners = {};\n    }\n    addListener(eventName, listenerFunc) {\n        let firstListener = false;\n        const listeners = this.listeners[eventName];\n        if (!listeners) {\n            this.listeners[eventName] = [];\n            firstListener = true;\n        }\n        this.listeners[eventName].push(listenerFunc);\n        // If we haven't added a window listener for this event and it requires one,\n        // go ahead and add it\n        const windowListener = this.windowListeners[eventName];\n        if (windowListener && !windowListener.registered) {\n            this.addWindowListener(windowListener);\n        }\n        if (firstListener) {\n            this.sendRetainedArgumentsForEvent(eventName);\n        }\n        const remove = async () => this.removeListener(eventName, listenerFunc);\n        const p = Promise.resolve({ remove });\n        return p;\n    }\n    async removeAllListeners() {\n        this.listeners = {};\n        for (const listener in this.windowListeners) {\n            this.removeWindowListener(this.windowListeners[listener]);\n        }\n        this.windowListeners = {};\n    }\n    notifyListeners(eventName, data, retainUntilConsumed) {\n        const listeners = this.listeners[eventName];\n        if (!listeners) {\n            if (retainUntilConsumed) {\n                let args = this.retainedEventArguments[eventName];\n                if (!args) {\n                    args = [];\n                }\n                args.push(data);\n                this.retainedEventArguments[eventName] = args;\n            }\n            return;\n        }\n        listeners.forEach((listener) => listener(data));\n    }\n    hasListeners(eventName) {\n        var _a;\n        return !!((_a = this.listeners[eventName]) === null || _a === void 0 ? void 0 : _a.length);\n    }\n    registerWindowListener(windowEventName, pluginEventName) {\n        this.windowListeners[pluginEventName] = {\n            registered: false,\n            windowEventName,\n            pluginEventName,\n            handler: (event) => {\n                this.notifyListeners(pluginEventName, event);\n            },\n        };\n    }\n    unimplemented(msg = 'not implemented') {\n        return new Capacitor.Exception(msg, ExceptionCode.Unimplemented);\n    }\n    unavailable(msg = 'not available') {\n        return new Capacitor.Exception(msg, ExceptionCode.Unavailable);\n    }\n    async removeListener(eventName, listenerFunc) {\n        const listeners = this.listeners[eventName];\n        if (!listeners) {\n            return;\n        }\n        const index = listeners.indexOf(listenerFunc);\n        this.listeners[eventName].splice(index, 1);\n        // If there are no more listeners for this type of event,\n        // remove the window listener\n        if (!this.listeners[eventName].length) {\n            this.removeWindowListener(this.windowListeners[eventName]);\n        }\n    }\n    addWindowListener(handle) {\n        window.addEventListener(handle.windowEventName, handle.handler);\n        handle.registered = true;\n    }\n    removeWindowListener(handle) {\n        if (!handle) {\n            return;\n        }\n        window.removeEventListener(handle.windowEventName, handle.handler);\n        handle.registered = false;\n    }\n    sendRetainedArgumentsForEvent(eventName) {\n        const args = this.retainedEventArguments[eventName];\n        if (!args) {\n            return;\n        }\n        delete this.retainedEventArguments[eventName];\n        args.forEach((arg) => {\n            this.notifyListeners(eventName, arg);\n        });\n    }\n}\n\nconst WebView = /*#__PURE__*/ registerPlugin('WebView');\n/******** END WEB VIEW PLUGIN ********/\n/******** COOKIES PLUGIN ********/\n/**\n * Safely web encode a string value (inspired by js-cookie)\n * @param str The string value to encode\n */\nconst encode = (str) => encodeURIComponent(str)\n    .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n    .replace(/[()]/g, escape);\n/**\n * Safely web decode a string value (inspired by js-cookie)\n * @param str The string value to decode\n */\nconst decode = (str) => str.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent);\nclass CapacitorCookiesPluginWeb extends WebPlugin {\n    async getCookies() {\n        const cookies = document.cookie;\n        const cookieMap = {};\n        cookies.split(';').forEach((cookie) => {\n            if (cookie.length <= 0)\n                return;\n            // Replace first \"=\" with CAP_COOKIE to prevent splitting on additional \"=\"\n            let [key, value] = cookie.replace(/=/, 'CAP_COOKIE').split('CAP_COOKIE');\n            key = decode(key).trim();\n            value = decode(value).trim();\n            cookieMap[key] = value;\n        });\n        return cookieMap;\n    }\n    async setCookie(options) {\n        try {\n            // Safely Encoded Key/Value\n            const encodedKey = encode(options.key);\n            const encodedValue = encode(options.value);\n            // Clean & sanitize options\n            const expires = options.expires ? `; expires=${options.expires.replace('expires=', '')}` : '';\n            const path = (options.path || '/').replace('path=', ''); // Default is \"path=/\"\n            const domain = options.url != null && options.url.length > 0 ? `domain=${options.url}` : '';\n            document.cookie = `${encodedKey}=${encodedValue || ''}${expires}; path=${path}; ${domain};`;\n        }\n        catch (error) {\n            return Promise.reject(error);\n        }\n    }\n    async deleteCookie(options) {\n        try {\n            document.cookie = `${options.key}=; Max-Age=0`;\n        }\n        catch (error) {\n            return Promise.reject(error);\n        }\n    }\n    async clearCookies() {\n        try {\n            const cookies = document.cookie.split(';') || [];\n            for (const cookie of cookies) {\n                document.cookie = cookie.replace(/^ +/, '').replace(/=.*/, `=;expires=${new Date().toUTCString()};path=/`);\n            }\n        }\n        catch (error) {\n            return Promise.reject(error);\n        }\n    }\n    async clearAllCookies() {\n        try {\n            await this.clearCookies();\n        }\n        catch (error) {\n            return Promise.reject(error);\n        }\n    }\n}\nconst CapacitorCookies = registerPlugin('CapacitorCookies', {\n    web: () => new CapacitorCookiesPluginWeb(),\n});\n// UTILITY FUNCTIONS\n/**\n * Read in a Blob value and return it as a base64 string\n * @param blob The blob value to convert to a base64 string\n */\nconst readBlobAsBase64 = async (blob) => new Promise((resolve, reject) => {\n    const reader = new FileReader();\n    reader.onload = () => {\n        const base64String = reader.result;\n        // remove prefix \"data:application/pdf;base64,\"\n        resolve(base64String.indexOf(',') >= 0 ? base64String.split(',')[1] : base64String);\n    };\n    reader.onerror = (error) => reject(error);\n    reader.readAsDataURL(blob);\n});\n/**\n * Normalize an HttpHeaders map by lowercasing all of the values\n * @param headers The HttpHeaders object to normalize\n */\nconst normalizeHttpHeaders = (headers = {}) => {\n    const originalKeys = Object.keys(headers);\n    const loweredKeys = Object.keys(headers).map((k) => k.toLocaleLowerCase());\n    const normalized = loweredKeys.reduce((acc, key, index) => {\n        acc[key] = headers[originalKeys[index]];\n        return acc;\n    }, {});\n    return normalized;\n};\n/**\n * Builds a string of url parameters that\n * @param params A map of url parameters\n * @param shouldEncode true if you should encodeURIComponent() the values (true by default)\n */\nconst buildUrlParams = (params, shouldEncode = true) => {\n    if (!params)\n        return null;\n    const output = Object.entries(params).reduce((accumulator, entry) => {\n        const [key, value] = entry;\n        let encodedValue;\n        let item;\n        if (Array.isArray(value)) {\n            item = '';\n            value.forEach((str) => {\n                encodedValue = shouldEncode ? encodeURIComponent(str) : str;\n                item += `${key}=${encodedValue}&`;\n            });\n            // last character will always be \"&\" so slice it off\n            item.slice(0, -1);\n        }\n        else {\n            encodedValue = shouldEncode ? encodeURIComponent(value) : value;\n            item = `${key}=${encodedValue}`;\n        }\n        return `${accumulator}&${item}`;\n    }, '');\n    // Remove initial \"&\" from the reduce\n    return output.substr(1);\n};\n/**\n * Build the RequestInit object based on the options passed into the initial request\n * @param options The Http plugin options\n * @param extra Any extra RequestInit values\n */\nconst buildRequestInit = (options, extra = {}) => {\n    const output = Object.assign({ method: options.method || 'GET', headers: options.headers }, extra);\n    // Get the content-type\n    const headers = normalizeHttpHeaders(options.headers);\n    const type = headers['content-type'] || '';\n    // If body is already a string, then pass it through as-is.\n    if (typeof options.data === 'string') {\n        output.body = options.data;\n    }\n    // Build request initializers based off of content-type\n    else if (type.includes('application/x-www-form-urlencoded')) {\n        const params = new URLSearchParams();\n        for (const [key, value] of Object.entries(options.data || {})) {\n            params.set(key, value);\n        }\n        output.body = params.toString();\n    }\n    else if (type.includes('multipart/form-data') || options.data instanceof FormData) {\n        const form = new FormData();\n        if (options.data instanceof FormData) {\n            options.data.forEach((value, key) => {\n                form.append(key, value);\n            });\n        }\n        else {\n            for (const key of Object.keys(options.data)) {\n                form.append(key, options.data[key]);\n            }\n        }\n        output.body = form;\n        const headers = new Headers(output.headers);\n        headers.delete('content-type'); // content-type will be set by `window.fetch` to includy boundary\n        output.headers = headers;\n    }\n    else if (type.includes('application/json') || typeof options.data === 'object') {\n        output.body = JSON.stringify(options.data);\n    }\n    return output;\n};\n// WEB IMPLEMENTATION\nclass CapacitorHttpPluginWeb extends WebPlugin {\n    /**\n     * Perform an Http request given a set of options\n     * @param options Options to build the HTTP request\n     */\n    async request(options) {\n        const requestInit = buildRequestInit(options, options.webFetchExtra);\n        const urlParams = buildUrlParams(options.params, options.shouldEncodeUrlParams);\n        const url = urlParams ? `${options.url}?${urlParams}` : options.url;\n        const response = await fetch(url, requestInit);\n        const contentType = response.headers.get('content-type') || '';\n        // Default to 'text' responseType so no parsing happens\n        let { responseType = 'text' } = response.ok ? options : {};\n        // If the response content-type is json, force the response to be json\n        if (contentType.includes('application/json')) {\n            responseType = 'json';\n        }\n        let data;\n        let blob;\n        switch (responseType) {\n            case 'arraybuffer':\n            case 'blob':\n                blob = await response.blob();\n                data = await readBlobAsBase64(blob);\n                break;\n            case 'json':\n                data = await response.json();\n                break;\n            case 'document':\n            case 'text':\n            default:\n                data = await response.text();\n        }\n        // Convert fetch headers to Capacitor HttpHeaders\n        const headers = {};\n        response.headers.forEach((value, key) => {\n            headers[key] = value;\n        });\n        return {\n            data,\n            headers,\n            status: response.status,\n            url: response.url,\n        };\n    }\n    /**\n     * Perform an Http GET request given a set of options\n     * @param options Options to build the HTTP request\n     */\n    async get(options) {\n        return this.request(Object.assign(Object.assign({}, options), { method: 'GET' }));\n    }\n    /**\n     * Perform an Http POST request given a set of options\n     * @param options Options to build the HTTP request\n     */\n    async post(options) {\n        return this.request(Object.assign(Object.assign({}, options), { method: 'POST' }));\n    }\n    /**\n     * Perform an Http PUT request given a set of options\n     * @param options Options to build the HTTP request\n     */\n    async put(options) {\n        return this.request(Object.assign(Object.assign({}, options), { method: 'PUT' }));\n    }\n    /**\n     * Perform an Http PATCH request given a set of options\n     * @param options Options to build the HTTP request\n     */\n    async patch(options) {\n        return this.request(Object.assign(Object.assign({}, options), { method: 'PATCH' }));\n    }\n    /**\n     * Perform an Http DELETE request given a set of options\n     * @param options Options to build the HTTP request\n     */\n    async delete(options) {\n        return this.request(Object.assign(Object.assign({}, options), { method: 'DELETE' }));\n    }\n}\nconst CapacitorHttp = registerPlugin('CapacitorHttp', {\n    web: () => new CapacitorHttpPluginWeb(),\n});\n/******** END HTTP PLUGIN ********/\n/******** SYSTEM BARS PLUGIN ********/\n/**\n * Available status bar styles.\n */\nvar SystemBarsStyle;\n(function (SystemBarsStyle) {\n    /**\n     * Light system bar content on a dark background.\n     *\n     * @since 8.0.0\n     */\n    SystemBarsStyle[\"Dark\"] = \"DARK\";\n    /**\n     * For dark system bar content on a light background.\n     *\n     * @since 8.0.0\n     */\n    SystemBarsStyle[\"Light\"] = \"LIGHT\";\n    /**\n     * The style is based on the device appearance or the underlying content.\n     * If the device is using Dark mode, the system bars content will be light.\n     * If the device is using Light mode, the system bars content will be dark.\n     *\n     * @since 8.0.0\n     */\n    SystemBarsStyle[\"Default\"] = \"DEFAULT\";\n})(SystemBarsStyle || (SystemBarsStyle = {}));\n/**\n * Available system bar types.\n */\nvar SystemBarType;\n(function (SystemBarType) {\n    /**\n     * The top status bar on both Android and iOS.\n     *\n     * @since 8.0.0\n     */\n    SystemBarType[\"StatusBar\"] = \"StatusBar\";\n    /**\n     * The navigation bar (or gesture bar on iOS) on both Android and iOS.\n     *\n     * @since 8.0.0\n     */\n    SystemBarType[\"NavigationBar\"] = \"NavigationBar\";\n})(SystemBarType || (SystemBarType = {}));\nclass SystemBarsPluginWeb extends WebPlugin {\n    async setStyle() {\n        this.unavailable('not available for web');\n    }\n    async setAnimation() {\n        this.unavailable('not available for web');\n    }\n    async show() {\n        this.unavailable('not available for web');\n    }\n    async hide() {\n        this.unavailable('not available for web');\n    }\n}\nconst SystemBars = registerPlugin('SystemBars', {\n    web: () => new SystemBarsPluginWeb(),\n});\n/******** END SYSTEM BARS PLUGIN ********/\n\nexport { Capacitor, CapacitorCookies, CapacitorException, CapacitorHttp, ExceptionCode, SystemBarType, SystemBars, SystemBarsStyle, WebPlugin, WebView, buildRequestInit, registerPlugin };\n//# sourceMappingURL=index.js.map\n","export var ImpactStyle;\n(function (ImpactStyle) {\n    /**\n     * A collision between large, heavy user interface elements\n     *\n     * @since 1.0.0\n     */\n    ImpactStyle[\"Heavy\"] = \"HEAVY\";\n    /**\n     * A collision between moderately sized user interface elements\n     *\n     * @since 1.0.0\n     */\n    ImpactStyle[\"Medium\"] = \"MEDIUM\";\n    /**\n     * A collision between small, light user interface elements\n     *\n     * @since 1.0.0\n     */\n    ImpactStyle[\"Light\"] = \"LIGHT\";\n})(ImpactStyle || (ImpactStyle = {}));\nexport var NotificationType;\n(function (NotificationType) {\n    /**\n     * A notification feedback type indicating that a task has completed successfully\n     *\n     * @since 1.0.0\n     */\n    NotificationType[\"Success\"] = \"SUCCESS\";\n    /**\n     * A notification feedback type indicating that a task has produced a warning\n     *\n     * @since 1.0.0\n     */\n    NotificationType[\"Warning\"] = \"WARNING\";\n    /**\n     * A notification feedback type indicating that a task has failed\n     *\n     * @since 1.0.0\n     */\n    NotificationType[\"Error\"] = \"ERROR\";\n})(NotificationType || (NotificationType = {}));\n//# sourceMappingURL=definitions.js.map"],"x_google_ignoreList":[0,1],"mappings":"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"}