{"version":3,"mappings":"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","names":["UserService","query","ApiService","id","user","params","currentPassword","newPassword","userId","SUPPORTED_CURRENCIES","SUPPORTED_LANGUAGES","isComposer","instance","mode","isRef","i18n","locale","setupI18n","options","createI18n","setLocale","getResourceMessages","r","messages","__variableDynamicImportRuntimeHelper","nextTick","_imports_0","escapeHtml","html","div","DEFAULT_DURATION","DEFAULT_VARIANT","icons","alert","message","variant","icon","duration"],"sources":["../../../app/javascript/services/user_service.ts","../../../app/javascript/i18n.ts","../../../app/javascript/assets/images/logo.png","../../../app/javascript/utils/alert.ts"],"sourcesContent":["import { PaginatedCollection, Session, User } from '@/types'\n\nimport ApiService from './api_service'\n\nexport default {\n async index(query = {}): Promise> {\n const response = await ApiService.get('/admin/users', { params: query })\n return response.data\n },\n\n async get(id: number | string) {\n const response = await ApiService.get(`/admin/users/${id}`)\n return response.data\n },\n\n async create(user) {\n const response = await ApiService.post('/admin/users', { user: user })\n return response.data\n },\n\n async update(id: number | string, user) {\n const response = await ApiService.put(`/admin/users/${id}`, { user: user })\n return response.data\n },\n\n async destroy(id: number | string) {\n const response = await ApiService.delete(`/admin/users/${id}`)\n return response.data\n },\n\n async getCurrentSession(): Promise {\n const response = await ApiService.get(`/users/current-session`)\n return response.data\n },\n\n async signIn(params: { email: string; password: string }): Promise {\n const response = await ApiService.post(`/users/sign_in`, { user: params })\n return response.data\n },\n\n async signUp(params: { email: string; password: string }): Promise {\n const response = await ApiService.post(`/users`, { user: params })\n return response.data\n },\n\n async signOut(): Promise {\n const response = await ApiService.delete(`/users/sign_out`)\n return response.data\n },\n\n async changePassword(currentPassword: string, newPassword: string): Promise {\n const response = await ApiService.post(`/users/change-password`, {\n current_password: currentPassword,\n new_password: newPassword\n })\n return response.data\n },\n\n async signInAs(userId: number | string): Promise {\n const response = await ApiService.post(`/users/sign-in-as/${userId}`)\n return response.data\n }\n}\n","import { isRef, nextTick } from 'vue'\nimport type { Composer, I18n, I18nMode, I18nOptions, Locale, VueI18n } from 'vue-i18n'\nimport { createI18n } from 'vue-i18n'\n\nimport { Currency } from '@/types'\n\nexport const SUPPORTED_CURRENCIES = [\n {\n code: 'eur',\n name: 'EUR',\n symbol: '€',\n symbol_position: 'before'\n }\n] as Currency[]\n\nexport const SUPPORTED_LANGUAGES = [\n {\n locale: 'en',\n name: 'English',\n flag: '🇬🇧'\n },\n {\n locale: 'de',\n name: 'Deutsch',\n flag: '🇩🇪'\n },\n {\n locale: 'es',\n name: 'Español',\n flag: '🇪🇸'\n },\n {\n locale: 'fr',\n name: 'Français',\n flag: '🇫🇷'\n },\n {\n locale: 'it',\n name: 'Italiano',\n flag: '🇮🇹'\n },\n {\n locale: 'pl',\n name: 'Polski',\n flag: '🇵🇱'\n },\n {\n locale: 'cs',\n name: 'Čeština',\n flag: '🇨🇿'\n },\n {\n locale: 'sk',\n name: 'Slovenčina',\n flag: '🇸🇰'\n }\n]\n\nfunction isComposer(instance: VueI18n | Composer, mode: I18nMode): instance is Composer {\n return mode === 'composition' && isRef(instance.locale)\n}\n\nexport function getLocale(i18n: I18n): string {\n if (isComposer(i18n.global, i18n.mode)) {\n return i18n.global.locale.value\n } else {\n return i18n.global.locale\n }\n}\n\nexport function setLocale(i18n: I18n, locale: Locale): void {\n if (isComposer(i18n.global, i18n.mode)) {\n i18n.global.locale.value = locale\n } else {\n i18n.global.locale = locale\n }\n}\n\nexport function setupI18n(options: I18nOptions = { locale: 'en' }): I18n {\n const i18n = createI18n(options)\n setI18nLanguage(i18n, options.locale!)\n return i18n\n}\n\nexport function setI18nLanguage(i18n: I18n, locale: Locale): void {\n setLocale(i18n, locale)\n /**\n * NOTE:\n * If you need to specify the language setting for headers, such as the `fetch` API, set it here.\n * The following is an example for axios.\n *\n * axios.defaults.headers.common['Accept-Language'] = locale\n */\n document.querySelector('html')!.setAttribute('lang', locale)\n}\n\nconst getResourceMessages = (r: any) => r.default || r\n\nexport async function loadLocaleMessages(i18n: I18n, locale: Locale) {\n // load locale messages\n const messages = await import(/* @vite-ignore */ `./locales/${locale}.json`).then(getResourceMessages)\n\n // set locale and locale message\n i18n.global.setLocaleMessage(locale, messages)\n\n return nextTick()\n}\n","export default \"__VITE_ASSET__ab211233__\"","function escapeHtml(html) {\n const div = document.createElement('div')\n div.textContent = html\n return div.innerHTML\n}\n\nconst DEFAULT_DURATION = 3000\nconst DEFAULT_VARIANT = 'primary'\nconst icons = {\n primary: 'info-circle',\n success: 'check2-circle',\n neutral: 'gear',\n warning: 'exclamation-triangle',\n danger: 'exclamation-octagon'\n}\n\nexport function alert(message, variant = DEFAULT_VARIANT, icon = null, duration = DEFAULT_DURATION) {\n const alert = Object.assign(document.createElement('sl-alert'), {\n variant,\n closable: true,\n duration: duration,\n innerHTML: `\n \n ${escapeHtml(message)}\n `\n })\n\n document.body.append(alert)\n return alert.toast()\n}\n"],"file":"assets/alert-4d6df128.js"}