From ccb844c15c1cc68566134b17387eb26308b67366 Mon Sep 17 00:00:00 2001 From: Josako Date: Sun, 20 Jul 2025 11:36:00 +0200 Subject: [PATCH] - Min of meer werkende chat client new stule --- eveai_chat_client/__init__.py | 12 +- eveai_chat_client/static/assets/js/ChatApp.js | 1113 ----------------- .../{components => }/MaterialIconManager.js | 0 .../static/assets/js/components/ChatInput.js | 391 ------ .../assets/js/components/ChatMessage.js | 318 ----- .../assets/js/components/DynamicForm.js | 250 ---- .../static/assets/js/components/FormField.js | 213 ---- .../assets/js/components/FormMessage.js | 59 - .../assets/js/components/LanguageSelector.js | 115 -- .../assets/js/components/MessageHistory.js | 230 ---- .../assets/js/components/ProgressTracker.js | 311 ----- .../assets/js/components/TypingIndicator.js | 24 - .../static/assets/js/components/index.js | 34 - .../static/assets/js/translation.js | 2 +- .../static/assets/vue-components/ChatApp.vue | 505 ++++++++ .../vue-components/LanguageSelector.vue | 8 - .../assets/vue-components/ProgressTracker.vue | 143 ++- eveai_chat_client/templates/chat.html | 2 +- eveai_chat_client/views/chat_views.py | 45 +- nginx/.parcel-cache/data.mdb | Bin 16416768 -> 16695296 bytes .../.parcel-cache/e071da4be0b4b166-AssetGraph | Bin 427504 -> 440712 bytes nginx/frontend_src/js/chat-client.js | 123 +- nginx/static/dist/chat-client.css | 2 +- nginx/static/dist/chat-client.js | 65 +- 24 files changed, 735 insertions(+), 3230 deletions(-) delete mode 100644 eveai_chat_client/static/assets/js/ChatApp.js rename eveai_chat_client/static/assets/js/{components => }/MaterialIconManager.js (100%) delete mode 100644 eveai_chat_client/static/assets/js/components/ChatInput.js delete mode 100644 eveai_chat_client/static/assets/js/components/ChatMessage.js delete mode 100644 eveai_chat_client/static/assets/js/components/DynamicForm.js delete mode 100644 eveai_chat_client/static/assets/js/components/FormField.js delete mode 100644 eveai_chat_client/static/assets/js/components/FormMessage.js delete mode 100644 eveai_chat_client/static/assets/js/components/LanguageSelector.js delete mode 100644 eveai_chat_client/static/assets/js/components/MessageHistory.js delete mode 100644 eveai_chat_client/static/assets/js/components/ProgressTracker.js delete mode 100644 eveai_chat_client/static/assets/js/components/TypingIndicator.js delete mode 100644 eveai_chat_client/static/assets/js/components/index.js create mode 100644 eveai_chat_client/static/assets/vue-components/ChatApp.vue diff --git a/eveai_chat_client/__init__.py b/eveai_chat_client/__init__.py index 8a818e0..3eab354 100644 --- a/eveai_chat_client/__init__.py +++ b/eveai_chat_client/__init__.py @@ -76,11 +76,13 @@ def create_app(config_file=None): app.logger.info(f"EveAI Chat Client Started Successfully (PID: {os.getpid()})") app.logger.info("-------------------------------------------------------------------------------------------------") - # @app.before_request - # def app_before_request(): - # app.logger.debug(f'App before request: {request.path} ===== Method: {request.method} =====') - # app.logger.debug(f'Full URL: {request.url}') - # app.logger.debug(f'Endpoint: {request.endpoint}') + @app.before_request + def app_before_request(): + if request.path.startswith('/healthz'): + pass + app.logger.debug(f'App before request: {request.path} ===== Method: {request.method} =====') + app.logger.debug(f'Full URL: {request.url}') + app.logger.debug(f'Endpoint: {request.endpoint}') return app diff --git a/eveai_chat_client/static/assets/js/ChatApp.js b/eveai_chat_client/static/assets/js/ChatApp.js deleted file mode 100644 index 42912af..0000000 --- a/eveai_chat_client/static/assets/js/ChatApp.js +++ /dev/null @@ -1,1113 +0,0 @@ -// Import all components as Vue SFCs -import TypingIndicator from '../vue-components/TypingIndicator.vue'; -import FormField from '../vue-components/FormField.vue'; -import DynamicForm from '../vue-components/DynamicForm.vue'; -import ChatMessage from '../vue-components/ChatMessage.vue'; -import MessageHistory from '../vue-components/MessageHistory.vue'; -import ProgressTracker from '../vue-components/ProgressTracker.vue'; -import LanguageSelector from '../vue-components/LanguageSelector.vue'; -import ChatInput from '../vue-components/ChatInput.vue'; - -// Main Chat Application -// Main Chat Application - geëxporteerd als module -export const ChatApp = { - name: 'ChatApp', - components: { - TypingIndicator, - FormField, - DynamicForm, - ChatMessage, - MessageHistory, - ProgressTracker, - ChatInput - }, - - data() { - // Maak een lokale kopie van de chatConfig om undefined errors te voorkomen - const chatConfig = window.chatConfig || {}; - const settings = chatConfig.settings || {}; - const initialLanguage = chatConfig.language || 'nl'; - const originalExplanation = chatConfig.explanation || ''; - const tenantMake = chatConfig.tenantMake || {}; - - return { - // Tenant info - tenantName: tenantMake.name || 'EveAI', - tenantLogoUrl: tenantMake.logo_url || '', - - // Taal gerelateerde data - currentLanguage: initialLanguage, - supportedLanguageDetails: chatConfig.supportedLanguageDetails || {}, - allowedLanguages: chatConfig.allowedLanguages || ['nl', 'en', 'fr', 'de'], - supportedLanguages: chatConfig.supportedLanguages || [], - originalExplanation: originalExplanation, - explanation: chatConfig.explanation || '', - - // Chat-specific data - currentMessage: '', - allMessages: [], - isTyping: false, - isLoading: false, - isSubmittingForm: false, - messageIdCounter: 1, - formValues: {}, - currentInputFormData: null, - - // API prefix voor endpoints - apiPrefix: chatConfig.apiPrefix || '', - - // Configuration from Flask/server - conversationId: chatConfig.conversationId || 'default', - userId: chatConfig.userId || null, - userName: chatConfig.userName || '', - - // Settings met standaard waarden en overschreven door server config - settings: { - maxMessageLength: settings.maxMessageLength || 2000, - allowFileUpload: settings.allowFileUpload === true, - allowVoiceMessage: settings.allowVoiceMessage === true, - autoScroll: settings.autoScroll === true - }, - - // UI state - isMobile: window.innerWidth <= 768, - showSidebar: window.innerWidth > 768, - - // Advanced features - messageSearch: '', - filteredMessages: [], - isSearching: false - }; - }, - - computed: { - // Keep existing computed from base.html - compiledExplanation() { - if (typeof marked === 'function') { - return marked(this.explanation); - } else if (marked && typeof marked.parse === 'function') { - return marked.parse(this.explanation.replace(/\[\[(.*?)\]\]/g, '$1')); - } else { - console.error('Marked library not properly loaded'); - return this.explanation; - } - }, - - displayMessages() { - return this.isSearching ? this.filteredMessages : this.allMessages; - }, - - hasMessages() { - return this.allMessages.length > 0; - }, - - displayLanguages() { - // Filter de ondersteunde talen op basis van de toegestane talen - if (!this.supportedLanguages || !this.allowedLanguages) { - return []; - } - - return this.supportedLanguages.filter(lang => - this.allowedLanguages.includes(lang.code) - ); - } - }, - - mounted() { - console.log('🔍 [DEBUG] ChatApp mounted'); - console.log('🔍 [DEBUG] ChatApp data:', { - tenantName: this.tenantName, - currentLanguage: this.currentLanguage, - allowedLanguages: this.allowedLanguages, - conversationId: this.conversationId, - userId: this.userId - }); - - // Log beschikbare componenten - console.log('🔍 [DEBUG] Geregistreerde componenten:', { - messageHistory: !!this.$options.components.MessageHistory, - chatInput: !!this.$options.components.ChatInput - }); - - // Render de component - this.renderComponent(); - - console.log('🔍 [DEBUG] ChatApp mounted'); - console.log('🔍 [DEBUG] Props en data:', { - currentLanguage: this.currentLanguage, - allowedLanguages: this.allowedLanguages, - tenantName: this.tenantName - }); - - this.initializeChat(); - this.setupEventListeners(); - - // Render de component - this.renderComponent(); - }, - - beforeUnmount() { - this.cleanup(); - }, - - // Nieuwe methode om de component direct te renderen - renderComponent() { - console.log('🔍 [DEBUG] ChatApp.renderComponent() aangeroepen'); - // Hier kunnen we directe DOM-manipulatie toevoegen indien nodig - // Vergelijkbaar met LanguageSelector.renderComponent() - }, - - methods: { - // Initialization - initializeChat() { - console.log('Initializing chat application...'); - - // Load historical messages from server - this.loadHistoricalMessages(); - - console.log('Nr of messages:', this.allMessages.length); - - // Add welcome message if no history - if (this.allMessages.length === 0) { - this.addWelcomeMessage(); - } - - // Focus input after initialization - this.$nextTick(() => { - this.focusChatInput(); - }); - }, - - loadHistoricalMessages() { - // Veilige toegang tot messages met fallback - const chatConfig = window.chatConfig || {}; - const historicalMessages = chatConfig.messages || []; - - if (historicalMessages.length > 0) { - this.allMessages = historicalMessages - .filter(msg => msg !== null && msg !== undefined) // Filter null/undefined berichten uit - .map(msg => { - // Zorg voor een correct geformatteerde bericht-object - return { - id: this.messageIdCounter++, - content: typeof msg === 'string' ? msg : (msg.content || ''), - sender: msg.sender || 'ai', - type: msg.type || 'text', - timestamp: msg.timestamp || new Date().toISOString(), - formData: msg.formData || null, - status: msg.status || 'delivered' - }; - }); - - console.log(`Loaded ${this.allMessages.length} historical messages`); - } - }, - - async addWelcomeMessage() { - console.log('Sending initialize message to backend'); - - // Toon typing indicator - this.isTyping = true; - this.isLoading = true; - - try { - // Verzamel gegevens voor de API call - const apiData = { - message: 'Initialize', - conversation_id: this.conversationId, - user_id: this.userId, - language: this.currentLanguage - }; - - const response = await this.callAPI('/api/send_message', apiData); - - // Verberg typing indicator - this.isTyping = false; - - // Voeg AI response toe met task_id voor tracking - const aiMessage = this.addMessage( - '', - 'ai', - 'text' - ); - - // Voeg task_id toe als beschikbaar - if (response.task_id) { - console.log('Monitoring Initialize Task ID: ', response.task_id); - aiMessage.taskId = response.task_id; - } - } catch (error) { - console.error('Error sending initialize message:', error); - this.isTyping = false; - - // Voeg standaard welkomstbericht toe als fallback - this.addMessage( - 'Hallo! Ik ben je AI assistant. Vraag gerust om een formulier zoals "contactformulier" of "bestelformulier"!', - 'ai', - 'text' - ); - } finally { - this.isLoading = false; - } - }, - - setupEventListeners() { - // Window resize listener - window.addEventListener('resize', this.handleResize); - - // Keyboard shortcuts - document.addEventListener('keydown', this.handleGlobalKeydown); - - // Luister naar taalwijzigingen via custom events - document.addEventListener('language-changed', (event) => { - if (event.detail && event.detail.language) { - console.log('ChatApp received language-changed event:', event.detail.language); - this.handleLanguageChange(event.detail.language); - } - }); - }, - - cleanup() { - window.removeEventListener('resize', this.handleResize); - document.removeEventListener('keydown', this.handleGlobalKeydown); - }, - - // Taal gerelateerde functionaliteit - handleLanguageChange(newLanguage) { - if (this.currentLanguage !== newLanguage) { - console.log(`ChatApp: Taal gewijzigd van ${this.currentLanguage} naar ${newLanguage}`); - this.currentLanguage = newLanguage; - - // Vertaal de sidebar - this.translateSidebar(newLanguage); - - // Sla de taalvoorkeur op voor toekomstige API calls - this.storeLanguagePreference(newLanguage); - - // Stuur language-changed event voor andere componenten (zoals ChatInput) - // Dit wordt gedaan via het event systeem, waardoor we geen directe referentie nodig hebben - const event = new CustomEvent('language-changed', { - detail: { language: newLanguage } - }); - document.dispatchEvent(event); - } - }, - - // Maak de handleLanguageChange methode toegankelijk van buitenaf - // Deze functie wordt opgeroepen door het externe LanguageSelector component - __handleExternalLanguageChange(newLanguage) { - this.handleLanguageChange(newLanguage); - }, - - storeLanguagePreference(language) { - // Sla op in localStorage voor persistentie - localStorage.setItem('preferredLanguage', language); - - // Update chatConfig voor toekomstige API calls - if (window.chatConfig) { - window.chatConfig.language = language; - } - - console.log(`Taalvoorkeur opgeslagen: ${language}`); - }, - - async translateSidebar(language) { - console.log(`Sidebar wordt vertaald naar: ${language}`); - - // Haal de originele tekst op - const originalText = this.originalExplanation || this.explanation; - - try { - // Controleer of TranslationClient beschikbaar is - if (!window.TranslationClient || typeof window.TranslationClient.translate !== 'function') { - console.error('TranslationClient.translate is niet beschikbaar'); - this.showTranslationIndicator(language, 'Vertaling niet beschikbaar', false); - return; - } - - // Toon loading indicator - this.showTranslationIndicator(language, 'Bezig met vertalen...'); - console.log('API prefix voor vertaling:', this.apiPrefix); - - // Gebruik TranslationClient met de juiste parameters - const response = await window.TranslationClient.translate( - originalText, - language, - null, // source_lang (auto-detect) - 'sidebar_explanation', // context - this.apiPrefix // API prefix voor tenant routing - ); - - if (response.success) { - // Update de explanation variabele - console.log('Translated text: ' + response.translated_text); - this.explanation = response.translated_text; - - // 1. Update de Vue instance - if (window.__vueApp && window.__vueApp._instance) { - window.__vueApp._instance.proxy.explanation = response.translated_text; - } - - // 2. Update direct het DOM-element via marked voor onmiddellijke weergave - const sidebarElement = document.querySelector('.sidebar-explanation'); - if (sidebarElement) { - console.log('DOM-element gevonden, directe update toepassen'); - // Gebruik de marked library om de markdown naar HTML te converteren - let htmlContent; - if (typeof marked === 'function') { - htmlContent = marked(response.translated_text); - } else if (marked && typeof marked.parse === 'function') { - htmlContent = marked.parse(response.translated_text); - } else { - htmlContent = response.translated_text; - } - - // Update de inhoud direct - sidebarElement.innerHTML = htmlContent; - } else { - console.error('Sidebar explanation element niet gevonden in DOM'); - } - - this.showTranslationIndicator(language, 'Vertaling voltooid!', true); - } else { - console.error('Vertaling mislukt:', response.error); - this.showTranslationIndicator(language, 'Vertaling mislukt', false); - } - } catch (error) { - console.error('Fout bij vertalen sidebar:', error); - this.showTranslationIndicator(language, 'Vertaling mislukt', false); - } - }, - - // Message management - addMessage(content, sender, type = 'text', formData = null, formValues = null) { - const message = { - id: this.messageIdCounter++, - content, - sender, - type, - formData, - formValues, - timestamp: new Date().toISOString(), - status: sender === 'user' ? 'sent' : 'delivered' - }; - - this.allMessages.push(message); - - // Initialize form values if it's a form and no values were provided - if (type === 'form' && formData && !formValues) { - // Vue 3 compatibele manier om reactieve objecten bij te werken - this.formValues[message.id] = {}; - formData.fields.forEach(field => { - const fieldName = field.name || field.id; - if (fieldName) { - this.formValues[message.id][fieldName] = field.defaultValue || ''; - } - }); - } - - // Update search results if searching - if (this.isSearching) { - this.performSearch(); - } - - return message; - }, - - showTranslationIndicator(language, message, success = null) { - const explanationElement = document.querySelector('.sidebar-explanation'); - if (explanationElement) { - // Verwijder eventuele bestaande indicators - const existingIndicator = explanationElement.querySelector('.language-change-indicator'); - if (existingIndicator) { - existingIndicator.remove(); - } - - // Voeg nieuwe indicator toe - const indicator = document.createElement('div'); - indicator.className = 'language-change-indicator'; - if (success === true) indicator.classList.add('success'); - if (success === false) indicator.classList.add('error'); - - indicator.innerHTML = `${message}`; - explanationElement.prepend(indicator); - - // Verwijder na 3 seconden, behalve bij loading - if (success !== null) { - setTimeout(() => { - if (explanationElement.contains(indicator)) { - indicator.remove(); - } - }, 3000); - } - } - }, - - - // Helper functie om formulierdata toe te voegen aan bestaande berichten - attachFormDataToMessage(messageId, formData, formValues) { - const message = this.allMessages.find(m => m.id === messageId); - if (message) { - message.formData = formData; - message.formValues = formValues; - } - }, - - updateCurrentMessage(value) { - this.currentMessage = value; - }, - - // Message sending (alleen voor gewone tekstberichten, geen formulieren) - async sendMessage() { - const text = this.currentMessage.trim(); - - // Controleer of we kunnen verzenden - if (!text || this.isLoading) return; - - console.log('Sending text message:', text); - - // Add user message - const userMessage = this.addMessage(text, 'user', 'text'); - - // Wis input - this.currentMessage = ''; - - // Show typing and loading state - this.isTyping = true; - this.isLoading = true; - - try { - // Verzamel gegevens voor de API call - const apiData = { - message: text, - conversation_id: this.conversationId, - user_id: this.userId, - language: this.currentLanguage - }; - - const response = await this.callAPI('/api/send_message', apiData); - - // Hide typing indicator - this.isTyping = false; - - // Mark user message as delivered - userMessage.status = 'delivered'; - - // Add AI response - if (response.type === 'form') { - this.addMessage('', 'ai', 'form', response.formData); - } else { - // Voeg het bericht toe met task_id voor tracking - initieel leeg - const aiMessage = this.addMessage( - '', - 'ai', - 'text' - ); - - // Voeg task_id toe als beschikbaar - if (response.task_id) { - console.log('Monitoring Task ID: ', response.task_id); - aiMessage.taskId = response.task_id; - } - } - - } catch (error) { - console.error('Error sending message:', error); - this.isTyping = false; - - // Mark user message as failed - userMessage.status = 'failed'; - - this.addMessage( - 'Sorry, er ging iets mis bij het verzenden van je bericht. Probeer het opnieuw.', - 'ai', - 'error' - ); - } finally { - this.isLoading = false; - } - }, - - async submitFormFromInput(formValues) { - this.isSubmittingForm = true; - - if (!this.currentInputFormData) { - console.error('No form data available'); - return; - } - - console.log('Form values received:', formValues); - console.log('Current input form data:', this.currentInputFormData); - - try { - // Maak een user message met formuliergegevens én eventuele tekst - const userMessage = this.addMessage( - this.currentMessage.trim(), // Voeg tekst toe als die er is - 'user', - 'text' - ); - - // Voeg formuliergegevens toe aan het bericht - userMessage.formData = this.currentInputFormData; - userMessage.formValues = formValues; - - // Reset het tekstbericht - this.currentMessage = ''; - this.$emit('update-message', ''); - - // Toon laad-indicator - this.isTyping = true; - this.isLoading = true; - - // Verzamel gegevens voor de API call - const apiData = { - message: userMessage.content, - conversation_id: this.conversationId, - user_id: this.userId, - form_values: formValues // Voeg formuliergegevens toe aan API call - }; - - // Verstuur bericht naar de API - const response = await this.callAPI('/api/send_message', apiData); - - // Verberg de typing indicator - this.isTyping = false; - - // Markeer het gebruikersbericht als afgeleverd - userMessage.status = 'delivered'; - - // Voeg AI response toe met task_id voor tracking - const aiMessage = this.addMessage( - '', - 'ai', - 'text' - ); - - if (response.task_id) { - console.log('Monitoring Task ID: ', response.task_id); - aiMessage.taskId = response.task_id; - } - - // Reset formulier na succesvolle verzending - this.currentInputFormData = null; - - } catch (error) { - console.error('Error submitting form:', error); - this.addMessage( - 'Sorry, er ging iets mis bij het verzenden van het formulier. Probeer het opnieuw.', - 'ai', - 'text' - ); - // Wis ook hier het formulier na een fout - this.currentInputFormData = null; - } finally { - this.isSubmittingForm = false; - this.isLoading = false; - } - }, - - // Message actions - - retryMessage(messageId) { - const message = this.allMessages.find(m => m.id === messageId); - if (message && message.status === 'failed') { - // Retry sending the message - this.currentMessage = message.content; - this.removeMessage(messageId); - this.sendMessage(); - } - }, - - submitForm(formValues) { - console.log('🔍 [DEBUG] Formulier verzenden:', formValues); - if (!formValues || this.isLoading) return; - - // Markeer formulier als bezig met verzenden - this.isSubmittingForm = true; - - // Voeg gebruikersformulier toe aan chat - this.addFormMessage(formValues, 'user'); - - // Verstuur naar backend - this.sendFormToBackend(formValues); - - // Reset input form - this.currentInputFormData = null; - }, - - sendFormToBackend(formValues) { - console.log('🔍 [DEBUG] Formulier naar backend versturen', formValues); - // Implementatie voor het versturen van formulier data - this.isSubmittingForm = false; - }, - - sendMessageToBackend(message) { - console.log('🔍 [DEBUG] Bericht naar backend versturen', message); - // Implementatie voor het versturen van berichten - }, - - addFormMessage(formValues, sender) { - console.log('🔍 [DEBUG] Formulier bericht toevoegen:', formValues); - // Implementatie voor het toevoegen van een formulier bericht - }, - - focusChatInput() { - // Focus op de chat input als deze beschikbaar is - this.$nextTick(() => { - // Controleer of $el beschikbaar is - if (!this.$el) { - console.warn('$el is niet beschikbaar in focusChatInput'); - return; - } - - // Probeer de input te vinden en focus - try { - const chatInputComponent = this.$el.querySelector('.chat-input-container'); - if (chatInputComponent) { - console.log('🔍 [DEBUG] Focus op chat input'); - // Probeer een input element te vinden om focus op te zetten - const inputElement = chatInputComponent.querySelector('input, textarea'); - if (inputElement) { - inputElement.focus(); - } - } - } catch (error) { - console.error('Fout bij focussen op chat input:', error); - } - }); - }, - - removeMessage(messageId) { - const index = this.allMessages.findIndex(m => m.id === messageId); - if (index !== -1) { - this.allMessages.splice(index, 1); - // Verwijder ook eventuele formuliergegevens - if (this.formValues[messageId]) { - delete this.formValues[messageId]; - } - } - }, - - // File handling - async handleFileUpload(file) { - console.log('Uploading file:', file.name); - - // Add file message - const fileMessage = this.addMessage('', 'user', 'file', { - fileName: file.name, - fileSize: this.formatFileSize(file.size), - fileType: file.type - }); - - try { - // TODO: Implement actual file upload - // const response = await this.uploadFile(file); - // fileMessage.fileUrl = response.url; - - // Simulate file upload - setTimeout(() => { - fileMessage.fileUrl = URL.createObjectURL(file); - fileMessage.status = 'delivered'; - }, 1000); - - } catch (error) { - console.error('Error uploading file:', error); - fileMessage.status = 'failed'; - } - }, - - async handleVoiceRecord(audioBlob) { - console.log('Processing voice recording'); - - // Add voice message - const voiceMessage = this.addMessage('', 'user', 'voice', { - audioBlob, - duration: '00:05' // TODO: Calculate actual duration - }); - - // TODO: Send to speech-to-text service - // const transcription = await this.transcribeAudio(audioBlob); - // this.currentMessage = transcription; - // this.sendMessage(); - }, - - // Search functionality - performSearch() { - if (!this.messageSearch.trim()) { - this.isSearching = false; - this.filteredMessages = []; - return; - } - - this.isSearching = true; - const query = this.messageSearch.toLowerCase(); - - this.filteredMessages = this.allMessages.filter(message => - message.content && - message.content.toLowerCase().includes(query) - ); - }, - - clearSearch() { - this.messageSearch = ''; - this.isSearching = false; - this.filteredMessages = []; - }, - - // Event handlers voor specialist events - handleSpecialistComplete(eventData) { - console.log('ChatApp received specialist-complete:', eventData); - - // Als er een form_request is, toon deze in de ChatInput component - if (eventData.form_request) { - console.log('Setting form request in ChatInput:', eventData.form_request); - - try { - // Converteer de form_request naar het verwachte formaat - const formData = this.convertFormRequest(eventData.form_request); - - // Stel het formulier in als currentInputFormData in plaats van als bericht toe te voegen - if (formData && formData.title && formData.fields) { - this.currentInputFormData = formData; - } else { - console.error('Invalid form data after conversion:', formData); - } - } catch (err) { - console.error('Error processing form request:', err); - } - } - }, - - handleSpecialistError(eventData) { - console.log('ChatApp received specialist-error:', eventData); - - // Voeg foutbericht toe - this.addMessage( - eventData.message || 'Er is een fout opgetreden bij het verwerken van uw verzoek.', - 'ai', - 'error' - ); - }, - - // Helper methode om form_request te converteren naar het verwachte formaat - convertFormRequest(formRequest) { - console.log('Converting form request:', formRequest); - - if (!formRequest) { - console.error('Geen geldig formRequest ontvangen'); - return null; - } - - // Controleer of fields een object is voordat we converteren - let fieldsArray; - if (formRequest.fields && typeof formRequest.fields === 'object' && !Array.isArray(formRequest.fields)) { - // Converteer de fields van object naar array formaat - fieldsArray = Object.entries(formRequest.fields).map(([fieldId, fieldDef]) => ({ - id: fieldId, - name: fieldDef.name || fieldId, // Gebruik fieldId als fallback - type: fieldDef.type || 'text', // Standaard naar text - description: fieldDef.description || '', - required: fieldDef.required || false, - default: fieldDef.default || '', - allowedValues: fieldDef.allowed_values || null, - context: fieldDef.context || null - })); - } else if (Array.isArray(formRequest.fields)) { - // Als het al een array is, zorg dat alle velden correct zijn - fieldsArray = formRequest.fields.map(field => ({ - id: field.id || field.name, - name: field.name || field.id, - type: field.type || 'text', - description: field.description || '', - required: field.required || false, - default: field.default || field.defaultValue || '', - allowedValues: field.allowed_values || field.allowedValues || null, - context: field.context || null - })); - } else { - // Fallback naar lege array als er geen velden zijn - console.warn('Formulier heeft geen geldige velden'); - fieldsArray = []; - } - - return { - title: formRequest.name || formRequest.title || 'Formulier', - description: formRequest.description || '', - icon: formRequest.icon || 'form', - version: formRequest.version || '1.0', - fields: fieldsArray - }; - }, - - // Event handlers - handleResize() { - this.isMobile = window.innerWidth <= 768; - this.showSidebar = window.innerWidth > 768; - }, - - handleGlobalKeydown(event) { - // Ctrl/Cmd + K for search - if ((event.ctrlKey || event.metaKey) && event.key === 'k') { - event.preventDefault(); - this.focusSearch(); - } - - // Escape to clear search - if (event.key === 'Escape' && this.isSearching) { - this.clearSearch(); - } - }, - - - // Utility methods - async callAPI(endpoint, data) { - // Gebruik de API prefix uit de lokale variabele - const fullEndpoint = this.apiPrefix + '/chat' + endpoint; - - console.log('Calling API with prefix:', { - prefix: this.apiPrefix, - endpoint: endpoint, - fullEndpoint: fullEndpoint - }); - - const response = await fetch(fullEndpoint, { - method: 'POST', - headers: { - 'Content-Type': 'application/json', - }, - body: JSON.stringify(data) - }); - - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - - return response.json(); - }, - - - formatFileSize(bytes) { - if (bytes === 0) return '0 Bytes'; - const k = 1024; - const sizes = ['Bytes', 'KB', 'MB', 'GB']; - const i = Math.floor(Math.log(bytes) / Math.log(k)); - return parseFloat((bytes / Math.pow(k, i)).toFixed(2)) + ' ' + sizes[i]; - }, - - focusSearch() { - this.$refs.searchInput?.focus(); - }, - - renderComponent() { - console.log('🔍 [DEBUG] ChatApp.renderComponent() aangeroepen'); - console.log('🔍 [DEBUG] window.Vue beschikbaar:', !!window.Vue); - if (window.Vue) { - console.log('🔍 [DEBUG] window.Vue.createApp beschikbaar:', !!window.Vue.createApp); - console.log('🔍 [DEBUG] window.Vue.version:', window.Vue.version); - } - - // We gaan direct de container manipuleren - const container = document.querySelector('.chat-container'); - if (!container) { - console.error('Container niet gevonden voor ChatApp (.chat-container)'); - return; - } - - console.log('🔍 [DEBUG] ChatApp container gevonden, inhoud wordt gerenderd'); - console.log('🔍 [DEBUG] Beschikbare components:', { - MessageHistory: !!window.Components?.MessageHistory, - ChatInput: !!window.Components?.ChatInput - }); - - // Basis layout voor de chat app - container.innerHTML = ` -
- -
- - -
-
- `; - - // Nu we de DOM structuur hebben, gaan we de componenten initialiseren - const messageHistoryContainer = document.getElementById('chat-message-history'); - const chatInputContainer = document.getElementById('chat-input-container'); - - // Instantieer MessageHistory component met Vue - if (messageHistoryContainer) { - console.log('🔍 [DEBUG] MessageHistory container gevonden, initialiseren...'); - try { - // Maak props voor de MessageHistory component - const messageHistoryProps = { - messages: this.allMessages, - isTyping: this.isTyping, - isSubmittingForm: this.isSubmittingForm, - apiPrefix: this.apiPrefix, - autoScroll: true - }; - - // Maak een nieuwe Vue app en registreer alle componenten - const messageHistoryApp = window.Vue.createApp(MessageHistory, messageHistoryProps); - - // Registreer benodigde componenten voor MessageHistory - messageHistoryApp.component('chat-message', ChatMessage); - messageHistoryApp.component('typing-indicator', TypingIndicator); - messageHistoryApp.component('progress-tracker', ProgressTracker); - messageHistoryApp.component('dynamic-form', DynamicForm); - - // Error handler - messageHistoryApp.config.errorHandler = (err, vm, info) => { - console.error('🚨 [Vue Error in MessageHistory]', err); - console.error('Component:', vm); - console.error('Error Info:', info); - }; - - // Geef events door naar de ChatApp - messageHistoryApp.config.globalProperties.$emit = (event, ...args) => { - if (event === 'specialist-complete') { - this.handleSpecialistComplete(args[0]); - } else if (event === 'specialist-error') { - this.handleSpecialistError(args[0]); - } - }; - - // Mount de component en bewaar de referentie - controleer of renderComponent bestaat - let messageHistoryInstance = null; - if (typeof MessageHistory.renderComponent === 'function') { - messageHistoryInstance = MessageHistory.renderComponent( - messageHistoryContainer, - messageHistoryProps, - messageHistoryApp - ); - } else { - // Fallback: direct mounten - messageHistoryInstance = messageHistoryApp.mount(messageHistoryContainer); - console.log('🔍 [DEBUG] MessageHistory direct gemount via app.mount()'); - } - - // Bewaar de instantie voor toekomstige updates - this.$refs.messageHistory = messageHistoryInstance; - console.log('🔍 [DEBUG] MessageHistory component succesvol geïnitialiseerd'); - } catch (error) { - console.error('🚨 [ERROR] Fout bij initialiseren MessageHistory:', error); - } - } else { - console.error('MessageHistory container niet gevonden in de DOM'); - } - - // Instantieer ChatInput component met Vue - if (chatInputContainer) { - console.log('🔍 [DEBUG] ChatInput container gevonden, initialiseren...'); - try { - // Maak props voor de ChatInput component - const chatInputProps = { - currentMessage: this.currentMessage, - isLoading: this.isLoading, - maxLength: this.settings.maxMessageLength, - formData: this.currentInputFormData, - allowFileUpload: this.settings.allowFileUpload, - allowVoiceMessage: this.settings.allowVoiceMessage - }; - - // Maak een nieuwe Vue app en registreer alle componenten - const chatInputApp = window.Vue.createApp(ChatInput, chatInputProps); - - // Registreer benodigde componenten voor ChatInput - chatInputApp.component('dynamic-form', DynamicForm); - chatInputApp.component('form-field', FormField); - - // Error handler - chatInputApp.config.errorHandler = (err, vm, info) => { - console.error('🚨 [Vue Error in ChatInput]', err); - console.error('Component:', vm); - console.error('Error Info:', info); - }; - - // Geef events door naar de ChatApp - chatInputApp.config.globalProperties.$emit = (event, ...args) => { - if (event === 'send-message') { - this.sendMessage(); - } else if (event === 'update-message') { - this.updateCurrentMessage(args[0]); - } else if (event === 'submit-form') { - this.submitFormFromInput(args[0]); - } else if (event === 'upload-file') { - this.handleFileUpload(args[0]); - } else if (event === 'record-voice') { - this.handleVoiceRecord(args[0]); - } - }; - - // Mount de component en bewaar de referentie - controleer of renderComponent bestaat - let chatInputInstance = null; - if (typeof ChatInput.renderComponent === 'function') { - console.log('🔍 [DEBUG] ChatInput.renderComponent wordt aangeroepen met chatInputApp:', chatInputApp); - console.log('🔍 [DEBUG] chatInputApp.mount type:', typeof chatInputApp.mount); - chatInputInstance = ChatInput.renderComponent( - chatInputContainer, - chatInputProps, - chatInputApp - ); - } else { - // Fallback: direct mounten - console.log('🔍 [DEBUG] ChatInput wordt direct gemount via app.mount()'); - chatInputInstance = chatInputApp.mount(chatInputContainer); - console.log('🔍 [DEBUG] ChatInput direct gemount via app.mount()'); - } - - // Bewaar de instantie voor toekomstige updates - this.$refs.chatInput = chatInputInstance; - console.log('🔍 [DEBUG] ChatInput component succesvol geïnitialiseerd'); - } catch (error) { - console.error('🚨 [ERROR] Fout bij initialiseren ChatInput:', error); - } - } else { - console.error('ChatInput container niet gevonden in de DOM'); - } - - console.log('🔍 [DEBUG] ChatApp succesvol gerenderd met alle componenten'); - }, - - }, - - // Voeg een minimale render functie toe (vergelijkbaar met LanguageSelector) - render() { - return document.createElement('div'); - }, - - template: ` -
- - - - - - -
- ` -}; diff --git a/eveai_chat_client/static/assets/js/components/MaterialIconManager.js b/eveai_chat_client/static/assets/js/MaterialIconManager.js similarity index 100% rename from eveai_chat_client/static/assets/js/components/MaterialIconManager.js rename to eveai_chat_client/static/assets/js/MaterialIconManager.js diff --git a/eveai_chat_client/static/assets/js/components/ChatInput.js b/eveai_chat_client/static/assets/js/components/ChatInput.js deleted file mode 100644 index 44626b2..0000000 --- a/eveai_chat_client/static/assets/js/components/ChatInput.js +++ /dev/null @@ -1,391 +0,0 @@ -// static/js/components/ChatInput.js - - // Importeer de benodigde componenten - import { DynamicForm } from './DynamicForm.js'; - import { IconManagerMixin } from '../iconManager.js'; - -// CSS wordt nu geladen via de main bundle in chat-client.js -// We hoeven hier niets dynamisch te laden - -export const ChatInput = { - name: 'ChatInput', - components: { - 'dynamic-form': DynamicForm - }, - // Gebruik de IconManagerMixin om automatisch iconen te laden - mixins: [IconManagerMixin], - created() { - // Als er een formData.icon is, wordt deze automatisch geladen via IconManagerMixin - // Geen expliciete window.iconManager calls meer nodig - - // Maak een benoemde handler voor betere cleanup - this.languageChangeHandler = (event) => { - if (event.detail && event.detail.language) { - this.handleLanguageChange(event); - } - }; - - // Luister naar taalwijzigingen - document.addEventListener('language-changed', this.languageChangeHandler); - }, - beforeUnmount() { - // Verwijder event listener bij unmount met de benoemde handler - if (this.languageChangeHandler) { - document.removeEventListener('language-changed', this.languageChangeHandler); - } - }, - props: { - currentMessage: { - type: String, - default: '' - }, - isLoading: { - type: Boolean, - default: false - }, - placeholder: { - type: String, - default: 'Typ je bericht hier... - Enter om te verzenden, Shift+Enter voor nieuwe regel' - }, - maxLength: { - type: Number, - default: 2000 - }, - formData: { - type: Object, - default: null - }, - }, - emits: ['send-message', 'update-message', 'submit-form'], - watch: { - 'formData.icon': { - handler(newIcon) { - if (newIcon && window.iconManager) { - window.iconManager.ensureIconsLoaded({}, [newIcon]); - } - }, - immediate: true - }, - formData: { - handler(newFormData, oldFormData) { - console.log('ChatInput formData changed:', newFormData); - - if (!newFormData) { - console.log('FormData is null of undefined'); - this.formValues = {}; - return; - } - - // Controleer of velden aanwezig zijn - if (!newFormData.fields) { - console.error('FormData bevat geen velden!', newFormData); - return; - } - - console.log('Velden in formData:', newFormData.fields); - console.log('Aantal velden:', Array.isArray(newFormData.fields) - ? newFormData.fields.length - : Object.keys(newFormData.fields).length); - - // Initialiseer formulierwaarden - this.initFormValues(); - - // Log de geïnitialiseerde waarden - console.log('Formulierwaarden geïnitialiseerd:', this.formValues); - }, - immediate: true, - deep: true - }, - currentMessage(newVal) { - this.localMessage = newVal; - }, - localMessage(newVal) { - this.$emit('update-message', newVal); - this.autoResize(); - } - }, - data() { - return { - localMessage: this.currentMessage, - formValues: {}, - translatedPlaceholder: this.placeholder, - isTranslating: false, - languageChangeHandler: null - }; - }, - computed: { - characterCount() { - return this.localMessage.length; - }, - - isOverLimit() { - return this.characterCount > this.maxLength; - }, - - hasFormData() { - return this.formData && this.formData.fields && - ((Array.isArray(this.formData.fields) && this.formData.fields.length > 0) || - (typeof this.formData.fields === 'object' && Object.keys(this.formData.fields).length > 0)); - }, - - canSend() { - const hasValidForm = this.formData && this.validateForm(); - const hasValidMessage = this.localMessage.trim() && !this.isOverLimit; - - // We kunnen nu verzenden als er een geldig formulier OF een geldig bericht is - // Bij een formulier is aanvullende tekst optioneel - return (!this.isLoading) && (hasValidForm || hasValidMessage); - }, - - hasFormDataToSend() { - return this.formData && this.validateForm(); - }, - - sendButtonText() { - if (this.isLoading) { - return 'Verzenden...'; - } - return this.formData ? 'Verstuur formulier' : 'Verstuur bericht'; - } - }, - mounted() { - this.autoResize(); - // Debug informatie over formData bij initialisatie - console.log('ChatInput mounted, formData:', this.formData); - if (this.formData) { - console.log('FormData bij mount:', JSON.stringify(this.formData)); - } - }, - methods: { - handleLanguageChange(event) { - if (event.detail && event.detail.language) { - this.translatePlaceholder(event.detail.language); - } - }, - - async translatePlaceholder(language) { - // Voorkom dubbele vertaling - if (this.isTranslating) { - console.log('Placeholder vertaling al bezig, overslaan...'); - return; - } - - // Zet de vertaling vlag - this.isTranslating = true; - - // Gebruik de originele placeholder als basis voor vertaling - const originalText = this.placeholder; - - try { - // Controleer of TranslationClient beschikbaar is - if (!window.TranslationClient || typeof window.TranslationClient.translate !== 'function') { - console.error('TranslationClient.translate is niet beschikbaar voor placeholder'); - return; - } - - // Gebruik TranslationClient zonder UI indicator - const apiPrefix = window.chatConfig?.apiPrefix || ''; - const response = await window.TranslationClient.translate( - originalText, - language, - null, // source_lang (auto-detect) - 'chat_input_placeholder', // context - apiPrefix // API prefix voor tenant routing - ); - - if (response.success) { - // Update de placeholder - this.translatedPlaceholder = response.translated_text; - } else { - console.error('Vertaling placeholder mislukt:', response.error); - } - } catch (error) { - console.error('Fout bij vertalen placeholder:', error); - } finally { - // Reset de vertaling vlag - this.isTranslating = false; - } - }, - - initFormValues() { - if (this.formData && this.formData.fields) { - console.log('Initializing form values for fields:', this.formData.fields); - this.formValues = {}; - - // Verwerk array van velden - if (Array.isArray(this.formData.fields)) { - this.formData.fields.forEach(field => { - const fieldId = field.id || field.name; - if (fieldId) { - this.formValues[fieldId] = field.default !== undefined ? field.default : ''; - } - }); - } - // Verwerk object van velden - else if (typeof this.formData.fields === 'object') { - Object.entries(this.formData.fields).forEach(([fieldId, field]) => { - this.formValues[fieldId] = field.default !== undefined ? field.default : ''; - }); - } - - console.log('Initialized form values:', this.formValues); - } - }, - - handleKeydown(event) { - if (event.key === 'Enter' && !event.shiftKey) { - event.preventDefault(); - this.sendMessage(); - } else if (event.key === 'Escape') { - this.localMessage = ''; - } - }, - - sendMessage() { - if (!this.canSend) return; - - // Bij een formulier gaan we het formulier en optioneel bericht combineren - if (this.formData) { - // Valideer het formulier - if (this.validateForm()) { - // Verstuur het formulier, eventueel met aanvullende tekst - this.$emit('submit-form', this.formValues); - } - } else if (this.localMessage.trim()) { - // Verstuur normaal bericht zonder formulier - this.$emit('send-message'); - } - }, - - getFormValuesForSending() { - // Geeft de huidige formulierwaarden terug voor verzending - return this.formValues; - }, - - // Reset het formulier en de waarden - resetForm() { - this.formValues = {}; - this.initFormValues(); - }, - - // Annuleer het formulier (wordt momenteel niet gebruikt) - cancelForm() { - this.formValues = {}; - // We sturen geen emit meer, maar het kan nuttig zijn om in de toekomst te hebben - }, - - validateForm() { - if (!this.formData || !this.formData.fields) return false; - - // Controleer of alle verplichte velden zijn ingevuld - let missingFields = []; - - if (Array.isArray(this.formData.fields)) { - missingFields = this.formData.fields.filter(field => { - if (!field.required) return false; - const fieldId = field.id || field.name; - const value = this.formValues[fieldId]; - return value === undefined || value === null || (typeof value === 'string' && !value.trim()); - }); - } else { - // Voor object-gebaseerde velden - Object.entries(this.formData.fields).forEach(([fieldId, field]) => { - if (field.required) { - const value = this.formValues[fieldId]; - if (value === undefined || value === null || (typeof value === 'string' && !value.trim())) { - missingFields.push(field); - } - } - }); - } - - return missingFields.length === 0; - }, - - autoResize() { - this.$nextTick(() => { - const textarea = this.$refs.messageInput; - if (textarea) { - textarea.style.height = 'auto'; - textarea.style.height = Math.min(textarea.scrollHeight, 120) + 'px'; - } - }); - }, - - focusInput() { - this.$refs.messageInput?.focus(); - }, - - clearInput() { - this.localMessage = ''; - this.focusInput(); - }, - - updateFormValues(newValues) { - // Controleer of er daadwerkelijk iets is veranderd om recursieve updates te voorkomen - if (JSON.stringify(newValues) !== JSON.stringify(this.formValues)) { - this.formValues = JSON.parse(JSON.stringify(newValues)); - } - } - }, - template: ` -
- - -
- -
Fout: Geen velden gevonden in formulier
- - - -
- -
- -
- - - -
- {{ characterCount }}/{{ maxLength }} -
-
- - -
- - - -
-
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/ChatMessage.js b/eveai_chat_client/static/assets/js/components/ChatMessage.js deleted file mode 100644 index 70e8937..0000000 --- a/eveai_chat_client/static/assets/js/components/ChatMessage.js +++ /dev/null @@ -1,318 +0,0 @@ -// Import benodigde componenten -import { DynamicForm } from './DynamicForm.js'; -import { ProgressTracker } from './ProgressTracker.js'; - -// CSS en Material Icons worden nu geladen via de hoofdbundel en scripts.html -// We hoeven hier niets dynamisch te laden - -export const ChatMessage = { - name: 'ChatMessage', - components: { - 'dynamic-form': DynamicForm, - 'progress-tracker': ProgressTracker - }, - props: { - message: { - type: Object, - required: true, - validator: (message) => { - return message.id && message.content !== undefined && message.sender && message.type; - } - }, - isSubmittingForm: { - type: Boolean, - default: false - }, - apiPrefix: { - type: String, - default: '' - } - }, - created() { - // Zorg ervoor dat het icoon geladen wordt als iconManager beschikbaar is - if (window.iconManager && this.message.formData && this.message.formData.icon) { - window.iconManager.loadIcon(this.message.formData.icon); - } - - // Sla de originele inhoud op voor het eerste bericht als we in een conversatie zitten met slechts één bericht - if (this.message.sender === 'ai' && !this.message.originalContent) { - this.message.originalContent = this.message.content; - } - }, - watch: { - 'message.formData.icon': { - handler(newIcon) { - if (newIcon && window.iconManager) { - window.iconManager.loadIcon(newIcon); - } - }, - immediate: true - } - }, - emits: ['image-loaded', 'retry-message', 'specialist-complete', 'specialist-error'], - data() { - return { - formVisible: true - }; - }, - mounted() { - // Luister naar taalwijzigingen - document.addEventListener('language-changed', this.handleLanguageChange); - }, - beforeUnmount() { - // Verwijder event listener bij verwijderen component - document.removeEventListener('language-changed', this.handleLanguageChange); - }, - computed: { - hasFormData() { - return this.message.formData && - ((Array.isArray(this.message.formData.fields) && this.message.formData.fields.length > 0) || - (typeof this.message.formData.fields === 'object' && Object.keys(this.message.formData.fields).length > 0)); - }, - hasFormValues() { - return this.message.formValues && Object.keys(this.message.formValues).length > 0; - } - }, - methods: { - async handleLanguageChange(event) { - // Controleer of dit het eerste bericht is in een gesprek met maar één bericht - // Dit wordt al afgehandeld door MessageHistory component, dus we hoeven hier niets te doen - // De implementatie hiervan blijft in MessageHistory om dubbele vertaling te voorkomen - }, - - handleSpecialistError(eventData) { - console.log('ChatMessage received specialist-error event:', eventData); - - // Creëer een error message met correcte styling - this.message.type = 'error'; - this.message.content = eventData.message || 'Er is een fout opgetreden bij het verwerken van uw verzoek.'; - this.message.retryable = true; - this.message.error = true; // Voeg error flag toe voor styling - - // Bubble up naar parent component voor verdere afhandeling - this.$emit('specialist-error', { - messageId: this.message.id, - ...eventData - }); - }, - - handleSpecialistComplete(eventData) { - console.log('ChatMessage received specialist-complete event:', eventData); - - // Update de inhoud van het bericht met het antwoord - if (eventData.answer) { - console.log('Updating message content with answer:', eventData.answer); - this.message.content = eventData.answer; - } else { - console.error('No answer in specialist-complete event data'); - } - - // Bubble up naar parent component voor eventuele verdere afhandeling - this.$emit('specialist-complete', { - messageId: this.message.id, - answer: eventData.answer, - form_request: eventData.form_request, // Wordt nu door ChatApp verwerkt - result: eventData.result, - interactionId: eventData.interactionId, - taskId: eventData.taskId - }); - }, - - formatMessage(content) { - if (!content) return ''; - - // Enhanced markdown-like formatting - return content - .replace(/\*\*(.*?)\*\*/g, '$1') - .replace(/\*(.*?)\*/g, '$1') - .replace(/`(.*?)`/g, '$1') - .replace(/\[([^\]]+)\]\(([^)]+)\)/g, '$1') - .replace(/\n/g, '
'); - }, - - - removeMessage() { - // Dit zou een event moeten triggeren naar de parent component - }, - - reactToMessage(emoji) { - // Implementatie van reacties zou hier komen - }, - - getMessageClass() { - return `message ${this.message.sender}`; - } - }, - template: ` -
- - - - - - - - - - - - - - - - - -
- - {{ reaction.emoji }} {{ reaction.count }} - -
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/DynamicForm.js b/eveai_chat_client/static/assets/js/components/DynamicForm.js deleted file mode 100644 index c44e973..0000000 --- a/eveai_chat_client/static/assets/js/components/DynamicForm.js +++ /dev/null @@ -1,250 +0,0 @@ -export const DynamicForm = { - name: 'DynamicForm', - created() { - // Zorg ervoor dat het icoon geladen wordt als iconManager beschikbaar is - if (window.iconManager && this.formData && this.formData.icon) { - window.iconManager.loadIcon(this.formData.icon); - } - }, - props: { - formData: { - type: Object, - required: true, - validator: (formData) => { - // Controleer eerst of formData een geldig object is - if (!formData || typeof formData !== 'object') { - console.error('FormData is niet een geldig object'); - return false; - } - - // Controleer of er een titel of naam is - if (!formData.title && !formData.name) { - console.error('FormData heeft geen title of name'); - return false; - } - - // Controleer of er velden zijn - if (!formData.fields) { - console.error('FormData heeft geen fields eigenschap'); - return false; - } - - // Controleer of velden een array of object zijn - if (!Array.isArray(formData.fields) && typeof formData.fields !== 'object') { - console.error('FormData.fields is geen array of object'); - return false; - } - - console.log('FormData is geldig:', formData); - return true; - } - }, - formValues: { - type: Object, - default: () => ({}) - }, - isSubmitting: { - type: Boolean, - default: false - }, - readOnly: { - type: Boolean, - default: false - }, - hideActions: { - type: Boolean, - default: false - } - }, - emits: ['submit', 'cancel', 'update:formValues'], - data() { - return { - localFormValues: { ...this.formValues } - }; - }, - watch: { - formValues: { - handler(newValues) { - // Gebruik een vlag om recursieve updates te voorkomen - if (JSON.stringify(newValues) !== JSON.stringify(this.localFormValues)) { - this.localFormValues = JSON.parse(JSON.stringify(newValues)); - } - }, - deep: true - }, - localFormValues: { - handler(newValues) { - // Gebruik een vlag om recursieve updates te voorkomen - if (JSON.stringify(newValues) !== JSON.stringify(this.formValues)) { - this.$emit('update:formValues', JSON.parse(JSON.stringify(newValues))); - } - }, - deep: true - }, - 'formData.icon': { - handler(newIcon) { - if (newIcon && window.iconManager) { - window.iconManager.loadIcon(newIcon); - } - }, - immediate: true - } - }, - methods: { - handleSubmit() { - // Basic validation - const missingFields = []; - - if (Array.isArray(this.formData.fields)) { - // Valideer array-gebaseerde velden - this.formData.fields.forEach(field => { - const fieldId = field.id || field.name; - if (field.required) { - const value = this.localFormValues[fieldId]; - if (value === undefined || value === null || - (typeof value === 'string' && !value.trim()) || - (Array.isArray(value) && value.length === 0)) { - missingFields.push(field.name); - } - } - }); - } else { - // Valideer object-gebaseerde velden - Object.entries(this.formData.fields).forEach(([fieldId, field]) => { - if (field.required) { - const value = this.localFormValues[fieldId]; - if (value === undefined || value === null || - (typeof value === 'string' && !value.trim()) || - (Array.isArray(value) && value.length === 0)) { - missingFields.push(field.name); - } - } - }); - }; - - if (missingFields.length > 0) { - const fieldNames = missingFields.join(', '); - alert(`De volgende velden zijn verplicht: ${fieldNames}`); - return; - } - - this.$emit('submit', this.localFormValues); - }, - - handleCancel() { - this.$emit('cancel'); - }, - - updateFieldValue(fieldId, value) { - this.localFormValues[fieldId] = value; - } - }, - template: ` -
-
-
- {{ formData.icon }} -
-
-
{{ formData.title || formData.name }}
-
{{ formData.description }}
-
-
- -
- - - - -
- -
-
- - -
- -
- - - -
-
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/FormField.js b/eveai_chat_client/static/assets/js/components/FormField.js deleted file mode 100644 index 7a25b11..0000000 --- a/eveai_chat_client/static/assets/js/components/FormField.js +++ /dev/null @@ -1,213 +0,0 @@ -export const FormField = { - name: 'FormField', - props: { - field: { - type: Object, - required: true, - validator: (field) => { - return field.name && field.type; - } - }, - fieldId: { - type: String, - required: true - }, - modelValue: { - default: null - } - }, - emits: ['update:modelValue'], - computed: { - value: { - get() { - // Gebruik default waarde als modelValue undefined is - if (this.modelValue === undefined || this.modelValue === null) { - if (this.field.type === 'boolean') { - return this.field.default === true; - } - return this.field.default !== undefined ? this.field.default : ''; - } - return this.modelValue; - }, - set(value) { - // Voorkom emit als de waarde niet is veranderd - if (JSON.stringify(value) !== JSON.stringify(this.modelValue)) { - this.$emit('update:modelValue', value); - } - } - }, - fieldType() { - // Map Python types naar HTML input types - const typeMap = { - 'str': 'text', - 'string': 'text', - 'int': 'number', - 'integer': 'number', - 'float': 'number', - 'text': 'textarea', - 'enum': 'select', - 'options': 'radio', - 'boolean': 'checkbox' - }; - return typeMap[this.field.type] || this.field.type; - }, - stepValue() { - return this.field.type === 'float' ? 'any' : 1; - }, - description() { - return this.field.description || ''; - } - }, - methods: { - handleFileUpload(event) { - const file = event.target.files[0]; - if (file) { - this.value = file; - } - } - }, - template: ` -
- - - - -
- -
- {{ field.context }} -
- - - - - - - - - - - - -
- Geen opties beschikbaar voor dit veld. -
- - -
-
-
- - -
-
- -
- Geen opties beschikbaar voor dit veld. -
-
-
- - -
- -
- {{ field.context }} -
-
-
- - - - -
- -
-
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/FormMessage.js b/eveai_chat_client/static/assets/js/components/FormMessage.js deleted file mode 100644 index b381d3f..0000000 --- a/eveai_chat_client/static/assets/js/components/FormMessage.js +++ /dev/null @@ -1,59 +0,0 @@ -// static/js/components/FormMessage.js - -export const FormMessage = { - name: 'FormMessage', - props: { - formData: { - type: Object, - required: true - }, - formValues: { - type: Object, - required: true - } - }, - computed: { - hasFormData() { - return this.formData && this.formData.fields && Object.keys(this.formData.fields).length > 0; - }, - formattedFields() { - if (!this.hasFormData) return []; - - return Object.entries(this.formData.fields).map(([fieldId, field]) => { - let displayValue = this.formValues[fieldId] || ''; - - // Format different field types - if (field.type === 'boolean') { - displayValue = displayValue ? 'Ja' : 'Nee'; - } else if (field.type === 'enum' && !displayValue && field.default) { - displayValue = field.default; - } else if (field.type === 'text') { - // Voor tekstgebieden, behoud witruimte - // De CSS zal dit tonen met white-space: pre-wrap - } - - return { - id: fieldId, - name: field.name, - value: displayValue || '-', - type: field.type - }; - }); - } - }, - template: ` -
-
- {{ formData.icon }} - {{ formData.name }} -
- -
-
-
{{ field.name }}:
-
{{ field.value }}
-
-
-
- ` -}; diff --git a/eveai_chat_client/static/assets/js/components/LanguageSelector.js b/eveai_chat_client/static/assets/js/components/LanguageSelector.js deleted file mode 100644 index 361f029..0000000 --- a/eveai_chat_client/static/assets/js/components/LanguageSelector.js +++ /dev/null @@ -1,115 +0,0 @@ -export const LanguageSelector = { - name: 'LanguageSelector', - props: { - initialLanguage: { - type: String, - default: 'nl' - }, - currentLanguage: { - type: String, - default: null - }, - supportedLanguageDetails: { - type: Object, - default: () => ({}) - }, - allowedLanguages: { - type: Array, - default: () => ['nl', 'en', 'fr', 'de'] - }, - }, - data() { - const startLanguage = this.currentLanguage || this.initialLanguage; - return { - selectedLanguage: startLanguage, - internalCurrentLanguage: startLanguage - }; - }, - mounted() { - console.log('🔍 [DEBUG] LanguageSelector mounted with Vue template'); - console.log('🔍 [DEBUG] Props:', { - initialLanguage: this.initialLanguage, - currentLanguage: this.currentLanguage, - supportedLanguageDetails: this.supportedLanguageDetails, - allowedLanguages: this.allowedLanguages - }); - - // Emit initial language - this.$emit('language-changed', this.selectedLanguage); - - // DOM event - const event = new CustomEvent('vue:language-changed', { - detail: { language: this.selectedLanguage } - }); - document.dispatchEvent(event); - }, - methods: { - getAvailableLanguages() { - const languages = []; - const languagesToUse = (this.allowedLanguages && this.allowedLanguages.length > 0) - ? this.allowedLanguages - : ['nl', 'en', 'fr', 'de']; - - if (this.supportedLanguageDetails && Object.keys(this.supportedLanguageDetails).length > 0) { - for (const [langName, langDetails] of Object.entries(this.supportedLanguageDetails)) { - const isoCode = langDetails['iso 639-1']; - if (languagesToUse.includes(isoCode)) { - languages.push({ - code: isoCode, - name: langName, - flag: langDetails.flag || '' - }); - } - } - } else { - const defaultLanguages = { - 'nl': { name: 'Nederlands', flag: '🇳🇱' }, - 'en': { name: 'English', flag: '🇬🇧' }, - 'fr': { name: 'Français', flag: '🇫🇷' }, - 'de': { name: 'Deutsch', flag: '🇩🇪' } - }; - - languagesToUse.forEach(code => { - if (defaultLanguages[code]) { - languages.push({ - code: code, - name: defaultLanguages[code].name, - flag: defaultLanguages[code].flag - }); - } - }); - } - - return languages; - }, - - changeLanguage(languageCode) { - console.log(`LanguageSelector: changeLanguage called with ${languageCode}`); - - if (this.internalCurrentLanguage !== languageCode) { - this.internalCurrentLanguage = languageCode; - this.selectedLanguage = languageCode; - - // Vue component emit - this.$emit('language-changed', languageCode); - - // DOM event - const event = new CustomEvent('vue:language-changed', { - detail: { language: languageCode } - }); - document.dispatchEvent(event); - } - } - }, - - template: ` -
- -
- -
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/MessageHistory.js b/eveai_chat_client/static/assets/js/components/MessageHistory.js deleted file mode 100644 index 973eb53..0000000 --- a/eveai_chat_client/static/assets/js/components/MessageHistory.js +++ /dev/null @@ -1,230 +0,0 @@ - // Import afhankelijke componenten - import { ChatMessage } from './ChatMessage.js'; - import { TypingIndicator } from './TypingIndicator.js'; - import { ProgressTracker } from './ProgressTracker.js'; - - export const MessageHistory = { - name: 'MessageHistory', - components: { - 'chat-message': ChatMessage, - 'typing-indicator': TypingIndicator, - 'progress-tracker': ProgressTracker - }, - props: { - messages: { - type: Array, - required: true, - default: () => [] - }, - isTyping: { - type: Boolean, - default: false - }, - isSubmittingForm: { - type: Boolean, - default: false - }, - apiPrefix: { - type: String, - default: '' - }, - autoScroll: { - type: Boolean, - default: true - } - }, - emits: ['submit-form', 'load-more', 'specialist-complete', 'specialist-error'], - data() { - return { - isAtBottom: true, - unreadCount: 0, - originalFirstMessage: null, - isTranslating: false, // Vlag om dubbele vertaling te voorkomen - languageChangeHandler: null // Referentie voor cleanup - }; - }, - mounted() { - this.scrollToBottom(); - this.setupScrollListener(); - this.listenForLanguageChanges(); - - // Sla de originele inhoud van het eerste bericht op als er maar één bericht is - if (this.messages.length === 1 && this.messages[0].sender === 'ai') { - this.originalFirstMessage = this.messages[0].content; - } - }, - updated() { - if (this.autoScroll && this.isAtBottom) { - this.$nextTick(() => this.scrollToBottom()); - } - }, - methods: { - listenForLanguageChanges() { - // Maak een benoemde handler voor cleanup - this.languageChangeHandler = (event) => { - if (event.detail && event.detail.language) { - this.translateFirstMessageIfNeeded(event.detail.language); - } - }; - - document.addEventListener('language-changed', this.languageChangeHandler); - }, - - async translateFirstMessageIfNeeded(language) { - // Voorkom dubbele vertaling - if (this.isTranslating) { - console.log('Vertaling al bezig, overslaan...'); - return; - } - - // Alleen vertalen als er precies één bericht is en het is van de AI - if (this.messages.length === 1 && this.messages[0].sender === 'ai') { - const firstMessage = this.messages[0]; - - // Controleer of we een origineel bericht hebben om te vertalen - const contentToTranslate = this.originalFirstMessage || firstMessage.content; - - // Sla het originele bericht op als we dat nog niet hebben gedaan - if (!this.originalFirstMessage) { - this.originalFirstMessage = contentToTranslate; - } - - // Zet de vertaling vlag - this.isTranslating = true; - - try { - // Controleer of de vertaalclient beschikbaar is - if (!window.TranslationClient || typeof window.TranslationClient.translate !== 'function') { - console.error('TranslationClient.translate is niet beschikbaar'); - return; - } - - console.log(`Vertalen van eerste bericht naar ${language}`); - - // Vertaal het bericht met de juiste context - const response = await window.TranslationClient.translate( - contentToTranslate, - language, - null, // source_lang (auto-detect) - 'first_message', // context - this.apiPrefix // API prefix voor tenant routing - ); - - if (response.success) { - console.log('Vertaling van eerste bericht voltooid:', response.translated_text); - // Update het bericht zonder een indicator te tonen - firstMessage.content = response.translated_text; - } else { - console.error('Vertaling van eerste bericht mislukt:', response.error); - } - } catch (error) { - console.error('Fout bij het vertalen van eerste bericht:', error); - } finally { - // Reset de vertaling vlag - this.isTranslating = false; - } - } - }, - - scrollToBottom() { - const container = this.$refs.messagesContainer; - if (container) { - container.scrollTop = container.scrollHeight; - this.isAtBottom = true; - this.showScrollButton = false; - this.unreadCount = 0; - } - }, - - setupScrollListener() { - const container = this.$refs.messagesContainer; - if (!container) return; - - container.addEventListener('scroll', this.handleScroll); - }, - - handleScroll() { - const container = this.$refs.messagesContainer; - if (!container) return; - - const threshold = 100; // pixels from bottom - const isNearBottom = container.scrollHeight - container.scrollTop - container.clientHeight < threshold; - - this.isAtBottom = isNearBottom; - - // Load more messages when scrolled to top - if (container.scrollTop === 0) { - this.$emit('load-more'); - } - }, - - - handleImageLoaded() { - // Auto-scroll when images load to maintain position - if (this.isAtBottom) { - this.$nextTick(() => this.scrollToBottom()); - } - }, - - searchMessages(query) { - // Simple message search - if (!query.trim()) return this.messages; - - const searchTerm = query.toLowerCase(); - return this.messages.filter(message => - message.content && - message.content.toLowerCase().includes(searchTerm) - ); - }, - - }, - beforeUnmount() { - // Cleanup scroll listener - const container = this.$refs.messagesContainer; - if (container) { - container.removeEventListener('scroll', this.handleScroll); - } - - // Cleanup language change listener - if (this.languageChangeHandler) { - document.removeEventListener('language-changed', this.languageChangeHandler); - } - }, - template: ` -
- -
- -
- -
- - -
-
💬
-
Nog geen berichten
-
Start een gesprek door een bericht te typen!
-
- - - - - - -
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/ProgressTracker.js b/eveai_chat_client/static/assets/js/components/ProgressTracker.js deleted file mode 100644 index 4b2311e..0000000 --- a/eveai_chat_client/static/assets/js/components/ProgressTracker.js +++ /dev/null @@ -1,311 +0,0 @@ -export const ProgressTracker = { - name: 'ProgressTracker', - props: { - taskId: { - type: String, - required: true - }, - apiPrefix: { - type: String, - default: '' - } - }, - emits: ['specialist-complete', 'progress-update', 'specialist-error'], - data() { - return { - isExpanded: false, - progressLines: [], - eventSource: null, - isCompleted: false, - lastLine: '', - error: null, - connecting: true, - finalAnswer: null, - hasError: false - }; - }, - computed: { - progressEndpoint() { - return `${this.apiPrefix}/chat/api/task_progress/${this.taskId}`; - }, - displayLines() { - return this.isExpanded ? this.progressLines : [ - this.lastLine || 'Verbinden met taak...' - ]; - } - }, - mounted() { - this.connectToEventSource(); - }, - beforeUnmount() { - this.disconnectEventSource(); - }, - methods: { - connectToEventSource() { - try { - this.connecting = true; - this.error = null; - - // Sluit eventuele bestaande verbinding - this.disconnectEventSource(); - - // Maak nieuwe SSE verbinding - this.eventSource = new EventSource(this.progressEndpoint); - - // Algemene event handler - this.eventSource.onmessage = (event) => { - this.handleProgressUpdate(event); - }; - - // Specifieke event handlers per type - this.eventSource.addEventListener('progress', (event) => { - this.handleProgressUpdate(event, 'progress'); - }); - - this.eventSource.addEventListener('EveAI Specialist Complete', (event) => { - console.log('Received EveAI Specialist Complete event'); - this.handleProgressUpdate(event, 'EveAI Specialist Complete'); - }); - - this.eventSource.addEventListener('error', (event) => { - this.handleError(event); - }); - - // Status handlers - this.eventSource.onopen = () => { - this.connecting = false; - }; - - this.eventSource.onerror = (error) => { - console.error('SSE Connection error:', error); - this.error = 'Verbindingsfout. Probeer het later opnieuw.'; - this.connecting = false; - - // Probeer opnieuw te verbinden na 3 seconden - setTimeout(() => { - if (!this.isCompleted && this.progressLines.length === 0) { - this.connectToEventSource(); - } - }, 3000); - }; - } catch (err) { - console.error('Error setting up event source:', err); - this.error = 'Kan geen verbinding maken met de voortgangsupdates.'; - this.connecting = false; - } - }, - - disconnectEventSource() { - if (this.eventSource) { - this.eventSource.close(); - this.eventSource = null; - } - }, - - handleProgressUpdate(event, eventType = null) { - try { - const update = JSON.parse(event.data); - - // Controleer op verschillende typen updates - const processingType = update.processing_type; - const data = update.data || {}; - - // Process based on processing type - let message = this.formatProgressMessage(processingType, data); - - // Alleen bericht toevoegen als er daadwerkelijk een bericht is - if (message) { - this.progressLines.push(message); - this.lastLine = message; - } - - // Emit progress update voor parent component - this.$emit('progress-update', { - processingType, - data, - message - }); - - // Handle completion and errors - if (processingType === 'EveAI Specialist Complete') { - console.log('Processing EveAI Specialist Complete:', data); - this.handleSpecialistComplete(data); - } else if (processingType === 'EveAI Specialist Error') { - this.handleSpecialistError(data); - } else if (processingType === 'Task Complete' || processingType === 'Task Error') { - this.isCompleted = true; - this.disconnectEventSource(); - } - - // Scroll automatisch naar beneden als uitgevouwen - if (this.isExpanded) { - this.$nextTick(() => { - const container = this.$refs.progressContainer; - if (container) { - container.scrollTop = container.scrollHeight; - } - }); - } - } catch (err) { - console.error('Error parsing progress update:', err, event.data); - } - }, - - formatProgressMessage(processingType, data) { - // Lege data dictionary - toon enkel processing type - if (!data || Object.keys(data).length === 0) { - return processingType; - } - - // Specifiek bericht als er een message field is - if (data.message) { - return data.message; - } - - // Processing type met name veld als dat bestaat - if (data.name) { - return `${processingType}: ${data.name}`; - } - - // Stap informatie - if (data.step) { - return `Stap ${data.step}: ${data.description || ''}`; - } - - // Voor EveAI Specialist Complete - geen progress message - if (processingType === 'EveAI Specialist Complete') { - return null; - } - - // Default: processing type + eventueel data als string - return processingType; - }, - - handleSpecialistComplete(data) { - this.isCompleted = true; - this.disconnectEventSource(); - - // Debug logging - console.log('Specialist Complete Data:', data); - - // Extract answer from data.result.answer - if (data.result) { - if (data.result.answer) { - this.finalAnswer = data.result.answer; - console.log('Final Answer:', this.finalAnswer); - - // Direct update van de parent message als noodoplossing - try { - if (this.$parent && this.$parent.message) { - console.log('Direct update parent message'); - this.$parent.message.content = data.result.answer; - } - } catch(err) { - console.error('Error updating parent message:', err); - } - } - - // Emit event to parent met alle relevante data inclusief form_request - this.$emit('specialist-complete', { - answer: data.result.answer || '', - form_request: data.result.form_request, // Voeg form_request toe - result: data.result, - interactionId: data.interaction_id, - taskId: this.taskId - }); - } else { - console.error('Missing result.answer in specialist complete data:', data); - } - }, - - handleSpecialistError(data) { - this.isCompleted = true; - this.hasError = true; - this.disconnectEventSource(); - - // Zet gebruiksvriendelijke foutmelding - const errorMessage = "We could not process your request. Please try again later."; - this.error = errorMessage; - - // Log de werkelijke fout voor debug doeleinden - if (data.Error) { - console.error('Specialist Error:', data.Error); - } - - // Emit error event naar parent - this.$emit('specialist-error', { - message: errorMessage, - originalError: data.Error, - taskId: this.taskId - }); - }, - - handleError(event) { - console.error('SSE Error event:', event); - this.error = 'Er is een fout opgetreden bij het verwerken van updates.'; - - // Probeer parse van foutgegevens - try { - const errorData = JSON.parse(event.data); - if (errorData && errorData.message) { - this.error = errorData.message; - } - } catch (err) { - // Blijf bij algemene foutmelding als parsing mislukt - } - }, - - toggleExpand() { - this.isExpanded = !this.isExpanded; - - if (this.isExpanded) { - this.$nextTick(() => { - const container = this.$refs.progressContainer; - if (container) { - container.scrollTop = container.scrollHeight; - } - }); - } - } - }, - template: ` -
-
-
- - - - - Fout bij verwerking - Verwerking voltooid - Bezig met redeneren... -
-
- {{ isExpanded ? '▲' : '▼' }} -
-
- -
- {{ error }} -
- -
-
- {{ line }} -
-
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/TypingIndicator.js b/eveai_chat_client/static/assets/js/components/TypingIndicator.js deleted file mode 100644 index 0743551..0000000 --- a/eveai_chat_client/static/assets/js/components/TypingIndicator.js +++ /dev/null @@ -1,24 +0,0 @@ -export const TypingIndicator = { - name: 'TypingIndicator', - props: { - showText: { - type: Boolean, - default: false - }, - text: { - type: String, - default: 'Bezig met typen...' - } - }, - methods: { - // Andere methoden kunnen hier staan - }, - template: ` -
-
-
-
-
{{ text }}
-
- ` -}; \ No newline at end of file diff --git a/eveai_chat_client/static/assets/js/components/index.js b/eveai_chat_client/static/assets/js/components/index.js deleted file mode 100644 index 39f6f1f..0000000 --- a/eveai_chat_client/static/assets/js/components/index.js +++ /dev/null @@ -1,34 +0,0 @@ -// Component barrel export file -// Dit bestand maakt het eenvoudiger om alle componenten in één keer te importeren - -// Importeer eerst alle componenten lokaal -import { TypingIndicator } from './TypingIndicator.js'; -import { FormField } from './FormField.js'; -import { DynamicForm } from './DynamicForm.js'; -import { ChatMessage } from './ChatMessage.js'; -import { MessageHistory } from './MessageHistory.js'; -import { ProgressTracker } from './ProgressTracker.js'; -import { LanguageSelector } from './LanguageSelector.js'; -import { ChatInput } from './ChatInput.js'; - -// Exporteer componenten individueel -export { TypingIndicator }; -export { FormField }; -export { DynamicForm }; -export { ChatMessage }; -export { MessageHistory }; -export { ProgressTracker }; -export { LanguageSelector }; -export { ChatInput }; - -// Debug logging voor index.js -console.log('🔍 [DEBUG] Components index.js geladen, exporteert:', { - TypingIndicator: typeof TypingIndicator, - ChatMessage: typeof ChatMessage, - MessageHistory: typeof MessageHistory, - ChatInput: typeof ChatInput -}); - -// Nu kunnen componenten op verschillende manieren worden geïmporteerd: -// 1. import { FormField, ChatMessage } from './components'; -// 2. import { ChatInput } from './components/ChatInput.js'; diff --git a/eveai_chat_client/static/assets/js/translation.js b/eveai_chat_client/static/assets/js/translation.js index 21ebe6e..8269bc4 100644 --- a/eveai_chat_client/static/assets/js/translation.js +++ b/eveai_chat_client/static/assets/js/translation.js @@ -27,7 +27,7 @@ const TranslationClient = { if (context) requestData.context = context; // Bouw de juiste endpoint URL met prefix - const endpoint = `${apiPrefix}/chat/api/translate`; + const endpoint = `${apiPrefix}/api/translate`; console.log(`Vertaling aanvragen op endpoint: ${endpoint}`); // Doe het API-verzoek diff --git a/eveai_chat_client/static/assets/vue-components/ChatApp.vue b/eveai_chat_client/static/assets/vue-components/ChatApp.vue new file mode 100644 index 0000000..d5efa59 --- /dev/null +++ b/eveai_chat_client/static/assets/vue-components/ChatApp.vue @@ -0,0 +1,505 @@ + + + + + \ No newline at end of file diff --git a/eveai_chat_client/static/assets/vue-components/LanguageSelector.vue b/eveai_chat_client/static/assets/vue-components/LanguageSelector.vue index 0138200..f0126ef 100644 --- a/eveai_chat_client/static/assets/vue-components/LanguageSelector.vue +++ b/eveai_chat_client/static/assets/vue-components/LanguageSelector.vue @@ -49,14 +49,6 @@ export default { }; }, mounted() { - console.log('🔍 [DEBUG] LanguageSelector mounted with Vue SFC'); - console.log('🔍 [DEBUG] Props:', { - initialLanguage: this.initialLanguage, - currentLanguage: this.currentLanguage, - supportedLanguageDetails: this.supportedLanguageDetails, - allowedLanguages: this.allowedLanguages - }); - // Emit initial language this.$emit('language-changed', this.selectedLanguage); diff --git a/eveai_chat_client/static/assets/vue-components/ProgressTracker.vue b/eveai_chat_client/static/assets/vue-components/ProgressTracker.vue index aa0872a..c8e6e97 100644 --- a/eveai_chat_client/static/assets/vue-components/ProgressTracker.vue +++ b/eveai_chat_client/static/assets/vue-components/ProgressTracker.vue @@ -88,16 +88,16 @@ export default { } console.log('Connecting to progress stream for task:', this.taskId); - + // Construct the SSE URL const baseUrl = window.location.origin; - const sseUrl = `${baseUrl}${this.apiPrefix}/api/progress/${this.taskId}`; - + const sseUrl = `${baseUrl}${this.apiPrefix}/api/task_progress/${this.taskId}`; + console.log('SSE URL:', sseUrl); try { this.eventSource = new EventSource(sseUrl); - + this.eventSource.onopen = () => { console.log('Progress stream connected'); this.connecting = false; @@ -112,19 +112,6 @@ export default { this.handleError(event); }; - // Listen for specific event types - this.eventSource.addEventListener('progress', (event) => { - this.handleProgressUpdate(event); - }); - - this.eventSource.addEventListener('complete', (event) => { - this.handleSpecialistComplete(event); - }); - - this.eventSource.addEventListener('error', (event) => { - this.handleSpecialistError(event); - }); - } catch (error) { console.error('Failed to create EventSource:', error); this.error = 'Kan geen verbinding maken met de voortgangsstream.'; @@ -145,18 +132,39 @@ export default { const data = JSON.parse(event.data); console.log('Progress update:', data); + // Check voor processing_type om te bepalen welke handler te gebruiken + if (data.processing_type === 'EveAI Specialist Complete') { + console.log('Detected specialist complete via processing_type'); + this.handleSpecialistComplete(event); + return; + } + + // Check voor andere completion statuses en errors + if (data.processing_type === 'EveAI Specialist Error') + { + console.log('Detected specialist error via processing_type or status'); + this.handleSpecialistError(event); + return; + } + + // Voeg bericht toe aan progressLines if (data.message) { this.progressLines.push(data.message); - - // Auto-scroll to bottom if expanded - if (this.isExpanded) { - this.$nextTick(() => { - const container = this.$refs.progressContainer; - if (container) { - container.scrollTop = container.scrollHeight; - } - }); - } + } else if (data.data && data.data.message) { + this.progressLines.push(data.data.message); + } else if (data.processing_type) { + // Gebruik processing_type als message wanneer er geen andere message is + this.progressLines.push(`${data.processing_type}...`); + } + + // Auto-scroll to bottom if expanded + if (this.isExpanded) { + this.$nextTick(() => { + const container = this.$refs.progressContainer; + if (container) { + container.scrollTop = container.scrollHeight; + } + }); } } catch (error) { console.error('Error parsing progress data:', error); @@ -165,7 +173,7 @@ export default { handleSpecialistComplete(event) { console.log('Specialist complete event:', event); - + try { const data = JSON.parse(event.data); console.log('Specialist complete data:', data); @@ -174,27 +182,42 @@ export default { this.connecting = false; this.disconnectEventSource(); - // Emit the complete event to parent - if (data.result && data.result.answer) { - this.$emit('specialist-complete', { - answer: data.result.answer, - form_request: data.result.form_request, - result: data.result, - interactionId: data.interaction_id, - taskId: this.taskId - }); - } else { - console.error('Missing result.answer in specialist complete data:', data); + // Verschillende manieren om de result data te verkrijgen + let resultData = null; + let answer = null; + let formRequest = null; + let interactionId = null; + + resultData = data.data.result + console.log('Result data:', resultData); + + if (resultData) { + // Standaard format + answer = resultData.answer; + formRequest = resultData.form_request; + interactionId = data.data.interaction_id; } + this.$emit('specialist-complete', { + answer: answer, + form_request: formRequest, + result: resultData, + interactionId: interactionId, + taskId: this.taskId + }) } catch (error) { console.error('Error parsing specialist complete data:', error); - this.handleSpecialistError({ data: JSON.stringify({ Error: 'Failed to parse completion data' }) }); + this.handleSpecialistError({ + data: JSON.stringify({ + Error: 'Failed to parse completion data', + processing_type: 'EveAI Specialist Error' + }) + }); } }, handleSpecialistError(event) { console.log('Specialist error event:', event); - + try { const data = JSON.parse(event.data); console.log('Specialist error data:', data); @@ -208,15 +231,23 @@ export default { const errorMessage = "We could not process your request. Please try again later."; this.error = errorMessage; + // Extract error details from various possible locations + const originalError = + data.Error || + data.error || + data.message || + data.data?.error || + data.data?.Error || + data.data?.message || + 'Unknown error'; + // Log the actual error for debug purposes - if (data.Error) { - console.error('Specialist Error:', data.Error); - } + console.error('Specialist Error:', originalError); // Emit error event to parent this.$emit('specialist-error', { message: errorMessage, - originalError: data.Error, + originalError: originalError, taskId: this.taskId }); } catch (error) { @@ -226,6 +257,13 @@ export default { this.hasError = true; this.connecting = false; this.disconnectEventSource(); + + // Emit generic error + this.$emit('specialist-error', { + message: 'Er is een onbekende fout opgetreden.', + originalError: 'Failed to parse error data', + taskId: this.taskId + }); } }, @@ -236,13 +274,22 @@ export default { // Try to parse error data try { - const errorData = JSON.parse(event.data); - if (errorData && errorData.message) { - this.error = errorData.message; + if (event.data) { + const errorData = JSON.parse(event.data); + if (errorData && errorData.message) { + this.error = errorData.message; + } } } catch (err) { // Keep generic error message if parsing fails } + + // Emit error to parent + this.$emit('specialist-error', { + message: this.error, + originalError: 'SSE Connection Error', + taskId: this.taskId + }); }, toggleExpand() { diff --git a/eveai_chat_client/templates/chat.html b/eveai_chat_client/templates/chat.html index 183b58b..096d8ab 100644 --- a/eveai_chat_client/templates/chat.html +++ b/eveai_chat_client/templates/chat.html @@ -19,7 +19,7 @@ autoScroll: {{ settings.auto_scroll|default('true')|lower }}, allowReactions: {{ settings.allow_reactions|default('true')|lower }} }, - apiPrefix: '{{ request.headers.get("X-Forwarded-Prefix", "") }}', + apiPrefix: '{{ request.headers.get("X-Forwarded-Prefix", "") }}/chat', language: '{{ session.magic_link.specialist_args.language|default("nl") }}', supportedLanguageDetails: {{ config.SUPPORTED_LANGUAGE_DETAILS|tojson|safe }}, allowedLanguages: {{ tenant_make.allowed_languages|tojson|safe }}, diff --git a/eveai_chat_client/views/chat_views.py b/eveai_chat_client/views/chat_views.py index 700f127..b8aad1d 100644 --- a/eveai_chat_client/views/chat_views.py +++ b/eveai_chat_client/views/chat_views.py @@ -139,31 +139,57 @@ def chat(magic_link_code): current_app.logger.error(f"Error in chat view: {str(e)}", exc_info=True) return render_template('error.html', message="An error occurred while setting up the chat.") + @chat_bp.route('/api/send_message', methods=['POST']) def send_message(): """ API endpoint to send a message to the specialist """ + current_app.logger.debug(f"Sending message to specialist: {session.get('specialist', {}).get('id', 'UNKNOWN')}\n" + f"with data: {request.json} \n" + f"BEFORE TRY") try: + current_app.logger.debug( + f"Sending message to specialist: {session.get('specialist', {}).get('id', 'UNKNOWN')}\n" + f"with data: {request.json} \n" + f"AFTER TRY") + + # Voeg meer debug logging toe om elk stap te traceren + current_app.logger.debug("Step 1: Getting request data") data = request.json message = data.get('message', '') form_values = data.get('form_values', {}) + current_app.logger.debug(f"Step 2: Parsed message='{message}', form_values={form_values}") + # Controleer of er ofwel een bericht of formuliergegevens zijn if not message and not form_values: + current_app.logger.debug("Step 3: No message or form data - returning error") return jsonify({'error': 'No message or form data provided'}), 400 - tenant_id = session['tenant']['id'] - specialist_id = session['specialist']['id'] + current_app.logger.debug("Step 4: Getting session data") + # Veiliger session toegang met fallbacks + tenant_data = session.get('tenant', {}) + specialist_data = session.get('specialist', {}) + + tenant_id = tenant_data.get('id') + specialist_id = specialist_data.get('id') chat_session_id = session.get('chat_session_id') - specialist_args = session['magic_link'].get('specialist_args', {}) + specialist_args = session.get('magic_link', {}).get('specialist_args', {}) + + current_app.logger.debug( + f"Step 5: Session data - tenant_id={tenant_id}, specialist_id={specialist_id}, chat_session_id={chat_session_id}") if not all([tenant_id, specialist_id, chat_session_id]): + current_app.logger.error( + f"Missing session data: tenant_id={tenant_id}, specialist_id={specialist_id}, chat_session_id={chat_session_id}") return jsonify({'error': 'Session expired or invalid'}), 400 + current_app.logger.debug("Step 6: Switching to tenant schema") # Switch to tenant schema Database(tenant_id).switch_schema() + current_app.logger.debug("Step 7: Preparing specialist arguments") # Add user message to specialist arguments if message: specialist_args['question'] = message @@ -177,11 +203,13 @@ def send_message(): if user_language: specialist_args['language'] = user_language + current_app.logger.debug(f"Step 8: About to execute specialist with args: {specialist_args}") current_app.logger.debug(f"Sending message to specialist: {specialist_id} for tenant {tenant_id}\n" f" with args: {specialist_args}\n" f"with session ID: {chat_session_id}") # Execute specialist + current_app.logger.debug("Step 9: Calling SpecialistServices.execute_specialist") result = SpecialistServices.execute_specialist( tenant_id=tenant_id, specialist_id=specialist_id, @@ -190,17 +218,22 @@ def send_message(): user_timezone=data.get('timezone', 'UTC') ) - current_app.logger.debug(f"Specialist execution result: {result}") + current_app.logger.debug(f"Step 10: Specialist execution result: {result}") # Store the task ID for polling + current_app.logger.debug("Step 11: Storing task ID in session") session['current_task_id'] = result['task_id'] - return jsonify({ + current_app.logger.debug("Step 12: Preparing response") + response_data = { 'status': 'processing', 'task_id': result['task_id'], 'content': 'Verwerking gestart...', 'type': 'text' - }) + } + + current_app.logger.debug(f"Step 13: Returning response: {response_data}") + return jsonify(response_data) except Exception as e: current_app.logger.error(f"Error sending message: {str(e)}", exc_info=True) diff --git a/nginx/.parcel-cache/data.mdb b/nginx/.parcel-cache/data.mdb index 4e358da49b35ac0d00e3062b1bf72c5658b65561..2189f802558ed735186a81d927506023adb7607c 100644 GIT binary patch delta 93969 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 EnE!Qfz#YzMp(?CGARTv@`4x%sTL8 zypJruiUu^TjyM=XnB0FAZJ+WB0b!+~%sucUlRbFuf}O*H;%0DfdpytN--a8-A%}Dq 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 aF2#<)HlX-NfrUU9z78)ao>i|clm7?Q@1O<% delta 100445 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%0DgF4Em70)%;=7N$@@!e<+uh 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 diff --git a/nginx/.parcel-cache/e071da4be0b4b166-AssetGraph b/nginx/.parcel-cache/e071da4be0b4b166-AssetGraph index b51e4b19971973635036371c7148c57e929055e2..c7dd9ed86704af8e7173969780d85b4bdab53cec 100644 GIT binary patch delta 29272 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 ZsPpFlL)3Zi5kQNn^YQ!GFMe5?{y$py&%OWv delta 24752 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 { + const endpoint = `${props.apiPrefix}/api/task_status/${taskId}`; + fetch(endpoint) + .then(response => { + if (!response.ok) throw new Error(`Task status endpoint error: ${response.status}`); + return response.json(); + }) + .then(data => { + // Dispatch event om dezelfde event interface als SSE te behouden + const mockEvent = new CustomEvent('message', { + detail: { data: JSON.stringify(data) } + }); + document.dispatchEvent(new CustomEvent(`sse:${taskId}:message`, { detail: mockEvent })); + + // Stop polling als taak klaar is + if (data.status === 'completed' || data.status === 'failed' || data.status === 'cancelled') { + clearInterval(pollingInterval); + } + }) + .catch(err => console.error('Polling error:', err)); + }, 3000); + return pollingInterval; + } + }); + // Registreer alle componenten globaal Object.entries(Components).forEach(([name, component]) => { - console.log(`🔍 [DEBUG] Registreer component globaal: ${name}`); app.component(name, component); }); @@ -212,25 +215,14 @@ function initializeChatApp() { console.error('Error Info:', info); }; - // Log app object voor debugging - console.log('🔍 [DEBUG] ChatApp Vue app object:', app); - console.log('🔍 [DEBUG] App.mount functie:', typeof app.mount); - // Mount de component const mountedApp = app.mount(container); - console.log('🔍 [DEBUG] ChatApp gemount, instance:', mountedApp); - // Bewaar referentie globaal voor debugging window.__chatApp = mountedApp; // Bewaar een referentie naar de Vue instantie voor gebruik door andere componenten window.__vueApp = app; - console.log('🔍 [DEBUG] Vue app instance globaal beschikbaar als window.__vueApp'); - // Log belangrijke methods van de gemounte component - console.log('🔍 [DEBUG] Belangrijke ChatApp methods beschikbaar:', { - initializeChat: typeof mountedApp.initializeChat === 'function' - }); } catch (error) { console.error('🚨 [CRITICAL ERROR] Bij initialiseren chat app:', error); console.error('Stack trace:', error.stack); @@ -240,4 +232,37 @@ function initializeChatApp() { } } +/** + * Helper functie om Vue 3 element refs te verwerken + * Oplossing voor $el.querySelector problemen + */ +window.getElementFromRef = function(ref) { + if (!ref) return null; + + // Vue 3 refs zijn reactieve objecten met een .value eigenschap + if (ref.value && ref.value instanceof HTMLElement) { + return ref.value; + } + + // Directe HTML element refs + if (ref instanceof HTMLElement) { + return ref; + } + + // Vue 3 component instance (geen $el meer in Vue 3) + if (ref.$el && ref.$el instanceof HTMLElement) { + return ref.$el; + } + + // Voor template refs van Vue 3 mounted componenten + if (typeof ref === 'object' && ref !== null) { + const element = ref.el || ref.$el || ref.value; + if (element instanceof HTMLElement) { + return element; + } + } + + return null; +} + console.log('Chat client modules geladen en gebundeld met moderne ES module structuur.'); \ No newline at end of file diff --git a/nginx/static/dist/chat-client.css b/nginx/static/dist/chat-client.css index 7582a4a..f6aa7ba 100644 --- a/nginx/static/dist/chat-client.css +++ b/nginx/static/dist/chat-client.css @@ -1 +1 @@ -:root{--primary-color:#007bff;--secondary-color:#6c757d;--background-color:#fff;--text-color:#212529;--sidebar-color:#f8f9fa;--message-user-bg:#e9f5ff;--message-bot-bg:#f8f9fa;--border-radius:8px;--spacing:16px}.app-container{width:100%;height:100vh;display:flex}.sidebar{background-color:var(--sidebar-background);flex-direction:column;width:300px;padding:20px;display:flex;overflow-y:auto}.sidebar-logo{text-align:center;margin-bottom:20px}.sidebar-logo img{max-width:100%;max-height:100px}.sidebar-make-name{text-align:center;margin-bottom:20px;font-size:24px;font-weight:700}.sidebar-explanation{background-color:var(--markdown-background-color);color:var(--markdown-text-color);border-radius:5px;margin-top:20px;padding:10px;overflow-y:auto}.sidebar-explanation *{color:inherit}.sidebar-explanation a{color:var(--primary-color);text-decoration:underline}.sidebar-explanation ul,.sidebar-explanation ol{margin:10px 0;padding-left:20px}.sidebar-explanation li{margin-bottom:5px}.sidebar-explanation ul li{list-style-type:disc}.sidebar-explanation ol li{list-style-type:decimal}.content-area{background:linear-gradient(135deg,var(--gradient-start-color),var(--gradient-end-color));flex-direction:column;flex:1;display:flex;overflow-y:auto}body{color:var(--text-color);background-color:var(--background-color);height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.6;overflow:hidden}.container{width:100%;height:100vh}.chat-container{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.sidebar{background-color:var(--sidebar-background);width:280px;padding:var(--spacing);border-right:1px solid #0000001a;flex-direction:column;display:flex;overflow-y:auto}.logo{margin-bottom:var(--spacing);text-align:center}.logo img{max-width:100%;max-height:60px}.sidebar-content{flex-direction:column;flex:1;display:flex}.sidebar-text{margin-bottom:var(--spacing)}.team-info{padding-top:var(--spacing);border-top:1px solid #0000001a;margin-top:auto}.team-member{align-items:center;margin-bottom:8px;display:flex}.team-member img{border-radius:50%;width:32px;height:32px;margin-right:8px}.chat-main{flex-direction:column;flex:1;height:100%;display:flex}.chat-header{padding:var(--spacing);border-bottom:1px solid #0000001a}.language-change-indicator{background-color:rgba(var(--primary-color-rgb,0,123,255),.2);color:#fff;text-align:center;border-radius:4px;margin-bottom:10px;padding:5px 8px;font-size:.9em;animation:3s ease-in-out fadeInOut}@keyframes fadeInOut{0%{opacity:0}10%{opacity:1}90%{opacity:1}to{opacity:0}}.language-change-indicator.success{color:#155724;background:#d4edda}.language-change-indicator.error{color:#721c24;background:#f8d7da}.user-message{float:right}.bot-message{float:left}.user-message .message-content{background-color:var(--message-user-bg);color:var(--text-color)}.bot-message .message-content{background-color:var(--message-bot-bg);color:var(--text-color)}#chat-input{border-radius:var(--border-radius);resize:none;border:1px solid #0003;flex:1;height:60px;margin-right:8px;padding:12px}.error-container{justify-content:center;align-items:center;height:100vh;display:flex}.error-box{border-radius:var(--border-radius);text-align:center;background-color:#fff;max-width:500px;padding:2rem;box-shadow:0 4px 6px #0000001a}.error-message{color:#dc3545;margin:1rem 0}.error-actions{margin-top:1.5rem}.chat-app-container{box-sizing:border-box;flex-direction:column;width:100%;height:100%;min-height:0;padding:20px;display:flex}.chat-component-container{flex-direction:column;flex:1;width:100%;max-width:1000px;margin-left:auto;margin-right:auto;display:flex}.chat-messages-area{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:15px;flex-direction:column;flex:1;align-self:center;width:100%;max-width:1000px;min-height:0;margin-bottom:20px;margin-left:auto;margin-right:auto;display:flex;overflow:hidden;box-shadow:0 4px 20px #0000001a}.chat-input-area{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffff26;border:1px solid #fff3;border-radius:15px;flex:none;align-self:center;width:100%;max-width:1000px;margin-left:auto;margin-right:auto;box-shadow:0 4px 20px #0000001a}.message-history-container{box-sizing:border-box;flex-direction:column;width:100%;max-width:1000px;height:100%;min-height:0;margin-left:auto;margin-right:auto;padding:20px;display:flex}.chat-messages{scroll-behavior:smooth;flex:1;margin-right:-10px;padding-right:10px;overflow-y:auto}.chat-input-container{box-sizing:border-box;width:100%;max-width:1000px;margin-left:auto;margin-right:auto;padding:20px;position:relative}.chat-input{background:#fff;border:1px solid #0000000d;border-radius:15px;align-items:flex-end;gap:12px;padding:20px;display:flex;box-shadow:0 2px 15px #0000001a}.message-input{resize:none;box-sizing:border-box;border:1px solid #ddd;border-radius:25px;outline:none;width:100%;min-height:45px;max-height:120px;padding:12px 18px;font-family:inherit;font-size:14px;line-height:1.4;transition:all .2s}.message-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #007bff1a}.message-input.over-limit{background-color:#dc35450d;border-color:#dc3545}.send-btn{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:45px;height:45px;font-size:18px;transition:all .2s;display:flex;box-shadow:0 2px 10px #0000001a}.send-btn:hover:not(:disabled){background:var(--secondary-color);transform:scale(1.05);box-shadow:0 4px 15px #0003}.send-btn:disabled{cursor:not-allowed;box-shadow:none;background:#ccc;transform:none}.character-counter{color:#666;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffffe6;border-radius:10px;padding:2px 6px;font-size:12px;position:absolute;bottom:-25px;right:15px}.character-counter.over-limit{color:#dc3545;background:#dc35451a;font-weight:700}.loading-spinner{font-size:16px;animation:1s linear infinite spin}@media (width<=768px){.chat-app-container{padding:10px}.chat-messages-area{max-width:100%;margin-bottom:15px}.chat-input-area{max-width:100%}.message-history-container,.chat-input-container{max-width:100%;padding:15px}.chat-input{gap:10px;padding:15px}.action-btn{width:40px;height:40px;font-size:16px}.message-input{min-height:40px;padding:10px 15px;font-size:16px}.chat-component-container{max-width:100%}}@media (width<=480px){.chat-app-container{padding:8px}.chat-messages-area{margin-bottom:12px}.message-history-container,.chat-input-container{padding:12px}}.chat-input.loading .message-input{opacity:.7}.chat-input.loading .action-btn{animation:1.5s infinite pulse}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:#0000004d;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#00000080}.message-text:empty{display:none}.progress-tracker .status-icon.error{color:#f44336}.progress-tracker.error .progress-header{background-color:#f443361a;border-color:#f44336}.message-content:has(.message-text:empty) .message-progress{margin-bottom:0}.message-content:has(.message-text:empty):not(:has(.message-progress.completed)):not(:has(.message-progress.error)){box-shadow:none;background:0 0;border:none;margin:0;padding:0}.chat-input:focus-within{border-color:#007bff4d;box-shadow:0 2px 20px #007bff33}.chat-messages-area,.chat-input-area{transition:all .3s}.chat-messages-area:hover,.chat-input-area:hover{box-shadow:0 6px 25px #00000026}.message{clear:both;margin-bottom:16px;padding:0 20px;animation:.3s ease-out messageSlideIn;display:flex}.message.user{justify-content:flex-end}.message.ai,.message.bot{justify-content:flex-start}.message-content{word-wrap:break-word;border-radius:18px;max-width:70%;padding:12px 16px;transition:all .2s;display:inline-block;position:relative;box-shadow:0 2px 8px #0000001a}.message.user .message-content{color:#fff;background:#0000001a;border-bottom-right-radius:4px}.message.ai .message-content,.message.bot .message-content{color:#212529;background:#ffffff1a;border-bottom-left-radius:4px;margin-right:60px}.message-text{margin-bottom:6px;font-size:14px;line-height:1.4}.message-text p{margin:0}.message-text p+p{margin-top:8px}.btn-small{cursor:pointer;border:none;border-radius:4px;padding:4px 12px;font-size:12px;transition:all .2s}.btn-primary{color:#fff;background:#007bff}.btn-primary:hover{background:#0056b3}.btn-secondary{color:#fff;background:#6c757d}.btn-secondary:hover{background:#545b62}.form-message{justify-content:center;margin:20px 0}.form-message .message-content{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:90%;padding:20px;box-shadow:0 4px 12px #0000001a}.system-message{text-align:center;color:#6c757d;background:#6c757d1a;border-radius:20px;justify-content:center;align-items:center;gap:8px;max-width:80%;margin:10px auto;padding:8px 16px;font-size:13px;display:flex}.system-icon{font-size:14px}.error-message{color:#721c24;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;max-width:80%;margin:10px auto;padding:12px 16px;display:flex}.error-icon{color:#dc3545;font-size:16px}.retry-btn{color:#fff;cursor:pointer;background:#dc3545;border:none;border-radius:4px;padding:4px 12px;font-size:12px;transition:background-color .2s}.retry-btn:hover{background:#c82333}.message-reactions{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.reaction{cursor:pointer;background:#0000000d;border:1px solid #0000001a;border-radius:12px;padding:2px 8px;font-size:12px;transition:all .2s}.reaction:hover{background:#0000001a;transform:scale(1.05)}.message-image{cursor:pointer;border-radius:8px;max-width:100%;max-height:300px;margin-bottom:8px;transition:transform .2s}.message-image:hover{transform:scale(1.02)}.image-caption{opacity:.9;margin-bottom:6px;font-size:13px}.file-attachment{background:#00000008;border-radius:8px;align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.file-icon{font-size:24px}.file-info{flex:1}.file-name{margin-bottom:2px;font-weight:500}.file-size{opacity:.7;font-size:12px}.file-download{cursor:pointer;font-size:20px;text-decoration:none;transition:transform .2s}.file-download:hover{transform:scale(1.1)}.message-content:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;color:#6c757d;padding:40px 20px}.empty-icon{opacity:.5;margin-bottom:16px;font-size:48px}.empty-text{margin-bottom:8px;font-size:18px;font-weight:500}.empty-subtext{opacity:.8;font-size:14px}@media (width<=768px){.message{padding:0 15px}.message-content{max-width:85%;padding:10px 14px;font-size:14px}.message.user .message-content{margin-left:40px}.message.ai .message-content,.message.bot .message-content{margin-right:40px}}@media (width<=480px){.message{padding:0 10px}.message-content{max-width:90%;margin-left:20px!important;margin-right:20px!important}}.progress-tracker{background:#f8f9fa;border-radius:8px;margin:8px 0;font-size:13px;transition:all .3s;overflow:hidden}.progress-tracker.expanded{max-height:200px}.progress-tracker.completed{background:#9bff9b1a}.progress-header{cursor:pointer;background:#00000005;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:8px 12px;transition:all .2s;display:flex}.progress-header:hover{background:#0000000d}.progress-tracker.expanded .progress-header{border-bottom-color:#e9ecef}.progress-title{color:#495057;align-items:center;gap:8px;font-weight:500;display:flex}.status-icon{border-radius:50%;width:12px;height:12px;display:inline-block;position:relative}.status-icon.completed{color:#fff;text-align:center;background:#28a745;font-size:8px;line-height:12px}.status-icon.in-progress{background:#007bff;animation:1.5s infinite pulse}.spinner{border:2px solid #f3f3f3;border-top-color:#007bff;border-radius:50%;width:12px;height:12px;animation:1s linear infinite spin;display:inline-block}.progress-toggle{color:#6c757d;font-size:14px;transition:transform .2s}.progress-tracker.expanded .progress-toggle{transform:rotate(180deg)}.progress-error{color:#721c24;background:#f8d7da;border-top:1px solid #f5c6cb;padding:8px 12px;font-size:12px}.progress-content{max-height:0;transition:max-height .3s;overflow:hidden}.progress-tracker.expanded .progress-content{max-height:150px;overflow-y:auto}.progress-content.single-line{max-height:30px;padding:8px 12px;overflow:hidden}.progress-line{color:#6c757d;border-bottom:1px solid #0000000d;padding:4px 12px;line-height:1.3}.progress-line:last-child{border-bottom:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.message.ai .progress-tracker,.message.bot .progress-tracker{margin-bottom:8px}@media (width<=768px){.progress-tracker{font-size:12px}.progress-header{padding:6px 10px}.progress-line{padding:3px 10px}.progress-content.single-line{padding:6px 10px}}.chat-input-container{background-color:#fff;border-top:1px solid #e0e0e0;width:100%;padding:10px;font-family:Arial,sans-serif;font-size:14px}.chat-input{align-items:flex-end;gap:10px;display:flex}.input-main{flex:1;position:relative}.message-input{resize:none;border:1px solid #ddd;border-radius:20px;outline:none;width:100%;min-height:40px;padding:10px 40px 10px 15px;font-family:Arial,sans-serif;font-size:14px;transition:border-color .2s}.message-input:focus{border-color:#0084ff}.message-input.over-limit{border-color:#ff4d4f}.character-counter{color:#999;font-size:12px;position:absolute;bottom:10px;right:10px}.character-counter.over-limit{color:#ff4d4f}.input-actions{align-items:center;gap:8px;display:flex}.send-btn{color:#fff;cursor:pointer;background-color:#0084ff;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .2s;display:flex}.send-btn:hover{background-color:#0077e6}.send-btn:disabled{cursor:not-allowed;background-color:#ccc}.send-btn.form-mode{background-color:#4caf50}.send-btn.form-mode:hover{background-color:#43a047}.loading-spinner{animation:1s linear infinite spin;display:inline-block}.dynamic-form-container{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;margin-bottom:10px;padding:15px 15px 5px;font-family:Arial,sans-serif;font-size:14px;position:relative;box-shadow:0 2px 4px #0000000d}.message{width:auto;max-width:90%;margin-bottom:15px}.message.user{margin-left:auto}.message.ai{margin-right:auto}.message-content{width:100%;font-family:Arial,sans-serif;font-size:14px}.form-display{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin:15px 0;padding:15px;font-family:inherit}.form-result-table{border-collapse:collapse;width:100%;font-family:inherit}.form-result-table th{text-align:left;border-bottom:1px solid #e0e0e0;padding:8px;font-family:Arial,sans-serif;font-size:14px;font-weight:600}.form-result-table td{border-bottom:1px solid #f0f0f0;padding:8px;font-family:Arial,sans-serif;font-size:14px}.form-result-table td:first-child{width:35%;font-weight:500}.form-result-table input.form-input,.form-result-table textarea.form-textarea,.form-result-table select.form-select{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px;font-family:Arial,sans-serif;font-size:14px}.form-result-table textarea.form-textarea{resize:vertical;min-height:60px}.form-result-table .field-label{vertical-align:top;border-bottom:1px solid #f0f0f0;width:35%;padding:8px;font-weight:500}.form-result-table .field-value{vertical-align:top;border-bottom:1px solid #f0f0f0;padding:8px}.toggle-switch{width:50px;height:24px;display:inline-block;position:relative}.toggle-input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#ccc;border-radius:24px;transition:all .4s;position:absolute;inset:0}.toggle-knob{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .4s;position:absolute;bottom:3px;left:3px}.material-symbols-outlined{vertical-align:middle;margin-right:8px;font-size:20px}.form-header{border-bottom:1px solid #e0e0e0;align-items:center;padding:8px;display:flex}.message-text{white-space:pre-wrap;word-break:break-word;font-family:Arial,sans-serif;font-size:14px}.form-error{color:red;padding:10px;font-family:Arial,sans-serif;font-size:14px}.dynamic-form-container{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:15px;overflow:hidden}.dynamic-form{padding:15px}.form-header{border-bottom:1px solid #e0e0e0;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.form-icon{color:#555;justify-content:center;align-items:center;width:24px;height:24px;margin-right:10px;display:flex}.form-title{color:#333;font-size:1.2rem;font-weight:600}.form-fields{grid-template-columns:1fr;gap:15px;margin-bottom:20px;display:grid}@media (width>=768px){.form-fields{grid-template-columns:repeat(2,1fr)}}.form-field{margin-bottom:5px}.form-field label{color:#555;margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-field input,.form-field select,.form-field textarea{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#4a90e2;outline:none;box-shadow:0 0 0 2px #4a90e233}.form-field textarea{resize:vertical;min-height:80px}.checkbox-container{align-items:center;display:flex}.checkbox-label{cursor:pointer;align-items:center;display:flex}.checkbox-label input[type=checkbox]{width:auto;margin-right:8px}.checkbox-text{color:#555;font-size:.9rem}.field-description{color:#777;margin-top:5px;font-size:.8rem;line-height:1.4;display:block}.form-actions{justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.form-toggle-btn{cursor:pointer;color:#555;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px;display:flex}.form-toggle-btn:hover{background-color:#f0f0f0}.form-toggle-btn.active{color:#4a90e2;background-color:#4a90e21a}.required{color:#e53935;margin-left:2px}.form-readonly{padding:10px 0}.form-field-readonly{border-bottom:1px solid #eee;margin-bottom:8px;padding-bottom:8px;display:flex}.field-label{color:#555;flex:0 0 30%;padding-right:10px;font-weight:500}.field-value{word-break:break-word;flex:1}.text-value{white-space:pre-wrap}.message .form-display{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;padding:12px}.message.user .form-display{background-color:#ffffff1a}.message.ai .form-display{background-color:#f5f5fab3}.form-display{background-color:#00000008;border:1px solid #0000001a;border-radius:8px;margin-bottom:10px;padding:12px}.user-form-values{background-color:#007bff0d}.user-form .form-field{margin-bottom:6px!important}.user-form .field-label{color:#555!important;padding:2px 0!important;font-weight:500!important}.user-form .field-value{padding:2px 0!important}.read-only .form-field:hover{background-color:#0000}.dynamic-form.read-only .form-fields{border-top:1px solid #0000000d;margin-top:10px;padding-top:8px}.message-form .form-title{font-size:1em!important}.message-form .form-description{font-size:.85em!important}.form-readonly{width:100%}.form-readonly .field-label{color:#555;font-weight:500}.form-readonly .field-value{word-break:break-word}.form-readonly .text-value{white-space:pre-wrap}.message-text{white-space:pre-wrap;word-break:break-word}.message-content{max-width:100%}.sidebar-language-section{margin-bottom:15px;padding:10px 15px}#language-selector-container{background-color:#ffffff1a;border-radius:5px;flex-direction:column;margin:10px 0;padding:10px;display:flex}#language-selector-container label{color:var(--sidebar-color);margin-bottom:5px;font-size:.9rem;font-weight:500}.language-selector{color:var(--sidebar-color);cursor:pointer;background-color:#0003;border:1px solid #fff3;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem;transition:all .2s}.language-selector:hover{background-color:#0000004d}.language-selector:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.3);outline:none}.language-selector option{color:#fff;background-color:#2c3e50;padding:8px}.sidebar-language-section[data-v-9a7b49]{margin-bottom:15px;padding:10px 15px}#language-selector-container[data-v-9a7b49]{background-color:#ffffff1a;border-radius:5px;flex-direction:column;margin:10px 0;padding:10px;display:flex}#language-selector-container label[data-v-9a7b49]{color:var(--sidebar-color);margin-bottom:5px;font-size:.9rem;font-weight:500}.language-selector[data-v-9a7b49]{color:var(--sidebar-color);cursor:pointer;background-color:#0003;border:1px solid #fff3;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem;transition:all .2s}.language-selector[data-v-9a7b49]:hover{background-color:#0000004d}.language-selector[data-v-9a7b49]:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.3);outline:none}.language-selector option[data-v-9a7b49]{color:#fff;background-color:#2c3e50;padding:8px}.select-wrapper[data-v-9a7b49]{position:relative}.language-select[data-v-9a7b49]{color:var(--sidebar-color);cursor:pointer;background-color:#0003;border:1px solid #fff3;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem;transition:all .2s}.language-select[data-v-9a7b49]:hover{background-color:#0000004d}.language-select[data-v-9a7b49]:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.3);outline:none}.language-select option[data-v-9a7b49]{color:#fff;background-color:#2c3e50;padding:8px}.form-field[data-v-5d4747]{margin-bottom:15px}.form-field input[data-v-5d4747]:focus,.form-field select[data-v-5d4747]:focus,.form-field textarea[data-v-5d4747]:focus{outline:none;box-shadow:0 0 0 2px #4a90e233;border-color:#4a90e2!important}.radio-group[data-v-5d4747]{flex-direction:column;gap:8px;display:flex}.radio-label[data-v-5d4747]{cursor:pointer;color:#555;align-items:center;font-size:.9rem;display:flex}.checkbox-container[data-v-5d4747]{align-items:center;display:flex}.checkbox-label[data-v-5d4747]{cursor:pointer;align-items:center;display:flex}.checkbox-text[data-v-5d4747]{color:#555;font-size:.9rem}.field-description[data-v-5d4747]{color:#777;margin-top:5px;font-size:.8rem;line-height:1.4;display:block}.field-context[data-v-5d4747]{color:#666;background-color:#f8f9fa;border-left:3px solid #4285f4;border-radius:4px;margin-bottom:8px;padding:8px;font-size:.9em}.required[data-v-5d4747]{color:#d93025;margin-left:2px}@media (width<=768px){.form-field[data-v-5d4747]{grid-template-columns:none!important;display:block!important}.form-field label[data-v-5d4747]{margin-bottom:8px;display:block}}.dynamic-form-container[data-v-97c80a]{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:15px;overflow:hidden}.dynamic-form[data-v-97c80a]{padding:15px}.form-header[data-v-97c80a]{border-bottom:1px solid #e0e0e0;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.form-icon[data-v-97c80a]{color:#555;justify-content:center;align-items:center;width:24px;height:24px;margin-right:10px;display:flex}.form-title[data-v-97c80a]{color:#333;font-size:1.2rem;font-weight:600}.form-fields[data-v-97c80a]{grid-template-columns:1fr;gap:15px;margin-bottom:20px;display:grid}@media (width>=768px){.form-fields[data-v-97c80a]{grid-template-columns:repeat(2,1fr)}}.form-field[data-v-97c80a]{margin-bottom:5px}.form-field label[data-v-97c80a]{color:#555;margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-field input[data-v-97c80a],.form-field select[data-v-97c80a],.form-field textarea[data-v-97c80a]{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem}.form-field input[data-v-97c80a]:focus,.form-field select[data-v-97c80a]:focus,.form-field textarea[data-v-97c80a]:focus{border-color:#4a90e2;outline:none;box-shadow:0 0 0 2px #4a90e233}.form-field textarea[data-v-97c80a]{resize:vertical;min-height:80px}.checkbox-container[data-v-97c80a]{align-items:center;display:flex}.checkbox-label[data-v-97c80a]{cursor:pointer;align-items:center;display:flex}.checkbox-label input[type=checkbox][data-v-97c80a]{width:auto;margin-right:8px}.checkbox-text[data-v-97c80a]{color:#555;font-size:.9rem}.field-description[data-v-97c80a]{color:#777;margin-top:5px;font-size:.8rem;line-height:1.4;display:block}.form-actions[data-v-97c80a]{justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.btn[data-v-97c80a]{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:.9rem;transition:background-color .2s}.btn-primary[data-v-97c80a]{color:#fff;background-color:#4a90e2}.btn-primary[data-v-97c80a]:hover:not(:disabled){background-color:#357abd}.btn-secondary[data-v-97c80a]{color:#fff;background-color:#6c757d}.btn-secondary[data-v-97c80a]:hover:not(:disabled){background-color:#545b62}.btn[data-v-97c80a]:disabled{opacity:.6;cursor:not-allowed}.form-toggle-btn[data-v-97c80a]{cursor:pointer;color:#555;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px;display:flex}.form-toggle-btn[data-v-97c80a]:hover{background-color:#f0f0f0}.form-toggle-btn.active[data-v-97c80a]{color:#4a90e2;background-color:#4a90e21a}.required[data-v-97c80a]{color:#e53935;margin-left:2px}.form-readonly[data-v-97c80a]{padding:10px 0}.form-field-readonly[data-v-97c80a]{border-bottom:1px solid #eee;margin-bottom:8px;padding-bottom:8px;display:flex}.field-label[data-v-97c80a]{color:#555;flex:0 0 30%;padding-right:10px;font-weight:500}.field-value[data-v-97c80a]{word-break:break-word;flex:1}.text-value[data-v-97c80a]{white-space:pre-wrap}.chat-input-container[data-v-df2e88]{background-color:#fff;border-top:1px solid #e0e0e0;width:100%;padding:10px;font-family:Arial,sans-serif;font-size:14px}.chat-input[data-v-df2e88]{align-items:flex-end;gap:10px;display:flex}.input-main[data-v-df2e88]{flex:1;position:relative}.message-input[data-v-df2e88]{resize:none;border:1px solid #ddd;border-radius:20px;outline:none;width:100%;min-height:40px;padding:10px 40px 10px 15px;font-family:Arial,sans-serif;font-size:14px;transition:border-color .2s}.message-input[data-v-df2e88]:focus{border-color:#0084ff}.message-input.over-limit[data-v-df2e88]{border-color:#ff4d4f}.character-counter[data-v-df2e88]{color:#999;font-size:12px;position:absolute;bottom:10px;right:10px}.character-counter.over-limit[data-v-df2e88]{color:#ff4d4f}.input-actions[data-v-df2e88]{align-items:center;gap:8px;display:flex}.send-btn[data-v-df2e88]{color:#fff;cursor:pointer;background-color:#0084ff;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .2s;display:flex}.send-btn[data-v-df2e88]:hover{background-color:#0077e6}.send-btn[data-v-df2e88]:disabled{cursor:not-allowed;background-color:#ccc}.send-btn.form-mode[data-v-df2e88]{background-color:#4caf50}.send-btn.form-mode[data-v-df2e88]:hover{background-color:#43a047}.loading-spinner[data-v-df2e88]{animation:1s linear infinite spin-df2e88;display:inline-block}@keyframes spin-df2e88{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dynamic-form-container[data-v-df2e88]{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;margin-bottom:10px;padding:15px 15px 5px;font-family:Arial,sans-serif;font-size:14px;position:relative;box-shadow:0 2px 4px #0000000d}.progress-tracker[data-v-3ff60a]{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin:10px 0;font-family:Arial,sans-serif;font-size:14px;transition:all .3s}.progress-tracker.expanded[data-v-3ff60a]{box-shadow:0 2px 8px #0000001a}.progress-tracker.completed[data-v-3ff60a]{background-color:#f1f8e9;border-color:#4caf50}.progress-tracker.error[data-v-3ff60a]{background-color:#ffebee;border-color:#f44336}.progress-header[data-v-3ff60a]{cursor:pointer;background-color:#fff;border-bottom:1px solid #e0e0e0;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:12px 15px;transition:background-color .2s;display:flex}.progress-header[data-v-3ff60a]:hover{background-color:#f5f5f5}.progress-title[data-v-3ff60a]{color:#333;align-items:center;font-weight:500;display:flex}.status-icon[data-v-3ff60a]{margin-right:8px;font-size:16px;font-weight:700}.status-icon.completed[data-v-3ff60a]{color:#4caf50}.status-icon.error[data-v-3ff60a]{color:#f44336}.status-icon.in-progress[data-v-3ff60a]{color:#2196f3}.spinner[data-v-3ff60a]{border:2px solid #f3f3f3;border-top-color:#2196f3;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:1s linear infinite spin-3ff60a;display:inline-block}@keyframes spin-3ff60a{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-toggle[data-v-3ff60a]{color:#666;font-size:12px;transition:transform .2s}.progress-tracker.expanded .progress-toggle[data-v-3ff60a]{transform:rotate(180deg)}.progress-error[data-v-3ff60a]{color:#c62828;background-color:#ffcdd2;border-top:1px solid #e0e0e0;padding:10px 15px;font-size:13px}.progress-content[data-v-3ff60a]{background-color:#fff;border-radius:0 0 8px 8px;max-height:200px;padding:10px 15px;transition:max-height .3s;overflow-y:auto}.progress-content.single-line[data-v-3ff60a]{max-height:40px;overflow:hidden}.progress-line[data-v-3ff60a]{color:#555;word-break:break-word;padding:2px 0;font-size:13px;line-height:1.4}.progress-line[data-v-3ff60a]:last-child{color:#333;font-weight:500}.progress-content[data-v-3ff60a]::-webkit-scrollbar{width:4px}.progress-content[data-v-3ff60a]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.progress-content[data-v-3ff60a]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:2px}.progress-content[data-v-3ff60a]::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (width<=768px){.progress-header[data-v-3ff60a]{padding:10px 12px}.progress-content[data-v-3ff60a]{max-height:150px;padding:8px 12px}.progress-content.single-line[data-v-3ff60a]{max-height:35px}.progress-line[data-v-3ff60a]{font-size:12px}}.progress-line[data-v-3ff60a]{animation:.3s ease-in fadeIn-3ff60a}@keyframes fadeIn-3ff60a{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.message[data-v-a78b4e]{width:auto;max-width:90%;margin-bottom:15px}.message.user[data-v-a78b4e]{margin-left:auto}.message.ai[data-v-a78b4e]{margin-right:auto}.message-content[data-v-a78b4e]{width:100%;font-family:Arial,sans-serif;font-size:14px}.form-display[data-v-a78b4e]{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin:15px 0;padding:15px;font-family:inherit}.form-result-table[data-v-a78b4e]{border-collapse:collapse;width:100%;font-family:inherit}.form-result-table th[data-v-a78b4e]{text-align:left;border-bottom:1px solid #e0e0e0;padding:8px;font-family:Arial,sans-serif;font-size:14px;font-weight:600}.form-result-table td[data-v-a78b4e]{border-bottom:1px solid #f0f0f0;padding:8px;font-family:Arial,sans-serif;font-size:14px}.form-result-table td[data-v-a78b4e]:first-child{width:35%;font-weight:500}.form-result-table input.form-input[data-v-a78b4e],.form-result-table textarea.form-textarea[data-v-a78b4e],.form-result-table select.form-select[data-v-a78b4e]{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px;font-family:Arial,sans-serif;font-size:14px}.form-result-table textarea.form-textarea[data-v-a78b4e]{resize:vertical;min-height:60px}.form-result-table .field-label[data-v-a78b4e]{vertical-align:top;border-bottom:1px solid #f0f0f0;width:35%;padding:8px;font-weight:500}.form-result-table .field-value[data-v-a78b4e]{vertical-align:top;border-bottom:1px solid #f0f0f0;padding:8px}.toggle-switch[data-v-a78b4e]{width:50px;height:24px;display:inline-block;position:relative}.toggle-input[data-v-a78b4e]{opacity:0;width:0;height:0}.toggle-slider[data-v-a78b4e]{cursor:pointer;background-color:#ccc;border-radius:24px;transition:all .4s;position:absolute;inset:0}.toggle-knob[data-v-a78b4e]{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .4s;position:absolute;bottom:3px;left:3px}.material-symbols-outlined[data-v-a78b4e]{vertical-align:middle;margin-right:8px;font-size:20px}.form-header[data-v-a78b4e]{border-bottom:1px solid #e0e0e0;align-items:center;padding:8px;display:flex}.message-text[data-v-a78b4e]{white-space:pre-wrap;word-break:break-word;font-family:Arial,sans-serif;font-size:14px}.form-error[data-v-a78b4e]{color:red;padding:10px;font-family:Arial,sans-serif;font-size:14px}.error-content[data-v-a78b4e]{background-color:#ffebee;border:1px solid #f44336;border-radius:4px;padding:10px}.retry-btn[data-v-a78b4e]{color:#fff;cursor:pointer;background-color:#f44336;border:none;border-radius:4px;margin-top:10px;padding:8px 16px;font-size:14px}.retry-btn[data-v-a78b4e]:hover{background-color:#d32f2f}@media (width<=768px){.message[data-v-a78b4e]{max-width:95%}.form-result-table td[data-v-a78b4e]:first-child{width:40%}}.typing-indicator[data-v-a78025]{background-color:#f0f0f0;border-radius:18px;align-items:center;width:fit-content;max-width:80px;margin:10px 0;padding:10px 15px;display:flex}.typing-dot[data-v-a78025]{background-color:#999;border-radius:50%;width:8px;height:8px;margin:0 2px;animation:1.4s ease-in-out infinite typing-bounce-a78025}.typing-dot[data-v-a78025]:first-child{animation-delay:-.32s}.typing-dot[data-v-a78025]:nth-child(2){animation-delay:-.16s}.typing-dot[data-v-a78025]:nth-child(3){animation-delay:0s}.typing-text[data-v-a78025]{color:#666;margin-left:10px;font-size:.9rem;font-style:italic}@keyframes typing-bounce-a78025{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes typing-pulse-a78025{0%,60%,to{transform:initial;opacity:.4}30%{opacity:1;transform:scale(1.2)}}@media (width<=768px){.typing-indicator[data-v-a78025]{margin:8px 0;padding:8px 12px}.typing-dot[data-v-a78025]{width:6px;height:6px}.typing-text[data-v-a78025]{margin-left:8px;font-size:.8rem}}@media (prefers-color-scheme:dark){.typing-indicator[data-v-a78025]{background-color:#2a2a2a}.typing-dot[data-v-a78025]{background-color:#ccc}.typing-text[data-v-a78025]{color:#aaa}}@media (prefers-contrast:high){.typing-indicator[data-v-a78025]{border:1px solid #333}.typing-dot[data-v-a78025]{background-color:#000}.typing-text[data-v-a78025]{color:#000}}@media (prefers-reduced-motion:reduce){.typing-dot[data-v-a78025]{opacity:.7;animation:none}.typing-indicator[data-v-a78025]{opacity:.8}}.message-history-container[data-v-efbfed]{flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-messages[data-v-efbfed]{scroll-behavior:smooth;flex:1;padding:10px;overflow-y:auto}.load-more-indicator[data-v-efbfed]{text-align:center;color:#666;padding:10px;font-size:.9rem}.empty-state[data-v-efbfed]{text-align:center;color:#666;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:40px 20px;display:flex}.empty-icon[data-v-efbfed]{opacity:.5;margin-bottom:16px;font-size:3rem}.empty-text[data-v-efbfed]{color:#333;margin-bottom:8px;font-size:1.2rem;font-weight:500}.empty-subtext[data-v-efbfed]{color:#666;max-width:300px;font-size:.9rem;line-height:1.4}.chat-messages[data-v-efbfed]::-webkit-scrollbar{width:6px}.chat-messages[data-v-efbfed]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.chat-messages[data-v-efbfed]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.chat-messages[data-v-efbfed]::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (width<=768px){.chat-messages[data-v-efbfed]{padding:8px}.empty-state[data-v-efbfed]{padding:20px 16px}.empty-icon[data-v-efbfed]{font-size:2.5rem}.empty-text[data-v-efbfed]{font-size:1.1rem}}.form-message[data-v-199543]{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;padding:12px}.form-message-header[data-v-199543]{border-bottom:1px solid #e0e0e0;align-items:center;margin-bottom:10px;padding-bottom:8px;display:flex}.form-message-icon[data-v-199543]{color:#555;margin-right:8px;font-size:18px}.form-message-title[data-v-199543]{color:#333;font-size:1em;font-weight:600}.form-message-fields[data-v-199543]{flex-direction:column;gap:8px;display:flex}.form-message-field[data-v-199543]{border-bottom:1px solid #0000000d;justify-content:space-between;align-items:flex-start;padding:4px 0;display:flex}.form-message-field[data-v-199543]:last-child{border-bottom:none}.field-message-label[data-v-199543]{color:#555;word-break:break-word;flex:0 0 40%;padding-right:10px;font-weight:500}.field-message-value[data-v-199543]{color:#333;word-break:break-word;text-align:right;flex:1}.field-message-value.text-value[data-v-199543]{white-space:pre-wrap;text-align:left}.message.user .form-message[data-v-199543]{background-color:#ffffff1a}.message.ai .form-message[data-v-199543]{background-color:#f5f5fab3}.form-display[data-v-199543]{background-color:#00000008;border:1px solid #0000001a;border-radius:8px;margin-bottom:10px;padding:12px}.user-form-values[data-v-199543]{background-color:#007bff0d}.user-form .form-field[data-v-199543]{margin-bottom:6px!important}.user-form .field-label[data-v-199543]{color:#555!important;padding:2px 0!important;font-weight:500!important}.user-form .field-value[data-v-199543]{padding:2px 0!important}.read-only .form-field[data-v-199543]:hover{background-color:#0000}.dynamic-form.read-only .form-fields[data-v-199543]{border-top:1px solid #0000000d;margin-top:10px;padding-top:8px}.message-form .form-title[data-v-199543]{font-size:1em!important}.message-form .form-description[data-v-199543]{font-size:.85em!important}.form-readonly[data-v-199543]{width:100%}.form-readonly .field-label[data-v-199543]{color:#555;font-weight:500}.form-readonly .field-value[data-v-199543]{word-break:break-word}.form-readonly .text-value[data-v-199543]{white-space:pre-wrap}.message-text[data-v-199543]{white-space:pre-wrap;word-break:break-word}.message-content[data-v-199543]{max-width:100%}@media (width<=768px){.form-message-field[data-v-199543]{flex-direction:column;align-items:flex-start;gap:4px}.field-message-label[data-v-199543]{flex:none;padding-right:0}.field-message-value[data-v-199543]{text-align:left}.form-message[data-v-199543]{padding:10px}.form-message-title[data-v-199543]{font-size:.9em}}@media (prefers-color-scheme:dark){.form-message[data-v-199543]{background-color:#282828b3;border-color:#555}.form-message-header[data-v-199543]{border-bottom-color:#555}.form-message-title[data-v-199543]{color:#e0e0e0}.field-message-label[data-v-199543]{color:#ccc}.field-message-value[data-v-199543]{color:#e0e0e0}.form-message-field[data-v-199543]{border-bottom-color:#ffffff1a}}@media (prefers-contrast:high){.form-message[data-v-199543]{background-color:#fff;border:2px solid #000}.form-message-title[data-v-199543],.field-message-label[data-v-199543],.field-message-value[data-v-199543]{color:#000}.form-message-header[data-v-199543]{border-bottom:2px solid #000}} \ No newline at end of file +:root{--primary-color:#007bff;--secondary-color:#6c757d;--background-color:#fff;--text-color:#212529;--sidebar-color:#f8f9fa;--message-user-bg:#e9f5ff;--message-bot-bg:#f8f9fa;--border-radius:8px;--spacing:16px}.app-container{width:100%;height:100vh;display:flex}.sidebar{background-color:var(--sidebar-background);flex-direction:column;width:300px;padding:20px;display:flex;overflow-y:auto}.sidebar-logo{text-align:center;margin-bottom:20px}.sidebar-logo img{max-width:100%;max-height:100px}.sidebar-make-name{text-align:center;margin-bottom:20px;font-size:24px;font-weight:700}.sidebar-explanation{background-color:var(--markdown-background-color);color:var(--markdown-text-color);border-radius:5px;margin-top:20px;padding:10px;overflow-y:auto}.sidebar-explanation *{color:inherit}.sidebar-explanation a{color:var(--primary-color);text-decoration:underline}.sidebar-explanation ul,.sidebar-explanation ol{margin:10px 0;padding-left:20px}.sidebar-explanation li{margin-bottom:5px}.sidebar-explanation ul li{list-style-type:disc}.sidebar-explanation ol li{list-style-type:decimal}.content-area{background:linear-gradient(135deg,var(--gradient-start-color),var(--gradient-end-color));flex-direction:column;flex:1;display:flex;overflow-y:auto}body{color:var(--text-color);background-color:var(--background-color);height:100vh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;line-height:1.6;overflow:hidden}.container{width:100%;height:100vh}.chat-container{flex-direction:column;flex:1;height:100%;min-height:0;display:flex}.sidebar{background-color:var(--sidebar-background);width:280px;padding:var(--spacing);border-right:1px solid #0000001a;flex-direction:column;display:flex;overflow-y:auto}.logo{margin-bottom:var(--spacing);text-align:center}.logo img{max-width:100%;max-height:60px}.sidebar-content{flex-direction:column;flex:1;display:flex}.sidebar-text{margin-bottom:var(--spacing)}.team-info{padding-top:var(--spacing);border-top:1px solid #0000001a;margin-top:auto}.team-member{align-items:center;margin-bottom:8px;display:flex}.team-member img{border-radius:50%;width:32px;height:32px;margin-right:8px}.chat-main{flex-direction:column;flex:1;height:100%;display:flex}.chat-header{padding:var(--spacing);border-bottom:1px solid #0000001a}.language-change-indicator{background-color:rgba(var(--primary-color-rgb,0,123,255),.2);color:#fff;text-align:center;border-radius:4px;margin-bottom:10px;padding:5px 8px;font-size:.9em;animation:3s ease-in-out fadeInOut}@keyframes fadeInOut{0%{opacity:0}10%{opacity:1}90%{opacity:1}to{opacity:0}}.language-change-indicator.success{color:#155724;background:#d4edda}.language-change-indicator.error{color:#721c24;background:#f8d7da}.user-message{float:right}.bot-message{float:left}.user-message .message-content{background-color:var(--message-user-bg);color:var(--text-color)}.bot-message .message-content{background-color:var(--message-bot-bg);color:var(--text-color)}#chat-input{border-radius:var(--border-radius);resize:none;border:1px solid #0003;flex:1;height:60px;margin-right:8px;padding:12px}.error-container{justify-content:center;align-items:center;height:100vh;display:flex}.error-box{border-radius:var(--border-radius);text-align:center;background-color:#fff;max-width:500px;padding:2rem;box-shadow:0 4px 6px #0000001a}.error-message{color:#dc3545;margin:1rem 0}.error-actions{margin-top:1.5rem}.chat-app-container{box-sizing:border-box;flex-direction:column;width:100%;height:100%;min-height:0;padding:20px;display:flex}.chat-component-container{flex-direction:column;flex:1;width:100%;max-width:1000px;margin-left:auto;margin-right:auto;display:flex}.chat-messages-area{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border-radius:15px;flex-direction:column;flex:1;align-self:center;width:100%;max-width:1000px;min-height:0;margin-bottom:20px;margin-left:auto;margin-right:auto;display:flex;overflow:hidden;box-shadow:0 4px 20px #0000001a}.chat-input-area{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10;background:#ffffff26;border:1px solid #fff3;border-radius:15px;flex:none;align-self:center;width:100%;max-width:1000px;margin-left:auto;margin-right:auto;box-shadow:0 4px 20px #0000001a}.message-history-container{box-sizing:border-box;flex-direction:column;width:100%;max-width:1000px;height:100%;min-height:0;margin-left:auto;margin-right:auto;padding:20px;display:flex}.chat-messages{scroll-behavior:smooth;flex:1;margin-right:-10px;padding-right:10px;overflow-y:auto}.chat-input-container{box-sizing:border-box;width:100%;max-width:1000px;margin-left:auto;margin-right:auto;padding:20px;position:relative}.chat-input{background:#fff;border:1px solid #0000000d;border-radius:15px;align-items:flex-end;gap:12px;padding:20px;display:flex;box-shadow:0 2px 15px #0000001a}.message-input{resize:none;box-sizing:border-box;border:1px solid #ddd;border-radius:25px;outline:none;width:100%;min-height:45px;max-height:120px;padding:12px 18px;font-family:inherit;font-size:14px;line-height:1.4;transition:all .2s}.message-input:focus{border-color:var(--primary-color);box-shadow:0 0 0 3px #007bff1a}.message-input.over-limit{background-color:#dc35450d;border-color:#dc3545}.send-btn{background:var(--primary-color);color:#fff;cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:45px;height:45px;font-size:18px;transition:all .2s;display:flex;box-shadow:0 2px 10px #0000001a}.send-btn:hover:not(:disabled){background:var(--secondary-color);transform:scale(1.05);box-shadow:0 4px 15px #0003}.send-btn:disabled{cursor:not-allowed;box-shadow:none;background:#ccc;transform:none}.character-counter{color:#666;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#ffffffe6;border-radius:10px;padding:2px 6px;font-size:12px;position:absolute;bottom:-25px;right:15px}.character-counter.over-limit{color:#dc3545;background:#dc35451a;font-weight:700}.loading-spinner{font-size:16px;animation:1s linear infinite spin}@media (width<=768px){.chat-app-container{padding:10px}.chat-messages-area{max-width:100%;margin-bottom:15px}.chat-input-area{max-width:100%}.message-history-container,.chat-input-container{max-width:100%;padding:15px}.chat-input{gap:10px;padding:15px}.action-btn{width:40px;height:40px;font-size:16px}.message-input{min-height:40px;padding:10px 15px;font-size:16px}.chat-component-container{max-width:100%}}@media (width<=480px){.chat-app-container{padding:8px}.chat-messages-area{margin-bottom:12px}.message-history-container,.chat-input-container{padding:12px}}.chat-input.loading .message-input{opacity:.7}.chat-input.loading .action-btn{animation:1.5s infinite pulse}@keyframes pulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:#0000001a;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb{background:#0000004d;border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background:#00000080}.message-text:empty{display:none}.progress-tracker .status-icon.error{color:#f44336}.progress-tracker.error .progress-header{background-color:#f443361a;border-color:#f44336}.message-content:has(.message-text:empty) .message-progress{margin-bottom:0}.message-content:has(.message-text:empty):not(:has(.message-progress.completed)):not(:has(.message-progress.error)){box-shadow:none;background:0 0;border:none;margin:0;padding:0}.chat-input:focus-within{border-color:#007bff4d;box-shadow:0 2px 20px #007bff33}.chat-messages-area,.chat-input-area{transition:all .3s}.chat-messages-area:hover,.chat-input-area:hover{box-shadow:0 6px 25px #00000026}.message{clear:both;margin-bottom:16px;padding:0 20px;animation:.3s ease-out messageSlideIn;display:flex}.message.user{justify-content:flex-end}.message.ai,.message.bot{justify-content:flex-start}.message-content{word-wrap:break-word;border-radius:18px;max-width:70%;padding:12px 16px;transition:all .2s;display:inline-block;position:relative;box-shadow:0 2px 8px #0000001a}.message.user .message-content{color:#fff;background:#0000001a;border-bottom-right-radius:4px}.message.ai .message-content,.message.bot .message-content{color:#212529;background:#ffffff1a;border-bottom-left-radius:4px;margin-right:60px}.message-text{margin-bottom:6px;font-size:14px;line-height:1.4}.message-text p{margin:0}.message-text p+p{margin-top:8px}.btn-small{cursor:pointer;border:none;border-radius:4px;padding:4px 12px;font-size:12px;transition:all .2s}.btn-primary{color:#fff;background:#007bff}.btn-primary:hover{background:#0056b3}.btn-secondary{color:#fff;background:#6c757d}.btn-secondary:hover{background:#545b62}.form-message{justify-content:center;margin:20px 0}.form-message .message-content{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:90%;padding:20px;box-shadow:0 4px 12px #0000001a}.system-message{text-align:center;color:#6c757d;background:#6c757d1a;border-radius:20px;justify-content:center;align-items:center;gap:8px;max-width:80%;margin:10px auto;padding:8px 16px;font-size:13px;display:flex}.system-icon{font-size:14px}.error-message{color:#721c24;background:#f8d7da;border:1px solid #f5c6cb;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;max-width:80%;margin:10px auto;padding:12px 16px;display:flex}.error-icon{color:#dc3545;font-size:16px}.retry-btn{color:#fff;cursor:pointer;background:#dc3545;border:none;border-radius:4px;padding:4px 12px;font-size:12px;transition:background-color .2s}.retry-btn:hover{background:#c82333}.message-reactions{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.reaction{cursor:pointer;background:#0000000d;border:1px solid #0000001a;border-radius:12px;padding:2px 8px;font-size:12px;transition:all .2s}.reaction:hover{background:#0000001a;transform:scale(1.05)}.message-image{cursor:pointer;border-radius:8px;max-width:100%;max-height:300px;margin-bottom:8px;transition:transform .2s}.message-image:hover{transform:scale(1.02)}.image-caption{opacity:.9;margin-bottom:6px;font-size:13px}.file-attachment{background:#00000008;border-radius:8px;align-items:center;gap:12px;margin-bottom:8px;padding:12px;display:flex}.file-icon{font-size:24px}.file-info{flex:1}.file-name{margin-bottom:2px;font-weight:500}.file-size{opacity:.7;font-size:12px}.file-download{cursor:pointer;font-size:20px;text-decoration:none;transition:transform .2s}.file-download:hover{transform:scale(1.1)}.message-content:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00000026}@keyframes messageSlideIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state{text-align:center;color:#6c757d;padding:40px 20px}.empty-icon{opacity:.5;margin-bottom:16px;font-size:48px}.empty-text{margin-bottom:8px;font-size:18px;font-weight:500}.empty-subtext{opacity:.8;font-size:14px}@media (width<=768px){.message{padding:0 15px}.message-content{max-width:85%;padding:10px 14px;font-size:14px}.message.user .message-content{margin-left:40px}.message.ai .message-content,.message.bot .message-content{margin-right:40px}}@media (width<=480px){.message{padding:0 10px}.message-content{max-width:90%;margin-left:20px!important;margin-right:20px!important}}.progress-tracker{background:#f8f9fa;border-radius:8px;margin:8px 0;font-size:13px;transition:all .3s;overflow:hidden}.progress-tracker.expanded{max-height:200px}.progress-tracker.completed{background:#9bff9b1a}.progress-header{cursor:pointer;background:#00000005;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;padding:8px 12px;transition:all .2s;display:flex}.progress-header:hover{background:#0000000d}.progress-tracker.expanded .progress-header{border-bottom-color:#e9ecef}.progress-title{color:#495057;align-items:center;gap:8px;font-weight:500;display:flex}.status-icon{border-radius:50%;width:12px;height:12px;display:inline-block;position:relative}.status-icon.completed{color:#fff;text-align:center;background:#28a745;font-size:8px;line-height:12px}.status-icon.in-progress{background:#007bff;animation:1.5s infinite pulse}.spinner{border:2px solid #f3f3f3;border-top-color:#007bff;border-radius:50%;width:12px;height:12px;animation:1s linear infinite spin;display:inline-block}.progress-toggle{color:#6c757d;font-size:14px;transition:transform .2s}.progress-tracker.expanded .progress-toggle{transform:rotate(180deg)}.progress-error{color:#721c24;background:#f8d7da;border-top:1px solid #f5c6cb;padding:8px 12px;font-size:12px}.progress-content{max-height:0;transition:max-height .3s;overflow:hidden}.progress-tracker.expanded .progress-content{max-height:150px;overflow-y:auto}.progress-content.single-line{max-height:30px;padding:8px 12px;overflow:hidden}.progress-line{color:#6c757d;border-bottom:1px solid #0000000d;padding:4px 12px;line-height:1.3}.progress-line:last-child{border-bottom:none}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.message.ai .progress-tracker,.message.bot .progress-tracker{margin-bottom:8px}@media (width<=768px){.progress-tracker{font-size:12px}.progress-header{padding:6px 10px}.progress-line{padding:3px 10px}.progress-content.single-line{padding:6px 10px}}.chat-input-container{background-color:#fff;border-top:1px solid #e0e0e0;width:100%;padding:10px;font-family:Arial,sans-serif;font-size:14px}.chat-input{align-items:flex-end;gap:10px;display:flex}.input-main{flex:1;position:relative}.message-input{resize:none;border:1px solid #ddd;border-radius:20px;outline:none;width:100%;min-height:40px;padding:10px 40px 10px 15px;font-family:Arial,sans-serif;font-size:14px;transition:border-color .2s}.message-input:focus{border-color:#0084ff}.message-input.over-limit{border-color:#ff4d4f}.character-counter{color:#999;font-size:12px;position:absolute;bottom:10px;right:10px}.character-counter.over-limit{color:#ff4d4f}.input-actions{align-items:center;gap:8px;display:flex}.send-btn{color:#fff;cursor:pointer;background-color:#0084ff;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .2s;display:flex}.send-btn:hover{background-color:#0077e6}.send-btn:disabled{cursor:not-allowed;background-color:#ccc}.send-btn.form-mode{background-color:#4caf50}.send-btn.form-mode:hover{background-color:#43a047}.loading-spinner{animation:1s linear infinite spin;display:inline-block}.dynamic-form-container{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;margin-bottom:10px;padding:15px 15px 5px;font-family:Arial,sans-serif;font-size:14px;position:relative;box-shadow:0 2px 4px #0000000d}.message{width:auto;max-width:90%;margin-bottom:15px}.message.user{margin-left:auto}.message.ai{margin-right:auto}.message-content{width:100%;font-family:Arial,sans-serif;font-size:14px}.form-display{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin:15px 0;padding:15px;font-family:inherit}.form-result-table{border-collapse:collapse;width:100%;font-family:inherit}.form-result-table th{text-align:left;border-bottom:1px solid #e0e0e0;padding:8px;font-family:Arial,sans-serif;font-size:14px;font-weight:600}.form-result-table td{border-bottom:1px solid #f0f0f0;padding:8px;font-family:Arial,sans-serif;font-size:14px}.form-result-table td:first-child{width:35%;font-weight:500}.form-result-table input.form-input,.form-result-table textarea.form-textarea,.form-result-table select.form-select{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px;font-family:Arial,sans-serif;font-size:14px}.form-result-table textarea.form-textarea{resize:vertical;min-height:60px}.form-result-table .field-label{vertical-align:top;border-bottom:1px solid #f0f0f0;width:35%;padding:8px;font-weight:500}.form-result-table .field-value{vertical-align:top;border-bottom:1px solid #f0f0f0;padding:8px}.toggle-switch{width:50px;height:24px;display:inline-block;position:relative}.toggle-input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;background-color:#ccc;border-radius:24px;transition:all .4s;position:absolute;inset:0}.toggle-knob{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .4s;position:absolute;bottom:3px;left:3px}.material-symbols-outlined{vertical-align:middle;margin-right:8px;font-size:20px}.form-header{border-bottom:1px solid #e0e0e0;align-items:center;padding:8px;display:flex}.message-text{white-space:pre-wrap;word-break:break-word;font-family:Arial,sans-serif;font-size:14px}.form-error{color:red;padding:10px;font-family:Arial,sans-serif;font-size:14px}.dynamic-form-container{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:15px;overflow:hidden}.dynamic-form{padding:15px}.form-header{border-bottom:1px solid #e0e0e0;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.form-icon{color:#555;justify-content:center;align-items:center;width:24px;height:24px;margin-right:10px;display:flex}.form-title{color:#333;font-size:1.2rem;font-weight:600}.form-fields{grid-template-columns:1fr;gap:15px;margin-bottom:20px;display:grid}@media (width>=768px){.form-fields{grid-template-columns:repeat(2,1fr)}}.form-field{margin-bottom:5px}.form-field label{color:#555;margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-field input,.form-field select,.form-field textarea{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#4a90e2;outline:none;box-shadow:0 0 0 2px #4a90e233}.form-field textarea{resize:vertical;min-height:80px}.checkbox-container{align-items:center;display:flex}.checkbox-label{cursor:pointer;align-items:center;display:flex}.checkbox-label input[type=checkbox]{width:auto;margin-right:8px}.checkbox-text{color:#555;font-size:.9rem}.field-description{color:#777;margin-top:5px;font-size:.8rem;line-height:1.4;display:block}.form-actions{justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.form-toggle-btn{cursor:pointer;color:#555;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px;display:flex}.form-toggle-btn:hover{background-color:#f0f0f0}.form-toggle-btn.active{color:#4a90e2;background-color:#4a90e21a}.required{color:#e53935;margin-left:2px}.form-readonly{padding:10px 0}.form-field-readonly{border-bottom:1px solid #eee;margin-bottom:8px;padding-bottom:8px;display:flex}.field-label{color:#555;flex:0 0 30%;padding-right:10px;font-weight:500}.field-value{word-break:break-word;flex:1}.text-value{white-space:pre-wrap}.message .form-display{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;padding:12px}.message.user .form-display{background-color:#ffffff1a}.message.ai .form-display{background-color:#f5f5fab3}.form-display{background-color:#00000008;border:1px solid #0000001a;border-radius:8px;margin-bottom:10px;padding:12px}.user-form-values{background-color:#007bff0d}.user-form .form-field{margin-bottom:6px!important}.user-form .field-label{color:#555!important;padding:2px 0!important;font-weight:500!important}.user-form .field-value{padding:2px 0!important}.read-only .form-field:hover{background-color:#0000}.dynamic-form.read-only .form-fields{border-top:1px solid #0000000d;margin-top:10px;padding-top:8px}.message-form .form-title{font-size:1em!important}.message-form .form-description{font-size:.85em!important}.form-readonly{width:100%}.form-readonly .field-label{color:#555;font-weight:500}.form-readonly .field-value{word-break:break-word}.form-readonly .text-value{white-space:pre-wrap}.message-text{white-space:pre-wrap;word-break:break-word}.message-content{max-width:100%}.sidebar-language-section{margin-bottom:15px;padding:10px 15px}#language-selector-container{background-color:#ffffff1a;border-radius:5px;flex-direction:column;margin:10px 0;padding:10px;display:flex}#language-selector-container label{color:var(--sidebar-color);margin-bottom:5px;font-size:.9rem;font-weight:500}.language-selector{color:var(--sidebar-color);cursor:pointer;background-color:#0003;border:1px solid #fff3;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem;transition:all .2s}.language-selector:hover{background-color:#0000004d}.language-selector:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.3);outline:none}.language-selector option{color:#fff;background-color:#2c3e50;padding:8px}.sidebar-language-section[data-v-f6c05b]{margin-bottom:15px;padding:10px 15px}#language-selector-container[data-v-f6c05b]{background-color:#ffffff1a;border-radius:5px;flex-direction:column;margin:10px 0;padding:10px;display:flex}#language-selector-container label[data-v-f6c05b]{color:var(--sidebar-color);margin-bottom:5px;font-size:.9rem;font-weight:500}.language-selector[data-v-f6c05b]{color:var(--sidebar-color);cursor:pointer;background-color:#0003;border:1px solid #fff3;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem;transition:all .2s}.language-selector[data-v-f6c05b]:hover{background-color:#0000004d}.language-selector[data-v-f6c05b]:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.3);outline:none}.language-selector option[data-v-f6c05b]{color:#fff;background-color:#2c3e50;padding:8px}.select-wrapper[data-v-f6c05b]{position:relative}.language-select[data-v-f6c05b]{color:var(--sidebar-color);cursor:pointer;background-color:#0003;border:1px solid #fff3;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem;transition:all .2s}.language-select[data-v-f6c05b]:hover{background-color:#0000004d}.language-select[data-v-f6c05b]:focus{border-color:var(--primary-color);box-shadow:0 0 0 2px rgba(var(--primary-color-rgb),.3);outline:none}.language-select option[data-v-f6c05b]{color:#fff;background-color:#2c3e50;padding:8px}.form-field[data-v-5d4747]{margin-bottom:15px}.form-field input[data-v-5d4747]:focus,.form-field select[data-v-5d4747]:focus,.form-field textarea[data-v-5d4747]:focus{outline:none;box-shadow:0 0 0 2px #4a90e233;border-color:#4a90e2!important}.radio-group[data-v-5d4747]{flex-direction:column;gap:8px;display:flex}.radio-label[data-v-5d4747]{cursor:pointer;color:#555;align-items:center;font-size:.9rem;display:flex}.checkbox-container[data-v-5d4747]{align-items:center;display:flex}.checkbox-label[data-v-5d4747]{cursor:pointer;align-items:center;display:flex}.checkbox-text[data-v-5d4747]{color:#555;font-size:.9rem}.field-description[data-v-5d4747]{color:#777;margin-top:5px;font-size:.8rem;line-height:1.4;display:block}.field-context[data-v-5d4747]{color:#666;background-color:#f8f9fa;border-left:3px solid #4285f4;border-radius:4px;margin-bottom:8px;padding:8px;font-size:.9em}.required[data-v-5d4747]{color:#d93025;margin-left:2px}@media (width<=768px){.form-field[data-v-5d4747]{grid-template-columns:none!important;display:block!important}.form-field label[data-v-5d4747]{margin-bottom:8px;display:block}}.dynamic-form-container[data-v-97c80a]{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:15px;overflow:hidden}.dynamic-form[data-v-97c80a]{padding:15px}.form-header[data-v-97c80a]{border-bottom:1px solid #e0e0e0;align-items:center;margin-bottom:15px;padding-bottom:10px;display:flex}.form-icon[data-v-97c80a]{color:#555;justify-content:center;align-items:center;width:24px;height:24px;margin-right:10px;display:flex}.form-title[data-v-97c80a]{color:#333;font-size:1.2rem;font-weight:600}.form-fields[data-v-97c80a]{grid-template-columns:1fr;gap:15px;margin-bottom:20px;display:grid}@media (width>=768px){.form-fields[data-v-97c80a]{grid-template-columns:repeat(2,1fr)}}.form-field[data-v-97c80a]{margin-bottom:5px}.form-field label[data-v-97c80a]{color:#555;margin-bottom:6px;font-size:.9rem;font-weight:500;display:block}.form-field input[data-v-97c80a],.form-field select[data-v-97c80a],.form-field textarea[data-v-97c80a]{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:8px 12px;font-size:.9rem}.form-field input[data-v-97c80a]:focus,.form-field select[data-v-97c80a]:focus,.form-field textarea[data-v-97c80a]:focus{border-color:#4a90e2;outline:none;box-shadow:0 0 0 2px #4a90e233}.form-field textarea[data-v-97c80a]{resize:vertical;min-height:80px}.checkbox-container[data-v-97c80a]{align-items:center;display:flex}.checkbox-label[data-v-97c80a]{cursor:pointer;align-items:center;display:flex}.checkbox-label input[type=checkbox][data-v-97c80a]{width:auto;margin-right:8px}.checkbox-text[data-v-97c80a]{color:#555;font-size:.9rem}.field-description[data-v-97c80a]{color:#777;margin-top:5px;font-size:.8rem;line-height:1.4;display:block}.form-actions[data-v-97c80a]{justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.btn[data-v-97c80a]{cursor:pointer;border:none;border-radius:4px;padding:8px 16px;font-size:.9rem;transition:background-color .2s}.btn-primary[data-v-97c80a]{color:#fff;background-color:#4a90e2}.btn-primary[data-v-97c80a]:hover:not(:disabled){background-color:#357abd}.btn-secondary[data-v-97c80a]{color:#fff;background-color:#6c757d}.btn-secondary[data-v-97c80a]:hover:not(:disabled){background-color:#545b62}.btn[data-v-97c80a]:disabled{opacity:.6;cursor:not-allowed}.form-toggle-btn[data-v-97c80a]{cursor:pointer;color:#555;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:5px;display:flex}.form-toggle-btn[data-v-97c80a]:hover{background-color:#f0f0f0}.form-toggle-btn.active[data-v-97c80a]{color:#4a90e2;background-color:#4a90e21a}.required[data-v-97c80a]{color:#e53935;margin-left:2px}.form-readonly[data-v-97c80a]{padding:10px 0}.form-field-readonly[data-v-97c80a]{border-bottom:1px solid #eee;margin-bottom:8px;padding-bottom:8px;display:flex}.field-label[data-v-97c80a]{color:#555;flex:0 0 30%;padding-right:10px;font-weight:500}.field-value[data-v-97c80a]{word-break:break-word;flex:1}.text-value[data-v-97c80a]{white-space:pre-wrap}.chat-input-container[data-v-df2e88]{background-color:#fff;border-top:1px solid #e0e0e0;width:100%;padding:10px;font-family:Arial,sans-serif;font-size:14px}.chat-input[data-v-df2e88]{align-items:flex-end;gap:10px;display:flex}.input-main[data-v-df2e88]{flex:1;position:relative}.message-input[data-v-df2e88]{resize:none;border:1px solid #ddd;border-radius:20px;outline:none;width:100%;min-height:40px;padding:10px 40px 10px 15px;font-family:Arial,sans-serif;font-size:14px;transition:border-color .2s}.message-input[data-v-df2e88]:focus{border-color:#0084ff}.message-input.over-limit[data-v-df2e88]{border-color:#ff4d4f}.character-counter[data-v-df2e88]{color:#999;font-size:12px;position:absolute;bottom:10px;right:10px}.character-counter.over-limit[data-v-df2e88]{color:#ff4d4f}.input-actions[data-v-df2e88]{align-items:center;gap:8px;display:flex}.send-btn[data-v-df2e88]{color:#fff;cursor:pointer;background-color:#0084ff;border:none;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .2s;display:flex}.send-btn[data-v-df2e88]:hover{background-color:#0077e6}.send-btn[data-v-df2e88]:disabled{cursor:not-allowed;background-color:#ccc}.send-btn.form-mode[data-v-df2e88]{background-color:#4caf50}.send-btn.form-mode[data-v-df2e88]:hover{background-color:#43a047}.loading-spinner[data-v-df2e88]{animation:1s linear infinite spin-df2e88;display:inline-block}@keyframes spin-df2e88{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.dynamic-form-container[data-v-df2e88]{background-color:#f9f9f9;border:1px solid #ddd;border-radius:8px;margin-bottom:10px;padding:15px 15px 5px;font-family:Arial,sans-serif;font-size:14px;position:relative;box-shadow:0 2px 4px #0000000d}.progress-tracker[data-v-237cbd]{background-color:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;margin:10px 0;font-family:Arial,sans-serif;font-size:14px;transition:all .3s}.progress-tracker.expanded[data-v-237cbd]{box-shadow:0 2px 8px #0000001a}.progress-tracker.completed[data-v-237cbd]{background-color:#f1f8e9;border-color:#4caf50}.progress-tracker.error[data-v-237cbd]{background-color:#ffebee;border-color:#f44336}.progress-header[data-v-237cbd]{cursor:pointer;background-color:#fff;border-bottom:1px solid #e0e0e0;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:12px 15px;transition:background-color .2s;display:flex}.progress-header[data-v-237cbd]:hover{background-color:#f5f5f5}.progress-title[data-v-237cbd]{color:#333;align-items:center;font-weight:500;display:flex}.status-icon[data-v-237cbd]{margin-right:8px;font-size:16px;font-weight:700}.status-icon.completed[data-v-237cbd]{color:#4caf50}.status-icon.error[data-v-237cbd]{color:#f44336}.status-icon.in-progress[data-v-237cbd]{color:#2196f3}.spinner[data-v-237cbd]{border:2px solid #f3f3f3;border-top-color:#2196f3;border-radius:50%;width:16px;height:16px;margin-right:8px;animation:1s linear infinite spin-237cbd;display:inline-block}@keyframes spin-237cbd{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.progress-toggle[data-v-237cbd]{color:#666;font-size:12px;transition:transform .2s}.progress-tracker.expanded .progress-toggle[data-v-237cbd]{transform:rotate(180deg)}.progress-error[data-v-237cbd]{color:#c62828;background-color:#ffcdd2;border-top:1px solid #e0e0e0;padding:10px 15px;font-size:13px}.progress-content[data-v-237cbd]{background-color:#fff;border-radius:0 0 8px 8px;max-height:200px;padding:10px 15px;transition:max-height .3s;overflow-y:auto}.progress-content.single-line[data-v-237cbd]{max-height:40px;overflow:hidden}.progress-line[data-v-237cbd]{color:#555;word-break:break-word;padding:2px 0;font-size:13px;line-height:1.4}.progress-line[data-v-237cbd]:last-child{color:#333;font-weight:500}.progress-content[data-v-237cbd]::-webkit-scrollbar{width:4px}.progress-content[data-v-237cbd]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:2px}.progress-content[data-v-237cbd]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:2px}.progress-content[data-v-237cbd]::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (width<=768px){.progress-header[data-v-237cbd]{padding:10px 12px}.progress-content[data-v-237cbd]{max-height:150px;padding:8px 12px}.progress-content.single-line[data-v-237cbd]{max-height:35px}.progress-line[data-v-237cbd]{font-size:12px}}.progress-line[data-v-237cbd]{animation:.3s ease-in fadeIn-237cbd}@keyframes fadeIn-237cbd{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.message[data-v-a78b4e]{width:auto;max-width:90%;margin-bottom:15px}.message.user[data-v-a78b4e]{margin-left:auto}.message.ai[data-v-a78b4e]{margin-right:auto}.message-content[data-v-a78b4e]{width:100%;font-family:Arial,sans-serif;font-size:14px}.form-display[data-v-a78b4e]{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin:15px 0;padding:15px;font-family:inherit}.form-result-table[data-v-a78b4e]{border-collapse:collapse;width:100%;font-family:inherit}.form-result-table th[data-v-a78b4e]{text-align:left;border-bottom:1px solid #e0e0e0;padding:8px;font-family:Arial,sans-serif;font-size:14px;font-weight:600}.form-result-table td[data-v-a78b4e]{border-bottom:1px solid #f0f0f0;padding:8px;font-family:Arial,sans-serif;font-size:14px}.form-result-table td[data-v-a78b4e]:first-child{width:35%;font-weight:500}.form-result-table input.form-input[data-v-a78b4e],.form-result-table textarea.form-textarea[data-v-a78b4e],.form-result-table select.form-select[data-v-a78b4e]{background-color:#fff;border:1px solid #ddd;border-radius:4px;width:100%;padding:6px;font-family:Arial,sans-serif;font-size:14px}.form-result-table textarea.form-textarea[data-v-a78b4e]{resize:vertical;min-height:60px}.form-result-table .field-label[data-v-a78b4e]{vertical-align:top;border-bottom:1px solid #f0f0f0;width:35%;padding:8px;font-weight:500}.form-result-table .field-value[data-v-a78b4e]{vertical-align:top;border-bottom:1px solid #f0f0f0;padding:8px}.toggle-switch[data-v-a78b4e]{width:50px;height:24px;display:inline-block;position:relative}.toggle-input[data-v-a78b4e]{opacity:0;width:0;height:0}.toggle-slider[data-v-a78b4e]{cursor:pointer;background-color:#ccc;border-radius:24px;transition:all .4s;position:absolute;inset:0}.toggle-knob[data-v-a78b4e]{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .4s;position:absolute;bottom:3px;left:3px}.material-symbols-outlined[data-v-a78b4e]{vertical-align:middle;margin-right:8px;font-size:20px}.form-header[data-v-a78b4e]{border-bottom:1px solid #e0e0e0;align-items:center;padding:8px;display:flex}.message-text[data-v-a78b4e]{white-space:pre-wrap;word-break:break-word;font-family:Arial,sans-serif;font-size:14px}.form-error[data-v-a78b4e]{color:red;padding:10px;font-family:Arial,sans-serif;font-size:14px}.error-content[data-v-a78b4e]{background-color:#ffebee;border:1px solid #f44336;border-radius:4px;padding:10px}.retry-btn[data-v-a78b4e]{color:#fff;cursor:pointer;background-color:#f44336;border:none;border-radius:4px;margin-top:10px;padding:8px 16px;font-size:14px}.retry-btn[data-v-a78b4e]:hover{background-color:#d32f2f}@media (width<=768px){.message[data-v-a78b4e]{max-width:95%}.form-result-table td[data-v-a78b4e]:first-child{width:40%}}.typing-indicator[data-v-a78025]{background-color:#f0f0f0;border-radius:18px;align-items:center;width:fit-content;max-width:80px;margin:10px 0;padding:10px 15px;display:flex}.typing-dot[data-v-a78025]{background-color:#999;border-radius:50%;width:8px;height:8px;margin:0 2px;animation:1.4s ease-in-out infinite typing-bounce-a78025}.typing-dot[data-v-a78025]:first-child{animation-delay:-.32s}.typing-dot[data-v-a78025]:nth-child(2){animation-delay:-.16s}.typing-dot[data-v-a78025]:nth-child(3){animation-delay:0s}.typing-text[data-v-a78025]{color:#666;margin-left:10px;font-size:.9rem;font-style:italic}@keyframes typing-bounce-a78025{0%,80%,to{opacity:.5;transform:scale(.8)}40%{opacity:1;transform:scale(1)}}@keyframes typing-pulse-a78025{0%,60%,to{transform:initial;opacity:.4}30%{opacity:1;transform:scale(1.2)}}@media (width<=768px){.typing-indicator[data-v-a78025]{margin:8px 0;padding:8px 12px}.typing-dot[data-v-a78025]{width:6px;height:6px}.typing-text[data-v-a78025]{margin-left:8px;font-size:.8rem}}@media (prefers-color-scheme:dark){.typing-indicator[data-v-a78025]{background-color:#2a2a2a}.typing-dot[data-v-a78025]{background-color:#ccc}.typing-text[data-v-a78025]{color:#aaa}}@media (prefers-contrast:high){.typing-indicator[data-v-a78025]{border:1px solid #333}.typing-dot[data-v-a78025]{background-color:#000}.typing-text[data-v-a78025]{color:#000}}@media (prefers-reduced-motion:reduce){.typing-dot[data-v-a78025]{opacity:.7;animation:none}.typing-indicator[data-v-a78025]{opacity:.8}}.message-history-container[data-v-efbfed]{flex-direction:column;height:100%;display:flex;overflow:hidden}.chat-messages[data-v-efbfed]{scroll-behavior:smooth;flex:1;padding:10px;overflow-y:auto}.load-more-indicator[data-v-efbfed]{text-align:center;color:#666;padding:10px;font-size:.9rem}.empty-state[data-v-efbfed]{text-align:center;color:#666;flex-direction:column;justify-content:center;align-items:center;height:100%;padding:40px 20px;display:flex}.empty-icon[data-v-efbfed]{opacity:.5;margin-bottom:16px;font-size:3rem}.empty-text[data-v-efbfed]{color:#333;margin-bottom:8px;font-size:1.2rem;font-weight:500}.empty-subtext[data-v-efbfed]{color:#666;max-width:300px;font-size:.9rem;line-height:1.4}.chat-messages[data-v-efbfed]::-webkit-scrollbar{width:6px}.chat-messages[data-v-efbfed]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.chat-messages[data-v-efbfed]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}.chat-messages[data-v-efbfed]::-webkit-scrollbar-thumb:hover{background:#a8a8a8}@media (width<=768px){.chat-messages[data-v-efbfed]{padding:8px}.empty-state[data-v-efbfed]{padding:20px 16px}.empty-icon[data-v-efbfed]{font-size:2.5rem}.empty-text[data-v-efbfed]{font-size:1.1rem}}.form-message[data-v-199543]{background-color:#f5f5f5b3;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:12px;padding:12px}.form-message-header[data-v-199543]{border-bottom:1px solid #e0e0e0;align-items:center;margin-bottom:10px;padding-bottom:8px;display:flex}.form-message-icon[data-v-199543]{color:#555;margin-right:8px;font-size:18px}.form-message-title[data-v-199543]{color:#333;font-size:1em;font-weight:600}.form-message-fields[data-v-199543]{flex-direction:column;gap:8px;display:flex}.form-message-field[data-v-199543]{border-bottom:1px solid #0000000d;justify-content:space-between;align-items:flex-start;padding:4px 0;display:flex}.form-message-field[data-v-199543]:last-child{border-bottom:none}.field-message-label[data-v-199543]{color:#555;word-break:break-word;flex:0 0 40%;padding-right:10px;font-weight:500}.field-message-value[data-v-199543]{color:#333;word-break:break-word;text-align:right;flex:1}.field-message-value.text-value[data-v-199543]{white-space:pre-wrap;text-align:left}.message.user .form-message[data-v-199543]{background-color:#ffffff1a}.message.ai .form-message[data-v-199543]{background-color:#f5f5fab3}.form-display[data-v-199543]{background-color:#00000008;border:1px solid #0000001a;border-radius:8px;margin-bottom:10px;padding:12px}.user-form-values[data-v-199543]{background-color:#007bff0d}.user-form .form-field[data-v-199543]{margin-bottom:6px!important}.user-form .field-label[data-v-199543]{color:#555!important;padding:2px 0!important;font-weight:500!important}.user-form .field-value[data-v-199543]{padding:2px 0!important}.read-only .form-field[data-v-199543]:hover{background-color:#0000}.dynamic-form.read-only .form-fields[data-v-199543]{border-top:1px solid #0000000d;margin-top:10px;padding-top:8px}.message-form .form-title[data-v-199543]{font-size:1em!important}.message-form .form-description[data-v-199543]{font-size:.85em!important}.form-readonly[data-v-199543]{width:100%}.form-readonly .field-label[data-v-199543]{color:#555;font-weight:500}.form-readonly .field-value[data-v-199543]{word-break:break-word}.form-readonly .text-value[data-v-199543]{white-space:pre-wrap}.message-text[data-v-199543]{white-space:pre-wrap;word-break:break-word}.message-content[data-v-199543]{max-width:100%}@media (width<=768px){.form-message-field[data-v-199543]{flex-direction:column;align-items:flex-start;gap:4px}.field-message-label[data-v-199543]{flex:none;padding-right:0}.field-message-value[data-v-199543]{text-align:left}.form-message[data-v-199543]{padding:10px}.form-message-title[data-v-199543]{font-size:.9em}}@media (prefers-color-scheme:dark){.form-message[data-v-199543]{background-color:#282828b3;border-color:#555}.form-message-header[data-v-199543]{border-bottom-color:#555}.form-message-title[data-v-199543]{color:#e0e0e0}.field-message-label[data-v-199543]{color:#ccc}.field-message-value[data-v-199543]{color:#e0e0e0}.form-message-field[data-v-199543]{border-bottom-color:#ffffff1a}}@media (prefers-contrast:high){.form-message[data-v-199543]{background-color:#fff;border:2px solid #000}.form-message-title[data-v-199543],.field-message-label[data-v-199543],.field-message-value[data-v-199543]{color:#000}.form-message-header[data-v-199543]{border-bottom:2px solid #000}}.chat-app-container[data-v-bfe173]{flex-direction:column;width:100%;height:100vh;display:flex}.chat-messages-area[data-v-bfe173]{flex:1;overflow:hidden}.chat-input-area[data-v-bfe173]{flex-shrink:0}@media (width<=768px){.chat-app-container[data-v-bfe173]{height:100vh}} \ No newline at end of file diff --git a/nginx/static/dist/chat-client.js b/nginx/static/dist/chat-client.js index aa6b322..1186220 100644 --- a/nginx/static/dist/chat-client.js +++ b/nginx/static/dist/chat-client.js @@ -1,23 +1,23 @@ -!function(){let e,t,n,r;function i(e){Object.defineProperty(e,"__esModule",{value:!0,configurable:!0})}function s(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var o="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},l={},a={},c=o.parcelRequire94c2;null==c&&((c=function(e){if(e in l)return l[e].exports;if(e in a){var t=a[e];delete a[e];var n={id:e,exports:{}};return l[e]=n,t.call(n.exports,n,n.exports),n.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){a[e]=t},o.parcelRequire94c2=c);var u=c.register;u("lfk1t",function(e,t){i(e.exports),s(e.exports,"default",function(){return n});var n={name:"LanguageSelector",props:{initialLanguage:{type:String,default:"nl"},currentLanguage:{type:String,default:null},supportedLanguageDetails:{type:Object,default:()=>({})},allowedLanguages:{type:Array,default:()=>["nl","en","fr","de"]}},data(){let e=this.currentLanguage||this.initialLanguage;return{selectedLanguage:e,internalCurrentLanguage:e}},mounted(){console.log("\uD83D\uDD0D [DEBUG] LanguageSelector mounted with Vue SFC"),console.log("\uD83D\uDD0D [DEBUG] Props:",{initialLanguage:this.initialLanguage,currentLanguage:this.currentLanguage,supportedLanguageDetails:this.supportedLanguageDetails,allowedLanguages:this.allowedLanguages}),this.$emit("language-changed",this.selectedLanguage);let e=new CustomEvent("vue:language-changed",{detail:{language:this.selectedLanguage}});document.dispatchEvent(e)},methods:{getAvailableLanguages(){let e=[],t=this.allowedLanguages&&this.allowedLanguages.length>0?this.allowedLanguages:["nl","en","fr","de"];if(this.supportedLanguageDetails&&Object.keys(this.supportedLanguageDetails).length>0)for(let[n,r]of Object.entries(this.supportedLanguageDetails)){let i=r["iso 639-1"];t.includes(i)&&e.push({code:i,name:n,flag:r.flag||""})}else{let n={nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},en:{name:"English",flag:"\uD83C\uDDEC\uD83C\uDDE7"},fr:{name:"Français",flag:"\uD83C\uDDEB\uD83C\uDDF7"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"}};t.forEach(t=>{n[t]&&e.push({code:t,name:n[t].name,flag:n[t].flag})})}return e},changeLanguage(e){if(console.log(`LanguageSelector: changeLanguage called with ${e}`),this.internalCurrentLanguage!==e){this.internalCurrentLanguage=e,this.selectedLanguage=e,this.$emit("language-changed",e);let t=new CustomEvent("vue:language-changed",{detail:{language:e}});document.dispatchEvent(t)}}}}}),u("esoaL",function(e,t){s(e.exports,"render",function(){return u}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO"),i=c("fNp5a");let o={class:"language-selector"},l={class:"select-wrapper"},a=["value"];function u(e,t,s,c,u,d){return(0,n.openBlock)(),(0,n.createElementBlock)("div",o,[t[2]||(t[2]=(0,n.createElementVNode)("label",{for:"language-select"},"Taal / Language:",-1)),(0,n.createElementVNode)("div",l,[(0,n.withDirectives)((0,n.createElementVNode)("select",{id:"language-select","onUpdate:modelValue":t[0]||(t[0]=e=>u.selectedLanguage=e),onChange:t[1]||(t[1]=e=>d.changeLanguage(u.selectedLanguage)),class:"language-select"},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(d.getAvailableLanguages(),e=>((0,n.openBlock)(),(0,n.createElementBlock)("option",{key:e.code,value:e.code},(0,r.toDisplayString)(e.flag)+" "+(0,r.toDisplayString)(e.name),9,a))),128))],544),[[i.vModelSelect,u.selectedLanguage]])])])}}),u("iJXGE",function(e,t){s(e.exports,"createApp",function(){return c("fNp5a").createApp}),s(e.exports,"vModelCheckbox",function(){return c("fNp5a").vModelCheckbox}),s(e.exports,"vModelRadio",function(){return c("fNp5a").vModelRadio}),s(e.exports,"vModelSelect",function(){return c("fNp5a").vModelSelect}),s(e.exports,"vModelText",function(){return c("fNp5a").vModelText}),s(e.exports,"createBlock",function(){return c("iADb3").createBlock}),s(e.exports,"createCommentVNode",function(){return c("iADb3").createCommentVNode}),s(e.exports,"createElementBlock",function(){return c("iADb3").createElementBlock}),s(e.exports,"createElementVNode",function(){return c("iADb3").createElementVNode}),s(e.exports,"createTextVNode",function(){return c("iADb3").createTextVNode}),s(e.exports,"createVNode",function(){return c("iADb3").createVNode}),s(e.exports,"Fragment",function(){return c("iADb3").Fragment}),s(e.exports,"initCustomFormatter",function(){return c("iADb3").initCustomFormatter}),s(e.exports,"normalizeClass",function(){return c("fVHkO").normalizeClass}),s(e.exports,"openBlock",function(){return c("iADb3").openBlock}),s(e.exports,"registerRuntimeCompiler",function(){return c("iADb3").registerRuntimeCompiler}),s(e.exports,"renderList",function(){return c("iADb3").renderList}),s(e.exports,"renderSlot",function(){return c("iADb3").renderSlot}),s(e.exports,"resolveComponent",function(){return c("iADb3").resolveComponent}),s(e.exports,"version",function(){return c("iADb3").version}),s(e.exports,"warn",function(){return c("iADb3").warn}),s(e.exports,"withDirectives",function(){return c("iADb3").withDirectives}),s(e.exports,"toDisplayString",function(){return c("fVHkO").toDisplayString}),c("fNp5a");var n=c("iADb3");c("fVHkO");var r=c("j0b99"),i=c("fVHkO");let o=Object.create(null);(0,n.registerRuntimeCompiler)(function(e,t){if(!(0,i.isString)(e))if(!e.nodeType)return i.NOOP;else e=e.innerHTML;let n=(0,i.genCacheKey)(e,t),s=o[n];if(s)return s;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let l=(0,i.extend)({hoistStatic:!0,onError:void 0,onWarn:i.NOOP},t);l.isCustomElement||"undefined"==typeof customElements||(l.isCustomElement=e=>!!customElements.get(e));let{code:a}=(0,r.compile)(e,l),c=Function("Vue",a)($da4aba8f3f47fabb$import$4f81359071792c76);return c._rc=!0,o[n]=c})}),u("fNp5a",function(e,t){let n,r;s(e.exports,"BaseTransition",function(){return c("iADb3").BaseTransition}),s(e.exports,"BaseTransitionPropsValidators",function(){return c("iADb3").BaseTransitionPropsValidators}),s(e.exports,"callWithAsyncErrorHandling",function(){return c("iADb3").callWithAsyncErrorHandling}),s(e.exports,"camelize",function(){return c("fVHkO").camelize}),s(e.exports,"createBlock",function(){return c("iADb3").createBlock}),s(e.exports,"createCommentVNode",function(){return c("iADb3").createCommentVNode}),s(e.exports,"createElementBlock",function(){return c("iADb3").createElementBlock}),s(e.exports,"createElementVNode",function(){return c("iADb3").createElementVNode}),s(e.exports,"createHydrationRenderer",function(){return c("iADb3").createHydrationRenderer}),s(e.exports,"createRenderer",function(){return c("iADb3").createRenderer}),s(e.exports,"createTextVNode",function(){return c("iADb3").createTextVNode}),s(e.exports,"createVNode",function(){return c("iADb3").createVNode}),s(e.exports,"defineComponent",function(){return c("iADb3").defineComponent}),s(e.exports,"Fragment",function(){return c("iADb3").Fragment}),s(e.exports,"getCurrentInstance",function(){return c("iADb3").getCurrentInstance}),s(e.exports,"getTransitionRawChildren",function(){return c("iADb3").getTransitionRawChildren}),s(e.exports,"h",function(){return c("iADb3").h}),s(e.exports,"initCustomFormatter",function(){return c("iADb3").initCustomFormatter}),s(e.exports,"isRuntimeOnly",function(){return c("iADb3").isRuntimeOnly}),s(e.exports,"nextTick",function(){return c("iADb3").nextTick}),s(e.exports,"normalizeClass",function(){return c("fVHkO").normalizeClass}),s(e.exports,"onBeforeUpdate",function(){return c("iADb3").onBeforeUpdate}),s(e.exports,"onMounted",function(){return c("iADb3").onMounted}),s(e.exports,"onUnmounted",function(){return c("iADb3").onUnmounted}),s(e.exports,"onUpdated",function(){return c("iADb3").onUpdated}),s(e.exports,"openBlock",function(){return c("iADb3").openBlock}),s(e.exports,"queuePostFlushCb",function(){return c("iADb3").queuePostFlushCb}),s(e.exports,"registerRuntimeCompiler",function(){return c("iADb3").registerRuntimeCompiler}),s(e.exports,"renderList",function(){return c("iADb3").renderList}),s(e.exports,"renderSlot",function(){return c("iADb3").renderSlot}),s(e.exports,"resolveComponent",function(){return c("iADb3").resolveComponent}),s(e.exports,"resolveTransitionHooks",function(){return c("iADb3").resolveTransitionHooks}),s(e.exports,"setTransitionHooks",function(){return c("iADb3").setTransitionHooks}),s(e.exports,"Static",function(){return c("iADb3").Static}),s(e.exports,"toRaw",function(){return c("6Ys9M").toRaw}),s(e.exports,"useTransitionState",function(){return c("iADb3").useTransitionState}),s(e.exports,"version",function(){return c("iADb3").version}),s(e.exports,"warn",function(){return c("iADb3").warn}),s(e.exports,"watch",function(){return c("iADb3").watch}),s(e.exports,"withDirectives",function(){return c("iADb3").withDirectives}),s(e.exports,"toDisplayString",function(){return c("fVHkO").toDisplayString}),s(e.exports,"createApp",function(){return q}),s(e.exports,"vModelText",function(){return L}),s(e.exports,"vModelCheckbox",function(){return R}),s(e.exports,"vModelRadio",function(){return $}),s(e.exports,"vModelSelect",function(){return F});var i=c("iADb3"),o=c("fVHkO"),l=c("6Ys9M");c("fVHkO");var l=c("6Ys9M"),o=c("fVHkO");let a="undefined"!=typeof window&&window.trustedTypes;if(a)try{r=a.createPolicy("vue",{createHTML:e=>e})}catch(e){}let u=r?e=>r.createHTML(e):e=>e,d="undefined"!=typeof document?document:null,p=d&&d.createElement("template"),h=Symbol("_vtc");i.BaseTransitionPropsValidators;let f=Symbol("_vod"),g=Symbol("_vsh"),m=Symbol(""),y=/(^|;)\s*display\s*:/,x=/\s*!important$/;function b(e,t,n){if((0,o.isArray)(n))n.forEach(n=>b(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=S[t];if(n)return n;let r=(0,o.camelize)(t);if("filter"!==r&&r in e)return S[t]=r;r=(0,o.capitalize)(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2);"undefined"!=typeof HTMLElement&&HTMLElement,Symbol("_moveCb"),Symbol("_enterCb");let N=e=>{let t=e.props["onUpdate:modelValue"]||!1;return(0,o.isArray)(t)?e=>(0,o.invokeArrayFns)(t,e):t};function M(e){e.target.composing=!0}function V(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let B=Symbol("_assign"),L={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[B]=N(i);let s=r||i.props&&"number"===i.props.type;E(e,t?"change":"input",t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),s&&(r=(0,o.looseToNumber)(r)),e[B](r)}),n&&E(e,"change",()=>{e.value=e.value.trim()}),t||(E(e,"compositionstart",M),E(e,"compositionend",V),E(e,"change",V))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:s}},l){if(e[B]=N(l),e.composing)return;let a=(s||"number"===e.type)&&!/^0\d/.test(e.value)?(0,o.looseToNumber)(e.value):e.value,c=null==t?"":t;if(a!==c){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===c))return;e.value=c}}},R={deep:!0,created(e,t,n){e[B]=N(n),E(e,"change",()=>{let t=e._modelValue,n=U(e),r=e.checked,i=e[B];if((0,o.isArray)(t)){let e=(0,o.looseIndexOf)(t,n),s=-1!==e;if(r&&!s)i(t.concat(n));else if(!r&&s){let n=[...t];n.splice(e,1),i(n)}}else if((0,o.isSet)(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(j(e,r))})},mounted:P,beforeUpdate(e,t,n){e[B]=N(n),P(e,t,n)}};function P(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,(0,o.isArray)(t))i=(0,o.looseIndexOf)(t,r.props.value)>-1;else if((0,o.isSet)(t))i=t.has(r.props.value);else{if(t===n)return;i=(0,o.looseEqual)(t,j(e,!0))}e.checked!==i&&(e.checked=i)}let $={created(e,{value:t},n){e.checked=(0,o.looseEqual)(t,n.props.value),e[B]=N(n),E(e,"change",()=>{e[B](U(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[B]=N(r),t!==n&&(e.checked=(0,o.looseEqual)(t,r.props.value))}},F={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let s=(0,o.isSet)(t);E(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?(0,o.looseToNumber)(U(e)):U(e));e[B](e.multiple?s?new Set(t):t:t[0]),e._assigning=!0,(0,i.nextTick)(()=>{e._assigning=!1})}),e[B]=N(r)},mounted(e,{value:t}){z(e,t)},beforeUpdate(e,t,n){e[B]=N(n)},updated(e,{value:t}){e._assigning||z(e,t)}};function z(e,t){let n=e.multiple,r=(0,o.isArray)(t);if(!n||r||(0,o.isSet)(t)){for(let i=0,s=e.options.length;iString(e)===String(l)):s.selected=(0,o.looseIndexOf)(t,l)>-1}else s.selected=t.has(l);else if((0,o.looseEqual)(U(s),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function U(e){return"_value"in e?e._value:e.value}function j(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}let H=(0,o.extend)({patchProp:(e,t,n,r,s,l)=>{let a="svg"===s;if("class"===t){var c=r;let t=e[h];t&&(c=(c?[c,...t]:[...t]).join(" ")),null==c?e.removeAttribute("class"):a?e.setAttribute("class",c):e.className=c}else"style"===t?function(e,t,n){let r=e.style,i=(0,o.isString)(n),s=!1;if(n&&!i){if(t)if((0,o.isString)(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&b(r,t,"")}else for(let e in t)null==n[e]&&b(r,e,"");for(let e in n)"display"===e&&(s=!0),b(r,e,n[e])}else if(i){if(t!==n){let e=r[m];e&&(n+=";"+e),r.cssText=n,s=y.test(n)}}else t&&e.removeAttribute("style");f in e&&(e[f]=s?r.display:"",e[g]&&(r.display="none"))}(e,n,r):(0,o.isOn)(t)?(0,o.isModelListener)(t)||function(e,t,n,r,s=null){let l=e[C]||(e[C]={}),a=l[t];if(r&&a)a.value=r;else{let[n,c]=function(e){let t;if(T.test(e)){let n;for(t={};n=e.match(T);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):(0,o.hyphenate)(e.slice(2)),t]}(t);if(r)E(e,n,l[t]=function(e,t){let n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();(0,i.callWithAsyncErrorHandling)(function(e,t){if(!(0,o.isArray)(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,n.value),t,5,[e])};return n.value=e,n.attached=A||(O.then(()=>A=0),A=Date.now()),n}(r,s),c);else a&&(e.removeEventListener(n,a,c),l[t]=void 0)}}(e,t,0,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&I(t)&&(0,o.isFunction)(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(I(t)&&(0,o.isString)(n))&&t in e}(e,t,r,a))?e._isVueCE&&(/[A-Z]/.test(t)||!(0,o.isString)(r))?D(e,(0,o.camelize)(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),w(e,t,r,a)):(D(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||w(e,t,r,a,l,"value"!==t))}},{insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?d.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?d.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?d.createElement(e,{is:n}):d.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>d.createTextNode(e),createComment:e=>d.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>d.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,s){let o=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==s&&(i=i.nextSibling););else{p.innerHTML=u("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=p.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}}),q=(...e)=>{let t=(n||(n=(0,i.createRenderer)(H))).createApp(...e),{mount:r}=t;return t.mount=e=>{var n,i;let s=(n=e,(0,o.isString)(n)?document.querySelector(n):n);if(!s)return;let l=t._component;(0,o.isFunction)(l)||l.render||l.template||(l.template=s.innerHTML),1===s.nodeType&&(s.textContent="");let a=r(s,!1,(i=s)instanceof SVGElement?"svg":"function"==typeof MathMLElement&&i instanceof MathMLElement?"mathml":void 0);return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t}}),u("iADb3",function(e,t){let n,r,i,o,l;s(e.exports,"callWithAsyncErrorHandling",function(){return g}),s(e.exports,"nextTick",function(){return D}),s(e.exports,"queuePostFlushCb",function(){return T}),s(e.exports,"Fragment",function(){return tN}),s(e.exports,"Static",function(){return tB}),s(e.exports,"withDirectives",function(){return U}),s(e.exports,"useTransitionState",function(){return J}),s(e.exports,"onMounted",function(){return eE}),s(e.exports,"BaseTransitionPropsValidators",function(){return W}),s(e.exports,"getCurrentInstance",function(){return t6}),s(e.exports,"getTransitionRawChildren",function(){return ei}),s(e.exports,"resolveTransitionHooks",function(){return ee}),s(e.exports,"setTransitionHooks",function(){return er}),s(e.exports,"BaseTransition",function(){return X}),s(e.exports,"defineComponent",function(){return es}),s(e.exports,"createVNode",function(){return tW}),s(e.exports,"createTextVNode",function(){return tZ}),s(e.exports,"watch",function(){return tx}),s(e.exports,"onUpdated",function(){return eT}),s(e.exports,"onUnmounted",function(){return eO}),s(e.exports,"onBeforeUpdate",function(){return eC}),s(e.exports,"resolveComponent",function(){return eL}),s(e.exports,"renderList",function(){return e$}),s(e.exports,"renderSlot",function(){return eF}),s(e.exports,"openBlock",function(){return tP}),s(e.exports,"createBlock",function(){return tj}),s(e.exports,"version",function(){return nh}),s(e.exports,"createRenderer",function(){return td}),s(e.exports,"createHydrationRenderer",function(){return tp}),s(e.exports,"createElementBlock",function(){return tU}),s(e.exports,"createElementVNode",function(){return tY}),s(e.exports,"createCommentVNode",function(){return tX}),s(e.exports,"registerRuntimeCompiler",function(){return nn}),s(e.exports,"isRuntimeOnly",function(){return nr}),s(e.exports,"h",function(){return nd}),s(e.exports,"initCustomFormatter",function(){return np}),s(e.exports,"warn",function(){return nf}),s(e.exports,"toRaw",function(){return c("6Ys9M").toRaw}),s(e.exports,"camelize",function(){return c("fVHkO").camelize}),s(e.exports,"normalizeClass",function(){return c("fVHkO").normalizeClass});var a=c("6Ys9M"),u=c("fVHkO");let d=[],p=!1;function h(e,...t){if(p)return;p=!0,(0,a.pauseTracking)();let n=d.length?d[d.length-1].component:null,r=n&&n.appContext.config.warnHandler,i=function(){let e=d[d.length-1];if(!e)return[];let t=[];for(;e;){let n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});let r=e.component&&e.component.parent;e=r&&r.vnode}return t}();if(r)f(r,n,11,[e+t.map(e=>{var t,n;return null!=(n=null==(t=e.toString)?void 0:t.call(e))?n:JSON.stringify(e)}).join(""),n&&n.proxy,i.map(({vnode:e})=>`at <${nc(n,e.type)}>`).join("\n"),i]);else{let n=[`[Vue warn]: ${e}`,...t];i.length&&n.push(` +!function(){let e,t;function n(e){Object.defineProperty(e,"__esModule",{value:!0,configurable:!0})}function r(e,t,n,r){Object.defineProperty(e,t,{get:n,set:r,enumerable:!0,configurable:!0})}var i="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof global?global:{},s={},o={},l=i.parcelRequire94c2;null==l&&((l=function(e){if(e in s)return s[e].exports;if(e in o){var t=o[e];delete o[e];var n={id:e,exports:{}};return s[e]=n,t.call(n.exports,n,n.exports),n.exports}var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r}).register=function(e,t){o[e]=t},i.parcelRequire94c2=l);var a=l.register;a("lfk1t",function(e,t){n(e.exports),r(e.exports,"default",function(){return i});var i={name:"LanguageSelector",props:{initialLanguage:{type:String,default:"nl"},currentLanguage:{type:String,default:null},supportedLanguageDetails:{type:Object,default:()=>({})},allowedLanguages:{type:Array,default:()=>["nl","en","fr","de"]}},data(){let e=this.currentLanguage||this.initialLanguage;return{selectedLanguage:e,internalCurrentLanguage:e}},mounted(){this.$emit("language-changed",this.selectedLanguage);let e=new CustomEvent("vue:language-changed",{detail:{language:this.selectedLanguage}});document.dispatchEvent(e)},methods:{getAvailableLanguages(){let e=[],t=this.allowedLanguages&&this.allowedLanguages.length>0?this.allowedLanguages:["nl","en","fr","de"];if(this.supportedLanguageDetails&&Object.keys(this.supportedLanguageDetails).length>0)for(let[n,r]of Object.entries(this.supportedLanguageDetails)){let i=r["iso 639-1"];t.includes(i)&&e.push({code:i,name:n,flag:r.flag||""})}else{let n={nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},en:{name:"English",flag:"\uD83C\uDDEC\uD83C\uDDE7"},fr:{name:"Français",flag:"\uD83C\uDDEB\uD83C\uDDF7"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"}};t.forEach(t=>{n[t]&&e.push({code:t,name:n[t].name,flag:n[t].flag})})}return e},changeLanguage(e){if(console.log(`LanguageSelector: changeLanguage called with ${e}`),this.internalCurrentLanguage!==e){this.internalCurrentLanguage=e,this.selectedLanguage=e,this.$emit("language-changed",e);let t=new CustomEvent("vue:language-changed",{detail:{language:e}});document.dispatchEvent(t)}}}}}),a("esoaL",function(e,t){r(e.exports,"render",function(){return u}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO"),s=l("fNp5a");let o={class:"language-selector"},a={class:"select-wrapper"},c=["value"];function u(e,t,r,l,u,d){return(0,n.openBlock)(),(0,n.createElementBlock)("div",o,[t[2]||(t[2]=(0,n.createElementVNode)("label",{for:"language-select"},"Taal / Language:",-1)),(0,n.createElementVNode)("div",a,[(0,n.withDirectives)((0,n.createElementVNode)("select",{id:"language-select","onUpdate:modelValue":t[0]||(t[0]=e=>u.selectedLanguage=e),onChange:t[1]||(t[1]=e=>d.changeLanguage(u.selectedLanguage)),class:"language-select"},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(d.getAvailableLanguages(),e=>((0,n.openBlock)(),(0,n.createElementBlock)("option",{key:e.code,value:e.code},(0,i.toDisplayString)(e.flag)+" "+(0,i.toDisplayString)(e.name),9,c))),128))],544),[[s.vModelSelect,u.selectedLanguage]])])])}}),a("iJXGE",function(e,t){r(e.exports,"createApp",function(){return l("fNp5a").createApp}),r(e.exports,"vModelCheckbox",function(){return l("fNp5a").vModelCheckbox}),r(e.exports,"vModelRadio",function(){return l("fNp5a").vModelRadio}),r(e.exports,"vModelSelect",function(){return l("fNp5a").vModelSelect}),r(e.exports,"vModelText",function(){return l("fNp5a").vModelText}),r(e.exports,"createBlock",function(){return l("iADb3").createBlock}),r(e.exports,"createCommentVNode",function(){return l("iADb3").createCommentVNode}),r(e.exports,"createElementBlock",function(){return l("iADb3").createElementBlock}),r(e.exports,"createElementVNode",function(){return l("iADb3").createElementVNode}),r(e.exports,"createTextVNode",function(){return l("iADb3").createTextVNode}),r(e.exports,"createVNode",function(){return l("iADb3").createVNode}),r(e.exports,"Fragment",function(){return l("iADb3").Fragment}),r(e.exports,"initCustomFormatter",function(){return l("iADb3").initCustomFormatter}),r(e.exports,"normalizeClass",function(){return l("fVHkO").normalizeClass}),r(e.exports,"openBlock",function(){return l("iADb3").openBlock}),r(e.exports,"registerRuntimeCompiler",function(){return l("iADb3").registerRuntimeCompiler}),r(e.exports,"renderList",function(){return l("iADb3").renderList}),r(e.exports,"renderSlot",function(){return l("iADb3").renderSlot}),r(e.exports,"resolveComponent",function(){return l("iADb3").resolveComponent}),r(e.exports,"version",function(){return l("iADb3").version}),r(e.exports,"warn",function(){return l("iADb3").warn}),r(e.exports,"withDirectives",function(){return l("iADb3").withDirectives}),r(e.exports,"toDisplayString",function(){return l("fVHkO").toDisplayString}),l("fNp5a");var n=l("iADb3");l("fVHkO");var i=l("j0b99"),s=l("fVHkO");let o=Object.create(null);(0,n.registerRuntimeCompiler)(function(e,t){if(!(0,s.isString)(e))if(!e.nodeType)return s.NOOP;else e=e.innerHTML;let n=(0,s.genCacheKey)(e,t),r=o[n];if(r)return r;if("#"===e[0]){let t=document.querySelector(e);e=t?t.innerHTML:""}let l=(0,s.extend)({hoistStatic:!0,onError:void 0,onWarn:s.NOOP},t);l.isCustomElement||"undefined"==typeof customElements||(l.isCustomElement=e=>!!customElements.get(e));let{code:a}=(0,i.compile)(e,l),c=Function("Vue",a)($da4aba8f3f47fabb$import$4f81359071792c76);return c._rc=!0,o[n]=c})}),a("fNp5a",function(e,t){let n,i;r(e.exports,"BaseTransition",function(){return l("iADb3").BaseTransition}),r(e.exports,"BaseTransitionPropsValidators",function(){return l("iADb3").BaseTransitionPropsValidators}),r(e.exports,"callWithAsyncErrorHandling",function(){return l("iADb3").callWithAsyncErrorHandling}),r(e.exports,"camelize",function(){return l("fVHkO").camelize}),r(e.exports,"createBlock",function(){return l("iADb3").createBlock}),r(e.exports,"createCommentVNode",function(){return l("iADb3").createCommentVNode}),r(e.exports,"createElementBlock",function(){return l("iADb3").createElementBlock}),r(e.exports,"createElementVNode",function(){return l("iADb3").createElementVNode}),r(e.exports,"createHydrationRenderer",function(){return l("iADb3").createHydrationRenderer}),r(e.exports,"createRenderer",function(){return l("iADb3").createRenderer}),r(e.exports,"createTextVNode",function(){return l("iADb3").createTextVNode}),r(e.exports,"createVNode",function(){return l("iADb3").createVNode}),r(e.exports,"defineComponent",function(){return l("iADb3").defineComponent}),r(e.exports,"Fragment",function(){return l("iADb3").Fragment}),r(e.exports,"getCurrentInstance",function(){return l("iADb3").getCurrentInstance}),r(e.exports,"getTransitionRawChildren",function(){return l("iADb3").getTransitionRawChildren}),r(e.exports,"h",function(){return l("iADb3").h}),r(e.exports,"initCustomFormatter",function(){return l("iADb3").initCustomFormatter}),r(e.exports,"isRuntimeOnly",function(){return l("iADb3").isRuntimeOnly}),r(e.exports,"nextTick",function(){return l("iADb3").nextTick}),r(e.exports,"normalizeClass",function(){return l("fVHkO").normalizeClass}),r(e.exports,"onBeforeUpdate",function(){return l("iADb3").onBeforeUpdate}),r(e.exports,"onMounted",function(){return l("iADb3").onMounted}),r(e.exports,"onUnmounted",function(){return l("iADb3").onUnmounted}),r(e.exports,"onUpdated",function(){return l("iADb3").onUpdated}),r(e.exports,"openBlock",function(){return l("iADb3").openBlock}),r(e.exports,"queuePostFlushCb",function(){return l("iADb3").queuePostFlushCb}),r(e.exports,"registerRuntimeCompiler",function(){return l("iADb3").registerRuntimeCompiler}),r(e.exports,"renderList",function(){return l("iADb3").renderList}),r(e.exports,"renderSlot",function(){return l("iADb3").renderSlot}),r(e.exports,"resolveComponent",function(){return l("iADb3").resolveComponent}),r(e.exports,"resolveTransitionHooks",function(){return l("iADb3").resolveTransitionHooks}),r(e.exports,"setTransitionHooks",function(){return l("iADb3").setTransitionHooks}),r(e.exports,"Static",function(){return l("iADb3").Static}),r(e.exports,"toRaw",function(){return l("6Ys9M").toRaw}),r(e.exports,"useTransitionState",function(){return l("iADb3").useTransitionState}),r(e.exports,"version",function(){return l("iADb3").version}),r(e.exports,"warn",function(){return l("iADb3").warn}),r(e.exports,"watch",function(){return l("iADb3").watch}),r(e.exports,"withDirectives",function(){return l("iADb3").withDirectives}),r(e.exports,"toDisplayString",function(){return l("fVHkO").toDisplayString}),r(e.exports,"createApp",function(){return q}),r(e.exports,"vModelText",function(){return L}),r(e.exports,"vModelCheckbox",function(){return B}),r(e.exports,"vModelRadio",function(){return $}),r(e.exports,"vModelSelect",function(){return F});var s=l("iADb3"),o=l("fVHkO"),a=l("6Ys9M");l("fVHkO");var a=l("6Ys9M"),o=l("fVHkO");let c="undefined"!=typeof window&&window.trustedTypes;if(c)try{i=c.createPolicy("vue",{createHTML:e=>e})}catch(e){}let u=i?e=>i.createHTML(e):e=>e,d="undefined"!=typeof document?document:null,p=d&&d.createElement("template"),h=Symbol("_vtc");s.BaseTransitionPropsValidators;let f=Symbol("_vod"),g=Symbol("_vsh"),m=Symbol(""),y=/(^|;)\s*display\s*:/,x=/\s*!important$/;function b(e,t,n){if((0,o.isArray)(n))n.forEach(n=>b(e,t,n));else if(null==n&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{let r=function(e,t){let n=S[t];if(n)return n;let r=(0,o.camelize)(t);if("filter"!==r&&r in e)return S[t]=r;r=(0,o.capitalize)(r);for(let n=0;n111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)>96&&123>e.charCodeAt(2);"undefined"!=typeof HTMLElement&&HTMLElement,Symbol("_moveCb"),Symbol("_enterCb");let N=e=>{let t=e.props["onUpdate:modelValue"]||!1;return(0,o.isArray)(t)?e=>(0,o.invokeArrayFns)(t,e):t};function M(e){e.target.composing=!0}function V(e){let t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}let R=Symbol("_assign"),L={created(e,{modifiers:{lazy:t,trim:n,number:r}},i){e[R]=N(i);let s=r||i.props&&"number"===i.props.type;T(e,t?"change":"input",t=>{if(t.target.composing)return;let r=e.value;n&&(r=r.trim()),s&&(r=(0,o.looseToNumber)(r)),e[R](r)}),n&&T(e,"change",()=>{e.value=e.value.trim()}),t||(T(e,"compositionstart",M),T(e,"compositionend",V),T(e,"change",V))},mounted(e,{value:t}){e.value=null==t?"":t},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:i,number:s}},l){if(e[R]=N(l),e.composing)return;let a=(s||"number"===e.type)&&!/^0\d/.test(e.value)?(0,o.looseToNumber)(e.value):e.value,c=null==t?"":t;if(a!==c){if(document.activeElement===e&&"range"!==e.type&&(r&&t===n||i&&e.value.trim()===c))return;e.value=c}}},B={deep:!0,created(e,t,n){e[R]=N(n),T(e,"change",()=>{let t=e._modelValue,n=j(e),r=e.checked,i=e[R];if((0,o.isArray)(t)){let e=(0,o.looseIndexOf)(t,n),s=-1!==e;if(r&&!s)i(t.concat(n));else if(!r&&s){let n=[...t];n.splice(e,1),i(n)}}else if((0,o.isSet)(t)){let e=new Set(t);r?e.add(n):e.delete(n),i(e)}else i(H(e,r))})},mounted:P,beforeUpdate(e,t,n){e[R]=N(n),P(e,t,n)}};function P(e,{value:t,oldValue:n},r){let i;if(e._modelValue=t,(0,o.isArray)(t))i=(0,o.looseIndexOf)(t,r.props.value)>-1;else if((0,o.isSet)(t))i=t.has(r.props.value);else{if(t===n)return;i=(0,o.looseEqual)(t,H(e,!0))}e.checked!==i&&(e.checked=i)}let $={created(e,{value:t},n){e.checked=(0,o.looseEqual)(t,n.props.value),e[R]=N(n),T(e,"change",()=>{e[R](j(e))})},beforeUpdate(e,{value:t,oldValue:n},r){e[R]=N(r),t!==n&&(e.checked=(0,o.looseEqual)(t,r.props.value))}},F={deep:!0,created(e,{value:t,modifiers:{number:n}},r){let i=(0,o.isSet)(t);T(e,"change",()=>{let t=Array.prototype.filter.call(e.options,e=>e.selected).map(e=>n?(0,o.looseToNumber)(j(e)):j(e));e[R](e.multiple?i?new Set(t):t:t[0]),e._assigning=!0,(0,s.nextTick)(()=>{e._assigning=!1})}),e[R]=N(r)},mounted(e,{value:t}){z(e,t)},beforeUpdate(e,t,n){e[R]=N(n)},updated(e,{value:t}){e._assigning||z(e,t)}};function z(e,t){let n=e.multiple,r=(0,o.isArray)(t);if(!n||r||(0,o.isSet)(t)){for(let i=0,s=e.options.length;iString(e)===String(l)):s.selected=(0,o.looseIndexOf)(t,l)>-1}else s.selected=t.has(l);else if((0,o.looseEqual)(j(s),t)){e.selectedIndex!==i&&(e.selectedIndex=i);return}}n||-1===e.selectedIndex||(e.selectedIndex=-1)}}function j(e){return"_value"in e?e._value:e.value}function H(e,t){let n=t?"_trueValue":"_falseValue";return n in e?e[n]:t}let U=(0,o.extend)({patchProp:(e,t,n,r,i,l)=>{let a="svg"===i;if("class"===t){var c=r;let t=e[h];t&&(c=(c?[c,...t]:[...t]).join(" ")),null==c?e.removeAttribute("class"):a?e.setAttribute("class",c):e.className=c}else"style"===t?function(e,t,n){let r=e.style,i=(0,o.isString)(n),s=!1;if(n&&!i){if(t)if((0,o.isString)(t))for(let e of t.split(";")){let t=e.slice(0,e.indexOf(":")).trim();null==n[t]&&b(r,t,"")}else for(let e in t)null==n[e]&&b(r,e,"");for(let e in n)"display"===e&&(s=!0),b(r,e,n[e])}else if(i){if(t!==n){let e=r[m];e&&(n+=";"+e),r.cssText=n,s=y.test(n)}}else t&&e.removeAttribute("style");f in e&&(e[f]=s?r.display:"",e[g]&&(r.display="none"))}(e,n,r):(0,o.isOn)(t)?(0,o.isModelListener)(t)||function(e,t,n,r,i=null){let l=e[C]||(e[C]={}),a=l[t];if(r&&a)a.value=r;else{let[n,c]=function(e){let t;if(A.test(e)){let n;for(t={};n=e.match(A);)e=e.slice(0,e.length-n[0].length),t[n[0].toLowerCase()]=!0}return[":"===e[2]?e.slice(3):(0,o.hyphenate)(e.slice(2)),t]}(t);if(r)T(e,n,l[t]=function(e,t){let n=e=>{if(e._vts){if(e._vts<=n.attached)return}else e._vts=Date.now();(0,s.callWithAsyncErrorHandling)(function(e,t){if(!(0,o.isArray)(t))return t;{let n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(e=>t=>!t._stopped&&e&&e(t))}}(e,n.value),t,5,[e])};return n.value=e,n.attached=O||(D.then(()=>O=0),O=Date.now()),n}(r,i),c);else a&&(e.removeEventListener(n,a,c),l[t]=void 0)}}(e,t,0,r,l):("."===t[0]?(t=t.slice(1),0):"^"===t[0]?(t=t.slice(1),1):!function(e,t,n,r){if(r)return!!("innerHTML"===t||"textContent"===t||t in e&&I(t)&&(0,o.isFunction)(n));if("spellcheck"===t||"draggable"===t||"translate"===t||"autocorrect"===t||"form"===t||"list"===t&&"INPUT"===e.tagName||"type"===t&&"TEXTAREA"===e.tagName)return!1;if("width"===t||"height"===t){let t=e.tagName;if("IMG"===t||"VIDEO"===t||"CANVAS"===t||"SOURCE"===t)return!1}return!(I(t)&&(0,o.isString)(n))&&t in e}(e,t,r,a))?e._isVueCE&&(/[A-Z]/.test(t)||!(0,o.isString)(r))?E(e,(0,o.camelize)(t),r,l,t):("true-value"===t?e._trueValue=r:"false-value"===t&&(e._falseValue=r),w(e,t,r,a)):(E(e,t,r),e.tagName.includes("-")||"value"!==t&&"checked"!==t&&"selected"!==t||w(e,t,r,a,l,"value"!==t))}},{insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{let t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{let i="svg"===t?d.createElementNS("http://www.w3.org/2000/svg",e):"mathml"===t?d.createElementNS("http://www.w3.org/1998/Math/MathML",e):n?d.createElement(e,{is:n}):d.createElement(e);return"select"===e&&r&&null!=r.multiple&&i.setAttribute("multiple",r.multiple),i},createText:e=>d.createTextNode(e),createComment:e=>d.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>d.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,i,s){let o=n?n.previousSibling:t.lastChild;if(i&&(i===s||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),i!==s&&(i=i.nextSibling););else{p.innerHTML=u("svg"===r?`${e}`:"mathml"===r?`${e}`:e);let i=p.content;if("svg"===r||"mathml"===r){let e=i.firstChild;for(;e.firstChild;)i.appendChild(e.firstChild);i.removeChild(e)}t.insertBefore(i,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}}),q=(...e)=>{let t=(n||(n=(0,s.createRenderer)(U))).createApp(...e),{mount:r}=t;return t.mount=e=>{var n,i;let s=(n=e,(0,o.isString)(n)?document.querySelector(n):n);if(!s)return;let l=t._component;(0,o.isFunction)(l)||l.render||l.template||(l.template=s.innerHTML),1===s.nodeType&&(s.textContent="");let a=r(s,!1,(i=s)instanceof SVGElement?"svg":"function"==typeof MathMLElement&&i instanceof MathMLElement?"mathml":void 0);return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),a},t}}),a("iADb3",function(e,t){let n,i,s,o,a;r(e.exports,"callWithAsyncErrorHandling",function(){return g}),r(e.exports,"nextTick",function(){return E}),r(e.exports,"queuePostFlushCb",function(){return A}),r(e.exports,"Fragment",function(){return tN}),r(e.exports,"Static",function(){return tR}),r(e.exports,"withDirectives",function(){return j}),r(e.exports,"useTransitionState",function(){return Y}),r(e.exports,"onMounted",function(){return eT}),r(e.exports,"BaseTransitionPropsValidators",function(){return W}),r(e.exports,"getCurrentInstance",function(){return t8}),r(e.exports,"getTransitionRawChildren",function(){return ei}),r(e.exports,"resolveTransitionHooks",function(){return ee}),r(e.exports,"setTransitionHooks",function(){return er}),r(e.exports,"BaseTransition",function(){return X}),r(e.exports,"defineComponent",function(){return es}),r(e.exports,"createVNode",function(){return tW}),r(e.exports,"createTextVNode",function(){return tZ}),r(e.exports,"watch",function(){return tv}),r(e.exports,"onUpdated",function(){return eA}),r(e.exports,"onUnmounted",function(){return eD}),r(e.exports,"onBeforeUpdate",function(){return eC}),r(e.exports,"resolveComponent",function(){return eL}),r(e.exports,"renderList",function(){return e$}),r(e.exports,"renderSlot",function(){return eF}),r(e.exports,"openBlock",function(){return tP}),r(e.exports,"createBlock",function(){return tH}),r(e.exports,"version",function(){return nh}),r(e.exports,"createRenderer",function(){return td}),r(e.exports,"createHydrationRenderer",function(){return tp}),r(e.exports,"createElementBlock",function(){return tj}),r(e.exports,"createElementVNode",function(){return tG}),r(e.exports,"createCommentVNode",function(){return tX}),r(e.exports,"registerRuntimeCompiler",function(){return nn}),r(e.exports,"isRuntimeOnly",function(){return nr}),r(e.exports,"h",function(){return nd}),r(e.exports,"initCustomFormatter",function(){return np}),r(e.exports,"warn",function(){return nf}),r(e.exports,"toRaw",function(){return l("6Ys9M").toRaw}),r(e.exports,"camelize",function(){return l("fVHkO").camelize}),r(e.exports,"normalizeClass",function(){return l("fVHkO").normalizeClass});var c=l("6Ys9M"),u=l("fVHkO");let d=[],p=!1;function h(e,...t){if(p)return;p=!0,(0,c.pauseTracking)();let n=d.length?d[d.length-1].component:null,r=n&&n.appContext.config.warnHandler,i=function(){let e=d[d.length-1];if(!e)return[];let t=[];for(;e;){let n=t[0];n&&n.vnode===e?n.recurseCount++:t.push({vnode:e,recurseCount:0});let r=e.component&&e.component.parent;e=r&&r.vnode}return t}();if(r)f(r,n,11,[e+t.map(e=>{var t,n;return null!=(n=null==(t=e.toString)?void 0:t.call(e))?n:JSON.stringify(e)}).join(""),n&&n.proxy,i.map(({vnode:e})=>`at <${nc(n,e.type)}>`).join("\n"),i]);else{let n=[`[Vue warn]: ${e}`,...t];i.length&&n.push(` `,...function(e){let t=[];return e.forEach((e,n)=>{t.push(...0===n?[]:[` -`],...function({vnode:e,recurseCount:t}){let n=t>0?`... (${t} recursive calls)`:"",r=!!e.component&&null==e.component.parent,i=` at <${nc(e.component,e.type,r)}`,s=">"+n;return e.props?[i,...function(e){let t=[],n=Object.keys(e);return n.slice(0,3).forEach(n=>{t.push(...function e(t,n,r){return(0,u.isString)(n)?(n=JSON.stringify(n),r?n:[`${t}=${n}`]):"number"==typeof n||"boolean"==typeof n||null==n?r?n:[`${t}=${n}`]:(0,a.isRef)(n)?(n=e(t,(0,a.toRaw)(n.value),!0),r?n:[`${t}=Ref<`,n,">"]):(0,u.isFunction)(n)?[`${t}=fn${n.name?`<${n.name}>`:""}`]:(n=(0,a.toRaw)(n),r?n:[`${t}=`,n])}(n,e[n]))}),n.length>3&&t.push(" ..."),t}(e.props),s]:[i+s]}(e))}),t}(i)),console.warn(...n)}(0,a.resetTracking)(),p=!1}function f(e,t,n,r){try{return r?e(...r):e()}catch(e){m(e,t,n)}}function g(e,t,n,r){if((0,u.isFunction)(e)){let i=f(e,t,n,r);return i&&(0,u.isPromise)(i)&&i.catch(e=>{m(e,t,n)}),i}if((0,u.isArray)(e)){let i=[];for(let s=0;s=I(n)?y.push(e):y.splice(function(e){let t=x+1,n=y.length;for(;t>>1,i=y[r],s=I(i);sI(e)-I(t));if(b.length=0,k)return void k.push(...e);for(S=0,k=e;Snull==e.id?2&e.flags?-1:1/0:e.id,N=[],M=!1;function V(e,...t){n?n.emit(e,...t):M||N.push({event:e,args:t})}let B=P("component:added"),L=P("component:updated"),R=P("component:removed");function P(e){return t=>{V(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}let $=null,F=null;function z(e){let t=$;return $=e,F=e&&e.type.__scopeId||null,t}function U(e,t){if(null===$)return e;let n=no($),r=e.dirs||(e.dirs=[]);for(let e=0;e{e.isMounted=!0}),eA(()=>{e.isUnmounting=!0}),e}let Y=[Function,Array],W={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Y,onEnter:Y,onAfterEnter:Y,onEnterCancelled:Y,onBeforeLeave:Y,onLeave:Y,onAfterLeave:Y,onLeaveCancelled:Y,onBeforeAppear:Y,onAppear:Y,onAfterAppear:Y,onAppearCancelled:Y},K=e=>{let t=e.subTree;return t.component?K(t.component):t};function Z(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==tV){t=n;break}}return t}let X={name:"BaseTransition",props:W,setup(e,{slots:t}){let n=t6(),r=J();return()=>{let i=t.default&&ei(t.default(),!0);if(!i||!i.length)return;let s=Z(i),o=(0,a.toRaw)(e),{mode:l}=o;if(r.isLeaving)return et(s);let c=en(s);if(!c)return et(s);let u=ee(c,o,r,n,e=>u=e);c.type!==tV&&er(c,u);let d=n.subTree&&en(n.subTree);if(d&&d.type!==tV&&!tq(c,d)&&K(n).type!==tV){let e=ee(d,o,r,n);if(er(d,e),"out-in"===l&&c.type!==tV)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,d=void 0},et(s);"in-out"===l&&c.type!==tV?e.delayLeave=(e,t,n)=>{Q(r,d)[String(d.key)]=d,e[q]=()=>{t(),e[q]=void 0,delete u.delayedLeave,d=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return s}}};function Q(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ee(e,t,n,r,i){let{appear:s,mode:o,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:d,onEnterCancelled:p,onBeforeLeave:h,onLeave:f,onAfterLeave:m,onLeaveCancelled:y,onBeforeAppear:x,onAppear:b,onAfterAppear:k,onAppearCancelled:S}=t,_=String(e.key),w=Q(n,e),D=(e,t)=>{e&&g(e,r,9,t)},E=(e,t)=>{let n=t[1];D(e,t),(0,u.isArray)(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},C={mode:o,persisted:l,beforeEnter(t){let r=a;if(!n.isMounted)if(!s)return;else r=x||a;t[q]&&t[q](!0);let i=w[_];i&&tq(e,i)&&i.el[q]&&i.el[q](),D(r,[t])},enter(e){let t=c,r=d,i=p;if(!n.isMounted)if(!s)return;else t=b||c,r=k||d,i=S||p;let o=!1,l=e[G]=t=>{o||(o=!0,t?D(i,[e]):D(r,[e]),C.delayedLeave&&C.delayedLeave(),e[G]=void 0)};t?E(t,[e,l]):l()},leave(t,r){let i=String(e.key);if(t[G]&&t[G](!0),n.isUnmounting)return r();D(h,[t]);let s=!1,o=t[q]=n=>{s||(s=!0,r(),n?D(y,[t]):D(m,[t]),t[q]=void 0,w[i]===e&&delete w[i])};w[i]=e,f?E(f,[t,o]):o()},clone(e){let s=ee(e,t,n,r,i);return i&&i(s),s}};return C}function et(e){if(ex(e))return(e=tK(e)).children=null,e}function en(e){if(!ex(e))return e.type.__isTeleport&&e.children?Z(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&(0,u.isFunction)(n.default))return n.default()}}function er(e,t){6&e.shapeFlag&&e.component?(e.transition=t,er(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ei(e,t=!1,n){let r=[],i=0;for(let s=0;s1)for(let e=0;eel(e,t&&((0,u.isArray)(t)?t[s]:t),n,r,i));if(ev(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&el(e,t,n,r.component.subTree);return}let s=4&r.shapeFlag?no(r.component):r.el,o=i?null:s,{i:l,r:c}=e,d=t&&t.r,p=l.refs===u.EMPTY_OBJ?l.refs={}:l.refs,h=l.setupState,g=(0,a.toRaw)(h),m=h===u.EMPTY_OBJ?()=>!1:e=>(0,u.hasOwn)(g,e);if(null!=d&&d!==c&&((0,u.isString)(d)?(p[d]=null,m(d)&&(h[d]=null)):(0,a.isRef)(d)&&(d.value=null)),(0,u.isFunction)(c))f(c,l,12,[o,p]);else{let t=(0,u.isString)(c),r=(0,a.isRef)(c);if(t||r){let l=()=>{if(e.f){let n=t?m(c)?h[c]:p[c]:c.value;i?(0,u.isArray)(n)&&(0,u.remove)(n,s):(0,u.isArray)(n)?n.includes(s)||n.push(s):t?(p[c]=[s],m(c)&&(h[c]=p[c])):(c.value=[s],e.k&&(p[e.k]=c.value))}else t?(p[c]=o,m(c)&&(h[c]=o)):r&&(c.value=o,e.k&&(p[e.k]=o))};o?(l.id=-1,tu(l,n)):l()}}}let ea=!1,ec=()=>{ea||(console.error("Hydration completed but contains mismatches."),ea=!0)},eu=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},ed=e=>8===e.nodeType;function ep(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:s,parentNode:o,remove:l,insert:c,createComment:d}}=e,p=(n,r,l,a,d,S=!1)=>{S=S||!!r.dynamicChildren;let _=ed(n)&&"["===n.data,w=()=>y(n,r,l,a,d,_),{type:D,ref:E,shapeFlag:C,patchFlag:T}=r,A=n.nodeType;r.el=n,__VUE_PROD_DEVTOOLS__&&((0,u.def)(n,"__vnode",r,!0),(0,u.def)(n,"__vueParentComponent",l,!0)),-2===T&&(S=!1,r.dynamicChildren=null);let O=null;switch(D){case tM:3!==A?""===r.children?(c(r.el=i(""),o(n),n),O=n):O=w():(n.data!==r.children&&(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&h("Hydration text mismatch in",n.parentNode,` +`],...function({vnode:e,recurseCount:t}){let n=t>0?`... (${t} recursive calls)`:"",r=!!e.component&&null==e.component.parent,i=` at <${nc(e.component,e.type,r)}`,s=">"+n;return e.props?[i,...function(e){let t=[],n=Object.keys(e);return n.slice(0,3).forEach(n=>{t.push(...function e(t,n,r){return(0,u.isString)(n)?(n=JSON.stringify(n),r?n:[`${t}=${n}`]):"number"==typeof n||"boolean"==typeof n||null==n?r?n:[`${t}=${n}`]:(0,c.isRef)(n)?(n=e(t,(0,c.toRaw)(n.value),!0),r?n:[`${t}=Ref<`,n,">"]):(0,u.isFunction)(n)?[`${t}=fn${n.name?`<${n.name}>`:""}`]:(n=(0,c.toRaw)(n),r?n:[`${t}=`,n])}(n,e[n]))}),n.length>3&&t.push(" ..."),t}(e.props),s]:[i+s]}(e))}),t}(i)),console.warn(...n)}(0,c.resetTracking)(),p=!1}function f(e,t,n,r){try{return r?e(...r):e()}catch(e){m(e,t,n)}}function g(e,t,n,r){if((0,u.isFunction)(e)){let i=f(e,t,n,r);return i&&(0,u.isPromise)(i)&&i.catch(e=>{m(e,t,n)}),i}if((0,u.isArray)(e)){let i=[];for(let s=0;s=I(n)?y.push(e):y.splice(function(e){let t=x+1,n=y.length;for(;t>>1,i=y[r],s=I(i);sI(e)-I(t));if(b.length=0,k)return void k.push(...e);for(S=0,k=e;Snull==e.id?2&e.flags?-1:1/0:e.id,N=[],M=!1;function V(e,...t){n?n.emit(e,...t):M||N.push({event:e,args:t})}let R=P("component:added"),L=P("component:updated"),B=P("component:removed");function P(e){return t=>{V(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}let $=null,F=null;function z(e){let t=$;return $=e,F=e&&e.type.__scopeId||null,t}function j(e,t){if(null===$)return e;let n=no($),r=e.dirs||(e.dirs=[]);for(let e=0;e{e.isMounted=!0}),eO(()=>{e.isUnmounting=!0}),e}let G=[Function,Array],W={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:G,onEnter:G,onAfterEnter:G,onEnterCancelled:G,onBeforeLeave:G,onLeave:G,onAfterLeave:G,onLeaveCancelled:G,onBeforeAppear:G,onAppear:G,onAfterAppear:G,onAppearCancelled:G},K=e=>{let t=e.subTree;return t.component?K(t.component):t};function Z(e){let t=e[0];if(e.length>1){for(let n of e)if(n.type!==tV){t=n;break}}return t}let X={name:"BaseTransition",props:W,setup(e,{slots:t}){let n=t8(),r=Y();return()=>{let i=t.default&&ei(t.default(),!0);if(!i||!i.length)return;let s=Z(i),o=(0,c.toRaw)(e),{mode:l}=o;if(r.isLeaving)return et(s);let a=en(s);if(!a)return et(s);let u=ee(a,o,r,n,e=>u=e);a.type!==tV&&er(a,u);let d=n.subTree&&en(n.subTree);if(d&&d.type!==tV&&!tq(a,d)&&K(n).type!==tV){let e=ee(d,o,r,n);if(er(d,e),"out-in"===l&&a.type!==tV)return r.isLeaving=!0,e.afterLeave=()=>{r.isLeaving=!1,8&n.job.flags||n.update(),delete e.afterLeave,d=void 0},et(s);"in-out"===l&&a.type!==tV?e.delayLeave=(e,t,n)=>{Q(r,d)[String(d.key)]=d,e[q]=()=>{t(),e[q]=void 0,delete u.delayedLeave,d=void 0},u.delayedLeave=()=>{n(),delete u.delayedLeave,d=void 0}}:d=void 0}else d&&(d=void 0);return s}}};function Q(e,t){let{leavingVNodes:n}=e,r=n.get(t.type);return r||(r=Object.create(null),n.set(t.type,r)),r}function ee(e,t,n,r,i){let{appear:s,mode:o,persisted:l=!1,onBeforeEnter:a,onEnter:c,onAfterEnter:d,onEnterCancelled:p,onBeforeLeave:h,onLeave:f,onAfterLeave:m,onLeaveCancelled:y,onBeforeAppear:x,onAppear:b,onAfterAppear:k,onAppearCancelled:S}=t,_=String(e.key),w=Q(n,e),E=(e,t)=>{e&&g(e,r,9,t)},T=(e,t)=>{let n=t[1];E(e,t),(0,u.isArray)(e)?e.every(e=>e.length<=1)&&n():e.length<=1&&n()},C={mode:o,persisted:l,beforeEnter(t){let r=a;if(!n.isMounted)if(!s)return;else r=x||a;t[q]&&t[q](!0);let i=w[_];i&&tq(e,i)&&i.el[q]&&i.el[q](),E(r,[t])},enter(e){let t=c,r=d,i=p;if(!n.isMounted)if(!s)return;else t=b||c,r=k||d,i=S||p;let o=!1,l=e[J]=t=>{o||(o=!0,t?E(i,[e]):E(r,[e]),C.delayedLeave&&C.delayedLeave(),e[J]=void 0)};t?T(t,[e,l]):l()},leave(t,r){let i=String(e.key);if(t[J]&&t[J](!0),n.isUnmounting)return r();E(h,[t]);let s=!1,o=t[q]=n=>{s||(s=!0,r(),n?E(y,[t]):E(m,[t]),t[q]=void 0,w[i]===e&&delete w[i])};w[i]=e,f?T(f,[t,o]):o()},clone(e){let s=ee(e,t,n,r,i);return i&&i(s),s}};return C}function et(e){if(ev(e))return(e=tK(e)).children=null,e}function en(e){if(!ev(e))return e.type.__isTeleport&&e.children?Z(e.children):e;if(e.component)return e.component.subTree;let{shapeFlag:t,children:n}=e;if(n){if(16&t)return n[0];if(32&t&&(0,u.isFunction)(n.default))return n.default()}}function er(e,t){6&e.shapeFlag&&e.component?(e.transition=t,er(e.component.subTree,t)):128&e.shapeFlag?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function ei(e,t=!1,n){let r=[],i=0;for(let s=0;s1)for(let e=0;eel(e,t&&((0,u.isArray)(t)?t[s]:t),n,r,i));if(ex(r)&&!i){512&r.shapeFlag&&r.type.__asyncResolved&&r.component.subTree.component&&el(e,t,n,r.component.subTree);return}let s=4&r.shapeFlag?no(r.component):r.el,o=i?null:s,{i:l,r:a}=e,d=t&&t.r,p=l.refs===u.EMPTY_OBJ?l.refs={}:l.refs,h=l.setupState,g=(0,c.toRaw)(h),m=h===u.EMPTY_OBJ?()=>!1:e=>(0,u.hasOwn)(g,e);if(null!=d&&d!==a&&((0,u.isString)(d)?(p[d]=null,m(d)&&(h[d]=null)):(0,c.isRef)(d)&&(d.value=null)),(0,u.isFunction)(a))f(a,l,12,[o,p]);else{let t=(0,u.isString)(a),r=(0,c.isRef)(a);if(t||r){let l=()=>{if(e.f){let n=t?m(a)?h[a]:p[a]:a.value;i?(0,u.isArray)(n)&&(0,u.remove)(n,s):(0,u.isArray)(n)?n.includes(s)||n.push(s):t?(p[a]=[s],m(a)&&(h[a]=p[a])):(a.value=[s],e.k&&(p[e.k]=a.value))}else t?(p[a]=o,m(a)&&(h[a]=o)):r&&(a.value=o,e.k&&(p[e.k]=o))};o?(l.id=-1,tu(l,n)):l()}}}let ea=!1,ec=()=>{ea||(console.error("Hydration completed but contains mismatches."),ea=!0)},eu=e=>{if(1===e.nodeType){if(e.namespaceURI.includes("svg")&&"foreignObject"!==e.tagName)return"svg";if(e.namespaceURI.includes("MathML"))return"mathml"}},ed=e=>8===e.nodeType;function ep(e){let{mt:t,p:n,o:{patchProp:r,createText:i,nextSibling:s,parentNode:o,remove:l,insert:a,createComment:d}}=e,p=(n,r,l,c,d,S=!1)=>{S=S||!!r.dynamicChildren;let _=ed(n)&&"["===n.data,w=()=>y(n,r,l,c,d,_),{type:E,ref:T,shapeFlag:C,patchFlag:A}=r,O=n.nodeType;r.el=n,__VUE_PROD_DEVTOOLS__&&((0,u.def)(n,"__vnode",r,!0),(0,u.def)(n,"__vueParentComponent",l,!0)),-2===A&&(S=!1,r.dynamicChildren=null);let D=null;switch(E){case tM:3!==O?""===r.children?(a(r.el=i(""),o(n),n),D=n):D=w():(n.data!==r.children&&(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&h("Hydration text mismatch in",n.parentNode,` - rendered on server: ${JSON.stringify(n.data)} - - expected on client: ${JSON.stringify(r.children)}`),ec(),n.data=r.children),O=s(n));break;case tV:k(n)?(O=s(n),b(r.el=n.content.firstChild,n,l)):O=8!==A||_?w():s(n);break;case tB:if(_&&(A=(n=s(n)).nodeType),1===A||3===A){O=n;let e=!r.children.length;for(let t=0;t{o=o||!!t.dynamicChildren;let{type:c,props:d,patchFlag:p,shapeFlag:f,dirs:m,transition:y}=t,x="input"===c||"option"===c;if(x||-1!==p){let c;m&&j(t,null,n,"created");let S=!1;if(k(e)){S=tm(null,y)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(S){let e=r.getAttribute("class");e&&(r.$cls=e),y.beforeEnter(r)}b(r,e,n),t.el=e=r}if(16&f&&!(d&&(d.innerHTML||d.textContent))){let r=g(e.firstChild,t,e,n,i,s,o),a=!1;for(;r;){ey(e,1)||(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&!a&&(h("Hydration children mismatch on",e,` + - expected on client: ${JSON.stringify(r.children)}`),ec(),n.data=r.children),D=s(n));break;case tV:k(n)?(D=s(n),b(r.el=n.content.firstChild,n,l)):D=8!==O||_?w():s(n);break;case tR:if(_&&(O=(n=s(n)).nodeType),1===O||3===O){D=n;let e=!r.children.length;for(let t=0;t{o=o||!!t.dynamicChildren;let{type:a,props:d,patchFlag:p,shapeFlag:f,dirs:m,transition:y}=t,x="input"===a||"option"===a;if(x||-1!==p){let a;m&&H(t,null,n,"created");let S=!1;if(k(e)){S=tm(null,y)&&n&&n.vnode.props&&n.vnode.props.appear;let r=e.content.firstChild;if(S){let e=r.getAttribute("class");e&&(r.$cls=e),y.beforeEnter(r)}b(r,e,n),t.el=e=r}if(16&f&&!(d&&(d.innerHTML||d.textContent))){let r=g(e.firstChild,t,e,n,i,s,o),a=!1;for(;r;){ey(e,1)||(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&!a&&(h("Hydration children mismatch on",e,` Server rendered element contains more child nodes than client vdom.`),a=!0),ec());let t=r;r=r.nextSibling,l(t)}}else if(8&f){let n=t.children;"\n"===n[0]&&("PRE"===e.tagName||"TEXTAREA"===e.tagName)&&(n=n.slice(1)),e.textContent!==n&&(ey(e,0)||(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&h("Hydration text content mismatch on",e,` - rendered on server: ${e.textContent} - expected on client: ${t.children}`),ec()),e.textContent=t.children)}if(d){if(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__||x||!o||48&p){let i=e.tagName.includes("-");for(let s in d)__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&!(m&&m.some(e=>e.dir.created))&&function(e,t,n,r,i){let s,o,l,a;if("class"===t)e.$cls?(l=e.$cls,delete e.$cls):l=e.getAttribute("class"),a=(0,u.normalizeClass)(n),!function(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}(eh(l||""),eh(a))&&(s=2,o="class");else if("style"===t){l=e.getAttribute("style")||"",a=(0,u.isString)(n)?n:(0,u.stringifyStyle)((0,u.normalizeStyle)(n));let t=ef(l),c=ef(a);if(r.dirs)for(let{dir:e,value:t}of r.dirs)"show"!==e.name||t||c.set("display","none");i&&function e(t,n,r){let i=t.subTree;if(t.getCssVars&&(n===i||i&&i.type===tN&&i.children.includes(n))){let e=t.getCssVars();for(let t in e)r.set(`--${(0,u.getEscapedCssVarName)(t,!1)}`,String(e[t]))}n===i&&t.parent&&e(t.parent,t.vnode,r)}(i,r,c),!function(e,t){if(e.size!==t.size)return!1;for(let[n,r]of e)if(r!==t.get(n))return!1;return!0}(t,c)&&(s=3,o="style")}else(e instanceof SVGElement&&(0,u.isKnownSvgAttr)(t)||e instanceof HTMLElement&&((0,u.isBooleanAttr)(t)||(0,u.isKnownHtmlAttr)(t)))&&((0,u.isBooleanAttr)(t)?(l=e.hasAttribute(t),a=(0,u.includeBooleanAttr)(n)):null==n?(l=e.hasAttribute(t),a=!1):(l=e.hasAttribute(t)?e.getAttribute(t):"value"===t&&"TEXTAREA"===e.tagName&&e.value,a=!!(0,u.isRenderableAttrValue)(n)&&String(n)),l!==a&&(s=4,o=t));if(null!=s&&!ey(e,s)){let t=e=>!1===e?"(not rendered)":`${o}="${e}"`;return h(`Hydration ${em[s]} mismatch on`,e,` - rendered on server: ${t(l)} - expected on client: ${t(a)} Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`),!0}return!1}(e,s,d[s],t,n)&&ec(),(x&&(s.endsWith("value")||"indeterminate"===s)||(0,u.isOn)(s)&&!(0,u.isReservedProp)(s)||"."===s[0]||i)&&r(e,s,null,d[s],void 0,n)}else if(d.onClick)r(e,"onClick",null,d.onClick,void 0,n);else if(4&p&&(0,a.isReactive)(d.style))for(let e in d.style)d.style[e]}(c=d&&d.onVnodeBeforeMount)&&t3(c,n,t),m&&j(t,null,n,"beforeMount"),((c=d&&d.onVnodeMounted)||m||S)&&tI(()=>{c&&t3(c,n,t),S&&y.enter(e),m&&j(t,null,n,"mounted")},i)}return e.nextSibling},g=(e,t,r,o,l,a,u)=>{u=u||!!t.dynamicChildren;let d=t.children,f=d.length,g=!1;for(let t=0;t{let{slotScopeIds:a}=t;a&&(i=i?i.concat(a):a);let u=o(e),p=g(s(e),t,u,n,r,i,l);return p&&ed(p)&&"]"===p.data?s(t.anchor=p):(ec(),c(t.anchor=d("]"),u,p),p)},y=(e,t,r,i,a,c)=>{if(ey(e.parentElement,1)||(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&h(`Hydration node mismatch: + You should fix the source of the mismatch.`),!0}return!1}(e,s,d[s],t,n)&&ec(),(x&&(s.endsWith("value")||"indeterminate"===s)||(0,u.isOn)(s)&&!(0,u.isReservedProp)(s)||"."===s[0]||i)&&r(e,s,null,d[s],void 0,n)}else if(d.onClick)r(e,"onClick",null,d.onClick,void 0,n);else if(4&p&&(0,c.isReactive)(d.style))for(let e in d.style)d.style[e]}(a=d&&d.onVnodeBeforeMount)&&t2(a,n,t),m&&H(t,null,n,"beforeMount"),((a=d&&d.onVnodeMounted)||m||S)&&tI(()=>{a&&t2(a,n,t),S&&y.enter(e),m&&H(t,null,n,"mounted")},i)}return e.nextSibling},g=(e,t,r,o,l,c,u)=>{u=u||!!t.dynamicChildren;let d=t.children,f=d.length,g=!1;for(let t=0;t{let{slotScopeIds:c}=t;c&&(i=i?i.concat(c):c);let u=o(e),p=g(s(e),t,u,n,r,i,l);return p&&ed(p)&&"]"===p.data?s(t.anchor=p):(ec(),a(t.anchor=d("]"),u,p),p)},y=(e,t,r,i,a,c)=>{if(ey(e.parentElement,1)||(__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&h(`Hydration node mismatch: - rendered on server:`,e,3===e.nodeType?"(text)":ed(e)&&"["===e.data?"(start of fragment)":"",` -- expected on client:`,t.type),ec()),t.el=null,c){let t=x(e);for(;;){let n=s(e);if(n&&n!==t)l(n);else break}}let u=s(e),d=o(e);return l(e),n(null,t,d,u,r,i,eu(d),a),r&&(r.vnode.el=t.el,tA(r,t.el)),u},x=(e,t="[",n="]")=>{let r=0;for(;e;)if((e=s(e))&&ed(e)&&(e.data===t&&r++,e.data===n))if(0===r)return s(e);else r--;return e},b=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},k=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&h("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,e,t),O(),t._vnode=e;return}p(t.firstChild,e,null,null,null),O(),t._vnode=e},p]}function eh(e){return new Set(e.trim().split(/\s+/))}function ef(e){let t=new Map;for(let n of e.split(";")){let[e,r]=n.split(":");e=e.trim(),r=r&&r.trim(),e&&r&&t.set(e,r)}return t}let eg="data-allow-mismatch",em={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function ey(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(eg);)e=e.parentElement;let n=e&&e.getAttribute(eg);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(em[t])}}(0,u.getGlobalThis)().requestIdleCallback||(e=>setTimeout(e,1)),(0,u.getGlobalThis)().cancelIdleCallback||(e=>clearTimeout(e));let ev=e=>!!e.type.__asyncLoader,ex=e=>e.type.__isKeepAlive;function eb(e,t){eS(e,"a",t)}function ek(e,t){eS(e,"da",t)}function eS(e,t,n=t4){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(e_(t,r,n),n){let e=n.parent;for(;e&&e.parent;)ex(e.parent.vnode)&&function(e,t,n,r){let i=e_(t,e,r,!0);eO(()=>{(0,u.remove)(r[t],i)},n)}(r,t,n,e),e=e.parent}}function e_(e,t,n=t4,r=!1){if(n){let i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...r)=>{(0,a.pauseTracking)();let i=t9(n),s=g(t,n,e,r);return i(),(0,a.resetTracking)(),s});return r?i.unshift(s):i.push(s),s}}let ew=e=>(t,n=t4)=>{ne&&"sp"!==e||e_(e,(...e)=>t(...e),n)},eD=ew("bm"),eE=ew("m"),eC=ew("bu"),eT=ew("u"),eA=ew("bum"),eO=ew("um"),eI=ew("sp"),eN=ew("rtg"),eM=ew("rtc");function eV(e,t=t4){e_("ec",e,t)}let eB="components";function eL(e,t){return function(e,t,n=!0,r=!1){let i=$||t4;if(i){let n=i.type;if(e===eB){let e=na(n,!1);if(e&&(e===t||e===(0,u.camelize)(t)||e===(0,u.capitalize)((0,u.camelize)(t))))return n}let s=eP(i[e]||n[e],t)||eP(i.appContext[e],t);return!s&&r?n:s}}(eB,e,!0,t)||e}let eR=Symbol.for("v-ndc");function eP(e,t){return e&&(e[t]||e[(0,u.camelize)(t)]||e[(0,u.capitalize)((0,u.camelize)(t))])}function e$(e,t,n,r){let i,s=n&&n[r],o=(0,u.isArray)(e);if(o||(0,u.isString)(e)){let n=o&&(0,a.isReactive)(e),r=!1,l=!1;n&&(r=!(0,a.isShallow)(e),l=(0,a.isReadonly)(e),e=(0,a.shallowReadArray)(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,s&&s[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r!tH(t)||t.type!==tV&&(t.type!==tN||!!e(t.children)))?t:null}(s(n)),l=n.key||o&&o.key,a=tj(tN,{key:(l&&!(0,u.isSymbol)(l)?l:`_${t}`)+(!o&&r?"_fb":"")},o||(r?r():[]),o&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),s&&s._c&&(s._d=!0),a}let ez=e=>e?t7(e)?no(e):ez(e.parent):null,eU=(0,u.extend)(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ez(e.parent),$root:e=>ez(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?eW(e):e.type,$forceUpdate:e=>e.f||(e.f=()=>{E(e.update)}),$nextTick:e=>e.n||(e.n=D.bind(e.proxy)),$watch:e=>__VUE_OPTIONS_API__?tk.bind(e):u.NOOP}),ej=(e,t)=>e!==u.EMPTY_OBJ&&!e.__isScriptSetup&&(0,u.hasOwn)(e,t),eH={get({_:e},t){let n,r,i;if("__v_skip"===t)return!0;let{ctx:s,setupState:o,data:l,props:c,accessCache:d,type:p,appContext:h}=e;if("$"!==t[0]){let r=d[t];if(void 0!==r)switch(r){case 1:return o[t];case 2:return l[t];case 4:return s[t];case 3:return c[t]}else{if(ej(o,t))return d[t]=1,o[t];if(l!==u.EMPTY_OBJ&&(0,u.hasOwn)(l,t))return d[t]=2,l[t];if((n=e.propsOptions[0])&&(0,u.hasOwn)(n,t))return d[t]=3,c[t];if(s!==u.EMPTY_OBJ&&(0,u.hasOwn)(s,t))return d[t]=4,s[t];(!__VUE_OPTIONS_API__||eJ)&&(d[t]=0)}}let f=eU[t];return f?("$attrs"===t&&(0,a.track)(e.attrs,"get",""),f(e)):(r=p.__cssModules)&&(r=r[t])?r:s!==u.EMPTY_OBJ&&(0,u.hasOwn)(s,t)?(d[t]=4,s[t]):(i=h.config.globalProperties,(0,u.hasOwn)(i,t))?i[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:s}=e;return ej(i,t)?(i[t]=n,!0):r!==u.EMPTY_OBJ&&(0,u.hasOwn)(r,t)?(r[t]=n,!0):!(0,u.hasOwn)(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},o){let l;return!!n[o]||e!==u.EMPTY_OBJ&&(0,u.hasOwn)(e,o)||ej(t,o)||(l=s[0])&&(0,u.hasOwn)(l,o)||(0,u.hasOwn)(r,o)||(0,u.hasOwn)(eU,o)||(0,u.hasOwn)(i.config.globalProperties,o)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:(0,u.hasOwn)(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},eq=(0,u.extend)({},eH,{get(e,t){if(t!==Symbol.unscopables)return eH.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!(0,u.isGloballyAllowed)(t)});function eG(e){return(0,u.isArray)(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let eJ=!0;function eY(e,t,n){g((0,u.isArray)(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function eW(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:s,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,a=o.get(n);return a?t=a:s.length||r||i?(t={},s.length&&s.forEach(e=>eK(t,e,l,!0)),eK(t,n,l)):t=n,(0,u.isObject)(n)&&o.set(n,t),t}function eK(e,t,n,r=!1){let{mixins:i,extends:s}=t;for(let o in s&&eK(e,s,n,!0),i&&i.forEach(t=>eK(e,t,n,!0)),t)if(r&&"expose"===o);else{let r=eZ[o]||n&&n[o];e[o]=r?r(e[o],t[o]):t[o]}return e}let eZ={data:eX,props:e3,emits:e3,methods:e1,computed:e1,beforeCreate:e0,created:e0,beforeMount:e0,mounted:e0,beforeUpdate:e0,updated:e0,beforeDestroy:e0,beforeUnmount:e0,destroyed:e0,unmounted:e0,activated:e0,deactivated:e0,errorCaptured:e0,serverPrefetch:e0,components:e1,directives:e1,watch:function(e,t){if(!e)return t;if(!t)return e;let n=(0,u.extend)(Object.create(null),e);for(let r in t)n[r]=e0(e[r],t[r]);return n},provide:eX,inject:function(e,t){return e1(eQ(e),eQ(t))}};function eX(e,t){return t?e?function(){return(0,u.extend)((0,u.isFunction)(e)?e.call(this,this):e,(0,u.isFunction)(t)?t.call(this,this):t)}:t:e}function eQ(e){if((0,u.isArray)(e)){let t={};for(let n=0;n1)return n&&(0,u.isFunction)(t)?t.call(r&&r.proxy):t}}let e9={},e5=()=>Object.create(e9),e7=e=>Object.getPrototypeOf(e)===e9;function te(e,t,n,r){let i,[s,o]=e.propsOptions,l=!1;if(t)for(let a in t){let c;if((0,u.isReservedProp)(a))continue;let d=t[a];s&&(0,u.hasOwn)(s,c=(0,u.camelize)(a))?o&&o.includes(c)?(i||(i={}))[c]=d:n[c]=d:tw(e.emitsOptions,a)||a in r&&d===r[a]||(r[a]=d,l=!0)}if(o){let t=(0,a.toRaw)(n),r=i||u.EMPTY_OBJ;for(let i=0;i"_"===e[0]||"$stable"===e,ts=e=>(0,u.isArray)(e)?e.map(tQ):[tQ(e)],to=(e,t,n)=>{if(t._n)return t;let r=function(e,t=$,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&tF(-1);let s=z(t);try{i=e(...n)}finally{z(s),r._d&&tF(1)}return __VUE_PROD_DEVTOOLS__&&L(t),i};return r._n=!0,r._c=!0,r._d=!0,r}((...e)=>ts(t(...e)),n);return r._c=!1,r},tl=(e,t,n)=>{let r=e._ctx;for(let n in e){if(ti(n))continue;let i=e[n];if((0,u.isFunction)(i))t[n]=to(n,i,r);else if(null!=i){let e=ts(i);t[n]=()=>e}}},ta=(e,t)=>{let n=ts(t);e.slots.default=()=>n},tc=(e,t,n)=>{for(let r in t)(n||!ti(r))&&(e[r]=t[r])},tu=tI;function td(e){return th(e)}function tp(e){return th(e,ep)}function th(e,t){var r;let s,o;"boolean"!=typeof __VUE_OPTIONS_API__&&((0,u.getGlobalThis)().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&((0,u.getGlobalThis)().__VUE_PROD_DEVTOOLS__=!1),"boolean"!=typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&((0,u.getGlobalThis)().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1);let l=(0,u.getGlobalThis)();l.__VUE__=!0,__VUE_PROD_DEVTOOLS__&&function e(t,r){var i,s;(n=t)?(n.enabled=!0,N.forEach(({event:e,args:t})=>n.emit(e,...t)),N=[]):"undefined"==typeof window||!window.HTMLElement||(null==(s=null==(i=window.navigator)?void 0:i.userAgent)?void 0:s.includes("jsdom"))?(M=!0,N=[]):((r.__VUE_DEVTOOLS_HOOK_REPLAY__=r.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(t=>{e(t,r)}),setTimeout(()=>{n||(r.__VUE_DEVTOOLS_HOOK_REPLAY__=null,M=!0,N=[])},3e3))}(l.__VUE_DEVTOOLS_GLOBAL_HOOK__,l);let{insert:c,remove:d,patchProp:p,createElement:h,createText:y,createComment:x,setText:b,setElementText:k,parentNode:S,nextSibling:_,setScopeId:w=u.NOOP,insertStaticContent:D}=e,C=(e,t,n,r=null,i=null,s=null,o,l=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!tq(e,t)&&(r=ed(e),ei(e,i,s,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case tM:T(e,t,n,r);break;case tV:I(e,t,n,r);break;case tB:null==e&&P(t,n,r,o);break;case tN:Y(e,t,n,r,i,s,o,l,a);break;default:1&d?$(e,t,n,r,i,s,o,l,a):6&d?W(e,t,n,r,i,s,o,l,a):64&d?c.process(e,t,n,r,i,s,o,l,a,ef):128&d&&c.process(e,t,n,r,i,s,o,l,a,ef)}null!=u&&i?el(u,e&&e.ref,s,t||e,!t):null==u&&e&&null!=e.ref&&el(e.ref,null,s,e,!0)},T=(e,t,n,r)=>{if(null==e)c(t.el=y(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&b(n,t.children)}},I=(e,t,n,r)=>{null==e?c(t.el=x(t.children||""),n,r):t.el=e.el},P=(e,t,n,r)=>{[e.el,e.anchor]=D(e.children,t,n,r,e.el,e.anchor)},$=(e,t,n,r,i,s,o,l,a)=>{"svg"===t.type?o="svg":"math"===t.type&&(o="mathml"),null==e?F(t,n,r,i,s,o,l,a):q(e,t,i,s,o,l,a)},F=(e,t,n,r,i,s,o,l)=>{let a,d,{props:f,shapeFlag:g,transition:m,dirs:y}=e;if(a=e.el=h(e.type,s,f&&f.is,f),8&g?k(a,e.children):16&g&&U(e.children,a,null,r,i,tf(e,s),o,l),y&&j(e,null,r,"created"),z(a,e,e.scopeId,o,r),f){for(let e in f)"value"===e||(0,u.isReservedProp)(e)||p(a,e,null,f[e],s,r);"value"in f&&p(a,"value",null,f.value,s),(d=f.onVnodeBeforeMount)&&t3(d,r,e)}__VUE_PROD_DEVTOOLS__&&((0,u.def)(a,"__vnode",e,!0),(0,u.def)(a,"__vueParentComponent",r,!0)),y&&j(e,null,r,"beforeMount");let x=tm(i,m);x&&m.beforeEnter(a),c(a,t,n),((d=f&&f.onVnodeMounted)||x||y)&&tu(()=>{d&&t3(d,r,e),x&&m.enter(a),y&&j(e,null,r,"mounted")},i)},z=(e,t,n,r,i)=>{if(n&&w(e,n),r)for(let t=0;t{for(let c=a;c{let l,a=t.el=e.el;__VUE_PROD_DEVTOOLS__&&(a.__vnode=t);let{patchFlag:c,dynamicChildren:d,dirs:h}=t;c|=16&e.patchFlag;let f=e.props||u.EMPTY_OBJ,g=t.props||u.EMPTY_OBJ;if(n&&tg(n,!1),(l=g.onVnodeBeforeUpdate)&&t3(l,n,t,e),h&&j(t,e,n,"beforeUpdate"),n&&tg(n,!0),(f.innerHTML&&null==g.innerHTML||f.textContent&&null==g.textContent)&&k(a,""),d?G(e.dynamicChildren,d,a,n,r,tf(t,i),s):o||ee(e,t,a,null,n,r,tf(t,i),s,!1),c>0){if(16&c)J(a,f,g,n,i);else if(2&c&&f.class!==g.class&&p(a,"class",null,g.class,i),4&c&&p(a,"style",f.style,g.style,i),8&c){let e=t.dynamicProps;for(let t=0;t{l&&t3(l,n,t,e),h&&j(t,e,n,"updated")},r)},G=(e,t,n,r,i,s,o)=>{for(let l=0;l{if(t!==n){if(t!==u.EMPTY_OBJ)for(let s in t)(0,u.isReservedProp)(s)||s in n||p(e,s,t[s],null,i,r);for(let s in n){if((0,u.isReservedProp)(s))continue;let o=n[s],l=t[s];o!==l&&"value"!==s&&p(e,s,l,o,i,r)}"value"in n&&p(e,"value",t.value,n.value,i)}},Y=(e,t,n,r,i,s,o,l,a)=>{let d=t.el=e?e.el:y(""),p=t.anchor=e?e.anchor:y(""),{patchFlag:h,dynamicChildren:f,slotScopeIds:g}=t;g&&(l=l?l.concat(g):g),null==e?(c(d,n,r),c(p,n,r),U(t.children||[],n,p,i,s,o,l,a)):h>0&&64&h&&f&&e.dynamicChildren?(G(e.dynamicChildren,f,n,i,s,o,l),(null!=t.key||i&&t===i.subTree)&&function e(t,n,r=!1){let i=t.children,s=n.children;if((0,u.isArray)(i)&&(0,u.isArray)(s))for(let t=0;t{t.slotScopeIds=l,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,o,a):K(t,n,r,i,s,o,a):Z(e,t,a)},K=(e,t,n,r,s,o,l)=>{let c=e.component=function(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||t2,s={uid:t8++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new(0,a.EffectScope)(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=__VUE_OPTIONS_API__&&r?tn:n.propsCache,s=i.get(t);if(s)return s;let o=t.props,l={},a=[],c=!1;if(__VUE_OPTIONS_API__&&!(0,u.isFunction)(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);(0,u.extend)(l,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!o&&!c)return(0,u.isObject)(t)&&i.set(t,u.EMPTY_ARR),u.EMPTY_ARR;if((0,u.isArray)(o))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,(0,u.extend)(l,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return o||a?((0,u.isArray)(o)?o.forEach(e=>l[e]=null):(0,u.extend)(l,o),(0,u.isObject)(t)&&i.set(t,l),l):((0,u.isObject)(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:u.EMPTY_OBJ,inheritAttrs:r.inheritAttrs,ctx:u.EMPTY_OBJ,data:u.EMPTY_OBJ,props:u.EMPTY_OBJ,attrs:u.EMPTY_OBJ,slots:u.EMPTY_OBJ,refs:u.EMPTY_OBJ,setupState:u.EMPTY_OBJ,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,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};return s.ctx={_:s},s.root=t?t.root:s,s.emit=t_.bind(null,s),e.ce&&e.ce(s),s}(e,r,s);ex(e)&&(c.ctx.renderer=ef),function(e,t=!1,n=!1){t&&i(t);let{props:r,children:s}=e.vnode,o=t7(e);!function(e,t,n,r=!1){let i={},s=e5();for(let n in e.propsDefaults=Object.create(null),te(e,t,i,s),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:(0,a.shallowReactive)(i):e.type.props?e.props=i:e.props=s,e.attrs=s}(e,r,o,t),((e,t,n)=>{let r=e.slots=e5();if(32&e.vnode.shapeFlag){let e=t.__;e&&(0,u.def)(r,"__",e,!0);let i=t._;i?(tc(r,t,n),n&&(0,u.def)(r,"_",i,!0)):tl(t,r)}else t&&ta(e,t)})(e,s,n||t),o&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,eH);let{setup:r}=n;if(r){var i;(0,a.pauseTracking)();let n=e.setupContext=r.length>1?{attrs:new Proxy((i=e).attrs,ns),slots:i.slots,emit:i.emit,expose:e=>{i.exposed=e||{}}}:null,s=t9(e),o=f(r,e,0,[e.props,n]),l=(0,u.isPromise)(o);if((0,a.resetTracking)(),s(),(l||e.sp)&&!ev(e)&&eo(e),l){if(o.then(t5,t5),t)return o.then(n=>{nt(e,n,t)}).catch(t=>{m(t,e,0)});e.asyncDep=o}else nt(e,o,t)}else ni(e,t)}(e,t),t&&i(!1)}(c,!1,l),c.asyncDep?(s&&s.registerDep(c,X,l),e.el||I(null,c.subTree=tW(tV),t,n)):X(c,e,t,n,s,o,l)},Z=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:s}=e,{props:o,children:l,patchFlag:a}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!l)&&(!l||!l.$stable)||r!==o&&(r?!o||tT(r,o,c):!!o);if(1024&a)return!0;if(16&a)return r?tT(r,o,c):!!o;if(8&a){let e=t.dynamicProps;for(let t=0;t{let c=()=>{if(e.isMounted){let t,{next:n,bu:r,u:o,parent:a,vnode:d}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=d.el,Q(e,n,l)),t.asyncDep.then(()=>{e.isUnmounted||c()});return}}let p=n;tg(e,!1),n?(n.el=d.el,Q(e,n,l)):n=d,r&&(0,u.invokeArrayFns)(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&t3(t,a,n,d),tg(e,!0);let h=tD(e),f=e.subTree;e.subTree=h,C(f,h,S(f.el),ed(f),e,i,s),n.el=h.el,null===p&&tA(e,h.el),o&&tu(o,i),(t=n.props&&n.props.onVnodeUpdated)&&tu(()=>t3(t,a,n,d),i),__VUE_PROD_DEVTOOLS__&&L(e)}else{let l,{el:a,props:c}=t,{bm:d,m:p,parent:h,root:f,type:g}=e,m=ev(t);if(tg(e,!1),d&&(0,u.invokeArrayFns)(d),!m&&(l=c&&c.onVnodeBeforeMount)&&t3(l,h,t),tg(e,!0),a&&o){let t=()=>{e.subTree=tD(e),o(a,e.subTree,e,i,null)};m&&g.__asyncHydrate?g.__asyncHydrate(a,e,t):t()}else{f.ce&&!1!==f.ce._def.shadowRoot&&f.ce._injectChildStyle(g);let o=e.subTree=tD(e);C(null,o,n,r,e,i,s),t.el=o.el}if(p&&tu(p,i),!m&&(l=c&&c.onVnodeMounted)){let e=t;tu(()=>t3(l,h,e),i)}(256&t.shapeFlag||h&&ev(h.vnode)&&256&h.vnode.shapeFlag)&&e.a&&tu(e.a,i),e.isMounted=!0,__VUE_PROD_DEVTOOLS__&&B(e),t=n=r=null}};e.scope.on();let d=e.effect=new(0,a.ReactiveEffect)(c);e.scope.off();let p=e.update=d.run.bind(d),h=e.job=d.runIfDirty.bind(d);h.i=e,h.id=e.uid,d.scheduler=()=>E(h),tg(e,!0),p()},Q=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:s,vnode:{patchFlag:o}}=e,l=(0,a.toRaw)(i),[c]=e.propsOptions,d=!1;if((r||o>0)&&!(16&o)){if(8&o){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,s=!0,o=u.EMPTY_OBJ;if(32&r.shapeFlag){let e=t._;e?n&&1===e?s=!1:tc(i,t,n):(s=!t.$stable,tl(t,i)),o=t}else t&&(ta(e,t),o={default:1});if(s)for(let e in i)ti(e)||null!=o[e]||delete i[e]})(e,t.children,n),(0,a.pauseTracking)(),A(e),(0,a.resetTracking)()},ee=(e,t,n,r,i,s,o,l,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p)return void en(c,d,n,r,i,s,o,l,a);else if(256&p)return void et(c,d,n,r,i,s,o,l,a)}8&h?(16&u&&eu(c,i,s),d!==c&&k(n,d)):16&u?16&h?en(c,d,n,r,i,s,o,l,a):eu(c,i,s,!0):(8&u&&k(n,""),16&h&&U(d,n,r,i,s,o,l,a))},et=(e,t,n,r,i,s,o,l,a)=>{let c;e=e||u.EMPTY_ARR,t=t||u.EMPTY_ARR;let d=e.length,p=t.length,h=Math.min(d,p);for(c=0;cp?eu(e,i,s,!0,!1,h):U(t,n,r,i,s,o,l,a,h)},en=(e,t,n,r,i,s,o,l,a)=>{let c=0,d=t.length,p=e.length-1,h=d-1;for(;c<=p&&c<=h;){let r=e[c],u=t[c]=a?t0(t[c]):tQ(t[c]);if(tq(r,u))C(r,u,n,null,i,s,o,l,a);else break;c++}for(;c<=p&&c<=h;){let r=e[p],c=t[h]=a?t0(t[h]):tQ(t[h]);if(tq(r,c))C(r,c,n,null,i,s,o,l,a);else break;p--,h--}if(c>p){if(c<=h){let e=h+1,u=eh)for(;c<=p;)ei(e[c],i,s,!0),c++;else{let f,g=c,m=c,y=new Map;for(c=m;c<=h;c++){let e=t[c]=a?t0(t[c]):tQ(t[c]);null!=e.key&&y.set(e.key,c)}let x=0,b=h-m+1,k=!1,S=0,_=Array(b);for(c=0;c=b){ei(u,i,s,!0);continue}if(null!=u.key)r=y.get(u.key);else for(f=m;f<=h;f++)if(0===_[f-m]&&tq(u,t[f])){r=f;break}void 0===r?ei(u,i,s,!0):(_[r-m]=c+1,r>=S?S=r:k=!0,C(u,t[r],n,null,i,s,o,l,a),x++)}let w=k?function(e){let t,n,r,i,s,o=e.slice(),l=[0],a=e.length;for(t=0;t>1]]0&&(o[t]=l[r-1]),l[r]=t)}}for(r=l.length,i=l[r-1];r-- >0;)l[r]=i,i=o[i];return l}(_):u.EMPTY_ARR;for(f=w.length-1,c=b-1;c>=0;c--){let e=m+c,u=t[e],p=e+1{let{el:s,type:o,transition:l,children:a,shapeFlag:u}=e;if(6&u)return void er(e.component.subTree,t,n,r);if(128&u)return void e.suspense.move(t,n,r);if(64&u)return void o.move(e,t,n,ef);if(o===tN){c(s,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=_(e),c(e,n,r),e=i;c(t,n,r)})(e,t,n);if(2!==r&&1&u&&l)if(0===r)l.beforeEnter(s),c(s,t,n),tu(()=>l.enter(s),i);else{let{leave:r,delayLeave:i,afterLeave:o}=l,a=()=>{e.ctx.isUnmounted?d(s):c(s,t,n)},u=()=>{r(s,()=>{a(),o&&o()})};i?i(s,a,u):u()}else c(s,t,n)},ei=(e,t,n,r=!1,i=!1)=>{let s,{type:o,props:l,ref:c,children:u,dynamicChildren:d,shapeFlag:p,patchFlag:h,dirs:f,cacheIndex:g}=e;if(-2===h&&(i=!1),null!=c&&((0,a.pauseTracking)(),el(c,null,n,e,!0),(0,a.resetTracking)()),null!=g&&(t.renderCache[g]=void 0),256&p)return void t.ctx.deactivate(e);let m=1&p&&f,y=!ev(e);if(y&&(s=l&&l.onVnodeBeforeUnmount)&&t3(s,t,e),6&p)ec(e.component,n,r);else{if(128&p)return void e.suspense.unmount(n,r);m&&j(e,null,t,"beforeUnmount"),64&p?e.type.remove(e,t,n,ef,r):d&&!d.hasOnce&&(o!==tN||h>0&&64&h)?eu(d,t,n,!1,!0):(o===tN&&384&h||!i&&16&p)&&eu(u,t,n),r&&es(e)}(y&&(s=l&&l.onVnodeUnmounted)||m)&&tu(()=>{s&&t3(s,t,e),m&&j(e,null,t,"unmounted")},n)},es=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===tN)return void ea(n,r);if(t===tB)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=_(e),d(e),e=n;d(t)})(e);let s=()=>{d(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,s);r?r(e.el,s,o):o()}else s()},ea=(e,t)=>{let n;for(;e!==t;)n=_(e),d(e),e=n;d(t)},ec=(e,t,r)=>{let{bum:i,scope:s,job:o,subTree:l,um:a,m:c,a:d,parent:p,slots:{__:h}}=e;ty(c),ty(d),i&&(0,u.invokeArrayFns)(i),p&&(0,u.isArray)(h)&&h.forEach(e=>{p.renderCache[e]=void 0}),s.stop(),o&&(o.flags|=8,ei(l,e,t,r)),a&&tu(a,t),tu(()=>{e.isUnmounted=!0},t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve()),__VUE_PROD_DEVTOOLS__&&n&&"function"==typeof n.cleanupBuffer&&!n.cleanupBuffer(e)&&R(e)},eu=(e,t,n,r=!1,i=!1,s=0)=>{for(let o=s;o{if(6&e.shapeFlag)return ed(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=_(e.anchor||e.el),n=t&&t[H];return n?_(n):t},ep=!1,eh=(e,t,n)=>{null==e?t._vnode&&ei(t._vnode,null,null,!0):C(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ep||(ep=!0,A(),O(),ep=!1)},ef={p:C,um:ei,m:er,r:es,mt:K,mc:U,pc:ee,pbc:G,n:ed,o:e};return t&&([s,o]=t(ef)),{render:eh,hydrate:s,createApp:(r=s,function(e,t=null){(0,u.isFunction)(e)||(e=(0,u.extend)({},e)),null==t||(0,u.isObject)(t)||(t=null);let n=e2(),i=new WeakSet,s=[],o=!1,l=n.app={_uid:e8++,_component:e,_props:t,_container:null,_context:n,_instance:null,version:nh,get config(){return n.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&(0,u.isFunction)(e.install)?(i.add(e),e.install(l,...t)):(0,u.isFunction)(e)&&(i.add(e),e(l,...t))),l),mixin:e=>(__VUE_OPTIONS_API__&&!n.mixins.includes(e)&&n.mixins.push(e),l),component:(e,t)=>t?(n.components[e]=t,l):n.components[e],directive:(e,t)=>t?(n.directives[e]=t,l):n.directives[e],mount(i,s,a){if(!o){let c=l._ceVNode||tW(e,t);return c.appContext=n,!0===a?a="svg":!1===a&&(a=void 0),s&&r?r(c,i):eh(c,i,a),o=!0,l._container=i,i.__vue_app__=l,__VUE_PROD_DEVTOOLS__&&(l._instance=c.component,V("app:init",l,nh,{Fragment:tN,Text:tM,Comment:tV,Static:tB})),no(c.component)}},onUnmount(e){s.push(e)},unmount(){o&&(g(s,l._instance,16),eh(null,l._container),__VUE_PROD_DEVTOOLS__&&(l._instance=null,V("app:unmount",l)),delete l._container.__vue_app__)},provide:(e,t)=>(n.provides[e]=t,l),runWithContext(e){let t=e4;e4=l;try{return e()}finally{e4=t}}};return l})}}function tf({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function tg({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function tm(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ty(e){if(e)for(let t=0;t{};return e.stop=u.NOOP,e.resume=u.NOOP,e.pause=u.NOOP,e}}let p=t4;c.call=(e,t,n)=>g(e,p,t,n);let h=!1;"post"===o?c.scheduler=e=>{tu(e,p&&p.suspense)}:"sync"!==o&&(h=!0,c.scheduler=(e,t)=>{t?e():E(e)}),c.augmentJob=e=>{t&&(e.flags|=4),h&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let f=(0,a.watch)(e,t,c);return ne&&(r?r.push(f):d&&f()),f}function tk(e,t,n){let r,i=this.proxy,s=(0,u.isString)(e)?e.includes(".")?tS(i,e):()=>i[e]:e.bind(i,i);(0,u.isFunction)(t)?r=t:(r=t.handler,n=t);let o=t9(this),l=tb(s,r.bind(i),n);return o(),l}function tS(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e(0,u.isString)(e)?e.trim():e)),c.number&&(l=n.map(u.looseToNumber))),__VUE_PROD_DEVTOOLS__&&(r=l,V("component:emit",e.appContext.app,e,t,r));let d=o[i=(0,u.toHandlerKey)(t)]||o[i=(0,u.toHandlerKey)((0,u.camelize)(t))];!d&&a&&(d=o[i=(0,u.toHandlerKey)((0,u.hyphenate)(t))]),d&&g(d,e,6,l);let p=o[i+"Once"];if(p){if(e.emitted){if(e.emitted[i])return}else e.emitted={};e.emitted[i]=!0,g(p,e,6,l)}}function tw(e,t){return!!e&&!!(0,u.isOn)(t)&&(t=t.slice(2).replace(/Once$/,""),(0,u.hasOwn)(e,t[0].toLowerCase()+t.slice(1))||(0,u.hasOwn)(e,(0,u.hyphenate)(t))||(0,u.hasOwn)(e,t))}function tD(e){let t,n,{type:r,vnode:i,proxy:s,withProxy:o,propsOptions:[l],slots:a,attrs:c,emit:d,render:p,renderCache:h,props:f,data:g,setupState:y,ctx:x,inheritAttrs:b}=e,k=z(e);try{if(4&i.shapeFlag){let e=o||s;t=tQ(p.call(e,e,h,f,y,g,x)),n=c}else t=tQ(r.length>1?r(f,{attrs:c,slots:a,emit:d}):r(f,null)),n=r.props?c:tE(c)}catch(n){tL.length=0,m(n,e,1),t=tW(tV)}let S=t;if(n&&!1!==b){let e=Object.keys(n),{shapeFlag:t}=S;e.length&&7&t&&(l&&e.some(u.isModelListener)&&(n=tC(n,l)),S=tK(S,n,!1,!0))}return i.dirs&&((S=tK(S,null,!1,!0)).dirs=S.dirs?S.dirs.concat(i.dirs):i.dirs),i.transition&&er(S,i.transition),t=S,z(k),t}let tE=e=>{let t;for(let n in e)("class"===n||"style"===n||(0,u.isOn)(n))&&((t||(t={}))[n]=e[n]);return t},tC=(e,t)=>{let n={};for(let r in e)(0,u.isModelListener)(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function tT(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;ie.__isSuspense;function tI(e,t){t&&t.pendingBranch?(0,u.isArray)(e)?t.effects.push(...e):t.effects.push(e):T(e)}let tN=Symbol.for("v-fgt"),tM=Symbol.for("v-txt"),tV=Symbol.for("v-cmt"),tB=Symbol.for("v-stc"),tL=[],tR=null;function tP(e=!1){tL.push(tR=e?null:[])}let t$=1;function tF(e,t=!1){t$+=e,e<0&&tR&&t&&(tR.hasOnce=!0)}function tz(e){return e.dynamicChildren=t$>0?tR||u.EMPTY_ARR:null,tL.pop(),tR=tL[tL.length-1]||null,t$>0&&tR&&tR.push(e),e}function tU(e,t,n,r,i,s){return tz(tY(e,t,n,r,i,s,!0))}function tj(e,t,n,r,i){return tz(tW(e,t,n,r,i,!0))}function tH(e){return!!e&&!0===e.__v_isVNode}function tq(e,t){return e.type===t.type&&e.key===t.key}let tG=({key:e})=>null!=e?e:null,tJ=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?(0,u.isString)(e)||(0,a.isRef)(e)||(0,u.isFunction)(e)?{i:$,r:e,k:t,f:!!n}:e:null);function tY(e,t=null,n=null,r=0,i=null,s=+(e!==tN),o=!1,l=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&tG(t),ref:t&&tJ(t),scopeId:F,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:$};return l?(t1(a,n),128&s&&e.normalize(a)):n&&(a.shapeFlag|=(0,u.isString)(n)?8:16),t$>0&&!o&&tR&&(a.patchFlag>0||6&s)&&32!==a.patchFlag&&tR.push(a),a}let tW=function(e,t=null,n=null,r=0,i=null,s=!1){var o,l;if(e&&e!==eR||(e=tV),tH(e)){let r=tK(e,t,!0);return n&&t1(r,n),t$>0&&!s&&tR&&(6&r.shapeFlag?tR[tR.indexOf(e)]=r:tR.push(r)),r.patchFlag=-2,r}if(o=e,(0,u.isFunction)(o)&&"__vccOpts"in o&&(e=e.__vccOpts),t){let{class:e,style:n}=t=(l=t)?(0,a.isProxy)(l)||e7(l)?(0,u.extend)({},l):l:null;e&&!(0,u.isString)(e)&&(t.class=(0,u.normalizeClass)(e)),(0,u.isObject)(n)&&((0,a.isProxy)(n)&&!(0,u.isArray)(n)&&(n=(0,u.extend)({},n)),t.style=(0,u.normalizeStyle)(n))}let c=(0,u.isString)(e)?1:tO(e)?128:e.__isTeleport?64:(0,u.isObject)(e)?4:2*!!(0,u.isFunction)(e);return tY(e,t,n,r,i,c,s,!0)};function tK(e,t,n=!1,r=!1){let{props:i,ref:s,patchFlag:o,children:l,transition:a}=e,c=t?function(...e){let t={};for(let n=0;nt4||$;{let e=(0,u.getGlobalThis)(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};r=t("__VUE_INSTANCE_SETTERS__",e=>t4=e),i=t("__VUE_SSR_SETTERS__",e=>ne=e)}let t9=e=>{let t=t4;return r(e),e.scope.on(),()=>{e.scope.off(),r(t)}},t5=()=>{t4&&t4.scope.off(),r(null)};function t7(e){return 4&e.vnode.shapeFlag}let ne=!1;function nt(e,t,n){(0,u.isFunction)(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:(0,u.isObject)(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=(0,a.proxyRefs)(t)),ni(e,n)}function nn(e){o=e,l=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,eq))}}let nr=()=>!o;function ni(e,t,n){let r=e.type;if(!e.render){if(!t&&o&&!r.render){let t=r.template||__VUE_OPTIONS_API__&&eW(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:s,compilerOptions:l}=r,a=(0,u.extend)((0,u.extend)({isCustomElement:n,delimiters:s},i),l);r.render=o(t,a)}}e.render=r.render||u.NOOP,l&&l(e)}if(__VUE_OPTIONS_API__&&1){let t=t9(e);(0,a.pauseTracking)();try{!function(e){let t=eW(e),n=e.proxy,r=e.ctx;eJ=!1,t.beforeCreate&&eY(t.beforeCreate,e,"bc");let{data:i,computed:s,methods:o,watch:l,provide:c,inject:d,created:p,beforeMount:h,mounted:f,beforeUpdate:g,updated:m,activated:y,deactivated:x,beforeDestroy:b,beforeUnmount:k,destroyed:S,unmounted:_,render:w,renderTracked:D,renderTriggered:E,errorCaptured:C,serverPrefetch:T,expose:A,inheritAttrs:O,components:I,directives:N,filters:M}=t;if(d&&function(e,t,n=u.NOOP){for(let n in(0,u.isArray)(e)&&(e=eQ(e)),e){let r,i=e[n];r=(0,u.isObject)(i)?"default"in i?e6(i.from||n,i.default,!0):e6(i.from||n):e6(i),(0,a.isRef)(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(d,r,null),o)for(let e in o){let t=o[e];(0,u.isFunction)(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);(0,u.isObject)(t)&&(e.data=(0,a.reactive)(t))}if(eJ=!0,s)for(let e in s){let t=s[e],i=(0,u.isFunction)(t)?t.bind(n,n):(0,u.isFunction)(t.get)?t.get.bind(n,n):u.NOOP,o=nu({get:i,set:!(0,u.isFunction)(t)&&(0,u.isFunction)(t.set)?t.set.bind(n):u.NOOP});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>o.value,set:e=>o.value=e})}if(l)for(let e in l)!function e(t,n,r,i){var s,o,l,a,c,d,p;let h=i.includes(".")?tS(r,i):()=>r[i];if((0,u.isString)(t)){let e=n[t];(0,u.isFunction)(e)&&(s=h,o=e,tb(s,o,void 0))}else if((0,u.isFunction)(t)){l=h,a=t.bind(r),tb(l,a,void 0)}else if((0,u.isObject)(t))if((0,u.isArray)(t))t.forEach(t=>e(t,n,r,i));else{let e=(0,u.isFunction)(t.handler)?t.handler.bind(r):n[t.handler];(0,u.isFunction)(e)&&(c=h,d=e,p=t,tb(c,d,p))}}(l[e],r,n,e);if(c){let e=(0,u.isFunction)(c)?c.call(n):c;Reflect.ownKeys(e).forEach(t=>{var n=t,r=e[t];if(t4){let e=t4.provides,t=t4.parent&&t4.parent.provides;t===e&&(e=t4.provides=Object.create(t)),e[n]=r}})}function V(e,t){(0,u.isArray)(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(p&&eY(p,e,"c"),V(eD,h),V(eE,f),V(eC,g),V(eT,m),V(eb,y),V(ek,x),V(eV,C),V(eM,D),V(eN,E),V(eA,k),V(eO,_),V(eI,T),(0,u.isArray)(A))if(A.length){let t=e.exposed||(e.exposed={});A.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})})}else e.exposed||(e.exposed={});w&&e.render===u.NOOP&&(e.render=w),null!=O&&(e.inheritAttrs=O),I&&(e.components=I),N&&(e.directives=N),T&&eo(e)}(e)}finally{(0,a.resetTracking)(),t()}}}let ns={get:(e,t)=>((0,a.track)(e,"get",""),e[t])};function no(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy((0,a.proxyRefs)((0,a.markRaw)(e.exposed)),{get:(t,n)=>n in t?t[n]:n in eU?eU[n](e):void 0,has:(e,t)=>t in e||t in eU})):e.proxy}let nl=/(?:^|[-_])(\w)/g;function na(e,t=!0){return(0,u.isFunction)(e)?e.displayName||e.name:e.name||t&&e.__name}function nc(e,t,n=!1){let r=na(t);if(!r&&t.__file){let e=t.__file.match(/([^/\\]+)\.\w+$/);e&&(r=e[1])}if(!r&&e&&e.parent){let n=e=>{for(let n in e)if(e[n]===t)return n};r=n(e.components||e.parent.type.components)||n(e.appContext.components)}return r?r.replace(nl,e=>e.toUpperCase()).replace(/[-_]/g,""):n?"App":"Anonymous"}let nu=(e,t)=>(0,a.computed)(e,t,ne);function nd(e,t,n){let r=arguments.length;return 2!==r?(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&tH(n)&&(n=[n]),tW(e,t,n)):!(0,u.isObject)(t)||(0,u.isArray)(t)?tW(e,null,t):tH(t)?tW(e,null,[t]):tW(e,t)}function np(){}let nh="3.5.17",nf=u.NOOP}),u("6Ys9M",function(e,t){let n,r,i,o,l;s(e.exports,"EffectScope",function(){return u}),s(e.exports,"ReactiveEffect",function(){return p}),s(e.exports,"pauseTracking",function(){return w}),s(e.exports,"resetTracking",function(){return D}),s(e.exports,"track",function(){return V}),s(e.exports,"trigger",function(){return B}),s(e.exports,"toRaw",function(){return ev}),s(e.exports,"isShallow",function(){return em}),s(e.exports,"toReactive",function(){return eb}),s(e.exports,"shallowReadArray",function(){return R}),s(e.exports,"isProxy",function(){return ey}),s(e.exports,"isRef",function(){return eS}),s(e.exports,"reactive",function(){return eu}),s(e.exports,"isReadonly",function(){return eg}),s(e.exports,"toReadonly",function(){return ek}),s(e.exports,"shallowReactive",function(){return ed}),s(e.exports,"isReactive",function(){return ef}),s(e.exports,"markRaw",function(){return ex}),s(e.exports,"ref",function(){return e_}),s(e.exports,"shallowRef",function(){return ew}),s(e.exports,"unref",function(){return eC}),s(e.exports,"proxyRefs",function(){return eA}),s(e.exports,"customRef",function(){return eI}),s(e.exports,"computed",function(){return eM}),s(e.exports,"watch",function(){return eL}),s(e.exports,"traverse",function(){return eR});var a=c("fVHkO");class u{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=n,!e&&n&&(this.index=(n.scopes||(n.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(n=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(o){let e=o;for(o=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;i;){let t=i;for(i=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function m(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function y(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),k(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function x(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(b(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function b(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===C)||(e.globalVersion=C,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!x(e))))return;e.flags|=2;let t=e.dep,n=r,i=S;r=e,S=!0;try{m(e);let n=e.fn(e._value);(0===t.version||(0,a.hasChanged)(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{r=n,S=i,y(e),e.flags&=-3}}function k(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)k(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let S=!0,_=[];function w(){_.push(S),S=!1}function D(){let e=_.pop();S=void 0===e||e}function E(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=r;r=void 0;try{t()}finally{r=e}}}let C=0;class T{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class A{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!r||!S||r===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==r)t=this.activeLink=new T(r,this),r.deps?(t.prevDep=r.depsTail,r.depsTail.nextDep=t,r.depsTail=t):r.deps=r.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=r.depsTail,t.nextDep=void 0,r.depsTail.nextDep=t,r.depsTail=t,r.deps===t&&(r.deps=e)}return t}trigger(e){this.version++,C++,this.notify(e)}notify(e){h++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{g()}}}let O=new WeakMap,I=Symbol(""),N=Symbol(""),M=Symbol("");function V(e,t,n){if(S&&r){let t=O.get(e);t||O.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new A),r.map=t,r.key=n),r.track()}}function B(e,t,n,r,i,s){let o=O.get(e);if(!o)return void C++;let l=e=>{e&&e.trigger()};if(h++,"clear"===t)o.forEach(l);else{let i=(0,a.isArray)(e),s=i&&(0,a.isIntegerKey)(n);if(i&&"length"===n){let e=Number(r);o.forEach((t,n)=>{("length"===n||n===M||!(0,a.isSymbol)(n)&&n>=e)&&l(t)})}else switch((void 0!==n||o.has(void 0))&&l(o.get(n)),s&&l(o.get(M)),t){case"add":i?s&&l(o.get("length")):(l(o.get(I)),(0,a.isMap)(e)&&l(o.get(N)));break;case"delete":!i&&(l(o.get(I)),(0,a.isMap)(e)&&l(o.get(N)));break;case"set":(0,a.isMap)(e)&&l(o.get(I))}}g()}function L(e){let t=ev(e);return t===e?t:(V(t,"iterate",M),em(e)?t:t.map(eb))}function R(e){return V(e=ev(e),"iterate",M),e}let P={__proto__:null,[Symbol.iterator](){return $(this,Symbol.iterator,eb)},concat(...e){return L(this).concat(...e.map(e=>(0,a.isArray)(e)?L(e):e))},entries(){return $(this,"entries",e=>(e[1]=eb(e[1]),e))},every(e,t){return z(this,"every",e,t,void 0,arguments)},filter(e,t){return z(this,"filter",e,t,e=>e.map(eb),arguments)},find(e,t){return z(this,"find",e,t,eb,arguments)},findIndex(e,t){return z(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return z(this,"findLast",e,t,eb,arguments)},findLastIndex(e,t){return z(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return z(this,"forEach",e,t,void 0,arguments)},includes(...e){return j(this,"includes",e)},indexOf(...e){return j(this,"indexOf",e)},join(e){return L(this).join(e)},lastIndexOf(...e){return j(this,"lastIndexOf",e)},map(e,t){return z(this,"map",e,t,void 0,arguments)},pop(){return H(this,"pop")},push(...e){return H(this,"push",e)},reduce(e,...t){return U(this,"reduce",e,t)},reduceRight(e,...t){return U(this,"reduceRight",e,t)},shift(){return H(this,"shift")},some(e,t){return z(this,"some",e,t,void 0,arguments)},splice(...e){return H(this,"splice",e)},toReversed(){return L(this).toReversed()},toSorted(e){return L(this).toSorted(e)},toSpliced(...e){return L(this).toSpliced(...e)},unshift(...e){return H(this,"unshift",e)},values(){return $(this,"values",eb)}};function $(e,t,n){let r=R(e),i=r[t]();return r===e||em(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}let F=Array.prototype;function z(e,t,n,r,i,s){let o=R(e),l=o!==e&&!em(e),a=o[t];if(a!==F[t]){let t=a.apply(e,s);return l?eb(t):t}let c=n;o!==e&&(l?c=function(t,r){return n.call(this,eb(t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(o,c,r);return l&&i?i(u):u}function U(e,t,n,r){let i=R(e),s=n;return i!==e&&(em(e)?n.length>3&&(s=function(t,r,i){return n.call(this,t,r,i,e)}):s=function(t,r,i){return n.call(this,t,eb(r),i,e)}),i[t](s,...r)}function j(e,t,n){let r=ev(e);V(r,"iterate",M);let i=r[t](...n);return(-1===i||!1===i)&&ey(n[0])?(n[0]=ev(n[0]),r[t](...n)):i}function H(e,t,n=[]){w(),h++;let r=ev(e)[t].apply(e,n);return g(),D(),r}let q=(0,a.makeMap)("__proto__,__v_isRef,__isVue"),G=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(a.isSymbol));function J(e){(0,a.isSymbol)(e)||(e=String(e));let t=ev(this);return V(t,"has",e),t.hasOwnProperty(e)}class Y{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?ec:ea:i?el:eo).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let s=(0,a.isArray)(e);if(!r){let e;if(s&&(e=P[t]))return e;if("hasOwnProperty"===t)return J}let o=Reflect.get(e,t,eS(e)?e:n);return((0,a.isSymbol)(t)?G.has(t):q(t))||(r||V(e,"get",t),i)?o:eS(o)?s&&(0,a.isIntegerKey)(t)?o:o.value:(0,a.isObject)(o)?r?ep(o):eu(o):o}}class W extends Y{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=eg(i);if(em(n)||eg(n)||(i=ev(i),n=ev(n)),!(0,a.isArray)(e)&&eS(i)&&!eS(n))if(t)return!1;else return i.value=n,!0}let s=(0,a.isArray)(e)&&(0,a.isIntegerKey)(t)?Number(t)e,ee=e=>Reflect.getPrototypeOf(e);function et(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function en(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=ev(r),s=ev(n);e||((0,a.hasChanged)(n,s)&&V(i,"get",n),V(i,"get",s));let{has:o}=ee(i),l=t?Q:e?ek:eb;return o.call(i,n)?l(r.get(n)):o.call(i,s)?l(r.get(s)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||V(ev(t),"iterate",I),Reflect.get(t,"size",t)},has(t){let n=this.__v_raw,r=ev(n),i=ev(t);return e||((0,a.hasChanged)(t,i)&&V(r,"has",t),V(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,s=i.__v_raw,o=ev(s),l=t?Q:e?ek:eb;return e||V(o,"iterate",I),s.forEach((e,t)=>n.call(r,l(e),l(t),i))}};return(0,a.extend)(n,e?{add:et("add"),set:et("set"),delete:et("delete"),clear:et("clear")}:{add(e){t||em(e)||eg(e)||(e=ev(e));let n=ev(this);return ee(n).has.call(n,e)||(n.add(e),B(n,"add",e,e)),this},set(e,n){t||em(n)||eg(n)||(n=ev(n));let r=ev(this),{has:i,get:s}=ee(r),o=i.call(r,e);o||(e=ev(e),o=i.call(r,e));let l=s.call(r,e);return r.set(e,n),o?(0,a.hasChanged)(n,l)&&B(r,"set",e,n,l):B(r,"add",e,n),this},delete(e){let t=ev(this),{has:n,get:r}=ee(t),i=n.call(t,e);i||(e=ev(e),i=n.call(t,e));let s=r?r.call(t,e):void 0,o=t.delete(e);return i&&B(t,"delete",e,void 0,s),o},clear(){let e=ev(this),t=0!==e.size,n=e.clear();return t&&B(e,"clear",void 0,void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i=this.__v_raw,s=ev(i),o=(0,a.isMap)(s),l="entries"===r||r===Symbol.iterator&&o,c=i[r](...n),u=t?Q:e?ek:eb;return e||V(s,"iterate","keys"===r&&o?N:I),{next(){let{value:e,done:t}=c.next();return t?{value:e,done:t}:{value:l?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}),n}(e,t);return(t,r,i)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get((0,a.hasOwn)(n,r)&&r in t?n:t,r,i)}let er={get:en(!1,!1)},ei={get:en(!1,!0)},es={get:en(!0,!1)},eo=new WeakMap,el=new WeakMap,ea=new WeakMap,ec=new WeakMap;function eu(e){return eg(e)?e:eh(e,!1,K,er,eo)}function ed(e){return eh(e,!1,X,ei,el)}function ep(e){return eh(e,!0,Z,es,ea)}function eh(e,t,n,r,i){if(!(0,a.isObject)(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let s=e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((0,a.toRawType)(e));if(0===s)return e;let o=i.get(e);if(o)return o;let l=new Proxy(e,2===s?r:n);return i.set(e,l),l}function ef(e){return eg(e)?ef(e.__v_raw):!!(e&&e.__v_isReactive)}function eg(e){return!!(e&&e.__v_isReadonly)}function em(e){return!!(e&&e.__v_isShallow)}function ey(e){return!!e&&!!e.__v_raw}function ev(e){let t=e&&e.__v_raw;return t?ev(t):e}function ex(e){return!(0,a.hasOwn)(e,"__v_skip")&&Object.isExtensible(e)&&(0,a.def)(e,"__v_skip",!0),e}let eb=e=>(0,a.isObject)(e)?eu(e):e,ek=e=>(0,a.isObject)(e)?ep(e):e;function eS(e){return!!e&&!0===e.__v_isRef}function e_(e){return eD(e,!1)}function ew(e){return eD(e,!0)}function eD(e,t){return eS(e)?e:new eE(e,t)}class eE{constructor(e,t){this.dep=new A,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:ev(e),this._value=t?e:eb(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||em(e)||eg(e);e=n?e:ev(e),(0,a.hasChanged)(e,t)&&(this._rawValue=e,this._value=n?e:eb(e),this.dep.trigger())}}function eC(e){return eS(e)?e.value:e}let eT={get:(e,t,n)=>"__v_raw"===t?e:eC(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return eS(i)&&!eS(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function eA(e){return ef(e)?e:new Proxy(e,eT)}class eO{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new A,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function eI(e){return new eO(e)}class eN{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new A(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=C-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&r!==this)return f(this,!0),!0}get value(){let e=this.dep.track();return b(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function eM(e,t,n=!1){let r,i;return(0,a.isFunction)(e)?r=e:(r=e.get,i=e.set),new eN(r,i,n)}let eV={},eB=new WeakMap;function eL(e,t,r=a.EMPTY_OBJ){let i,s,o,c,{immediate:u,deep:d,once:h,scheduler:f,augmentJob:g,call:m}=r,y=e=>d?e:em(e)||!1===d||0===d?eR(e,1):eR(e),x=!1,b=!1;if(eS(e)?(s=()=>e.value,x=em(e)):ef(e)?(s=()=>y(e),x=!0):(0,a.isArray)(e)?(b=!0,x=e.some(e=>ef(e)||em(e)),s=()=>e.map(e=>eS(e)?e.value:ef(e)?y(e):(0,a.isFunction)(e)?m?m(e,2):e():void 0)):s=(0,a.isFunction)(e)?t?m?()=>m(e,2):e:()=>{if(o){w();try{o()}finally{D()}}let t=l;l=i;try{return m?m(e,3,[c]):e(c)}finally{l=t}}:a.NOOP,t&&d){let e=s,t=!0===d?1/0:d;s=()=>eR(e(),t)}let k=n,S=()=>{i.stop(),k&&k.active&&(0,a.remove)(k.effects,i)};if(h&&t){let e=t;t=(...t)=>{e(...t),S()}}let _=b?Array(e.length).fill(eV):eV,E=e=>{if(1&i.flags&&(i.dirty||e))if(t){let e=i.run();if(d||x||(b?e.some((e,t)=>(0,a.hasChanged)(e,_[t])):(0,a.hasChanged)(e,_))){o&&o();let n=l;l=i;try{let n=[e,_===eV?void 0:b&&_[0]===eV?[]:_,c];_=e,m?m(t,3,n):t(...n)}finally{l=n}}}else i.run()};return g&&g(E),(i=new p(s)).scheduler=f?()=>f(E,!1):E,c=e=>(function(e,t=!1,n=l){if(n){let t=eB.get(n);t||eB.set(n,t=[]),t.push(e)}})(e,!1,i),o=i.onStop=()=>{let e=eB.get(i);if(e){if(m)m(e,4);else for(let t of e)t();eB.delete(i)}},t?u?E(!0):_=i.run():f?f(E.bind(null,!0),!0):i.run(),S.pause=i.pause.bind(i),S.resume=i.resume.bind(i),S.stop=S,S}function eR(e,t=1/0,n){if(t<=0||!(0,a.isObject)(e)||e.__v_skip||(n=n||new Set).has(e))return e;if(n.add(e),t--,eS(e))eR(e.value,t,n);else if((0,a.isArray)(e))for(let r=0;r{eR(e,t,n)});else if((0,a.isPlainObject)(e)){for(let r in e)eR(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&eR(e[r],t,n)}return e}}),u("fVHkO",function(e,t){let n;function r(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}s(e.exports,"makeMap",function(){return r}),s(e.exports,"EMPTY_OBJ",function(){return i}),s(e.exports,"EMPTY_ARR",function(){return l}),s(e.exports,"NOOP",function(){return a}),s(e.exports,"NO",function(){return c}),s(e.exports,"isOn",function(){return u}),s(e.exports,"isModelListener",function(){return d}),s(e.exports,"extend",function(){return p}),s(e.exports,"remove",function(){return h}),s(e.exports,"hasOwn",function(){return g}),s(e.exports,"isArray",function(){return m}),s(e.exports,"isMap",function(){return y}),s(e.exports,"isSet",function(){return x}),s(e.exports,"isRegExp",function(){return k}),s(e.exports,"isFunction",function(){return S}),s(e.exports,"isString",function(){return _}),s(e.exports,"isSymbol",function(){return w}),s(e.exports,"isObject",function(){return D}),s(e.exports,"isPromise",function(){return E}),s(e.exports,"toRawType",function(){return A}),s(e.exports,"isPlainObject",function(){return O}),s(e.exports,"isIntegerKey",function(){return I}),s(e.exports,"isReservedProp",function(){return N}),s(e.exports,"isBuiltInDirective",function(){return M}),s(e.exports,"camelize",function(){return L}),s(e.exports,"hyphenate",function(){return P}),s(e.exports,"capitalize",function(){return $}),s(e.exports,"toHandlerKey",function(){return F}),s(e.exports,"hasChanged",function(){return z}),s(e.exports,"invokeArrayFns",function(){return U}),s(e.exports,"def",function(){return j}),s(e.exports,"looseToNumber",function(){return H}),s(e.exports,"toNumber",function(){return q}),s(e.exports,"getGlobalThis",function(){return G}),s(e.exports,"genCacheKey",function(){return J}),s(e.exports,"isGloballyAllowed",function(){return Y}),s(e.exports,"generateCodeFrame",function(){return W}),s(e.exports,"normalizeStyle",function(){return function e(t){if(m(t)){let n={};for(let r=0;r{},c=()=>!1,u=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),d=e=>e.startsWith("onUpdate:"),p=Object.assign,h=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},f=Object.prototype.hasOwnProperty,g=(e,t)=>f.call(e,t),m=Array.isArray,y=e=>"[object Map]"===T(e),x=e=>"[object Set]"===T(e),b=e=>"[object Date]"===T(e),k=e=>"[object RegExp]"===T(e),S=e=>"function"==typeof e,_=e=>"string"==typeof e,w=e=>"symbol"==typeof e,D=e=>null!==e&&"object"==typeof e,E=e=>(D(e)||S(e))&&S(e.then)&&S(e.catch),C=Object.prototype.toString,T=e=>C.call(e),A=e=>T(e).slice(8,-1),O=e=>"[object Object]"===T(e),I=e=>_(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,N=r(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),M=r("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},B=/-(\w)/g,L=V(e=>e.replace(B,(e,t)=>t?t.toUpperCase():"")),R=/\B([A-Z])/g,P=V(e=>e.replace(R,"-$1").toLowerCase()),$=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),F=V(e=>e?`on${$(e)}`:""),z=(e,t)=>!Object.is(e,t),U=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},H=e=>{let t=parseFloat(e);return isNaN(t)?e:t},q=e=>{let t=_(e)?Number(e):NaN;return isNaN(t)?e:t},G=()=>n||(n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==o?o:{});function J(e,t){return e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t)}let Y=r("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function W(e,t=0,n=e.length){if((t=Math.max(0,Math.min(t,e.length)))>(n=Math.max(0,Math.min(n,e.length))))return"";let r=e.split(/(\r?\n)/),i=r.filter((e,t)=>t%2==1);r=r.filter((e,t)=>t%2==0);let s=0,o=[];for(let e=0;e=t){for(let l=e-2;l<=e+2||n>s;l++){if(l<0||l>=r.length)continue;let a=l+1;o.push(`${a}${" ".repeat(Math.max(3-String(a).length,0))}| ${r[l]}`);let c=r[l].length,u=i[l]&&i[l].length||0;if(l===e){let e=t-(s-(c+u)),r=Math.max(1,n>s?c-e:n-t);o.push(" | "+" ".repeat(e)+"^".repeat(r))}else if(l>e){if(n>s){let e=Math.max(Math.min(n-s,c),1);o.push(" | "+"^".repeat(e))}s+=c+u}}break}return o.join("\n")}let K=/;(?![^(]*\))/g,Z=/:([^]+)/,X=/\/\*[^]*?\*\//g;function Q(e){let t={};return e.replace(X,"").split(K).forEach(e=>{if(e){let n=e.split(Z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ee(e){if(!e)return"";if(_(e))return e;let t="";for(let n in e){let r=e[n];if(_(r)||"number"==typeof r){let e=n.startsWith("--")?n:P(n);t+=`${e}:${r};`}}return t}let et=r("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"),en=r("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"),er=r("annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"),ei=r("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),es="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",eo=r(es),el=r(es+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");function ea(e){return!!e||""===e}let ec=r("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),eu=r("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");function ed(e){if(null==e)return!1;let t=typeof e;return"string"===t||"number"===t||"boolean"===t}let ep=/[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;function eh(e,t){return e.replace(ep,e=>t?'"'===e?'\\\\\\"':`\\\\${e}`:`\\${e}`)}function ef(e,t){if(e===t)return!0;let n=b(e),r=b(t);if(n||r)return!!n&&!!r&&e.getTime()===t.getTime();if(n=w(e),r=w(t),n||r)return e===t;if(n=m(e),r=m(t),n||r)return!!n&&!!r&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&ref(e,t))}let em=e=>!!(e&&!0===e.__v_isRef),ey=e=>_(e)?e:null==e?"":m(e)||D(e)&&(e.toString===C||!S(e.toString))?em(e)?ey(e.value):JSON.stringify(e,ev,2):String(e),ev=(e,t)=>{if(em(t))return ev(e,t.value);if(y(t))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[ex(t,r)+" =>"]=n,e),{})};if(x(t))return{[`Set(${t.size})`]:[...t.values()].map(e=>ex(e))};if(w(t))return ex(t);if(D(t)&&!m(t)&&!O(t))return String(t);return t},ex=(e,t="")=>{var n;return w(e)?`Symbol(${null!=(n=e.description)?n:t})`:e}}),u("j0b99",function(e,t){let n;s(e.exports,"compile",function(){return T});var r=c("3J0b1"),i=c("fVHkO");let o=Symbol(""),l=Symbol(""),a=Symbol(""),u=Symbol(""),d=Symbol(""),p=Symbol(""),h=Symbol(""),f=Symbol(""),g=Symbol(""),m=Symbol("");(0,r.registerRuntimeHelpers)({[o]:"vModelRadio",[l]:"vModelCheckbox",[a]:"vModelText",[u]:"vModelSelect",[d]:"vModelDynamic",[p]:"withModifiers",[h]:"withKeys",[f]:"vShow",[g]:"Transition",[m]:"TransitionGroup"});let y={parseMode:"html",isVoidTag:i.isVoidTag,isNativeTag:e=>(0,i.isHTMLTag)(e)||(0,i.isSVGTag)(e)||(0,i.isMathMLTag)(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(n||(n=document.createElement("div")),t)?(n.innerHTML=`
`,n.children[0].getAttribute("foo")):(n.innerHTML=e,n.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?g:"TransitionGroup"===e||"transition-group"===e?m:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}};function x(e,t){return(0,r.createCompilerError)(e,t,void 0)}let b=(0,i.makeMap)("passive,once,capture"),k=(0,i.makeMap)("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),S=(0,i.makeMap)("left,right"),_=(0,i.makeMap)("onkeyup,onkeydown,onkeypress"),w=(e,t)=>(0,r.isStaticExp)(e)&&"onclick"===e.content.toLowerCase()?(0,r.createSimpleExpression)(t,!0):4!==e.type?(0,r.createCompoundExpression)(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,D=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},E=[e=>{1===e.type&&e.props.forEach((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:(0,r.createSimpleExpression)("style",!0,t.loc),exp:((e,t)=>{let n=(0,i.parseStringStyle)(e);return(0,r.createSimpleExpression)(JSON.stringify(n),!1,t,3)})(t.value.content,t.loc),modifiers:[],loc:t.loc})})}],C={cloak:r.noopDirectiveTransform,html:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(x(53,s)),t.children.length&&(n.onError(x(54,s)),t.children.length=0),{props:[(0,r.createObjectProperty)((0,r.createSimpleExpression)("innerHTML",!0,s),i||(0,r.createSimpleExpression)("",!0))]}},text:(e,t,n)=>{let{exp:i,loc:s}=e;return i||n.onError(x(55,s)),t.children.length&&(n.onError(x(56,s)),t.children.length=0),{props:[(0,r.createObjectProperty)((0,r.createSimpleExpression)("textContent",!0),i?(0,r.getConstantType)(i,n)>0?i:(0,r.createCallExpression)(n.helperString(r.TO_DISPLAY_STRING),[i],s):(0,r.createSimpleExpression)("",!0))]}},model:(e,t,n)=>{let i=(0,r.transformModel)(e,t,n);if(!i.props.length||1===t.tagType)return i;e.arg&&n.onError(x(58,e.arg.loc));let{tag:s}=t,c=n.isCustomElement(s);if("input"===s||"textarea"===s||"select"===s||c){let p=a,h=!1;if("input"===s||c){let i=(0,r.findProp)(t,"type");if(i){if(7===i.type)p=d;else if(i.value)switch(i.value.content){case"radio":p=o;break;case"checkbox":p=l;break;case"file":h=!0,n.onError(x(59,e.loc))}}else(0,r.hasDynamicKeyVBind)(t)&&(p=d)}else"select"===s&&(p=u);h||(i.needRuntime=n.helper(p))}else n.onError(x(57,e.loc));return i.props=i.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),i},on:(e,t,n)=>(0,r.transformOn)(e,t,n,t=>{let{modifiers:s}=e;if(!s.length)return t;let{key:o,value:l}=t.props[0],{keyModifiers:a,nonKeyModifiers:c,eventOptionModifiers:u}=((e,t,n,i)=>{let s=[],o=[],l=[];for(let a=0;a{let{exp:r,loc:i}=e;return r||n.onError(x(61,i)),{props:[],needRuntime:n.helper(f)}}};function T(e,t={}){return(0,r.baseCompile)(e,(0,i.extend)({},y,t,{nodeTransforms:[D,...E,...t.nodeTransforms||[]],directiveTransforms:(0,i.extend)({},C,t.directiveTransforms||{}),transformHoist:null}))}}),u("3J0b1",function(e,t){s(e.exports,"TO_DISPLAY_STRING",function(){return C}),s(e.exports,"registerRuntimeHelpers",function(){return G}),s(e.exports,"createObjectProperty",function(){return Z}),s(e.exports,"createSimpleExpression",function(){return X}),s(e.exports,"createCompoundExpression",function(){return Q}),s(e.exports,"createCallExpression",function(){return ee}),s(e.exports,"checkCompatEnabled",function(){return eh}),s(e.exports,"createCompilerError",function(){return em}),s(e.exports,"isStaticExp",function(){return ey}),s(e.exports,"findDir",function(){return eC}),s(e.exports,"findProp",function(){return eT}),s(e.exports,"isStaticArgOf",function(){return eA}),s(e.exports,"hasDynamicKeyVBind",function(){return eO}),s(e.exports,"baseParse",function(){return tl}),s(e.exports,"getConstantType",function(){return tc}),s(e.exports,"transformOn",function(){return tj}),s(e.exports,"transformModel",function(){return tJ}),s(e.exports,"baseCompile",function(){return t1}),s(e.exports,"noopDirectiveTransform",function(){return t3});var n=c("fVHkO");let r=Symbol(""),i=Symbol(""),o=Symbol(""),l=Symbol(""),a=Symbol(""),u=Symbol(""),d=Symbol(""),p=Symbol(""),h=Symbol(""),f=Symbol(""),g=Symbol(""),m=Symbol(""),y=Symbol(""),x=Symbol(""),b=Symbol(""),k=Symbol(""),S=Symbol(""),_=Symbol(""),w=Symbol(""),D=Symbol(""),E=Symbol(""),C=Symbol(""),T=Symbol(""),A=Symbol(""),O=Symbol(""),I=Symbol(""),N=Symbol(""),M=Symbol(""),V=Symbol(""),B=Symbol(""),L=Symbol(""),R=Symbol(""),P=Symbol(""),$=Symbol(""),F=Symbol(""),z=Symbol(""),U=Symbol(""),j=Symbol(""),H=Symbol(""),q={[r]:"Fragment",[i]:"Teleport",[o]:"Suspense",[l]:"KeepAlive",[a]:"BaseTransition",[u]:"openBlock",[d]:"createBlock",[p]:"createElementBlock",[h]:"createVNode",[f]:"createElementVNode",[g]:"createCommentVNode",[m]:"createTextVNode",[y]:"createStaticVNode",[x]:"resolveComponent",[b]:"resolveDynamicComponent",[k]:"resolveDirective",[S]:"resolveFilter",[_]:"withDirectives",[w]:"renderList",[D]:"renderSlot",[E]:"createSlots",[C]:"toDisplayString",[T]:"mergeProps",[A]:"normalizeClass",[O]:"normalizeStyle",[I]:"normalizeProps",[N]:"guardReactiveProps",[M]:"toHandlers",[V]:"camelize",[B]:"capitalize",[L]:"toHandlerKey",[R]:"setBlockTracking",[P]:"pushScopeId",[$]:"popScopeId",[F]:"withCtx",[z]:"unref",[U]:"isRef",[j]:"withMemo",[H]:"isMemoSame"};function G(e){Object.getOwnPropertySymbols(e).forEach(t=>{q[t]=e[t]})}let J={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function Y(e,t,n,r,i,s,o,l=!1,a=!1,c=!1,g=J){var m,y,x,b;return e&&(l?(e.helper(u),e.helper((m=e.inSSR,y=c,m||y?d:p))):e.helper((x=e.inSSR,b=c,x||b?h:f)),o&&e.helper(_)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:s,directives:o,isBlock:l,disableTracking:a,isComponent:c,loc:g}}function W(e,t=J){return{type:17,loc:t,elements:e}}function K(e,t=J){return{type:15,loc:t,properties:e}}function Z(e,t){return{type:16,loc:J,key:(0,n.isString)(e)?X(e,!0):e,value:t}}function X(e,t=!1,n=J,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function Q(e,t=J){return{type:8,loc:t,children:e}}function ee(e,t=[],n=J){return{type:14,loc:n,callee:e,arguments:t}}function et(e,t,n=!1,r=!1,i=J){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function en(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:J}}function er(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,s;e.isBlock=!0,n((i=e.isComponent,r||i?h:f)),t(u),t((s=e.isComponent,r||s?d:p))}}let ei=new Uint8Array([123,123]),es=new Uint8Array([125,125]);function eo(e){return e>=97&&e<=122||e>=65&&e<=90}function el(e){return 32===e||10===e||9===e||12===e||13===e}function ea(e){return 47===e||62===e||el(e)}function ec(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function ev(e){switch(e){case"Teleport":case"teleport":return i;case"Suspense":case"suspense":return o;case"KeepAlive":case"keep-alive":return l;case"BaseTransition":case"base-transition":return a}}let ex=/^\d|[^\$\w\xA0-\uFFFF]/,eb=e=>!ex.test(e),ek=/[A-Za-z_$\xA0-\uFFFF]/,eS=/[\.\?\w$\xA0-\uFFFF]/,e_=/\s+[.[]\s*|\s*[.[]\s+/g,ew=e=>4===e.type?e.content:e.loc.source;n.NOOP;let eD=e=>{let t=ew(e).trim().replace(e_,e=>e.trim()),n=0,r=[],i=0,s=0,o=null;for(let e=0;e|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/;function eC(e,t,r=!1){for(let i=0;i7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))}function eI(e){return 5===e.type||2===e.type}function eN(e){return 7===e.type&&"slot"===e.name}function eM(e){return 1===e.type&&3===e.tagType}function eV(e){return 1===e.type&&2===e.tagType}n.NOOP;let eB=new Set([I,N]);function eL(e,t,r){let i,s,o=13===e.type?e.props:e.arguments[2],l=[];if(o&&!(0,n.isString)(o)&&14===o.type){let e=function e(t,r=[]){if(t&&!(0,n.isString)(t)&&14===t.type){let i=t.callee;if(!(0,n.isString)(i)&&eB.has(i))return e(t.arguments[0],r.concat(t))}return[t,r]}(o);o=e[0],s=(l=e[1])[l.length-1]}if(null==o||(0,n.isString)(o))i=K([t]);else if(14===o.type){let e=o.arguments[0];(0,n.isString)(e)||15!==e.type?o.callee===M?i=ee(r.helper(T),[K([t]),o]):o.arguments.unshift(K([t])):eR(t,e)||e.properties.unshift(t),i||(i=o)}else 15===o.type?(eR(t,o)||o.properties.unshift(t),i=o):(i=ee(r.helper(T),[K([t]),o]),s&&s.callee===N&&(s=l[l.length-2]));13===e.type?s?s.arguments[0]=i:e.props=i:s?s.arguments[0]=i:e.arguments[2]=i}function eR(e,t){let n=!1;if(4===e.key.type){let r=e.key.content;n=t.properties.some(e=>4===e.key.type&&e.key.content===r)}return n}function eP(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let e$=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,eF={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:n.NO,isPreTag:n.NO,isIgnoreNewlineTag:n.NO,isCustomElement:n.NO,onError:ef,onWarn:eg,comments:!1,prefixIdentifiers:!1},ez=eF,eU=null,ej="",eH=null,eq=null,eG="",eJ=-1,eY=-1,eW=0,eK=!1,eZ=null,eX=[],eQ=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=ei,this.delimiterClose=es,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=ei,this.delimiterClose=es}getPos(e){let t=1,n=e+1;for(let r=this.newlines.length-1;r>=0;r--){let i=this.newlines[r];if(e>i){t=r+2,n=e-i;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?ea(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||el(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===eu.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(eX,{onerr:to,ontext(e,t){e8(e3(e,t),e,t)},ontextentity(e,t,n){e8(e,t,n)},oninterpolation(e,t){if(eK)return e8(e3(e,t),e,t);let n=e+eQ.delimiterOpen.length,r=t-eQ.delimiterClose.length;for(;el(ej.charCodeAt(n));)n++;for(;el(ej.charCodeAt(r-1));)r--;let i=e3(n,r);i.includes("&")&&(i=ez.decodeEntities(i,!1)),tn({type:5,content:ts(i,!1,tr(n,r)),loc:tr(e,t)})},onopentagname(e,t){let n=e3(e,t);eH={type:1,tag:n,ns:ez.getNamespace(n,eX[0],ez.ns),tagType:0,props:[],children:[],loc:tr(e-1,t),codegenNode:void 0}},onopentagend(e){e2(e)},onclosetag(e,t){let n=e3(e,t);if(!ez.isVoidTag(n)){let r=!1;for(let e=0;e0&&to(24,eX[0].loc.start.offset);for(let n=0;n<=e;n++)e4(eX.shift(),t,n(7===e.type?e.rawName:e.name)===n)&&to(2,t)},onattribend(e,t){if(eH&&eq){if(ti(eq.loc,t),0!==e)if(eG.includes("&")&&(eG=ez.decodeEntities(eG,!0)),6===eq.type)"class"===eq.name&&(eG=tt(eG).trim()),1!==e||eG||to(13,t),eq.value={type:2,content:eG,loc:1===e?tr(eJ,eY):tr(eJ-1,eY+1)},eQ.inSFCRoot&&"template"===eH.tag&&"lang"===eq.name&&eG&&"html"!==eG&&eQ.enterRCDATA(ec("{let i=t.start.offset+n,s=i+e.length;return ts(e,!1,tr(i,s),0,+!!r)},l={source:o(s.trim(),n.indexOf(s,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(e1,"").trim(),c=i.indexOf(a),u=a.match(e0);if(u){let e;a=a.replace(e0,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),l.key=o(t,e,!0)),u[2]){let r=u[2].trim();r&&(l.index=o(r,n.indexOf(r,l.key?e+t.length:c+a.length),!0))}}return a&&(l.value=o(a,c,!0)),l}(eq.exp));let e=-1;"bind"===eq.name&&(e=eq.modifiers.findIndex(e=>"sync"===e.content))>-1&&(n=ez,eq.loc,eq.arg.loc.source,ep("COMPILER_V_BIND_SYNC",n))&&(eq.name="model",eq.modifiers.splice(e,1))}(7!==eq.type||"pre"!==eq.name)&&eH.props.push(eq)}eG="",eJ=eY=-1},oncomment(e,t){ez.comments&&tn({type:3,content:e3(e,t),loc:tr(e-4,t+3)})},onend(){let e=ej.length;for(let t=0;t64&&n<91||ev(e)||ez.isBuiltInComponent&&ez.isBuiltInComponent(e)||ez.isNativeTag&&!ez.isNativeTag(e))return!0;for(let e=0;e6===e.type&&"inline-template"===e.name);n&&(l=ez,n.loc,ep("COMPILER_INLINE_TEMPLATE",l))&&e.children.length&&(n.value={type:2,content:e3(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function e6(e,t){let n=e;for(;ej.charCodeAt(n)!==t&&n>=0;)n--;return n}let e9=new Set(["if","else","else-if","for","slot"]);function e5({tag:e,props:t}){if("template"===e){for(let e=0;e3!==e.type);return 1!==t.length||1!==t[0].type||eV(t[0])?null:t[0]}function tc(e,t){let{constantCache:r}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let i=r.get(e);if(void 0!==i)return i;let s=e.codegenNode;if(13!==s.type||s.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==s.patchFlag)return r.set(e,0),0;{let n=3,i=td(e,t);if(0===i)return r.set(e,0),0;i1)for(let i=0;i{o--};for(;ot===e:t=>e.test(t);return(e,n)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(eN))return;let s=[];for(let o=0;o`${q[e]}: _${q[e]}`;function ty(e,t,{helper:n,push:r,newline:i,isTS:s}){let o=n("filter"===t?S:"component"===t?x:k);for(let n=0;n3;t.push("["),n&&t.indent(),tx(e,t,n),n&&t.deindent(),t.push("]")}function tx(e,t,r=!1,i=!0){let{push:s,newline:o}=t;for(let l=0;le||"null")}([a,c,g,i,y]),t),s(")"),b&&s(")"),x&&(s(", "),tb(x,t),s(")"))}(e,t);break;case 14:var w=e,D=t;let{push:E,helper:T,pure:A}=D,O=(0,n.isString)(w.callee)?w.callee:T(w.callee);A&&E(tg),E(O+"(",-2,w),tx(w.arguments,D),E(")");break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:s}=t,{properties:o}=e;if(!o.length)return n("{}",-2,e);let l=o.length>1;n(l?"{":"{ "),l&&r();for(let e=0;e "),(z||$)&&(M("{"),V()),P?(z&&M("return "),(0,n.isArray)(P)?tv(P,N):tb(P,N)):$&&tb($,N),(z||$)&&(B(),M("}")),U&&(I.isNonScopedSlot&&M(", undefined, true"),M(")"));break;case 19:var j=e,H=t;let{test:G,consequent:J,alternate:Y,newline:W}=j,{push:K,indent:Z,deindent:X,newline:Q}=H;if(4===G.type){let e=!eb(G.content);e&&K("("),tk(G,H),e&&K(")")}else K("("),tb(G,H),K(")");W&&Z(),H.indentLevel++,W||K(" "),K("? "),tb(J,H),H.indentLevel--,W&&Q(),W||K(" "),K(": ");let ee=19===Y.type;!ee&&H.indentLevel++,tb(Y,H),!ee&&H.indentLevel--,W&&X(!0);break;case 20:var et=e,en=t;let{push:er,helper:ei,indent:es,deindent:eo,newline:el}=en,{needPauseTracking:ea,needArraySpread:ec}=et;ec&&er("[...("),er(`_cache[${et.index}] || (`),ea&&(es(),er(`${ei(R)}(-1`),et.inVOnce&&er(", true"),er("),"),el(),er("(")),er(`_cache[${et.index}] = `),tb(et.value,en),ea&&(er(`).cacheIndex = ${et.index},`),el(),er(`${ei(R)}(1),`),el(),er(`_cache[${et.index}]`),eo()),er(")"),ec&&er(")]");break;case 21:tx(e.body,t,!0,!1)}}function tk(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function tS(e,t){for(let r=0;r(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(em(28,t.loc)),t.exp=X("true",!1,r)}if("if"===t.name){var i;let s=tw(e,t),o={type:9,loc:tr((i=e.loc).start.offset,i.end.offset),branches:[s]};if(n.replaceNode(o),r)return r(o,s,!0)}else{let i=n.parent.children,s=i.indexOf(e);for(;s-- >=-1;){let o=i[s];if(o&&3===o.type||o&&2===o.type&&!o.content.trim().length){n.removeNode(o);continue}if(o&&9===o.type){"else-if"===t.name&&void 0===o.branches[o.branches.length-1].condition&&n.onError(em(30,e.loc)),n.removeNode();let i=tw(e,t);o.branches.push(i);let s=r&&r(o,i,!1);th(i,n),s&&s(),n.currentNode=null}else n.onError(em(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,s=i.indexOf(e),o=0;for(;s-- >=0;){let e=i[s];e&&9===e.type&&(o+=e.branches.length)}return()=>{r?e.codegenNode=tD(t,o,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=tD(t,o+e.branches.length-1,n)}}));function tw(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!eC(e,"for")?e.children:[e],userKey:eT(e,"key"),isTemplateIf:n}}function tD(e,t,n){return e.condition?en(e.condition,tE(e,t,n),ee(n.helper(g),['""',"true"])):tE(e,t,n)}function tE(e,t,n){let{helper:i}=n,s=Z("key",X(`${t}`,!1,J,2)),{children:o}=e,l=o[0];if(1!==o.length||1!==l.type)if(1!==o.length||11!==l.type)return Y(n,i(r),K([s]),o,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=l.codegenNode;return eL(e,s,n),e}{let e=l.codegenNode,t=14===e.type&&e.callee===j?e.arguments[1].returns:e;return 13===t.type&&er(t,n),eL(t,s,n),e}}let tC=(e,t,r)=>{let{modifiers:i,loc:s}=e,o=e.arg,{exp:l}=e;if(l&&4===l.type&&!l.content.trim()&&(l=void 0),!l){if(4!==o.type||!o.isStatic)return r.onError(em(52,o.loc)),{props:[Z(o,X("",!0,s))]};tT(e),l=e.exp}return 4!==o.type?(o.children.unshift("("),o.children.push(') || ""')):o.isStatic||(o.content=`${o.content} || ""`),i.some(e=>"camel"===e.content)&&(4===o.type?o.isStatic?o.content=(0,n.camelize)(o.content):o.content=`${r.helperString(V)}(${o.content})`:(o.children.unshift(`${r.helperString(V)}(`),o.children.push(")"))),!r.inSSR&&(i.some(e=>"prop"===e.content)&&tA(o,"."),i.some(e=>"attr"===e.content)&&tA(o,"^")),{props:[Z(o,l)]}},tT=(e,t)=>{let r=e.arg;e.exp=X((0,n.camelize)(r.content),!1,r.loc)},tA=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},tO=tf("for",(e,t,n)=>{let{helper:i,removeHelper:s}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(em(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(em(32,t.loc));tI(i,n);let{addIdentifiers:s,removeIdentifiers:o,scopes:l}=n,{source:a,value:c,key:u,index:d}=i,p={type:11,loc:t.loc,source:a,valueAlias:c,keyAlias:u,objectIndexAlias:d,parseResult:i,children:eM(e)?e.children:[e]};n.replaceNode(p),l.vFor++;let h=r&&r(p);return()=>{l.vFor--,h&&h()}}(e,t,n,t=>{let o=ee(i(w),[t.source]),l=eM(e),a=eC(e,"memo"),c=eT(e,"key",!1,!0);c&&7===c.type&&!c.exp&&tT(c);let g=c&&(6===c.type?c.value?X(c.value.content,!0):void 0:c.exp),m=c&&g?Z("key",g):null,y=4===t.source.type&&t.source.constType>0,x=y?64:c?128:256;return t.codegenNode=Y(n,i(r),void 0,o,x,void 0,void 0,!0,!y,!1,e.loc),()=>{let c,{children:x}=t,b=1!==x.length||1!==x[0].type,k=eV(e)?e:l&&1===e.children.length&&eV(e.children[0])?e.children[0]:null;if(k)c=k.codegenNode,l&&m&&eL(c,m,n);else if(b)c=Y(n,i(r),m?K([m]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var S,_,w,D,E,C,T,A;c=x[0].codegenNode,l&&m&&eL(c,m,n),!y!==c.isBlock&&(c.isBlock?(s(u),s((S=n.inSSR,_=c.isComponent,S||_?d:p))):s((w=n.inSSR,D=c.isComponent,w||D?h:f))),(c.isBlock=!y,c.isBlock)?(i(u),i((E=n.inSSR,C=c.isComponent,E||C?d:p))):i((T=n.inSSR,A=c.isComponent,T||A?h:f))}if(a){let e=et(tN(t.parseResult,[X("_cached")]));e.body={type:21,body:[Q(["const _memo = (",a.exp,")"]),Q(["if (_cached",...g?[" && _cached.key === ",g]:[],` && ${n.helperString(H)}(_cached, _memo)) return _cached`]),Q(["const _item = ",c]),X("_item.memo = _memo"),X("return _item")],loc:J},o.arguments.push(e,X("_cache"),X(String(n.cached.length))),n.cached.push(null)}else o.arguments.push(et(tN(t.parseResult),c,!0))}})});function tI(e,t){e.finalized||(e.finalized=!0)}function tN({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let s=i.length;for(;s--&&!i[s];);return i.slice(0,s+1).map((e,t)=>e||X("_".repeat(t+1),!1))}let tM=X("undefined",!1),tV=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=eC(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function tB(e,t,n){let r=[Z("name",e),Z("fn",t)];return null!=n&&r.push(Z("key",X(String(n),!0))),K(r)}function tL(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():tL(e.content))}let tR=new WeakMap,tP=(e,t)=>function(){let r,s,a,c,u;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:d,props:p}=e,h=1===e.tagType,f=h?function(e,t,n=!1){let{tag:r}=e,i=tz(r),s=eT(e,"is",!1,!0);if(s)if(i||ep("COMPILER_IS_ON_ELEMENT",t)){let e;if(6===s.type?e=s.value&&X(s.value.content,!0):(e=s.exp)||(e=X("is",!1,s.arg.loc)),e)return ee(t.helper(b),[e])}else 6===s.type&&s.value.content.startsWith("vue:")&&(r=s.value.content.slice(4));let o=ev(r)||t.isBuiltInComponent(r);return o?(n||t.helper(o),o):(t.helper(x),t.components.add(r),eP(r,"component"))}(e,t):`"${d}"`,g=(0,n.isObject)(f)&&f.callee===b,m=0,y=g||f===i||f===o||!h&&("svg"===d||"foreignObject"===d||"math"===d);if(p.length>0){let n=t$(e,t,void 0,h,g);r=n.props,m=n.patchFlag,c=n.dynamicPropNames;let i=n.directives;u=i&&i.length?W(i.map(e=>(function(e,t){let n=[],r=tR.get(e);r?n.push(t.helperString(r)):(t.helper(k),t.directives.add(e.name),n.push(eP(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=X("true",!1,i);n.push(K(e.modifiers.map(e=>Z(e,t)),i))}return W(n,e.loc)})(e,t))):void 0,n.shouldUseBlock&&(y=!0)}if(e.children.length>0)if(f===l&&(y=!0,m|=1024),h&&f!==i&&f!==l){let{slots:n,hasDynamicSlots:r}=function(e,t,n=(e,t,n,r)=>et(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(F);let{children:r,loc:i}=e,s=[],o=[],l=t.scopes.vSlot>0||t.scopes.vFor>0,a=eC(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!ey(e)&&(l=!0),s.push(Z(e||X("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,h=0;for(let e=0;e{let s=n(e,void 0,r,i);return t.compatConfig&&(s.isNonScopedSlot=!0),Z("default",s)};c?d.length&&d.some(e=>tL(e))&&(u?t.onError(em(39,d[0].loc)):s.push(e(void 0,d))):s.push(e(void 0,r))}let f=l?2:!function e(t){for(let n=0;n0,g=!1,m=0,y=!1,x=!1,b=!1,k=!1,S=!1,_=!1,w=[],D=e=>{d.length&&(p.push(K(tF(d),c)),d=[]),e&&p.push(e)},E=()=>{t.scopes.vFor>0&&d.push(Z(X("ref_for",!0),X("true")))},C=({key:e,value:r})=>{if(ey(e)){let o=e.content,l=(0,n.isOn)(o);l&&(!i||s)&&"onclick"!==o.toLowerCase()&&"onUpdate:modelValue"!==o&&!(0,n.isReservedProp)(o)&&(k=!0),l&&(0,n.isReservedProp)(o)&&(_=!0),l&&14===r.type&&(r=r.arguments[0]),20===r.type||(4===r.type||8===r.type)&&tc(r,t)>0||("ref"===o?y=!0:"class"===o?x=!0:"style"===o?b=!0:"key"===o||w.includes(o)||w.push(o),i&&("class"===o||"style"===o)&&!w.includes(o)&&w.push(o))}else S=!0};for(let s=0;s"prop"===e.content)&&(m|=32);let _=t.directiveTransforms[r];if(_){let{props:r,needRuntime:i}=_(l,e,t);o||r.forEach(C),k&&s&&!ey(s)?D(K(r,c)):d.push(...r),i&&(h.push(l),(0,n.isSymbol)(i)&&tR.set(l,i))}else!(0,n.isBuiltInDirective)(r)&&(h.push(l),f&&(g=!0))}}if(p.length?(D(),l=p.length>1?ee(t.helper(T),p,c):p[0]):d.length&&(l=K(tF(d),c)),S?m|=16:(x&&!i&&(m|=2),b&&!i&&(m|=4),w.length&&(m|=8),k&&(m|=32)),!g&&(0===m||32===m)&&(y||_||h.length>0)&&(m|=512),!t.inSSR&&l)switch(l.type){case 15:let V=-1,B=-1,L=!1;for(let e=0;e{if(eV(e)){let{children:r,loc:i}=e,{slotName:s,slotProps:o}=function(e,t){let r,i='"default"',s=[];for(let t=0;t0){let{props:n,directives:i}=t$(e,t,s,!1,!1);r=n,i.length&&t.onError(em(36,i[0].loc))}return{slotName:i,slotProps:r}}(e,t),l=[t.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"],a=2;o&&(l[2]=o,a=3),r.length&&(l[3]=et([],r,!1,!1,i),a=4),t.scopeId&&!t.slotted&&(a=5),l.splice(a),e.codegenNode=ee(t.helper(D),l,i)}},tj=(e,t,r,i)=>{let s,{loc:o,modifiers:l,arg:a}=e;if(e.exp||l.length||r.onError(em(35,o)),4===a.type)if(a.isStatic){let e=a.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),s=X(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?(0,n.toHandlerKey)((0,n.camelize)(e)):`on:${e}`,!0,a.loc)}else s=Q([`${r.helperString(L)}(`,a,")"]);else(s=a).children.unshift(`${r.helperString(L)}(`),s.children.push(")");let c=e.exp;c&&!c.content.trim()&&(c=void 0);let u=r.cacheHandlers&&!c&&!r.inVOnce;if(c){let e,t=eD(c),n=!(t||(e=c,eE.test(ew(e)))),r=c.content.includes(";");(n||u&&t)&&(c=Q([`${n?"$event":"(...args)"} => ${r?"{":"("}`,c,r?"}":")"]))}let d={props:[Z(s,c||X("() => {}",!1,o))]};return i&&(d=i(d)),u&&(d.props[0].value=r.cache(d.props[0].value)),d.props.forEach(e=>e.key.isHandlerKey=!0),d},tH=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name])||"template"===e.tag)))for(let e=0;e{if(1===e.type&&eC(e,"once",!0)&&!tq.has(e)&&!t.inVOnce&&!t.inSSR)return tq.add(e),t.inVOnce=!0,t.helper(R),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},tJ=(e,t,r)=>{let i,{exp:s,arg:o}=e;if(!s)return r.onError(em(41,e.loc)),tY();let l=s.loc.source.trim(),a=4===s.type?s.content:l,c=r.bindingMetadata[l];if("props"===c||"props-aliased"===c)return r.onError(em(44,s.loc)),tY();if(!a.trim()||!eD(s))return r.onError(em(42,s.loc)),tY();let u=o||X("modelValue",!0),d=o?ey(o)?`onUpdate:${(0,n.camelize)(o.content)}`:Q(['"onUpdate:" + ',o]):"onUpdate:modelValue",p=r.isTS?"($event: any)":"$event";i=Q([`${p} => ((`,s,") = $event)"]);let h=[Z(u,e.exp),Z(d,i)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(eb(e)?e:JSON.stringify(e))+": true").join(", "),n=o?ey(o)?`${o.content}Modifiers`:Q([o,' + "Modifiers"']):"modelModifiers";h.push(Z(n,X(`{ ${t} }`,!1,e.loc,2)))}return tY(h)};function tY(e=[]){return{props:e}}let tW=/[\w).+\-_$\]]/,tK=(e,t)=>{ep("COMPILER_FILTERS",t)&&(5===e.type?tZ(e.content,t):1===e.type&&e.props.forEach(e=>{7===e.type&&"for"!==e.name&&e.exp&&tZ(e.exp,t)}))};function tZ(e,t){if(4===e.type)tX(e,t);else for(let n=0;n=0&&" "===(e=n.charAt(t));t--);e&&tW.test(e)||(o=!0)}}else void 0===f?(u=h+1,f=n.slice(0,h).trim()):m();function m(){g.push(n.slice(u,h).trim()),u=h+1}if(void 0===f?f=n.slice(0,h).trim():0!==u&&m(),g.length){for(h=0;h{if(1===e.type){let n=eC(e,"memo");if(!(!n||tQ.has(e)))return tQ.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&er(r,t),e.codegenNode=ee(t.helper(j),[n.exp,et(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}};function t1(e,t={}){let i=t.onError||ef,s="module"===t.mode;!0===t.prefixIdentifiers?i(em(47)):s&&i(em(48)),t.cacheHandlers&&i(em(49)),t.scopeId&&!s&&i(em(50));let o=(0,n.extend)({},t,{prefixIdentifiers:!1}),l=(0,n.isString)(e)?tl(e,o):e,[a,c]=[[tG,t_,t0,tO,tK,tU,tP,tV,tH],{on:tj,bind:tC,model:tJ}];var u=(0,n.extend)({},o,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:(0,n.extend)({},c,t.directiveTransforms||{})});let d=function(e,{filename:t="",prefixIdentifiers:r=!1,hoistStatic:i=!1,hmr:s=!1,cacheHandlers:o=!1,nodeTransforms:l=[],directiveTransforms:a={},transformHoist:c=null,isBuiltInComponent:u=n.NOOP,isCustomElement:d=n.NOOP,expressionPlugins:p=[],scopeId:h=null,slotted:f=!0,ssr:g=!1,inSSR:m=!1,ssrCssVars:y="",bindingMetadata:x=n.EMPTY_OBJ,inline:b=!1,isTS:k=!1,onError:S=ef,onWarn:_=eg,compatConfig:w}){let D=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),E={filename:t,selfName:D&&(0,n.capitalize)((0,n.camelize)(D[1])),prefixIdentifiers:r,hoistStatic:i,hmr:s,cacheHandlers:o,nodeTransforms:l,directiveTransforms:a,transformHoist:c,isBuiltInComponent:u,isCustomElement:d,expressionPlugins:p,scopeId:h,slotted:f,ssr:g,inSSR:m,ssrCssVars:y,bindingMetadata:x,inline:b,isTS:k,onError:S,onWarn:_,compatConfig:w,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=E.helpers.get(e)||0;return E.helpers.set(e,t+1),e},removeHelper(e){let t=E.helpers.get(e);if(t){let n=t-1;n?E.helpers.set(e,n):E.helpers.delete(e)}},helperString:e=>`_${q[E.helper(e)]}`,replaceNode(e){E.parent.children[E.childIndex]=E.currentNode=e},removeNode(e){let t=E.parent.children,n=e?t.indexOf(e):E.currentNode?E.childIndex:-1;e&&e!==E.currentNode?E.childIndex>n&&(E.childIndex--,E.onNodeRemoved()):(E.currentNode=null,E.onNodeRemoved()),E.parent.children.splice(n,1)},onNodeRemoved:n.NOOP,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){(0,n.isString)(e)&&(e=X(e)),E.hoists.push(e);let t=X(`_hoisted_${E.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:J}}(E.cached.length,e,t,n);return E.cached.push(r),r}};return E.filters=new Set,E}(l,u);return th(l,d),u.hoistStatic&&function e(t,r,i,s=!1,o=!1){let{children:l}=t,a=[];for(let n=0;n0){if(e>=2){r.codegenNode.patchFlag=-1,a.push(r);continue}}else{let e=r.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&td(r,i)>=2){let t=tp(r);t&&(e.props=i.hoist(t))}e.dynamicProps&&(e.dynamicProps=i.hoist(e.dynamicProps))}}}else if(12===r.type&&(s?0:tc(r,i))>=2){a.push(r);continue}if(1===r.type){let n=1===r.tagType;n&&i.scopes.vSlot++,e(r,t,i,!1,o),n&&i.scopes.vSlot--}else if(11===r.type)e(r,t,i,1===r.children.length,!0);else if(9===r.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}u.length&&1===t.type&&1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!(0,n.isArray)(t.codegenNode.children)&&15===t.codegenNode.children.type&&t.codegenNode.children.properties.push(Z("__",X(JSON.stringify(u),!1))),a.length&&i.transformHoist&&i.transformHoist(l,i,t)}(l,void 0,d,!!ta(l)),u.ssr||function(e,t){let{helper:n}=t,{children:i}=e;if(1===i.length){let n=ta(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&er(r,t),e.codegenNode=r}else e.codegenNode=i[0]}else i.length>1&&(e.codegenNode=Y(t,n(r),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(l,d),l.helpers=new Set([...d.helpers.keys()]),l.components=[...d.components],l.directives=[...d.directives],l.imports=d.imports,l.hoists=d.hoists,l.temps=d.temps,l.cached=d.cached,l.transformed=!0,l.filters=[...d.filters],function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:s=null,optimizeImports:o=!1,runtimeGlobalName:l="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){let h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:s,optimizeImports:o,runtimeGlobalName:l,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${q[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push("\n"+" ".repeat(e),0)}return h}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:s,indent:o,deindent:l,newline:a,scopeId:c,ssr:u}=n,d=Array.from(e.helpers),p=d.length>0,x=!s&&"module"!==r;var b=e,k=n;let{ssr:S,prefixIdentifiers:_,push:w,newline:D,runtimeModuleName:E,runtimeGlobalName:C,ssrRuntimeModuleName:T}=k,A=Array.from(b.helpers);if(A.length>0&&(w(`const _Vue = ${C} -`,-1),b.hoists.length)){let e=[h,f,g,m,y].filter(e=>A.includes(e)).map(tm).join(", ");w(`const { ${e} } = _Vue -`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i{let r=0;for(;e;)if((e=s(e))&&ed(e)&&(e.data===t&&r++,e.data===n))if(0===r)return s(e);else r--;return e},b=(e,t,n)=>{let r=t.parentNode;r&&r.replaceChild(e,t);let i=n;for(;i;)i.vnode.el===t&&(i.vnode.el=i.subTree.el=e),i=i.parent},k=e=>1===e.nodeType&&"TEMPLATE"===e.tagName;return[(e,t)=>{if(!t.hasChildNodes()){__VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&h("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),n(null,e,t),D(),t._vnode=e;return}p(t.firstChild,e,null,null,null),D(),t._vnode=e},p]}function eh(e){return new Set(e.trim().split(/\s+/))}function ef(e){let t=new Map;for(let n of e.split(";")){let[e,r]=n.split(":");e=e.trim(),r=r&&r.trim(),e&&r&&t.set(e,r)}return t}let eg="data-allow-mismatch",em={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function ey(e,t){if(0===t||1===t)for(;e&&!e.hasAttribute(eg);)e=e.parentElement;let n=e&&e.getAttribute(eg);if(null==n)return!1;{if(""===n)return!0;let e=n.split(",");return!!(0===t&&e.includes("children"))||e.includes(em[t])}}(0,u.getGlobalThis)().requestIdleCallback||(e=>setTimeout(e,1)),(0,u.getGlobalThis)().cancelIdleCallback||(e=>clearTimeout(e));let ex=e=>!!e.type.__asyncLoader,ev=e=>e.type.__isKeepAlive;function eb(e,t){eS(e,"a",t)}function ek(e,t){eS(e,"da",t)}function eS(e,t,n=t6){let r=e.__wdc||(e.__wdc=()=>{let t=n;for(;t;){if(t.isDeactivated)return;t=t.parent}return e()});if(e_(t,r,n),n){let e=n.parent;for(;e&&e.parent;)ev(e.parent.vnode)&&function(e,t,n,r){let i=e_(t,e,r,!0);eD(()=>{(0,u.remove)(r[t],i)},n)}(r,t,n,e),e=e.parent}}function e_(e,t,n=t6,r=!1){if(n){let i=n[e]||(n[e]=[]),s=t.__weh||(t.__weh=(...r)=>{(0,c.pauseTracking)();let i=t9(n),s=g(t,n,e,r);return i(),(0,c.resetTracking)(),s});return r?i.unshift(s):i.push(s),s}}let ew=e=>(t,n=t6)=>{ne&&"sp"!==e||e_(e,(...e)=>t(...e),n)},eE=ew("bm"),eT=ew("m"),eC=ew("bu"),eA=ew("u"),eO=ew("bum"),eD=ew("um"),eI=ew("sp"),eN=ew("rtg"),eM=ew("rtc");function eV(e,t=t6){e_("ec",e,t)}let eR="components";function eL(e,t){return function(e,t,n=!0,r=!1){let i=$||t6;if(i){let n=i.type;if(e===eR){let e=na(n,!1);if(e&&(e===t||e===(0,u.camelize)(t)||e===(0,u.capitalize)((0,u.camelize)(t))))return n}let s=eP(i[e]||n[e],t)||eP(i.appContext[e],t);return!s&&r?n:s}}(eR,e,!0,t)||e}let eB=Symbol.for("v-ndc");function eP(e,t){return e&&(e[t]||e[(0,u.camelize)(t)]||e[(0,u.capitalize)((0,u.camelize)(t))])}function e$(e,t,n,r){let i,s=n&&n[r],o=(0,u.isArray)(e);if(o||(0,u.isString)(e)){let n=o&&(0,c.isReactive)(e),r=!1,l=!1;n&&(r=!(0,c.isShallow)(e),l=(0,c.isReadonly)(e),e=(0,c.shallowReadArray)(e)),i=Array(e.length);for(let n=0,o=e.length;nt(e,n,void 0,s&&s[n]));else{let n=Object.keys(e);i=Array(n.length);for(let r=0,o=n.length;r!tU(t)||t.type!==tV&&(t.type!==tN||!!e(t.children)))?t:null}(s(n)),l=n.key||o&&o.key,a=tH(tN,{key:(l&&!(0,u.isSymbol)(l)?l:`_${t}`)+(!o&&r?"_fb":"")},o||(r?r():[]),o&&1===e._?64:-2);return!i&&a.scopeId&&(a.slotScopeIds=[a.scopeId+"-s"]),s&&s._c&&(s._d=!0),a}let ez=e=>e?t7(e)?no(e):ez(e.parent):null,ej=(0,u.extend)(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>ez(e.parent),$root:e=>ez(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>__VUE_OPTIONS_API__?eW(e):e.type,$forceUpdate:e=>e.f||(e.f=()=>{T(e.update)}),$nextTick:e=>e.n||(e.n=E.bind(e.proxy)),$watch:e=>__VUE_OPTIONS_API__?tk.bind(e):u.NOOP}),eH=(e,t)=>e!==u.EMPTY_OBJ&&!e.__isScriptSetup&&(0,u.hasOwn)(e,t),eU={get({_:e},t){let n,r,i;if("__v_skip"===t)return!0;let{ctx:s,setupState:o,data:l,props:a,accessCache:d,type:p,appContext:h}=e;if("$"!==t[0]){let r=d[t];if(void 0!==r)switch(r){case 1:return o[t];case 2:return l[t];case 4:return s[t];case 3:return a[t]}else{if(eH(o,t))return d[t]=1,o[t];if(l!==u.EMPTY_OBJ&&(0,u.hasOwn)(l,t))return d[t]=2,l[t];if((n=e.propsOptions[0])&&(0,u.hasOwn)(n,t))return d[t]=3,a[t];if(s!==u.EMPTY_OBJ&&(0,u.hasOwn)(s,t))return d[t]=4,s[t];(!__VUE_OPTIONS_API__||eY)&&(d[t]=0)}}let f=ej[t];return f?("$attrs"===t&&(0,c.track)(e.attrs,"get",""),f(e)):(r=p.__cssModules)&&(r=r[t])?r:s!==u.EMPTY_OBJ&&(0,u.hasOwn)(s,t)?(d[t]=4,s[t]):(i=h.config.globalProperties,(0,u.hasOwn)(i,t))?i[t]:void 0},set({_:e},t,n){let{data:r,setupState:i,ctx:s}=e;return eH(i,t)?(i[t]=n,!0):r!==u.EMPTY_OBJ&&(0,u.hasOwn)(r,t)?(r[t]=n,!0):!(0,u.hasOwn)(e.props,t)&&!("$"===t[0]&&t.slice(1)in e)&&(s[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:i,propsOptions:s}},o){let l;return!!n[o]||e!==u.EMPTY_OBJ&&(0,u.hasOwn)(e,o)||eH(t,o)||(l=s[0])&&(0,u.hasOwn)(l,o)||(0,u.hasOwn)(r,o)||(0,u.hasOwn)(ej,o)||(0,u.hasOwn)(i.config.globalProperties,o)},defineProperty(e,t,n){return null!=n.get?e._.accessCache[t]=0:(0,u.hasOwn)(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}},eq=(0,u.extend)({},eU,{get(e,t){if(t!==Symbol.unscopables)return eU.get(e,t,e)},has:(e,t)=>"_"!==t[0]&&!(0,u.isGloballyAllowed)(t)});function eJ(e){return(0,u.isArray)(e)?e.reduce((e,t)=>(e[t]=null,e),{}):e}let eY=!0;function eG(e,t,n){g((0,u.isArray)(e)?e.map(e=>e.bind(t.proxy)):e.bind(t.proxy),t,n)}function eW(e){let t,n=e.type,{mixins:r,extends:i}=n,{mixins:s,optionsCache:o,config:{optionMergeStrategies:l}}=e.appContext,a=o.get(n);return a?t=a:s.length||r||i?(t={},s.length&&s.forEach(e=>eK(t,e,l,!0)),eK(t,n,l)):t=n,(0,u.isObject)(n)&&o.set(n,t),t}function eK(e,t,n,r=!1){let{mixins:i,extends:s}=t;for(let o in s&&eK(e,s,n,!0),i&&i.forEach(t=>eK(e,t,n,!0)),t)if(r&&"expose"===o);else{let r=eZ[o]||n&&n[o];e[o]=r?r(e[o],t[o]):t[o]}return e}let eZ={data:eX,props:e2,emits:e2,methods:e1,computed:e1,beforeCreate:e0,created:e0,beforeMount:e0,mounted:e0,beforeUpdate:e0,updated:e0,beforeDestroy:e0,beforeUnmount:e0,destroyed:e0,unmounted:e0,activated:e0,deactivated:e0,errorCaptured:e0,serverPrefetch:e0,components:e1,directives:e1,watch:function(e,t){if(!e)return t;if(!t)return e;let n=(0,u.extend)(Object.create(null),e);for(let r in t)n[r]=e0(e[r],t[r]);return n},provide:eX,inject:function(e,t){return e1(eQ(e),eQ(t))}};function eX(e,t){return t?e?function(){return(0,u.extend)((0,u.isFunction)(e)?e.call(this,this):e,(0,u.isFunction)(t)?t.call(this,this):t)}:t:e}function eQ(e){if((0,u.isArray)(e)){let t={};for(let n=0;n1)return n&&(0,u.isFunction)(t)?t.call(r&&r.proxy):t}}let e9={},e5=()=>Object.create(e9),e7=e=>Object.getPrototypeOf(e)===e9;function te(e,t,n,r){let i,[s,o]=e.propsOptions,l=!1;if(t)for(let a in t){let c;if((0,u.isReservedProp)(a))continue;let d=t[a];s&&(0,u.hasOwn)(s,c=(0,u.camelize)(a))?o&&o.includes(c)?(i||(i={}))[c]=d:n[c]=d:tw(e.emitsOptions,a)||a in r&&d===r[a]||(r[a]=d,l=!0)}if(o){let t=(0,c.toRaw)(n),r=i||u.EMPTY_OBJ;for(let i=0;i"_"===e[0]||"$stable"===e,ts=e=>(0,u.isArray)(e)?e.map(tQ):[tQ(e)],to=(e,t,n)=>{if(t._n)return t;let r=function(e,t=$,n){if(!t||e._n)return e;let r=(...n)=>{let i;r._d&&tF(-1);let s=z(t);try{i=e(...n)}finally{z(s),r._d&&tF(1)}return __VUE_PROD_DEVTOOLS__&&L(t),i};return r._n=!0,r._c=!0,r._d=!0,r}((...e)=>ts(t(...e)),n);return r._c=!1,r},tl=(e,t,n)=>{let r=e._ctx;for(let n in e){if(ti(n))continue;let i=e[n];if((0,u.isFunction)(i))t[n]=to(n,i,r);else if(null!=i){let e=ts(i);t[n]=()=>e}}},ta=(e,t)=>{let n=ts(t);e.slots.default=()=>n},tc=(e,t,n)=>{for(let r in t)(n||!ti(r))&&(e[r]=t[r])},tu=tI;function td(e){return th(e)}function tp(e){return th(e,ep)}function th(e,t){var r;let i,o;"boolean"!=typeof __VUE_OPTIONS_API__&&((0,u.getGlobalThis)().__VUE_OPTIONS_API__=!0),"boolean"!=typeof __VUE_PROD_DEVTOOLS__&&((0,u.getGlobalThis)().__VUE_PROD_DEVTOOLS__=!1),"boolean"!=typeof __VUE_PROD_HYDRATION_MISMATCH_DETAILS__&&((0,u.getGlobalThis)().__VUE_PROD_HYDRATION_MISMATCH_DETAILS__=!1);let l=(0,u.getGlobalThis)();l.__VUE__=!0,__VUE_PROD_DEVTOOLS__&&function e(t,r){var i,s;(n=t)?(n.enabled=!0,N.forEach(({event:e,args:t})=>n.emit(e,...t)),N=[]):"undefined"==typeof window||!window.HTMLElement||(null==(s=null==(i=window.navigator)?void 0:i.userAgent)?void 0:s.includes("jsdom"))?(M=!0,N=[]):((r.__VUE_DEVTOOLS_HOOK_REPLAY__=r.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(t=>{e(t,r)}),setTimeout(()=>{n||(r.__VUE_DEVTOOLS_HOOK_REPLAY__=null,M=!0,N=[])},3e3))}(l.__VUE_DEVTOOLS_GLOBAL_HOOK__,l);let{insert:a,remove:d,patchProp:p,createElement:h,createText:y,createComment:x,setText:b,setElementText:k,parentNode:S,nextSibling:_,setScopeId:w=u.NOOP,insertStaticContent:E}=e,C=(e,t,n,r=null,i=null,s=null,o,l=null,a=!!t.dynamicChildren)=>{if(e===t)return;e&&!tq(e,t)&&(r=ed(e),ei(e,i,s,!0),e=null),-2===t.patchFlag&&(a=!1,t.dynamicChildren=null);let{type:c,ref:u,shapeFlag:d}=t;switch(c){case tM:A(e,t,n,r);break;case tV:I(e,t,n,r);break;case tR:null==e&&P(t,n,r,o);break;case tN:G(e,t,n,r,i,s,o,l,a);break;default:1&d?$(e,t,n,r,i,s,o,l,a):6&d?W(e,t,n,r,i,s,o,l,a):64&d?c.process(e,t,n,r,i,s,o,l,a,ef):128&d&&c.process(e,t,n,r,i,s,o,l,a,ef)}null!=u&&i?el(u,e&&e.ref,s,t||e,!t):null==u&&e&&null!=e.ref&&el(e.ref,null,s,e,!0)},A=(e,t,n,r)=>{if(null==e)a(t.el=y(t.children),n,r);else{let n=t.el=e.el;t.children!==e.children&&b(n,t.children)}},I=(e,t,n,r)=>{null==e?a(t.el=x(t.children||""),n,r):t.el=e.el},P=(e,t,n,r)=>{[e.el,e.anchor]=E(e.children,t,n,r,e.el,e.anchor)},$=(e,t,n,r,i,s,o,l,a)=>{"svg"===t.type?o="svg":"math"===t.type&&(o="mathml"),null==e?F(t,n,r,i,s,o,l,a):q(e,t,i,s,o,l,a)},F=(e,t,n,r,i,s,o,l)=>{let c,d,{props:f,shapeFlag:g,transition:m,dirs:y}=e;if(c=e.el=h(e.type,s,f&&f.is,f),8&g?k(c,e.children):16&g&&j(e.children,c,null,r,i,tf(e,s),o,l),y&&H(e,null,r,"created"),z(c,e,e.scopeId,o,r),f){for(let e in f)"value"===e||(0,u.isReservedProp)(e)||p(c,e,null,f[e],s,r);"value"in f&&p(c,"value",null,f.value,s),(d=f.onVnodeBeforeMount)&&t2(d,r,e)}__VUE_PROD_DEVTOOLS__&&((0,u.def)(c,"__vnode",e,!0),(0,u.def)(c,"__vueParentComponent",r,!0)),y&&H(e,null,r,"beforeMount");let x=tm(i,m);x&&m.beforeEnter(c),a(c,t,n),((d=f&&f.onVnodeMounted)||x||y)&&tu(()=>{d&&t2(d,r,e),x&&m.enter(c),y&&H(e,null,r,"mounted")},i)},z=(e,t,n,r,i)=>{if(n&&w(e,n),r)for(let t=0;t{for(let c=a;c{let l,a=t.el=e.el;__VUE_PROD_DEVTOOLS__&&(a.__vnode=t);let{patchFlag:c,dynamicChildren:d,dirs:h}=t;c|=16&e.patchFlag;let f=e.props||u.EMPTY_OBJ,g=t.props||u.EMPTY_OBJ;if(n&&tg(n,!1),(l=g.onVnodeBeforeUpdate)&&t2(l,n,t,e),h&&H(t,e,n,"beforeUpdate"),n&&tg(n,!0),(f.innerHTML&&null==g.innerHTML||f.textContent&&null==g.textContent)&&k(a,""),d?J(e.dynamicChildren,d,a,n,r,tf(t,i),s):o||ee(e,t,a,null,n,r,tf(t,i),s,!1),c>0){if(16&c)Y(a,f,g,n,i);else if(2&c&&f.class!==g.class&&p(a,"class",null,g.class,i),4&c&&p(a,"style",f.style,g.style,i),8&c){let e=t.dynamicProps;for(let t=0;t{l&&t2(l,n,t,e),h&&H(t,e,n,"updated")},r)},J=(e,t,n,r,i,s,o)=>{for(let l=0;l{if(t!==n){if(t!==u.EMPTY_OBJ)for(let s in t)(0,u.isReservedProp)(s)||s in n||p(e,s,t[s],null,i,r);for(let s in n){if((0,u.isReservedProp)(s))continue;let o=n[s],l=t[s];o!==l&&"value"!==s&&p(e,s,l,o,i,r)}"value"in n&&p(e,"value",t.value,n.value,i)}},G=(e,t,n,r,i,s,o,l,c)=>{let d=t.el=e?e.el:y(""),p=t.anchor=e?e.anchor:y(""),{patchFlag:h,dynamicChildren:f,slotScopeIds:g}=t;g&&(l=l?l.concat(g):g),null==e?(a(d,n,r),a(p,n,r),j(t.children||[],n,p,i,s,o,l,c)):h>0&&64&h&&f&&e.dynamicChildren?(J(e.dynamicChildren,f,n,i,s,o,l),(null!=t.key||i&&t===i.subTree)&&function e(t,n,r=!1){let i=t.children,s=n.children;if((0,u.isArray)(i)&&(0,u.isArray)(s))for(let t=0;t{t.slotScopeIds=l,null==e?512&t.shapeFlag?i.ctx.activate(t,n,r,o,a):K(t,n,r,i,s,o,a):Z(e,t,a)},K=(e,t,n,r,i,o,l)=>{let a=e.component=function(e,t,n){let r=e.type,i=(t?t.appContext:e.appContext)||t3,s={uid:t4++,vnode:e,type:r,parent:t,appContext:i,root:null,next:null,subTree:null,effect:null,update:null,job:null,scope:new(0,c.EffectScope)(!0),render:null,proxy:null,exposed:null,exposeProxy:null,withProxy:null,provides:t?t.provides:Object.create(i.provides),ids:t?t.ids:["",0,0],accessCache:null,renderCache:[],components:null,directives:null,propsOptions:function e(t,n,r=!1){let i=__VUE_OPTIONS_API__&&r?tn:n.propsCache,s=i.get(t);if(s)return s;let o=t.props,l={},a=[],c=!1;if(__VUE_OPTIONS_API__&&!(0,u.isFunction)(t)){let i=t=>{c=!0;let[r,i]=e(t,n,!0);(0,u.extend)(l,r),i&&a.push(...i)};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}if(!o&&!c)return(0,u.isObject)(t)&&i.set(t,u.EMPTY_ARR),u.EMPTY_ARR;if((0,u.isArray)(o))for(let e=0;e{let r=e(t,n,!0);r&&(a=!0,(0,u.extend)(l,r))};!r&&n.mixins.length&&n.mixins.forEach(i),t.extends&&i(t.extends),t.mixins&&t.mixins.forEach(i)}return o||a?((0,u.isArray)(o)?o.forEach(e=>l[e]=null):(0,u.extend)(l,o),(0,u.isObject)(t)&&i.set(t,l),l):((0,u.isObject)(t)&&i.set(t,null),null)}(r,i),emit:null,emitted:null,propsDefaults:u.EMPTY_OBJ,inheritAttrs:r.inheritAttrs,ctx:u.EMPTY_OBJ,data:u.EMPTY_OBJ,props:u.EMPTY_OBJ,attrs:u.EMPTY_OBJ,slots:u.EMPTY_OBJ,refs:u.EMPTY_OBJ,setupState:u.EMPTY_OBJ,setupContext:null,suspense:n,suspenseId:n?n.pendingId:0,asyncDep:null,asyncResolved:!1,isMounted:!1,isUnmounted:!1,isDeactivated:!1,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};return s.ctx={_:s},s.root=t?t.root:s,s.emit=t_.bind(null,s),e.ce&&e.ce(s),s}(e,r,i);ev(e)&&(a.ctx.renderer=ef),function(e,t=!1,n=!1){t&&s(t);let{props:r,children:i}=e.vnode,o=t7(e);!function(e,t,n,r=!1){let i={},s=e5();for(let n in e.propsDefaults=Object.create(null),te(e,t,i,s),e.propsOptions[0])n in i||(i[n]=void 0);n?e.props=r?i:(0,c.shallowReactive)(i):e.type.props?e.props=i:e.props=s,e.attrs=s}(e,r,o,t),((e,t,n)=>{let r=e.slots=e5();if(32&e.vnode.shapeFlag){let e=t.__;e&&(0,u.def)(r,"__",e,!0);let i=t._;i?(tc(r,t,n),n&&(0,u.def)(r,"_",i,!0)):tl(t,r)}else t&&ta(e,t)})(e,i,n||t),o&&function(e,t){let n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,eU);let{setup:r}=n;if(r){var i;(0,c.pauseTracking)();let n=e.setupContext=r.length>1?{attrs:new Proxy((i=e).attrs,ns),slots:i.slots,emit:i.emit,expose:e=>{i.exposed=e||{}}}:null,s=t9(e),o=f(r,e,0,[e.props,n]),l=(0,u.isPromise)(o);if((0,c.resetTracking)(),s(),(l||e.sp)&&!ex(e)&&eo(e),l){if(o.then(t5,t5),t)return o.then(n=>{nt(e,n,t)}).catch(t=>{m(t,e,0)});e.asyncDep=o}else nt(e,o,t)}else ni(e,t)}(e,t),t&&s(!1)}(a,!1,l),a.asyncDep?(i&&i.registerDep(a,X,l),e.el||I(null,a.subTree=tW(tV),t,n)):X(a,e,t,n,i,o,l)},Z=(e,t,n)=>{let r=t.component=e.component;if(function(e,t,n){let{props:r,children:i,component:s}=e,{props:o,children:l,patchFlag:a}=t,c=s.emitsOptions;if(t.dirs||t.transition)return!0;if(!n||!(a>=0))return(!!i||!!l)&&(!l||!l.$stable)||r!==o&&(r?!o||tA(r,o,c):!!o);if(1024&a)return!0;if(16&a)return r?tA(r,o,c):!!o;if(8&a){let e=t.dynamicProps;for(let t=0;t{let a=()=>{if(e.isMounted){let t,{next:n,bu:r,u:o,parent:c,vnode:d}=e;{let t=function e(t){let n=t.subTree.component;if(n)if(n.asyncDep&&!n.asyncResolved)return n;else return e(n)}(e);if(t){n&&(n.el=d.el,Q(e,n,l)),t.asyncDep.then(()=>{e.isUnmounted||a()});return}}let p=n;tg(e,!1),n?(n.el=d.el,Q(e,n,l)):n=d,r&&(0,u.invokeArrayFns)(r),(t=n.props&&n.props.onVnodeBeforeUpdate)&&t2(t,c,n,d),tg(e,!0);let h=tE(e),f=e.subTree;e.subTree=h,C(f,h,S(f.el),ed(f),e,i,s),n.el=h.el,null===p&&tO(e,h.el),o&&tu(o,i),(t=n.props&&n.props.onVnodeUpdated)&&tu(()=>t2(t,c,n,d),i),__VUE_PROD_DEVTOOLS__&&L(e)}else{let l,{el:a,props:c}=t,{bm:d,m:p,parent:h,root:f,type:g}=e,m=ex(t);if(tg(e,!1),d&&(0,u.invokeArrayFns)(d),!m&&(l=c&&c.onVnodeBeforeMount)&&t2(l,h,t),tg(e,!0),a&&o){let t=()=>{e.subTree=tE(e),o(a,e.subTree,e,i,null)};m&&g.__asyncHydrate?g.__asyncHydrate(a,e,t):t()}else{f.ce&&!1!==f.ce._def.shadowRoot&&f.ce._injectChildStyle(g);let o=e.subTree=tE(e);C(null,o,n,r,e,i,s),t.el=o.el}if(p&&tu(p,i),!m&&(l=c&&c.onVnodeMounted)){let e=t;tu(()=>t2(l,h,e),i)}(256&t.shapeFlag||h&&ex(h.vnode)&&256&h.vnode.shapeFlag)&&e.a&&tu(e.a,i),e.isMounted=!0,__VUE_PROD_DEVTOOLS__&&R(e),t=n=r=null}};e.scope.on();let d=e.effect=new(0,c.ReactiveEffect)(a);e.scope.off();let p=e.update=d.run.bind(d),h=e.job=d.runIfDirty.bind(d);h.i=e,h.id=e.uid,d.scheduler=()=>T(h),tg(e,!0),p()},Q=(e,t,n)=>{t.component=e;let r=e.vnode.props;e.vnode=t,e.next=null,function(e,t,n,r){let{props:i,attrs:s,vnode:{patchFlag:o}}=e,l=(0,c.toRaw)(i),[a]=e.propsOptions,d=!1;if((r||o>0)&&!(16&o)){if(8&o){let n=e.vnode.dynamicProps;for(let r=0;r{let{vnode:r,slots:i}=e,s=!0,o=u.EMPTY_OBJ;if(32&r.shapeFlag){let e=t._;e?n&&1===e?s=!1:tc(i,t,n):(s=!t.$stable,tl(t,i)),o=t}else t&&(ta(e,t),o={default:1});if(s)for(let e in i)ti(e)||null!=o[e]||delete i[e]})(e,t.children,n),(0,c.pauseTracking)(),O(e),(0,c.resetTracking)()},ee=(e,t,n,r,i,s,o,l,a=!1)=>{let c=e&&e.children,u=e?e.shapeFlag:0,d=t.children,{patchFlag:p,shapeFlag:h}=t;if(p>0){if(128&p)return void en(c,d,n,r,i,s,o,l,a);else if(256&p)return void et(c,d,n,r,i,s,o,l,a)}8&h?(16&u&&eu(c,i,s),d!==c&&k(n,d)):16&u?16&h?en(c,d,n,r,i,s,o,l,a):eu(c,i,s,!0):(8&u&&k(n,""),16&h&&j(d,n,r,i,s,o,l,a))},et=(e,t,n,r,i,s,o,l,a)=>{let c;e=e||u.EMPTY_ARR,t=t||u.EMPTY_ARR;let d=e.length,p=t.length,h=Math.min(d,p);for(c=0;cp?eu(e,i,s,!0,!1,h):j(t,n,r,i,s,o,l,a,h)},en=(e,t,n,r,i,s,o,l,a)=>{let c=0,d=t.length,p=e.length-1,h=d-1;for(;c<=p&&c<=h;){let r=e[c],u=t[c]=a?t0(t[c]):tQ(t[c]);if(tq(r,u))C(r,u,n,null,i,s,o,l,a);else break;c++}for(;c<=p&&c<=h;){let r=e[p],c=t[h]=a?t0(t[h]):tQ(t[h]);if(tq(r,c))C(r,c,n,null,i,s,o,l,a);else break;p--,h--}if(c>p){if(c<=h){let e=h+1,u=eh)for(;c<=p;)ei(e[c],i,s,!0),c++;else{let f,g=c,m=c,y=new Map;for(c=m;c<=h;c++){let e=t[c]=a?t0(t[c]):tQ(t[c]);null!=e.key&&y.set(e.key,c)}let x=0,b=h-m+1,k=!1,S=0,_=Array(b);for(c=0;c=b){ei(u,i,s,!0);continue}if(null!=u.key)r=y.get(u.key);else for(f=m;f<=h;f++)if(0===_[f-m]&&tq(u,t[f])){r=f;break}void 0===r?ei(u,i,s,!0):(_[r-m]=c+1,r>=S?S=r:k=!0,C(u,t[r],n,null,i,s,o,l,a),x++)}let w=k?function(e){let t,n,r,i,s,o=e.slice(),l=[0],a=e.length;for(t=0;t>1]]0&&(o[t]=l[r-1]),l[r]=t)}}for(r=l.length,i=l[r-1];r-- >0;)l[r]=i,i=o[i];return l}(_):u.EMPTY_ARR;for(f=w.length-1,c=b-1;c>=0;c--){let e=m+c,u=t[e],p=e+1{let{el:s,type:o,transition:l,children:c,shapeFlag:u}=e;if(6&u)return void er(e.component.subTree,t,n,r);if(128&u)return void e.suspense.move(t,n,r);if(64&u)return void o.move(e,t,n,ef);if(o===tN){a(s,t,n);for(let e=0;e{let i;for(;e&&e!==t;)i=_(e),a(e,n,r),e=i;a(t,n,r)})(e,t,n);if(2!==r&&1&u&&l)if(0===r)l.beforeEnter(s),a(s,t,n),tu(()=>l.enter(s),i);else{let{leave:r,delayLeave:i,afterLeave:o}=l,c=()=>{e.ctx.isUnmounted?d(s):a(s,t,n)},u=()=>{r(s,()=>{c(),o&&o()})};i?i(s,c,u):u()}else a(s,t,n)},ei=(e,t,n,r=!1,i=!1)=>{let s,{type:o,props:l,ref:a,children:u,dynamicChildren:d,shapeFlag:p,patchFlag:h,dirs:f,cacheIndex:g}=e;if(-2===h&&(i=!1),null!=a&&((0,c.pauseTracking)(),el(a,null,n,e,!0),(0,c.resetTracking)()),null!=g&&(t.renderCache[g]=void 0),256&p)return void t.ctx.deactivate(e);let m=1&p&&f,y=!ex(e);if(y&&(s=l&&l.onVnodeBeforeUnmount)&&t2(s,t,e),6&p)ec(e.component,n,r);else{if(128&p)return void e.suspense.unmount(n,r);m&&H(e,null,t,"beforeUnmount"),64&p?e.type.remove(e,t,n,ef,r):d&&!d.hasOnce&&(o!==tN||h>0&&64&h)?eu(d,t,n,!1,!0):(o===tN&&384&h||!i&&16&p)&&eu(u,t,n),r&&es(e)}(y&&(s=l&&l.onVnodeUnmounted)||m)&&tu(()=>{s&&t2(s,t,e),m&&H(e,null,t,"unmounted")},n)},es=e=>{let{type:t,el:n,anchor:r,transition:i}=e;if(t===tN)return void ea(n,r);if(t===tR)return void(({el:e,anchor:t})=>{let n;for(;e&&e!==t;)n=_(e),d(e),e=n;d(t)})(e);let s=()=>{d(n),i&&!i.persisted&&i.afterLeave&&i.afterLeave()};if(1&e.shapeFlag&&i&&!i.persisted){let{leave:t,delayLeave:r}=i,o=()=>t(n,s);r?r(e.el,s,o):o()}else s()},ea=(e,t)=>{let n;for(;e!==t;)n=_(e),d(e),e=n;d(t)},ec=(e,t,r)=>{let{bum:i,scope:s,job:o,subTree:l,um:a,m:c,a:d,parent:p,slots:{__:h}}=e;ty(c),ty(d),i&&(0,u.invokeArrayFns)(i),p&&(0,u.isArray)(h)&&h.forEach(e=>{p.renderCache[e]=void 0}),s.stop(),o&&(o.flags|=8,ei(l,e,t,r)),a&&tu(a,t),tu(()=>{e.isUnmounted=!0},t),t&&t.pendingBranch&&!t.isUnmounted&&e.asyncDep&&!e.asyncResolved&&e.suspenseId===t.pendingId&&(t.deps--,0===t.deps&&t.resolve()),__VUE_PROD_DEVTOOLS__&&n&&"function"==typeof n.cleanupBuffer&&!n.cleanupBuffer(e)&&B(e)},eu=(e,t,n,r=!1,i=!1,s=0)=>{for(let o=s;o{if(6&e.shapeFlag)return ed(e.component.subTree);if(128&e.shapeFlag)return e.suspense.next();let t=_(e.anchor||e.el),n=t&&t[U];return n?_(n):t},ep=!1,eh=(e,t,n)=>{null==e?t._vnode&&ei(t._vnode,null,null,!0):C(t._vnode||null,e,t,null,null,null,n),t._vnode=e,ep||(ep=!0,O(),D(),ep=!1)},ef={p:C,um:ei,m:er,r:es,mt:K,mc:j,pc:ee,pbc:J,n:ed,o:e};return t&&([i,o]=t(ef)),{render:eh,hydrate:i,createApp:(r=i,function(e,t=null){(0,u.isFunction)(e)||(e=(0,u.extend)({},e)),null==t||(0,u.isObject)(t)||(t=null);let n=e3(),i=new WeakSet,s=[],o=!1,l=n.app={_uid:e4++,_component:e,_props:t,_container:null,_context:n,_instance:null,version:nh,get config(){return n.config},set config(v){},use:(e,...t)=>(i.has(e)||(e&&(0,u.isFunction)(e.install)?(i.add(e),e.install(l,...t)):(0,u.isFunction)(e)&&(i.add(e),e(l,...t))),l),mixin:e=>(__VUE_OPTIONS_API__&&!n.mixins.includes(e)&&n.mixins.push(e),l),component:(e,t)=>t?(n.components[e]=t,l):n.components[e],directive:(e,t)=>t?(n.directives[e]=t,l):n.directives[e],mount(i,s,a){if(!o){let c=l._ceVNode||tW(e,t);return c.appContext=n,!0===a?a="svg":!1===a&&(a=void 0),s&&r?r(c,i):eh(c,i,a),o=!0,l._container=i,i.__vue_app__=l,__VUE_PROD_DEVTOOLS__&&(l._instance=c.component,V("app:init",l,nh,{Fragment:tN,Text:tM,Comment:tV,Static:tR})),no(c.component)}},onUnmount(e){s.push(e)},unmount(){o&&(g(s,l._instance,16),eh(null,l._container),__VUE_PROD_DEVTOOLS__&&(l._instance=null,V("app:unmount",l)),delete l._container.__vue_app__)},provide:(e,t)=>(n.provides[e]=t,l),runWithContext(e){let t=e6;e6=l;try{return e()}finally{e6=t}}};return l})}}function tf({type:e,props:t},n){return"svg"===n&&"foreignObject"===e||"mathml"===n&&"annotation-xml"===e&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function tg({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function tm(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function ty(e){if(e)for(let t=0;t{};return e.stop=u.NOOP,e.resume=u.NOOP,e.pause=u.NOOP,e}}let p=t6;a.call=(e,t,n)=>g(e,p,t,n);let h=!1;"post"===o?a.scheduler=e=>{tu(e,p&&p.suspense)}:"sync"!==o&&(h=!0,a.scheduler=(e,t)=>{t?e():T(e)}),a.augmentJob=e=>{t&&(e.flags|=4),h&&(e.flags|=2,p&&(e.id=p.uid,e.i=p))};let f=(0,c.watch)(e,t,a);return ne&&(r?r.push(f):d&&f()),f}function tk(e,t,n){let r,i=this.proxy,s=(0,u.isString)(e)?e.includes(".")?tS(i,e):()=>i[e]:e.bind(i,i);(0,u.isFunction)(t)?r=t:(r=t.handler,n=t);let o=t9(this),l=tb(s,r.bind(i),n);return o(),l}function tS(e,t){let n=t.split(".");return()=>{let t=e;for(let e=0;e(0,u.isString)(e)?e.trim():e)),c.number&&(l=n.map(u.looseToNumber))),__VUE_PROD_DEVTOOLS__&&(r=l,V("component:emit",e.appContext.app,e,t,r));let d=o[i=(0,u.toHandlerKey)(t)]||o[i=(0,u.toHandlerKey)((0,u.camelize)(t))];!d&&a&&(d=o[i=(0,u.toHandlerKey)((0,u.hyphenate)(t))]),d&&g(d,e,6,l);let p=o[i+"Once"];if(p){if(e.emitted){if(e.emitted[i])return}else e.emitted={};e.emitted[i]=!0,g(p,e,6,l)}}function tw(e,t){return!!e&&!!(0,u.isOn)(t)&&(t=t.slice(2).replace(/Once$/,""),(0,u.hasOwn)(e,t[0].toLowerCase()+t.slice(1))||(0,u.hasOwn)(e,(0,u.hyphenate)(t))||(0,u.hasOwn)(e,t))}function tE(e){let t,n,{type:r,vnode:i,proxy:s,withProxy:o,propsOptions:[l],slots:a,attrs:c,emit:d,render:p,renderCache:h,props:f,data:g,setupState:y,ctx:x,inheritAttrs:b}=e,k=z(e);try{if(4&i.shapeFlag){let e=o||s;t=tQ(p.call(e,e,h,f,y,g,x)),n=c}else t=tQ(r.length>1?r(f,{attrs:c,slots:a,emit:d}):r(f,null)),n=r.props?c:tT(c)}catch(n){tL.length=0,m(n,e,1),t=tW(tV)}let S=t;if(n&&!1!==b){let e=Object.keys(n),{shapeFlag:t}=S;e.length&&7&t&&(l&&e.some(u.isModelListener)&&(n=tC(n,l)),S=tK(S,n,!1,!0))}return i.dirs&&((S=tK(S,null,!1,!0)).dirs=S.dirs?S.dirs.concat(i.dirs):i.dirs),i.transition&&er(S,i.transition),t=S,z(k),t}let tT=e=>{let t;for(let n in e)("class"===n||"style"===n||(0,u.isOn)(n))&&((t||(t={}))[n]=e[n]);return t},tC=(e,t)=>{let n={};for(let r in e)(0,u.isModelListener)(r)&&r.slice(9)in t||(n[r]=e[r]);return n};function tA(e,t,n){let r=Object.keys(t);if(r.length!==Object.keys(e).length)return!0;for(let i=0;ie.__isSuspense;function tI(e,t){t&&t.pendingBranch?(0,u.isArray)(e)?t.effects.push(...e):t.effects.push(e):A(e)}let tN=Symbol.for("v-fgt"),tM=Symbol.for("v-txt"),tV=Symbol.for("v-cmt"),tR=Symbol.for("v-stc"),tL=[],tB=null;function tP(e=!1){tL.push(tB=e?null:[])}let t$=1;function tF(e,t=!1){t$+=e,e<0&&tB&&t&&(tB.hasOnce=!0)}function tz(e){return e.dynamicChildren=t$>0?tB||u.EMPTY_ARR:null,tL.pop(),tB=tL[tL.length-1]||null,t$>0&&tB&&tB.push(e),e}function tj(e,t,n,r,i,s){return tz(tG(e,t,n,r,i,s,!0))}function tH(e,t,n,r,i){return tz(tW(e,t,n,r,i,!0))}function tU(e){return!!e&&!0===e.__v_isVNode}function tq(e,t){return e.type===t.type&&e.key===t.key}let tJ=({key:e})=>null!=e?e:null,tY=({ref:e,ref_key:t,ref_for:n})=>("number"==typeof e&&(e=""+e),null!=e?(0,u.isString)(e)||(0,c.isRef)(e)||(0,u.isFunction)(e)?{i:$,r:e,k:t,f:!!n}:e:null);function tG(e,t=null,n=null,r=0,i=null,s=+(e!==tN),o=!1,l=!1){let a={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&tJ(t),ref:t&&tY(t),scopeId:F,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:s,patchFlag:r,dynamicProps:i,dynamicChildren:null,appContext:null,ctx:$};return l?(t1(a,n),128&s&&e.normalize(a)):n&&(a.shapeFlag|=(0,u.isString)(n)?8:16),t$>0&&!o&&tB&&(a.patchFlag>0||6&s)&&32!==a.patchFlag&&tB.push(a),a}let tW=function(e,t=null,n=null,r=0,i=null,s=!1){var o,l;if(e&&e!==eB||(e=tV),tU(e)){let r=tK(e,t,!0);return n&&t1(r,n),t$>0&&!s&&tB&&(6&r.shapeFlag?tB[tB.indexOf(e)]=r:tB.push(r)),r.patchFlag=-2,r}if(o=e,(0,u.isFunction)(o)&&"__vccOpts"in o&&(e=e.__vccOpts),t){let{class:e,style:n}=t=(l=t)?(0,c.isProxy)(l)||e7(l)?(0,u.extend)({},l):l:null;e&&!(0,u.isString)(e)&&(t.class=(0,u.normalizeClass)(e)),(0,u.isObject)(n)&&((0,c.isProxy)(n)&&!(0,u.isArray)(n)&&(n=(0,u.extend)({},n)),t.style=(0,u.normalizeStyle)(n))}let a=(0,u.isString)(e)?1:tD(e)?128:e.__isTeleport?64:(0,u.isObject)(e)?4:2*!!(0,u.isFunction)(e);return tG(e,t,n,r,i,a,s,!0)};function tK(e,t,n=!1,r=!1){let{props:i,ref:s,patchFlag:o,children:l,transition:a}=e,c=t?function(...e){let t={};for(let n=0;nt6||$;{let e=(0,u.getGlobalThis)(),t=(t,n)=>{let r;return(r=e[t])||(r=e[t]=[]),r.push(n),e=>{r.length>1?r.forEach(t=>t(e)):r[0](e)}};i=t("__VUE_INSTANCE_SETTERS__",e=>t6=e),s=t("__VUE_SSR_SETTERS__",e=>ne=e)}let t9=e=>{let t=t6;return i(e),e.scope.on(),()=>{e.scope.off(),i(t)}},t5=()=>{t6&&t6.scope.off(),i(null)};function t7(e){return 4&e.vnode.shapeFlag}let ne=!1;function nt(e,t,n){(0,u.isFunction)(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:(0,u.isObject)(t)&&(__VUE_PROD_DEVTOOLS__&&(e.devtoolsRawSetupState=t),e.setupState=(0,c.proxyRefs)(t)),ni(e,n)}function nn(e){o=e,a=e=>{e.render._rc&&(e.withProxy=new Proxy(e.ctx,eq))}}let nr=()=>!o;function ni(e,t,n){let r=e.type;if(!e.render){if(!t&&o&&!r.render){let t=r.template||__VUE_OPTIONS_API__&&eW(e).template;if(t){let{isCustomElement:n,compilerOptions:i}=e.appContext.config,{delimiters:s,compilerOptions:l}=r,a=(0,u.extend)((0,u.extend)({isCustomElement:n,delimiters:s},i),l);r.render=o(t,a)}}e.render=r.render||u.NOOP,a&&a(e)}if(__VUE_OPTIONS_API__&&1){let t=t9(e);(0,c.pauseTracking)();try{!function(e){let t=eW(e),n=e.proxy,r=e.ctx;eY=!1,t.beforeCreate&&eG(t.beforeCreate,e,"bc");let{data:i,computed:s,methods:o,watch:l,provide:a,inject:d,created:p,beforeMount:h,mounted:f,beforeUpdate:g,updated:m,activated:y,deactivated:x,beforeDestroy:b,beforeUnmount:k,destroyed:S,unmounted:_,render:w,renderTracked:E,renderTriggered:T,errorCaptured:C,serverPrefetch:A,expose:O,inheritAttrs:D,components:I,directives:N,filters:M}=t;if(d&&function(e,t,n=u.NOOP){for(let n in(0,u.isArray)(e)&&(e=eQ(e)),e){let r,i=e[n];r=(0,u.isObject)(i)?"default"in i?e8(i.from||n,i.default,!0):e8(i.from||n):e8(i),(0,c.isRef)(r)?Object.defineProperty(t,n,{enumerable:!0,configurable:!0,get:()=>r.value,set:e=>r.value=e}):t[n]=r}}(d,r,null),o)for(let e in o){let t=o[e];(0,u.isFunction)(t)&&(r[e]=t.bind(n))}if(i){let t=i.call(n,n);(0,u.isObject)(t)&&(e.data=(0,c.reactive)(t))}if(eY=!0,s)for(let e in s){let t=s[e],i=(0,u.isFunction)(t)?t.bind(n,n):(0,u.isFunction)(t.get)?t.get.bind(n,n):u.NOOP,o=nu({get:i,set:!(0,u.isFunction)(t)&&(0,u.isFunction)(t.set)?t.set.bind(n):u.NOOP});Object.defineProperty(r,e,{enumerable:!0,configurable:!0,get:()=>o.value,set:e=>o.value=e})}if(l)for(let e in l)!function e(t,n,r,i){var s,o,l,a,c,d,p;let h=i.includes(".")?tS(r,i):()=>r[i];if((0,u.isString)(t)){let e=n[t];(0,u.isFunction)(e)&&(s=h,o=e,tb(s,o,void 0))}else if((0,u.isFunction)(t)){l=h,a=t.bind(r),tb(l,a,void 0)}else if((0,u.isObject)(t))if((0,u.isArray)(t))t.forEach(t=>e(t,n,r,i));else{let e=(0,u.isFunction)(t.handler)?t.handler.bind(r):n[t.handler];(0,u.isFunction)(e)&&(c=h,d=e,p=t,tb(c,d,p))}}(l[e],r,n,e);if(a){let e=(0,u.isFunction)(a)?a.call(n):a;Reflect.ownKeys(e).forEach(t=>{var n=t,r=e[t];if(t6){let e=t6.provides,t=t6.parent&&t6.parent.provides;t===e&&(e=t6.provides=Object.create(t)),e[n]=r}})}function V(e,t){(0,u.isArray)(t)?t.forEach(t=>e(t.bind(n))):t&&e(t.bind(n))}if(p&&eG(p,e,"c"),V(eE,h),V(eT,f),V(eC,g),V(eA,m),V(eb,y),V(ek,x),V(eV,C),V(eM,E),V(eN,T),V(eO,k),V(eD,_),V(eI,A),(0,u.isArray)(O))if(O.length){let t=e.exposed||(e.exposed={});O.forEach(e=>{Object.defineProperty(t,e,{get:()=>n[e],set:t=>n[e]=t})})}else e.exposed||(e.exposed={});w&&e.render===u.NOOP&&(e.render=w),null!=D&&(e.inheritAttrs=D),I&&(e.components=I),N&&(e.directives=N),A&&eo(e)}(e)}finally{(0,c.resetTracking)(),t()}}}let ns={get:(e,t)=>((0,c.track)(e,"get",""),e[t])};function no(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy((0,c.proxyRefs)((0,c.markRaw)(e.exposed)),{get:(t,n)=>n in t?t[n]:n in ej?ej[n](e):void 0,has:(e,t)=>t in e||t in ej})):e.proxy}let nl=/(?:^|[-_])(\w)/g;function na(e,t=!0){return(0,u.isFunction)(e)?e.displayName||e.name:e.name||t&&e.__name}function nc(e,t,n=!1){let r=na(t);if(!r&&t.__file){let e=t.__file.match(/([^/\\]+)\.\w+$/);e&&(r=e[1])}if(!r&&e&&e.parent){let n=e=>{for(let n in e)if(e[n]===t)return n};r=n(e.components||e.parent.type.components)||n(e.appContext.components)}return r?r.replace(nl,e=>e.toUpperCase()).replace(/[-_]/g,""):n?"App":"Anonymous"}let nu=(e,t)=>(0,c.computed)(e,t,ne);function nd(e,t,n){let r=arguments.length;return 2!==r?(r>3?n=Array.prototype.slice.call(arguments,2):3===r&&tU(n)&&(n=[n]),tW(e,t,n)):!(0,u.isObject)(t)||(0,u.isArray)(t)?tW(e,null,t):tU(t)?tW(e,null,[t]):tW(e,t)}function np(){}let nh="3.5.17",nf=u.NOOP}),a("6Ys9M",function(e,t){let n,i,s,o,a;r(e.exports,"EffectScope",function(){return u}),r(e.exports,"ReactiveEffect",function(){return p}),r(e.exports,"pauseTracking",function(){return w}),r(e.exports,"resetTracking",function(){return E}),r(e.exports,"track",function(){return V}),r(e.exports,"trigger",function(){return R}),r(e.exports,"toRaw",function(){return ex}),r(e.exports,"isShallow",function(){return em}),r(e.exports,"toReactive",function(){return eb}),r(e.exports,"shallowReadArray",function(){return B}),r(e.exports,"isProxy",function(){return ey}),r(e.exports,"isRef",function(){return eS}),r(e.exports,"reactive",function(){return eu}),r(e.exports,"isReadonly",function(){return eg}),r(e.exports,"toReadonly",function(){return ek}),r(e.exports,"shallowReactive",function(){return ed}),r(e.exports,"isReactive",function(){return ef}),r(e.exports,"markRaw",function(){return ev}),r(e.exports,"ref",function(){return e_}),r(e.exports,"shallowRef",function(){return ew}),r(e.exports,"unref",function(){return eC}),r(e.exports,"proxyRefs",function(){return eO}),r(e.exports,"customRef",function(){return eI}),r(e.exports,"computed",function(){return eM}),r(e.exports,"watch",function(){return eL}),r(e.exports,"traverse",function(){return eB});var c=l("fVHkO");class u{constructor(e=!1){this.detached=e,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.parent=n,!e&&n&&(this.index=(n.scopes||(n.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){let e,t;if(this._isPaused=!0,this.scopes)for(e=0,t=this.scopes.length;e0&&0==--this._on&&(n=this.prevScope,this.prevScope=void 0)}stop(e){if(this._active){let t,n;for(t=0,this._active=!1,n=this.effects.length;t0)){if(o){let e=o;for(o=void 0;e;){let t=e.next;e.next=void 0,e.flags&=-9,e=t}}for(;s;){let t=s;for(s=void 0;t;){let n=t.next;if(t.next=void 0,t.flags&=-9,1&t.flags)try{t.trigger()}catch(t){e||(e=t)}t=n}}if(e)throw e}}function m(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function y(e){let t,n=e.depsTail,r=n;for(;r;){let e=r.prevDep;-1===r.version?(r===n&&(n=e),k(r),function(e){let{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=e}e.deps=t,e.depsTail=n}function x(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(b(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function b(e){if(4&e.flags&&!(16&e.flags)||(e.flags&=-17,e.globalVersion===C)||(e.globalVersion=C,!e.isSSR&&128&e.flags&&(!e.deps&&!e._dirty||!x(e))))return;e.flags|=2;let t=e.dep,n=i,r=S;i=e,S=!0;try{m(e);let n=e.fn(e._value);(0===t.version||(0,c.hasChanged)(n,e._value))&&(e.flags|=128,e._value=n,t.version++)}catch(e){throw t.version++,e}finally{i=n,S=r,y(e),e.flags&=-3}}function k(e,t=!1){let{dep:n,prevSub:r,nextSub:i}=e;if(r&&(r.nextSub=i,e.prevSub=void 0),i&&(i.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let e=n.computed.deps;e;e=e.nextDep)k(e,!0)}t||--n.sc||!n.map||n.map.delete(n.key)}let S=!0,_=[];function w(){_.push(S),S=!1}function E(){let e=_.pop();S=void 0===e||e}function T(e){let{cleanup:t}=e;if(e.cleanup=void 0,t){let e=i;i=void 0;try{t()}finally{i=e}}}let C=0;class A{constructor(e,t){this.sub=e,this.dep=t,this.version=t.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class O{constructor(e){this.computed=e,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0}track(e){if(!i||!S||i===this.computed)return;let t=this.activeLink;if(void 0===t||t.sub!==i)t=this.activeLink=new A(i,this),i.deps?(t.prevDep=i.depsTail,i.depsTail.nextDep=t,i.depsTail=t):i.deps=i.depsTail=t,function e(t){if(t.dep.sc++,4&t.sub.flags){let n=t.dep.computed;if(n&&!t.dep.subs){n.flags|=20;for(let t=n.deps;t;t=t.nextDep)e(t)}let r=t.dep.subs;r!==t&&(t.prevSub=r,r&&(r.nextSub=t)),t.dep.subs=t}}(t);else if(-1===t.version&&(t.version=this.version,t.nextDep)){let e=t.nextDep;e.prevDep=t.prevDep,t.prevDep&&(t.prevDep.nextDep=e),t.prevDep=i.depsTail,t.nextDep=void 0,i.depsTail.nextDep=t,i.depsTail=t,i.deps===t&&(i.deps=e)}return t}trigger(e){this.version++,C++,this.notify(e)}notify(e){h++;try{for(let e=this.subs;e;e=e.prevSub)e.sub.notify()&&e.sub.dep.notify()}finally{g()}}}let D=new WeakMap,I=Symbol(""),N=Symbol(""),M=Symbol("");function V(e,t,n){if(S&&i){let t=D.get(e);t||D.set(e,t=new Map);let r=t.get(n);r||(t.set(n,r=new O),r.map=t,r.key=n),r.track()}}function R(e,t,n,r,i,s){let o=D.get(e);if(!o)return void C++;let l=e=>{e&&e.trigger()};if(h++,"clear"===t)o.forEach(l);else{let i=(0,c.isArray)(e),s=i&&(0,c.isIntegerKey)(n);if(i&&"length"===n){let e=Number(r);o.forEach((t,n)=>{("length"===n||n===M||!(0,c.isSymbol)(n)&&n>=e)&&l(t)})}else switch((void 0!==n||o.has(void 0))&&l(o.get(n)),s&&l(o.get(M)),t){case"add":i?s&&l(o.get("length")):(l(o.get(I)),(0,c.isMap)(e)&&l(o.get(N)));break;case"delete":!i&&(l(o.get(I)),(0,c.isMap)(e)&&l(o.get(N)));break;case"set":(0,c.isMap)(e)&&l(o.get(I))}}g()}function L(e){let t=ex(e);return t===e?t:(V(t,"iterate",M),em(e)?t:t.map(eb))}function B(e){return V(e=ex(e),"iterate",M),e}let P={__proto__:null,[Symbol.iterator](){return $(this,Symbol.iterator,eb)},concat(...e){return L(this).concat(...e.map(e=>(0,c.isArray)(e)?L(e):e))},entries(){return $(this,"entries",e=>(e[1]=eb(e[1]),e))},every(e,t){return z(this,"every",e,t,void 0,arguments)},filter(e,t){return z(this,"filter",e,t,e=>e.map(eb),arguments)},find(e,t){return z(this,"find",e,t,eb,arguments)},findIndex(e,t){return z(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return z(this,"findLast",e,t,eb,arguments)},findLastIndex(e,t){return z(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return z(this,"forEach",e,t,void 0,arguments)},includes(...e){return H(this,"includes",e)},indexOf(...e){return H(this,"indexOf",e)},join(e){return L(this).join(e)},lastIndexOf(...e){return H(this,"lastIndexOf",e)},map(e,t){return z(this,"map",e,t,void 0,arguments)},pop(){return U(this,"pop")},push(...e){return U(this,"push",e)},reduce(e,...t){return j(this,"reduce",e,t)},reduceRight(e,...t){return j(this,"reduceRight",e,t)},shift(){return U(this,"shift")},some(e,t){return z(this,"some",e,t,void 0,arguments)},splice(...e){return U(this,"splice",e)},toReversed(){return L(this).toReversed()},toSorted(e){return L(this).toSorted(e)},toSpliced(...e){return L(this).toSpliced(...e)},unshift(...e){return U(this,"unshift",e)},values(){return $(this,"values",eb)}};function $(e,t,n){let r=B(e),i=r[t]();return r===e||em(e)||(i._next=i.next,i.next=()=>{let e=i._next();return e.value&&(e.value=n(e.value)),e}),i}let F=Array.prototype;function z(e,t,n,r,i,s){let o=B(e),l=o!==e&&!em(e),a=o[t];if(a!==F[t]){let t=a.apply(e,s);return l?eb(t):t}let c=n;o!==e&&(l?c=function(t,r){return n.call(this,eb(t),r,e)}:n.length>2&&(c=function(t,r){return n.call(this,t,r,e)}));let u=a.call(o,c,r);return l&&i?i(u):u}function j(e,t,n,r){let i=B(e),s=n;return i!==e&&(em(e)?n.length>3&&(s=function(t,r,i){return n.call(this,t,r,i,e)}):s=function(t,r,i){return n.call(this,t,eb(r),i,e)}),i[t](s,...r)}function H(e,t,n){let r=ex(e);V(r,"iterate",M);let i=r[t](...n);return(-1===i||!1===i)&&ey(n[0])?(n[0]=ex(n[0]),r[t](...n)):i}function U(e,t,n=[]){w(),h++;let r=ex(e)[t].apply(e,n);return g(),E(),r}let q=(0,c.makeMap)("__proto__,__v_isRef,__isVue"),J=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>"arguments"!==e&&"caller"!==e).map(e=>Symbol[e]).filter(c.isSymbol));function Y(e){(0,c.isSymbol)(e)||(e=String(e));let t=ex(this);return V(t,"has",e),t.hasOwnProperty(e)}class G{constructor(e=!1,t=!1){this._isReadonly=e,this._isShallow=t}get(e,t,n){if("__v_skip"===t)return e.__v_skip;let r=this._isReadonly,i=this._isShallow;if("__v_isReactive"===t)return!r;if("__v_isReadonly"===t)return r;if("__v_isShallow"===t)return i;if("__v_raw"===t)return n===(r?i?ec:ea:i?el:eo).get(e)||Object.getPrototypeOf(e)===Object.getPrototypeOf(n)?e:void 0;let s=(0,c.isArray)(e);if(!r){let e;if(s&&(e=P[t]))return e;if("hasOwnProperty"===t)return Y}let o=Reflect.get(e,t,eS(e)?e:n);return((0,c.isSymbol)(t)?J.has(t):q(t))||(r||V(e,"get",t),i)?o:eS(o)?s&&(0,c.isIntegerKey)(t)?o:o.value:(0,c.isObject)(o)?r?ep(o):eu(o):o}}class W extends G{constructor(e=!1){super(!1,e)}set(e,t,n,r){let i=e[t];if(!this._isShallow){let t=eg(i);if(em(n)||eg(n)||(i=ex(i),n=ex(n)),!(0,c.isArray)(e)&&eS(i)&&!eS(n))if(t)return!1;else return i.value=n,!0}let s=(0,c.isArray)(e)&&(0,c.isIntegerKey)(t)?Number(t)e,ee=e=>Reflect.getPrototypeOf(e);function et(e){return function(){return"delete"!==e&&("clear"===e?void 0:this)}}function en(e,t){let n=function(e,t){let n={get(n){let r=this.__v_raw,i=ex(r),s=ex(n);e||((0,c.hasChanged)(n,s)&&V(i,"get",n),V(i,"get",s));let{has:o}=ee(i),l=t?Q:e?ek:eb;return o.call(i,n)?l(r.get(n)):o.call(i,s)?l(r.get(s)):void(r!==i&&r.get(n))},get size(){let t=this.__v_raw;return e||V(ex(t),"iterate",I),Reflect.get(t,"size",t)},has(t){let n=this.__v_raw,r=ex(n),i=ex(t);return e||((0,c.hasChanged)(t,i)&&V(r,"has",t),V(r,"has",i)),t===i?n.has(t):n.has(t)||n.has(i)},forEach(n,r){let i=this,s=i.__v_raw,o=ex(s),l=t?Q:e?ek:eb;return e||V(o,"iterate",I),s.forEach((e,t)=>n.call(r,l(e),l(t),i))}};return(0,c.extend)(n,e?{add:et("add"),set:et("set"),delete:et("delete"),clear:et("clear")}:{add(e){t||em(e)||eg(e)||(e=ex(e));let n=ex(this);return ee(n).has.call(n,e)||(n.add(e),R(n,"add",e,e)),this},set(e,n){t||em(n)||eg(n)||(n=ex(n));let r=ex(this),{has:i,get:s}=ee(r),o=i.call(r,e);o||(e=ex(e),o=i.call(r,e));let l=s.call(r,e);return r.set(e,n),o?(0,c.hasChanged)(n,l)&&R(r,"set",e,n,l):R(r,"add",e,n),this},delete(e){let t=ex(this),{has:n,get:r}=ee(t),i=n.call(t,e);i||(e=ex(e),i=n.call(t,e));let s=r?r.call(t,e):void 0,o=t.delete(e);return i&&R(t,"delete",e,void 0,s),o},clear(){let e=ex(this),t=0!==e.size,n=e.clear();return t&&R(e,"clear",void 0,void 0,void 0),n}}),["keys","values","entries",Symbol.iterator].forEach(r=>{n[r]=function(...n){let i=this.__v_raw,s=ex(i),o=(0,c.isMap)(s),l="entries"===r||r===Symbol.iterator&&o,a=i[r](...n),u=t?Q:e?ek:eb;return e||V(s,"iterate","keys"===r&&o?N:I),{next(){let{value:e,done:t}=a.next();return t?{value:e,done:t}:{value:l?[u(e[0]),u(e[1])]:u(e),done:t}},[Symbol.iterator](){return this}}}}),n}(e,t);return(t,r,i)=>"__v_isReactive"===r?!e:"__v_isReadonly"===r?e:"__v_raw"===r?t:Reflect.get((0,c.hasOwn)(n,r)&&r in t?n:t,r,i)}let er={get:en(!1,!1)},ei={get:en(!1,!0)},es={get:en(!0,!1)},eo=new WeakMap,el=new WeakMap,ea=new WeakMap,ec=new WeakMap;function eu(e){return eg(e)?e:eh(e,!1,K,er,eo)}function ed(e){return eh(e,!1,X,ei,el)}function ep(e){return eh(e,!0,Z,es,ea)}function eh(e,t,n,r,i){if(!(0,c.isObject)(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;let s=e.__v_skip||!Object.isExtensible(e)?0:function(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}((0,c.toRawType)(e));if(0===s)return e;let o=i.get(e);if(o)return o;let l=new Proxy(e,2===s?r:n);return i.set(e,l),l}function ef(e){return eg(e)?ef(e.__v_raw):!!(e&&e.__v_isReactive)}function eg(e){return!!(e&&e.__v_isReadonly)}function em(e){return!!(e&&e.__v_isShallow)}function ey(e){return!!e&&!!e.__v_raw}function ex(e){let t=e&&e.__v_raw;return t?ex(t):e}function ev(e){return!(0,c.hasOwn)(e,"__v_skip")&&Object.isExtensible(e)&&(0,c.def)(e,"__v_skip",!0),e}let eb=e=>(0,c.isObject)(e)?eu(e):e,ek=e=>(0,c.isObject)(e)?ep(e):e;function eS(e){return!!e&&!0===e.__v_isRef}function e_(e){return eE(e,!1)}function ew(e){return eE(e,!0)}function eE(e,t){return eS(e)?e:new eT(e,t)}class eT{constructor(e,t){this.dep=new O,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=t?e:ex(e),this._value=t?e:eb(e),this.__v_isShallow=t}get value(){return this.dep.track(),this._value}set value(e){let t=this._rawValue,n=this.__v_isShallow||em(e)||eg(e);e=n?e:ex(e),(0,c.hasChanged)(e,t)&&(this._rawValue=e,this._value=n?e:eb(e),this.dep.trigger())}}function eC(e){return eS(e)?e.value:e}let eA={get:(e,t,n)=>"__v_raw"===t?e:eC(Reflect.get(e,t,n)),set:(e,t,n,r)=>{let i=e[t];return eS(i)&&!eS(n)?(i.value=n,!0):Reflect.set(e,t,n,r)}};function eO(e){return ef(e)?e:new Proxy(e,eA)}class eD{constructor(e){this.__v_isRef=!0,this._value=void 0;let t=this.dep=new O,{get:n,set:r}=e(t.track.bind(t),t.trigger.bind(t));this._get=n,this._set=r}get value(){return this._value=this._get()}set value(e){this._set(e)}}function eI(e){return new eD(e)}class eN{constructor(e,t,n){this.fn=e,this.setter=t,this._value=void 0,this.dep=new O(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=C-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!t,this.isSSR=n}notify(){if(this.flags|=16,!(8&this.flags)&&i!==this)return f(this,!0),!0}get value(){let e=this.dep.track();return b(this),e&&(e.version=this.dep.version),this._value}set value(e){this.setter&&this.setter(e)}}function eM(e,t,n=!1){let r,i;return(0,c.isFunction)(e)?r=e:(r=e.get,i=e.set),new eN(r,i,n)}let eV={},eR=new WeakMap;function eL(e,t,r=c.EMPTY_OBJ){let i,s,o,l,{immediate:u,deep:d,once:h,scheduler:f,augmentJob:g,call:m}=r,y=e=>d?e:em(e)||!1===d||0===d?eB(e,1):eB(e),x=!1,b=!1;if(eS(e)?(s=()=>e.value,x=em(e)):ef(e)?(s=()=>y(e),x=!0):(0,c.isArray)(e)?(b=!0,x=e.some(e=>ef(e)||em(e)),s=()=>e.map(e=>eS(e)?e.value:ef(e)?y(e):(0,c.isFunction)(e)?m?m(e,2):e():void 0)):s=(0,c.isFunction)(e)?t?m?()=>m(e,2):e:()=>{if(o){w();try{o()}finally{E()}}let t=a;a=i;try{return m?m(e,3,[l]):e(l)}finally{a=t}}:c.NOOP,t&&d){let e=s,t=!0===d?1/0:d;s=()=>eB(e(),t)}let k=n,S=()=>{i.stop(),k&&k.active&&(0,c.remove)(k.effects,i)};if(h&&t){let e=t;t=(...t)=>{e(...t),S()}}let _=b?Array(e.length).fill(eV):eV,T=e=>{if(1&i.flags&&(i.dirty||e))if(t){let e=i.run();if(d||x||(b?e.some((e,t)=>(0,c.hasChanged)(e,_[t])):(0,c.hasChanged)(e,_))){o&&o();let n=a;a=i;try{let n=[e,_===eV?void 0:b&&_[0]===eV?[]:_,l];_=e,m?m(t,3,n):t(...n)}finally{a=n}}}else i.run()};return g&&g(T),(i=new p(s)).scheduler=f?()=>f(T,!1):T,l=e=>(function(e,t=!1,n=a){if(n){let t=eR.get(n);t||eR.set(n,t=[]),t.push(e)}})(e,!1,i),o=i.onStop=()=>{let e=eR.get(i);if(e){if(m)m(e,4);else for(let t of e)t();eR.delete(i)}},t?u?T(!0):_=i.run():f?f(T.bind(null,!0),!0):i.run(),S.pause=i.pause.bind(i),S.resume=i.resume.bind(i),S.stop=S,S}function eB(e,t=1/0,n){if(t<=0||!(0,c.isObject)(e)||e.__v_skip||(n=n||new Set).has(e))return e;if(n.add(e),t--,eS(e))eB(e.value,t,n);else if((0,c.isArray)(e))for(let r=0;r{eB(e,t,n)});else if((0,c.isPlainObject)(e)){for(let r in e)eB(e[r],t,n);for(let r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&eB(e[r],t,n)}return e}}),a("fVHkO",function(e,t){let n;function s(e){let t=Object.create(null);for(let n of e.split(","))t[n]=1;return e=>e in t}r(e.exports,"makeMap",function(){return s}),r(e.exports,"EMPTY_OBJ",function(){return o}),r(e.exports,"EMPTY_ARR",function(){return l}),r(e.exports,"NOOP",function(){return a}),r(e.exports,"NO",function(){return c}),r(e.exports,"isOn",function(){return u}),r(e.exports,"isModelListener",function(){return d}),r(e.exports,"extend",function(){return p}),r(e.exports,"remove",function(){return h}),r(e.exports,"hasOwn",function(){return g}),r(e.exports,"isArray",function(){return m}),r(e.exports,"isMap",function(){return y}),r(e.exports,"isSet",function(){return x}),r(e.exports,"isRegExp",function(){return k}),r(e.exports,"isFunction",function(){return S}),r(e.exports,"isString",function(){return _}),r(e.exports,"isSymbol",function(){return w}),r(e.exports,"isObject",function(){return E}),r(e.exports,"isPromise",function(){return T}),r(e.exports,"toRawType",function(){return O}),r(e.exports,"isPlainObject",function(){return D}),r(e.exports,"isIntegerKey",function(){return I}),r(e.exports,"isReservedProp",function(){return N}),r(e.exports,"isBuiltInDirective",function(){return M}),r(e.exports,"camelize",function(){return L}),r(e.exports,"hyphenate",function(){return P}),r(e.exports,"capitalize",function(){return $}),r(e.exports,"toHandlerKey",function(){return F}),r(e.exports,"hasChanged",function(){return z}),r(e.exports,"invokeArrayFns",function(){return j}),r(e.exports,"def",function(){return H}),r(e.exports,"looseToNumber",function(){return U}),r(e.exports,"toNumber",function(){return q}),r(e.exports,"getGlobalThis",function(){return J}),r(e.exports,"genCacheKey",function(){return Y}),r(e.exports,"isGloballyAllowed",function(){return G}),r(e.exports,"generateCodeFrame",function(){return W}),r(e.exports,"normalizeStyle",function(){return function e(t){if(m(t)){let n={};for(let r=0;r{},c=()=>!1,u=e=>111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&(e.charCodeAt(2)>122||97>e.charCodeAt(2)),d=e=>e.startsWith("onUpdate:"),p=Object.assign,h=(e,t)=>{let n=e.indexOf(t);n>-1&&e.splice(n,1)},f=Object.prototype.hasOwnProperty,g=(e,t)=>f.call(e,t),m=Array.isArray,y=e=>"[object Map]"===A(e),x=e=>"[object Set]"===A(e),b=e=>"[object Date]"===A(e),k=e=>"[object RegExp]"===A(e),S=e=>"function"==typeof e,_=e=>"string"==typeof e,w=e=>"symbol"==typeof e,E=e=>null!==e&&"object"==typeof e,T=e=>(E(e)||S(e))&&S(e.then)&&S(e.catch),C=Object.prototype.toString,A=e=>C.call(e),O=e=>A(e).slice(8,-1),D=e=>"[object Object]"===A(e),I=e=>_(e)&&"NaN"!==e&&"-"!==e[0]&&""+parseInt(e,10)===e,N=s(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),M=s("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),V=e=>{let t=Object.create(null);return n=>t[n]||(t[n]=e(n))},R=/-(\w)/g,L=V(e=>e.replace(R,(e,t)=>t?t.toUpperCase():"")),B=/\B([A-Z])/g,P=V(e=>e.replace(B,"-$1").toLowerCase()),$=V(e=>e.charAt(0).toUpperCase()+e.slice(1)),F=V(e=>e?`on${$(e)}`:""),z=(e,t)=>!Object.is(e,t),j=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},U=e=>{let t=parseFloat(e);return isNaN(t)?e:t},q=e=>{let t=_(e)?Number(e):NaN;return isNaN(t)?e:t},J=()=>n||(n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==i?i:{});function Y(e,t){return e+JSON.stringify(t,(e,t)=>"function"==typeof t?t.toString():t)}let G=s("Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol");function W(e,t=0,n=e.length){if((t=Math.max(0,Math.min(t,e.length)))>(n=Math.max(0,Math.min(n,e.length))))return"";let r=e.split(/(\r?\n)/),i=r.filter((e,t)=>t%2==1);r=r.filter((e,t)=>t%2==0);let s=0,o=[];for(let e=0;e=t){for(let l=e-2;l<=e+2||n>s;l++){if(l<0||l>=r.length)continue;let a=l+1;o.push(`${a}${" ".repeat(Math.max(3-String(a).length,0))}| ${r[l]}`);let c=r[l].length,u=i[l]&&i[l].length||0;if(l===e){let e=t-(s-(c+u)),r=Math.max(1,n>s?c-e:n-t);o.push(" | "+" ".repeat(e)+"^".repeat(r))}else if(l>e){if(n>s){let e=Math.max(Math.min(n-s,c),1);o.push(" | "+"^".repeat(e))}s+=c+u}}break}return o.join("\n")}let K=/;(?![^(]*\))/g,Z=/:([^]+)/,X=/\/\*[^]*?\*\//g;function Q(e){let t={};return e.replace(X,"").split(K).forEach(e=>{if(e){let n=e.split(Z);n.length>1&&(t[n[0].trim()]=n[1].trim())}}),t}function ee(e){if(!e)return"";if(_(e))return e;let t="";for(let n in e){let r=e[n];if(_(r)||"number"==typeof r){let e=n.startsWith("--")?n:P(n);t+=`${e}:${r};`}}return t}let et=s("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"),en=s("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"),er=s("annotation,annotation-xml,maction,maligngroup,malignmark,math,menclose,merror,mfenced,mfrac,mfraction,mglyph,mi,mlabeledtr,mlongdiv,mmultiscripts,mn,mo,mover,mpadded,mphantom,mprescripts,mroot,mrow,ms,mscarries,mscarry,msgroup,msline,mspace,msqrt,msrow,mstack,mstyle,msub,msubsup,msup,mtable,mtd,mtext,mtr,munder,munderover,none,semantics"),ei=s("area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr"),es="itemscope,allowfullscreen,formnovalidate,ismap,nomodule,novalidate,readonly",eo=s(es),el=s(es+",async,autofocus,autoplay,controls,default,defer,disabled,hidden,inert,loop,open,required,reversed,scoped,seamless,checked,muted,multiple,selected");function ea(e){return!!e||""===e}let ec=s("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),eu=s("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan");function ed(e){if(null==e)return!1;let t=typeof e;return"string"===t||"number"===t||"boolean"===t}let ep=/[ !"#$%&'()*+,./:;<=>?@[\\\]^`{|}~]/g;function eh(e,t){return e.replace(ep,e=>t?'"'===e?'\\\\\\"':`\\\\${e}`:`\\${e}`)}function ef(e,t){if(e===t)return!0;let n=b(e),r=b(t);if(n||r)return!!n&&!!r&&e.getTime()===t.getTime();if(n=w(e),r=w(t),n||r)return e===t;if(n=m(e),r=m(t),n||r)return!!n&&!!r&&function(e,t){if(e.length!==t.length)return!1;let n=!0;for(let r=0;n&&ref(e,t))}let em=e=>!!(e&&!0===e.__v_isRef),ey=e=>_(e)?e:null==e?"":m(e)||E(e)&&(e.toString===C||!S(e.toString))?em(e)?ey(e.value):JSON.stringify(e,ex,2):String(e),ex=(e,t)=>{if(em(t))return ex(e,t.value);if(y(t))return{[`Map(${t.size})`]:[...t.entries()].reduce((e,[t,n],r)=>(e[ev(t,r)+" =>"]=n,e),{})};if(x(t))return{[`Set(${t.size})`]:[...t.values()].map(e=>ev(e))};if(w(t))return ev(t);if(E(t)&&!m(t)&&!D(t))return String(t);return t},ev=(e,t="")=>{var n;return w(e)?`Symbol(${null!=(n=e.description)?n:t})`:e}}),a("j0b99",function(e,t){let n;r(e.exports,"compile",function(){return A});var i=l("3J0b1"),s=l("fVHkO");let o=Symbol(""),a=Symbol(""),c=Symbol(""),u=Symbol(""),d=Symbol(""),p=Symbol(""),h=Symbol(""),f=Symbol(""),g=Symbol(""),m=Symbol("");(0,i.registerRuntimeHelpers)({[o]:"vModelRadio",[a]:"vModelCheckbox",[c]:"vModelText",[u]:"vModelSelect",[d]:"vModelDynamic",[p]:"withModifiers",[h]:"withKeys",[f]:"vShow",[g]:"Transition",[m]:"TransitionGroup"});let y={parseMode:"html",isVoidTag:s.isVoidTag,isNativeTag:e=>(0,s.isHTMLTag)(e)||(0,s.isSVGTag)(e)||(0,s.isMathMLTag)(e),isPreTag:e=>"pre"===e,isIgnoreNewlineTag:e=>"pre"===e||"textarea"===e,decodeEntities:function(e,t=!1){return(n||(n=document.createElement("div")),t)?(n.innerHTML=`
`,n.children[0].getAttribute("foo")):(n.innerHTML=e,n.textContent)},isBuiltInComponent:e=>"Transition"===e||"transition"===e?g:"TransitionGroup"===e||"transition-group"===e?m:void 0,getNamespace(e,t,n){let r=t?t.ns:n;if(t&&2===r)if("annotation-xml"===t.tag){if("svg"===e)return 1;t.props.some(e=>6===e.type&&"encoding"===e.name&&null!=e.value&&("text/html"===e.value.content||"application/xhtml+xml"===e.value.content))&&(r=0)}else/^m(?:[ions]|text)$/.test(t.tag)&&"mglyph"!==e&&"malignmark"!==e&&(r=0);else t&&1===r&&("foreignObject"===t.tag||"desc"===t.tag||"title"===t.tag)&&(r=0);if(0===r){if("svg"===e)return 1;if("math"===e)return 2}return r}};function x(e,t){return(0,i.createCompilerError)(e,t,void 0)}let b=(0,s.makeMap)("passive,once,capture"),k=(0,s.makeMap)("stop,prevent,self,ctrl,shift,alt,meta,exact,middle"),S=(0,s.makeMap)("left,right"),_=(0,s.makeMap)("onkeyup,onkeydown,onkeypress"),w=(e,t)=>(0,i.isStaticExp)(e)&&"onclick"===e.content.toLowerCase()?(0,i.createSimpleExpression)(t,!0):4!==e.type?(0,i.createCompoundExpression)(["(",e,`) === "onClick" ? "${t}" : (`,e,")"]):e,E=(e,t)=>{1===e.type&&0===e.tagType&&("script"===e.tag||"style"===e.tag)&&t.removeNode()},T=[e=>{1===e.type&&e.props.forEach((t,n)=>{6===t.type&&"style"===t.name&&t.value&&(e.props[n]={type:7,name:"bind",arg:(0,i.createSimpleExpression)("style",!0,t.loc),exp:((e,t)=>{let n=(0,s.parseStringStyle)(e);return(0,i.createSimpleExpression)(JSON.stringify(n),!1,t,3)})(t.value.content,t.loc),modifiers:[],loc:t.loc})})}],C={cloak:i.noopDirectiveTransform,html:(e,t,n)=>{let{exp:r,loc:s}=e;return r||n.onError(x(53,s)),t.children.length&&(n.onError(x(54,s)),t.children.length=0),{props:[(0,i.createObjectProperty)((0,i.createSimpleExpression)("innerHTML",!0,s),r||(0,i.createSimpleExpression)("",!0))]}},text:(e,t,n)=>{let{exp:r,loc:s}=e;return r||n.onError(x(55,s)),t.children.length&&(n.onError(x(56,s)),t.children.length=0),{props:[(0,i.createObjectProperty)((0,i.createSimpleExpression)("textContent",!0),r?(0,i.getConstantType)(r,n)>0?r:(0,i.createCallExpression)(n.helperString(i.TO_DISPLAY_STRING),[r],s):(0,i.createSimpleExpression)("",!0))]}},model:(e,t,n)=>{let r=(0,i.transformModel)(e,t,n);if(!r.props.length||1===t.tagType)return r;e.arg&&n.onError(x(58,e.arg.loc));let{tag:s}=t,l=n.isCustomElement(s);if("input"===s||"textarea"===s||"select"===s||l){let p=c,h=!1;if("input"===s||l){let r=(0,i.findProp)(t,"type");if(r){if(7===r.type)p=d;else if(r.value)switch(r.value.content){case"radio":p=o;break;case"checkbox":p=a;break;case"file":h=!0,n.onError(x(59,e.loc))}}else(0,i.hasDynamicKeyVBind)(t)&&(p=d)}else"select"===s&&(p=u);h||(r.needRuntime=n.helper(p))}else n.onError(x(57,e.loc));return r.props=r.props.filter(e=>4!==e.key.type||"modelValue"!==e.key.content),r},on:(e,t,n)=>(0,i.transformOn)(e,t,n,t=>{let{modifiers:r}=e;if(!r.length)return t;let{key:o,value:l}=t.props[0],{keyModifiers:a,nonKeyModifiers:c,eventOptionModifiers:u}=((e,t,n,r)=>{let s=[],o=[],l=[];for(let a=0;a{let{exp:r,loc:i}=e;return r||n.onError(x(61,i)),{props:[],needRuntime:n.helper(f)}}};function A(e,t={}){return(0,i.baseCompile)(e,(0,s.extend)({},y,t,{nodeTransforms:[E,...T,...t.nodeTransforms||[]],directiveTransforms:(0,s.extend)({},C,t.directiveTransforms||{}),transformHoist:null}))}}),a("3J0b1",function(e,t){r(e.exports,"TO_DISPLAY_STRING",function(){return C}),r(e.exports,"registerRuntimeHelpers",function(){return J}),r(e.exports,"createObjectProperty",function(){return Z}),r(e.exports,"createSimpleExpression",function(){return X}),r(e.exports,"createCompoundExpression",function(){return Q}),r(e.exports,"createCallExpression",function(){return ee}),r(e.exports,"checkCompatEnabled",function(){return eh}),r(e.exports,"createCompilerError",function(){return em}),r(e.exports,"isStaticExp",function(){return ey}),r(e.exports,"findDir",function(){return eC}),r(e.exports,"findProp",function(){return eA}),r(e.exports,"isStaticArgOf",function(){return eO}),r(e.exports,"hasDynamicKeyVBind",function(){return eD}),r(e.exports,"baseParse",function(){return tl}),r(e.exports,"getConstantType",function(){return tc}),r(e.exports,"transformOn",function(){return tH}),r(e.exports,"transformModel",function(){return tY}),r(e.exports,"baseCompile",function(){return t1}),r(e.exports,"noopDirectiveTransform",function(){return t2});var n=l("fVHkO");let i=Symbol(""),s=Symbol(""),o=Symbol(""),a=Symbol(""),c=Symbol(""),u=Symbol(""),d=Symbol(""),p=Symbol(""),h=Symbol(""),f=Symbol(""),g=Symbol(""),m=Symbol(""),y=Symbol(""),x=Symbol(""),b=Symbol(""),k=Symbol(""),S=Symbol(""),_=Symbol(""),w=Symbol(""),E=Symbol(""),T=Symbol(""),C=Symbol(""),A=Symbol(""),O=Symbol(""),D=Symbol(""),I=Symbol(""),N=Symbol(""),M=Symbol(""),V=Symbol(""),R=Symbol(""),L=Symbol(""),B=Symbol(""),P=Symbol(""),$=Symbol(""),F=Symbol(""),z=Symbol(""),j=Symbol(""),H=Symbol(""),U=Symbol(""),q={[i]:"Fragment",[s]:"Teleport",[o]:"Suspense",[a]:"KeepAlive",[c]:"BaseTransition",[u]:"openBlock",[d]:"createBlock",[p]:"createElementBlock",[h]:"createVNode",[f]:"createElementVNode",[g]:"createCommentVNode",[m]:"createTextVNode",[y]:"createStaticVNode",[x]:"resolveComponent",[b]:"resolveDynamicComponent",[k]:"resolveDirective",[S]:"resolveFilter",[_]:"withDirectives",[w]:"renderList",[E]:"renderSlot",[T]:"createSlots",[C]:"toDisplayString",[A]:"mergeProps",[O]:"normalizeClass",[D]:"normalizeStyle",[I]:"normalizeProps",[N]:"guardReactiveProps",[M]:"toHandlers",[V]:"camelize",[R]:"capitalize",[L]:"toHandlerKey",[B]:"setBlockTracking",[P]:"pushScopeId",[$]:"popScopeId",[F]:"withCtx",[z]:"unref",[j]:"isRef",[H]:"withMemo",[U]:"isMemoSame"};function J(e){Object.getOwnPropertySymbols(e).forEach(t=>{q[t]=e[t]})}let Y={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function G(e,t,n,r,i,s,o,l=!1,a=!1,c=!1,g=Y){var m,y,x,b;return e&&(l?(e.helper(u),e.helper((m=e.inSSR,y=c,m||y?d:p))):e.helper((x=e.inSSR,b=c,x||b?h:f)),o&&e.helper(_)),{type:13,tag:t,props:n,children:r,patchFlag:i,dynamicProps:s,directives:o,isBlock:l,disableTracking:a,isComponent:c,loc:g}}function W(e,t=Y){return{type:17,loc:t,elements:e}}function K(e,t=Y){return{type:15,loc:t,properties:e}}function Z(e,t){return{type:16,loc:Y,key:(0,n.isString)(e)?X(e,!0):e,value:t}}function X(e,t=!1,n=Y,r=0){return{type:4,loc:n,content:e,isStatic:t,constType:t?3:r}}function Q(e,t=Y){return{type:8,loc:t,children:e}}function ee(e,t=[],n=Y){return{type:14,loc:n,callee:e,arguments:t}}function et(e,t,n=!1,r=!1,i=Y){return{type:18,params:e,returns:t,newline:n,isSlot:r,loc:i}}function en(e,t,n,r=!0){return{type:19,test:e,consequent:t,alternate:n,newline:r,loc:Y}}function er(e,{helper:t,removeHelper:n,inSSR:r}){if(!e.isBlock){var i,s;e.isBlock=!0,n((i=e.isComponent,r||i?h:f)),t(u),t((s=e.isComponent,r||s?d:p))}}let ei=new Uint8Array([123,123]),es=new Uint8Array([125,125]);function eo(e){return e>=97&&e<=122||e>=65&&e<=90}function el(e){return 32===e||10===e||9===e||12===e||13===e}function ea(e){return 47===e||62===e||el(e)}function ec(e){let t=new Uint8Array(e.length);for(let n=0;n4===e.type&&e.isStatic;function ex(e){switch(e){case"Teleport":case"teleport":return s;case"Suspense":case"suspense":return o;case"KeepAlive":case"keep-alive":return a;case"BaseTransition":case"base-transition":return c}}let ev=/^\d|[^\$\w\xA0-\uFFFF]/,eb=e=>!ev.test(e),ek=/[A-Za-z_$\xA0-\uFFFF]/,eS=/[\.\?\w$\xA0-\uFFFF]/,e_=/\s+[.[]\s*|\s*[.[]\s+/g,ew=e=>4===e.type?e.content:e.loc.source;n.NOOP;let eE=e=>{let t=ew(e).trim().replace(e_,e=>e.trim()),n=0,r=[],i=0,s=0,o=null;for(let e=0;e|^\s*(async\s+)?function(?:\s+[\w$]+)?\s*\(/;function eC(e,t,r=!1){for(let i=0;i7===e.type&&"bind"===e.name&&(!e.arg||4!==e.arg.type||!e.arg.isStatic))}function eI(e){return 5===e.type||2===e.type}function eN(e){return 7===e.type&&"slot"===e.name}function eM(e){return 1===e.type&&3===e.tagType}function eV(e){return 1===e.type&&2===e.tagType}n.NOOP;let eR=new Set([I,N]);function eL(e,t,r){let i,s,o=13===e.type?e.props:e.arguments[2],l=[];if(o&&!(0,n.isString)(o)&&14===o.type){let e=function e(t,r=[]){if(t&&!(0,n.isString)(t)&&14===t.type){let i=t.callee;if(!(0,n.isString)(i)&&eR.has(i))return e(t.arguments[0],r.concat(t))}return[t,r]}(o);o=e[0],s=(l=e[1])[l.length-1]}if(null==o||(0,n.isString)(o))i=K([t]);else if(14===o.type){let e=o.arguments[0];(0,n.isString)(e)||15!==e.type?o.callee===M?i=ee(r.helper(A),[K([t]),o]):o.arguments.unshift(K([t])):eB(t,e)||e.properties.unshift(t),i||(i=o)}else 15===o.type?(eB(t,o)||o.properties.unshift(t),i=o):(i=ee(r.helper(A),[K([t]),o]),s&&s.callee===N&&(s=l[l.length-2]));13===e.type?s?s.arguments[0]=i:e.props=i:s?s.arguments[0]=i:e.arguments[2]=i}function eB(e,t){let n=!1;if(4===e.key.type){let r=e.key.content;n=t.properties.some(e=>4===e.key.type&&e.key.content===r)}return n}function eP(e,t){return`_${t}_${e.replace(/[^\w]/g,(t,n)=>"-"===t?"_":e.charCodeAt(n).toString())}`}let e$=/([\s\S]*?)\s+(?:in|of)\s+(\S[\s\S]*)/,eF={parseMode:"base",ns:0,delimiters:["{{","}}"],getNamespace:()=>0,isVoidTag:n.NO,isPreTag:n.NO,isIgnoreNewlineTag:n.NO,isCustomElement:n.NO,onError:ef,onWarn:eg,comments:!1,prefixIdentifiers:!1},ez=eF,ej=null,eH="",eU=null,eq=null,eJ="",eY=-1,eG=-1,eW=0,eK=!1,eZ=null,eX=[],eQ=new class{constructor(e,t){this.stack=e,this.cbs=t,this.state=1,this.buffer="",this.sectionStart=0,this.index=0,this.entityStart=0,this.baseState=1,this.inRCDATA=!1,this.inXML=!1,this.inVPre=!1,this.newlines=[],this.mode=0,this.delimiterOpen=ei,this.delimiterClose=es,this.delimiterIndex=-1,this.currentSequence=void 0,this.sequenceIndex=0}get inSFCRoot(){return 2===this.mode&&0===this.stack.length}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=ei,this.delimiterClose=es}getPos(e){let t=1,n=e+1;for(let r=this.newlines.length-1;r>=0;r--){let i=this.newlines[r];if(e>i){t=r+2,n=e-i;break}}return{column:n,line:t,offset:e}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(e){60===e?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):this.inVPre||e!==this.delimiterOpen[0]||(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(e))}stateInterpolationOpen(e){if(e===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){let e=this.index+1-this.delimiterOpen.length;e>this.sectionStart&&this.cbs.ontext(this.sectionStart,e),this.state=3,this.sectionStart=e}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(e)):(this.state=1,this.stateText(e))}stateInterpolation(e){e===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(e))}stateInterpolationClose(e){e===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(e))}stateSpecialStartSequence(e){let t=this.sequenceIndex===this.currentSequence.length;if(t?ea(e):(32|e)===this.currentSequence[this.sequenceIndex]){if(!t)return void this.sequenceIndex++}else this.inRCDATA=!1;this.sequenceIndex=0,this.state=6,this.stateInTagName(e)}stateInRCDATA(e){if(this.sequenceIndex===this.currentSequence.length){if(62===e||el(e)){let t=this.index-this.currentSequence.length;if(this.sectionStart=e||(28===this.state?this.currentSequence===eu.CdataEnd?this.cbs.oncdata(this.sectionStart,e):this.cbs.oncomment(this.sectionStart,e):6===this.state||11===this.state||18===this.state||17===this.state||12===this.state||13===this.state||14===this.state||15===this.state||16===this.state||20===this.state||19===this.state||21===this.state||9===this.state||this.cbs.ontext(this.sectionStart,e))}emitCodePoint(e,t){}}(eX,{onerr:to,ontext(e,t){e4(e2(e,t),e,t)},ontextentity(e,t,n){e4(e,t,n)},oninterpolation(e,t){if(eK)return e4(e2(e,t),e,t);let n=e+eQ.delimiterOpen.length,r=t-eQ.delimiterClose.length;for(;el(eH.charCodeAt(n));)n++;for(;el(eH.charCodeAt(r-1));)r--;let i=e2(n,r);i.includes("&")&&(i=ez.decodeEntities(i,!1)),tn({type:5,content:ts(i,!1,tr(n,r)),loc:tr(e,t)})},onopentagname(e,t){let n=e2(e,t);eU={type:1,tag:n,ns:ez.getNamespace(n,eX[0],ez.ns),tagType:0,props:[],children:[],loc:tr(e-1,t),codegenNode:void 0}},onopentagend(e){e3(e)},onclosetag(e,t){let n=e2(e,t);if(!ez.isVoidTag(n)){let r=!1;for(let e=0;e0&&to(24,eX[0].loc.start.offset);for(let n=0;n<=e;n++)e6(eX.shift(),t,n(7===e.type?e.rawName:e.name)===n)&&to(2,t)},onattribend(e,t){if(eU&&eq){if(ti(eq.loc,t),0!==e)if(eJ.includes("&")&&(eJ=ez.decodeEntities(eJ,!0)),6===eq.type)"class"===eq.name&&(eJ=tt(eJ).trim()),1!==e||eJ||to(13,t),eq.value={type:2,content:eJ,loc:1===e?tr(eY,eG):tr(eY-1,eG+1)},eQ.inSFCRoot&&"template"===eU.tag&&"lang"===eq.name&&eJ&&"html"!==eJ&&eQ.enterRCDATA(ec("{let i=t.start.offset+n,s=i+e.length;return ts(e,!1,tr(i,s),0,+!!r)},l={source:o(s.trim(),n.indexOf(s,i.length)),value:void 0,key:void 0,index:void 0,finalized:!1},a=i.trim().replace(e1,"").trim(),c=i.indexOf(a),u=a.match(e0);if(u){let e;a=a.replace(e0,"").trim();let t=u[1].trim();if(t&&(e=n.indexOf(t,c+a.length),l.key=o(t,e,!0)),u[2]){let r=u[2].trim();r&&(l.index=o(r,n.indexOf(r,l.key?e+t.length:c+a.length),!0))}}return a&&(l.value=o(a,c,!0)),l}(eq.exp));let e=-1;"bind"===eq.name&&(e=eq.modifiers.findIndex(e=>"sync"===e.content))>-1&&(n=ez,eq.loc,eq.arg.loc.source,ep("COMPILER_V_BIND_SYNC",n))&&(eq.name="model",eq.modifiers.splice(e,1))}(7!==eq.type||"pre"!==eq.name)&&eU.props.push(eq)}eJ="",eY=eG=-1},oncomment(e,t){ez.comments&&tn({type:3,content:e2(e,t),loc:tr(e-4,t+3)})},onend(){let e=eH.length;for(let t=0;t64&&n<91||ex(e)||ez.isBuiltInComponent&&ez.isBuiltInComponent(e)||ez.isNativeTag&&!ez.isNativeTag(e))return!0;for(let e=0;e6===e.type&&"inline-template"===e.name);n&&(l=ez,n.loc,ep("COMPILER_INLINE_TEMPLATE",l))&&e.children.length&&(n.value={type:2,content:e2(e.children[0].loc.start.offset,e.children[e.children.length-1].loc.end.offset),loc:n.loc})}}function e8(e,t){let n=e;for(;eH.charCodeAt(n)!==t&&n>=0;)n--;return n}let e9=new Set(["if","else","else-if","for","slot"]);function e5({tag:e,props:t}){if("template"===e){for(let e=0;e3!==e.type);return 1!==t.length||1!==t[0].type||eV(t[0])?null:t[0]}function tc(e,t){let{constantCache:r}=t;switch(e.type){case 1:if(0!==e.tagType)return 0;let i=r.get(e);if(void 0!==i)return i;let s=e.codegenNode;if(13!==s.type||s.isBlock&&"svg"!==e.tag&&"foreignObject"!==e.tag&&"math"!==e.tag)return 0;if(void 0!==s.patchFlag)return r.set(e,0),0;{let n=3,i=td(e,t);if(0===i)return r.set(e,0),0;i1)for(let i=0;i{o--};for(;ot===e:t=>e.test(t);return(e,n)=>{if(1===e.type){let{props:i}=e;if(3===e.tagType&&i.some(eN))return;let s=[];for(let o=0;o`${q[e]}: _${q[e]}`;function ty(e,t,{helper:n,push:r,newline:i,isTS:s}){let o=n("filter"===t?S:"component"===t?x:k);for(let n=0;n3;t.push("["),n&&t.indent(),tv(e,t,n),n&&t.deindent(),t.push("]")}function tv(e,t,r=!1,i=!0){let{push:s,newline:o}=t;for(let l=0;le||"null")}([a,c,g,i,y]),t),s(")"),b&&s(")"),x&&(s(", "),tb(x,t),s(")"))}(e,t);break;case 14:var w=e,E=t;let{push:T,helper:A,pure:O}=E,D=(0,n.isString)(w.callee)?w.callee:A(w.callee);O&&T(tg),T(D+"(",-2,w),tv(w.arguments,E),T(")");break;case 15:!function(e,t){let{push:n,indent:r,deindent:i,newline:s}=t,{properties:o}=e;if(!o.length)return n("{}",-2,e);let l=o.length>1;n(l?"{":"{ "),l&&r();for(let e=0;e "),(z||$)&&(M("{"),V()),P?(z&&M("return "),(0,n.isArray)(P)?tx(P,N):tb(P,N)):$&&tb($,N),(z||$)&&(R(),M("}")),j&&(I.isNonScopedSlot&&M(", undefined, true"),M(")"));break;case 19:var H=e,U=t;let{test:J,consequent:Y,alternate:G,newline:W}=H,{push:K,indent:Z,deindent:X,newline:Q}=U;if(4===J.type){let e=!eb(J.content);e&&K("("),tk(J,U),e&&K(")")}else K("("),tb(J,U),K(")");W&&Z(),U.indentLevel++,W||K(" "),K("? "),tb(Y,U),U.indentLevel--,W&&Q(),W||K(" "),K(": ");let ee=19===G.type;!ee&&U.indentLevel++,tb(G,U),!ee&&U.indentLevel--,W&&X(!0);break;case 20:var et=e,en=t;let{push:er,helper:ei,indent:es,deindent:eo,newline:el}=en,{needPauseTracking:ea,needArraySpread:ec}=et;ec&&er("[...("),er(`_cache[${et.index}] || (`),ea&&(es(),er(`${ei(B)}(-1`),et.inVOnce&&er(", true"),er("),"),el(),er("(")),er(`_cache[${et.index}] = `),tb(et.value,en),ea&&(er(`).cacheIndex = ${et.index},`),el(),er(`${ei(B)}(1),`),el(),er(`_cache[${et.index}]`),eo()),er(")"),ec&&er(")]");break;case 21:tv(e.body,t,!0,!1)}}function tk(e,t){let{content:n,isStatic:r}=e;t.push(r?JSON.stringify(n):n,-3,e)}function tS(e,t){for(let r=0;r(function(e,t,n,r){if("else"!==t.name&&(!t.exp||!t.exp.content.trim())){let r=t.exp?t.exp.loc:e.loc;n.onError(em(28,t.loc)),t.exp=X("true",!1,r)}if("if"===t.name){var i;let s=tw(e,t),o={type:9,loc:tr((i=e.loc).start.offset,i.end.offset),branches:[s]};if(n.replaceNode(o),r)return r(o,s,!0)}else{let i=n.parent.children,s=i.indexOf(e);for(;s-- >=-1;){let o=i[s];if(o&&3===o.type||o&&2===o.type&&!o.content.trim().length){n.removeNode(o);continue}if(o&&9===o.type){"else-if"===t.name&&void 0===o.branches[o.branches.length-1].condition&&n.onError(em(30,e.loc)),n.removeNode();let i=tw(e,t);o.branches.push(i);let s=r&&r(o,i,!1);th(i,n),s&&s(),n.currentNode=null}else n.onError(em(30,e.loc));break}}})(e,t,n,(e,t,r)=>{let i=n.parent.children,s=i.indexOf(e),o=0;for(;s-- >=0;){let e=i[s];e&&9===e.type&&(o+=e.branches.length)}return()=>{r?e.codegenNode=tE(t,o,n):function(e){for(;;)if(19===e.type)if(19!==e.alternate.type)return e;else e=e.alternate;else 20===e.type&&(e=e.value)}(e.codegenNode).alternate=tE(t,o+e.branches.length-1,n)}}));function tw(e,t){let n=3===e.tagType;return{type:10,loc:e.loc,condition:"else"===t.name?void 0:t.exp,children:n&&!eC(e,"for")?e.children:[e],userKey:eA(e,"key"),isTemplateIf:n}}function tE(e,t,n){return e.condition?en(e.condition,tT(e,t,n),ee(n.helper(g),['""',"true"])):tT(e,t,n)}function tT(e,t,n){let{helper:r}=n,s=Z("key",X(`${t}`,!1,Y,2)),{children:o}=e,l=o[0];if(1!==o.length||1!==l.type)if(1!==o.length||11!==l.type)return G(n,r(i),K([s]),o,64,void 0,void 0,!0,!1,!1,e.loc);else{let e=l.codegenNode;return eL(e,s,n),e}{let e=l.codegenNode,t=14===e.type&&e.callee===H?e.arguments[1].returns:e;return 13===t.type&&er(t,n),eL(t,s,n),e}}let tC=(e,t,r)=>{let{modifiers:i,loc:s}=e,o=e.arg,{exp:l}=e;if(l&&4===l.type&&!l.content.trim()&&(l=void 0),!l){if(4!==o.type||!o.isStatic)return r.onError(em(52,o.loc)),{props:[Z(o,X("",!0,s))]};tA(e),l=e.exp}return 4!==o.type?(o.children.unshift("("),o.children.push(') || ""')):o.isStatic||(o.content=`${o.content} || ""`),i.some(e=>"camel"===e.content)&&(4===o.type?o.isStatic?o.content=(0,n.camelize)(o.content):o.content=`${r.helperString(V)}(${o.content})`:(o.children.unshift(`${r.helperString(V)}(`),o.children.push(")"))),!r.inSSR&&(i.some(e=>"prop"===e.content)&&tO(o,"."),i.some(e=>"attr"===e.content)&&tO(o,"^")),{props:[Z(o,l)]}},tA=(e,t)=>{let r=e.arg;e.exp=X((0,n.camelize)(r.content),!1,r.loc)},tO=(e,t)=>{4===e.type?e.isStatic?e.content=t+e.content:e.content=`\`${t}\${${e.content}}\``:(e.children.unshift(`'${t}' + (`),e.children.push(")"))},tD=tf("for",(e,t,n)=>{let{helper:r,removeHelper:s}=n;return function(e,t,n,r){if(!t.exp)return void n.onError(em(31,t.loc));let i=t.forParseResult;if(!i)return void n.onError(em(32,t.loc));tI(i,n);let{addIdentifiers:s,removeIdentifiers:o,scopes:l}=n,{source:a,value:c,key:u,index:d}=i,p={type:11,loc:t.loc,source:a,valueAlias:c,keyAlias:u,objectIndexAlias:d,parseResult:i,children:eM(e)?e.children:[e]};n.replaceNode(p),l.vFor++;let h=r&&r(p);return()=>{l.vFor--,h&&h()}}(e,t,n,t=>{let o=ee(r(w),[t.source]),l=eM(e),a=eC(e,"memo"),c=eA(e,"key",!1,!0);c&&7===c.type&&!c.exp&&tA(c);let g=c&&(6===c.type?c.value?X(c.value.content,!0):void 0:c.exp),m=c&&g?Z("key",g):null,y=4===t.source.type&&t.source.constType>0,x=y?64:c?128:256;return t.codegenNode=G(n,r(i),void 0,o,x,void 0,void 0,!0,!y,!1,e.loc),()=>{let c,{children:x}=t,b=1!==x.length||1!==x[0].type,k=eV(e)?e:l&&1===e.children.length&&eV(e.children[0])?e.children[0]:null;if(k)c=k.codegenNode,l&&m&&eL(c,m,n);else if(b)c=G(n,r(i),m?K([m]):void 0,e.children,64,void 0,void 0,!0,void 0,!1);else{var S,_,w,E,T,C,A,O;c=x[0].codegenNode,l&&m&&eL(c,m,n),!y!==c.isBlock&&(c.isBlock?(s(u),s((S=n.inSSR,_=c.isComponent,S||_?d:p))):s((w=n.inSSR,E=c.isComponent,w||E?h:f))),(c.isBlock=!y,c.isBlock)?(r(u),r((T=n.inSSR,C=c.isComponent,T||C?d:p))):r((A=n.inSSR,O=c.isComponent,A||O?h:f))}if(a){let e=et(tN(t.parseResult,[X("_cached")]));e.body={type:21,body:[Q(["const _memo = (",a.exp,")"]),Q(["if (_cached",...g?[" && _cached.key === ",g]:[],` && ${n.helperString(U)}(_cached, _memo)) return _cached`]),Q(["const _item = ",c]),X("_item.memo = _memo"),X("return _item")],loc:Y},o.arguments.push(e,X("_cache"),X(String(n.cached.length))),n.cached.push(null)}else o.arguments.push(et(tN(t.parseResult),c,!0))}})});function tI(e,t){e.finalized||(e.finalized=!0)}function tN({value:e,key:t,index:n},r=[]){var i=[e,t,n,...r];let s=i.length;for(;s--&&!i[s];);return i.slice(0,s+1).map((e,t)=>e||X("_".repeat(t+1),!1))}let tM=X("undefined",!1),tV=(e,t)=>{if(1===e.type&&(1===e.tagType||3===e.tagType)){let n=eC(e,"slot");if(n)return n.exp,t.scopes.vSlot++,()=>{t.scopes.vSlot--}}};function tR(e,t,n){let r=[Z("name",e),Z("fn",t)];return null!=n&&r.push(Z("key",X(String(n),!0))),K(r)}function tL(e){return 2!==e.type&&12!==e.type||(2===e.type?!!e.content.trim():tL(e.content))}let tB=new WeakMap,tP=(e,t)=>function(){let r,i,l,c,u;if(1!==(e=t.currentNode).type||0!==e.tagType&&1!==e.tagType)return;let{tag:d,props:p}=e,h=1===e.tagType,f=h?function(e,t,n=!1){let{tag:r}=e,i=tz(r),s=eA(e,"is",!1,!0);if(s)if(i||ep("COMPILER_IS_ON_ELEMENT",t)){let e;if(6===s.type?e=s.value&&X(s.value.content,!0):(e=s.exp)||(e=X("is",!1,s.arg.loc)),e)return ee(t.helper(b),[e])}else 6===s.type&&s.value.content.startsWith("vue:")&&(r=s.value.content.slice(4));let o=ex(r)||t.isBuiltInComponent(r);return o?(n||t.helper(o),o):(t.helper(x),t.components.add(r),eP(r,"component"))}(e,t):`"${d}"`,g=(0,n.isObject)(f)&&f.callee===b,m=0,y=g||f===s||f===o||!h&&("svg"===d||"foreignObject"===d||"math"===d);if(p.length>0){let n=t$(e,t,void 0,h,g);r=n.props,m=n.patchFlag,c=n.dynamicPropNames;let i=n.directives;u=i&&i.length?W(i.map(e=>(function(e,t){let n=[],r=tB.get(e);r?n.push(t.helperString(r)):(t.helper(k),t.directives.add(e.name),n.push(eP(e.name,"directive")));let{loc:i}=e;if(e.exp&&n.push(e.exp),e.arg&&(e.exp||n.push("void 0"),n.push(e.arg)),Object.keys(e.modifiers).length){e.arg||(e.exp||n.push("void 0"),n.push("void 0"));let t=X("true",!1,i);n.push(K(e.modifiers.map(e=>Z(e,t)),i))}return W(n,e.loc)})(e,t))):void 0,n.shouldUseBlock&&(y=!0)}if(e.children.length>0)if(f===a&&(y=!0,m|=1024),h&&f!==s&&f!==a){let{slots:n,hasDynamicSlots:r}=function(e,t,n=(e,t,n,r)=>et(e,n,!1,!0,n.length?n[0].loc:r)){t.helper(F);let{children:r,loc:i}=e,s=[],o=[],l=t.scopes.vSlot>0||t.scopes.vFor>0,a=eC(e,"slot",!0);if(a){let{arg:e,exp:t}=a;e&&!ey(e)&&(l=!0),s.push(Z(e||X("default",!0),n(t,void 0,r,i)))}let c=!1,u=!1,d=[],p=new Set,h=0;for(let e=0;e{let s=n(e,void 0,r,i);return t.compatConfig&&(s.isNonScopedSlot=!0),Z("default",s)};c?d.length&&d.some(e=>tL(e))&&(u?t.onError(em(39,d[0].loc)):s.push(e(void 0,d))):s.push(e(void 0,r))}let f=l?2:!function e(t){for(let n=0;n0,g=!1,m=0,y=!1,x=!1,b=!1,k=!1,S=!1,_=!1,w=[],E=e=>{d.length&&(p.push(K(tF(d),c)),d=[]),e&&p.push(e)},T=()=>{t.scopes.vFor>0&&d.push(Z(X("ref_for",!0),X("true")))},C=({key:e,value:r})=>{if(ey(e)){let o=e.content,l=(0,n.isOn)(o);l&&(!i||s)&&"onclick"!==o.toLowerCase()&&"onUpdate:modelValue"!==o&&!(0,n.isReservedProp)(o)&&(k=!0),l&&(0,n.isReservedProp)(o)&&(_=!0),l&&14===r.type&&(r=r.arguments[0]),20===r.type||(4===r.type||8===r.type)&&tc(r,t)>0||("ref"===o?y=!0:"class"===o?x=!0:"style"===o?b=!0:"key"===o||w.includes(o)||w.push(o),i&&("class"===o||"style"===o)&&!w.includes(o)&&w.push(o))}else S=!0};for(let s=0;s"prop"===e.content)&&(m|=32);let _=t.directiveTransforms[r];if(_){let{props:r,needRuntime:i}=_(l,e,t);o||r.forEach(C),k&&s&&!ey(s)?E(K(r,c)):d.push(...r),i&&(h.push(l),(0,n.isSymbol)(i)&&tB.set(l,i))}else!(0,n.isBuiltInDirective)(r)&&(h.push(l),f&&(g=!0))}}if(p.length?(E(),l=p.length>1?ee(t.helper(A),p,c):p[0]):d.length&&(l=K(tF(d),c)),S?m|=16:(x&&!i&&(m|=2),b&&!i&&(m|=4),w.length&&(m|=8),k&&(m|=32)),!g&&(0===m||32===m)&&(y||_||h.length>0)&&(m|=512),!t.inSSR&&l)switch(l.type){case 15:let V=-1,R=-1,L=!1;for(let e=0;e{if(eV(e)){let{children:r,loc:i}=e,{slotName:s,slotProps:o}=function(e,t){let r,i='"default"',s=[];for(let t=0;t0){let{props:n,directives:i}=t$(e,t,s,!1,!1);r=n,i.length&&t.onError(em(36,i[0].loc))}return{slotName:i,slotProps:r}}(e,t),l=[t.prefixIdentifiers?"_ctx.$slots":"$slots",s,"{}","undefined","true"],a=2;o&&(l[2]=o,a=3),r.length&&(l[3]=et([],r,!1,!1,i),a=4),t.scopeId&&!t.slotted&&(a=5),l.splice(a),e.codegenNode=ee(t.helper(E),l,i)}},tH=(e,t,r,i)=>{let s,{loc:o,modifiers:l,arg:a}=e;if(e.exp||l.length||r.onError(em(35,o)),4===a.type)if(a.isStatic){let e=a.content;e.startsWith("vue:")&&(e=`vnode-${e.slice(4)}`),s=X(0!==t.tagType||e.startsWith("vnode")||!/[A-Z]/.test(e)?(0,n.toHandlerKey)((0,n.camelize)(e)):`on:${e}`,!0,a.loc)}else s=Q([`${r.helperString(L)}(`,a,")"]);else(s=a).children.unshift(`${r.helperString(L)}(`),s.children.push(")");let c=e.exp;c&&!c.content.trim()&&(c=void 0);let u=r.cacheHandlers&&!c&&!r.inVOnce;if(c){let e,t=eE(c),n=!(t||(e=c,eT.test(ew(e)))),r=c.content.includes(";");(n||u&&t)&&(c=Q([`${n?"$event":"(...args)"} => ${r?"{":"("}`,c,r?"}":")"]))}let d={props:[Z(s,c||X("() => {}",!1,o))]};return i&&(d=i(d)),u&&(d.props[0].value=r.cache(d.props[0].value)),d.props.forEach(e=>e.key.isHandlerKey=!0),d},tU=(e,t)=>{if(0===e.type||1===e.type||11===e.type||10===e.type)return()=>{let n,r=e.children,i=!1;for(let e=0;e7===e.type&&!t.directiveTransforms[e.name])||"template"===e.tag)))for(let e=0;e{if(1===e.type&&eC(e,"once",!0)&&!tq.has(e)&&!t.inVOnce&&!t.inSSR)return tq.add(e),t.inVOnce=!0,t.helper(B),()=>{t.inVOnce=!1;let e=t.currentNode;e.codegenNode&&(e.codegenNode=t.cache(e.codegenNode,!0,!0))}},tY=(e,t,r)=>{let i,{exp:s,arg:o}=e;if(!s)return r.onError(em(41,e.loc)),tG();let l=s.loc.source.trim(),a=4===s.type?s.content:l,c=r.bindingMetadata[l];if("props"===c||"props-aliased"===c)return r.onError(em(44,s.loc)),tG();if(!a.trim()||!eE(s))return r.onError(em(42,s.loc)),tG();let u=o||X("modelValue",!0),d=o?ey(o)?`onUpdate:${(0,n.camelize)(o.content)}`:Q(['"onUpdate:" + ',o]):"onUpdate:modelValue",p=r.isTS?"($event: any)":"$event";i=Q([`${p} => ((`,s,") = $event)"]);let h=[Z(u,e.exp),Z(d,i)];if(e.modifiers.length&&1===t.tagType){let t=e.modifiers.map(e=>e.content).map(e=>(eb(e)?e:JSON.stringify(e))+": true").join(", "),n=o?ey(o)?`${o.content}Modifiers`:Q([o,' + "Modifiers"']):"modelModifiers";h.push(Z(n,X(`{ ${t} }`,!1,e.loc,2)))}return tG(h)};function tG(e=[]){return{props:e}}let tW=/[\w).+\-_$\]]/,tK=(e,t)=>{ep("COMPILER_FILTERS",t)&&(5===e.type?tZ(e.content,t):1===e.type&&e.props.forEach(e=>{7===e.type&&"for"!==e.name&&e.exp&&tZ(e.exp,t)}))};function tZ(e,t){if(4===e.type)tX(e,t);else for(let n=0;n=0&&" "===(e=n.charAt(t));t--);e&&tW.test(e)||(o=!0)}}else void 0===f?(u=h+1,f=n.slice(0,h).trim()):m();function m(){g.push(n.slice(u,h).trim()),u=h+1}if(void 0===f?f=n.slice(0,h).trim():0!==u&&m(),g.length){for(h=0;h{if(1===e.type){let n=eC(e,"memo");if(!(!n||tQ.has(e)))return tQ.add(e),()=>{let r=e.codegenNode||t.currentNode.codegenNode;r&&13===r.type&&(1!==e.tagType&&er(r,t),e.codegenNode=ee(t.helper(H),[n.exp,et(void 0,r),"_cache",String(t.cached.length)]),t.cached.push(null))}}};function t1(e,t={}){let r=t.onError||ef,s="module"===t.mode;!0===t.prefixIdentifiers?r(em(47)):s&&r(em(48)),t.cacheHandlers&&r(em(49)),t.scopeId&&!s&&r(em(50));let o=(0,n.extend)({},t,{prefixIdentifiers:!1}),l=(0,n.isString)(e)?tl(e,o):e,[a,c]=[[tJ,t_,t0,tD,tK,tj,tP,tV,tU],{on:tH,bind:tC,model:tY}];var u=(0,n.extend)({},o,{nodeTransforms:[...a,...t.nodeTransforms||[]],directiveTransforms:(0,n.extend)({},c,t.directiveTransforms||{})});let d=function(e,{filename:t="",prefixIdentifiers:r=!1,hoistStatic:i=!1,hmr:s=!1,cacheHandlers:o=!1,nodeTransforms:l=[],directiveTransforms:a={},transformHoist:c=null,isBuiltInComponent:u=n.NOOP,isCustomElement:d=n.NOOP,expressionPlugins:p=[],scopeId:h=null,slotted:f=!0,ssr:g=!1,inSSR:m=!1,ssrCssVars:y="",bindingMetadata:x=n.EMPTY_OBJ,inline:b=!1,isTS:k=!1,onError:S=ef,onWarn:_=eg,compatConfig:w}){let E=t.replace(/\?.*$/,"").match(/([^/\\]+)\.\w+$/),T={filename:t,selfName:E&&(0,n.capitalize)((0,n.camelize)(E[1])),prefixIdentifiers:r,hoistStatic:i,hmr:s,cacheHandlers:o,nodeTransforms:l,directiveTransforms:a,transformHoist:c,isBuiltInComponent:u,isCustomElement:d,expressionPlugins:p,scopeId:h,slotted:f,ssr:g,inSSR:m,ssrCssVars:y,bindingMetadata:x,inline:b,isTS:k,onError:S,onWarn:_,compatConfig:w,root:e,helpers:new Map,components:new Set,directives:new Set,hoists:[],imports:[],cached:[],constantCache:new WeakMap,temps:0,identifiers:Object.create(null),scopes:{vFor:0,vSlot:0,vPre:0,vOnce:0},parent:null,grandParent:null,currentNode:e,childIndex:0,inVOnce:!1,helper(e){let t=T.helpers.get(e)||0;return T.helpers.set(e,t+1),e},removeHelper(e){let t=T.helpers.get(e);if(t){let n=t-1;n?T.helpers.set(e,n):T.helpers.delete(e)}},helperString:e=>`_${q[T.helper(e)]}`,replaceNode(e){T.parent.children[T.childIndex]=T.currentNode=e},removeNode(e){let t=T.parent.children,n=e?t.indexOf(e):T.currentNode?T.childIndex:-1;e&&e!==T.currentNode?T.childIndex>n&&(T.childIndex--,T.onNodeRemoved()):(T.currentNode=null,T.onNodeRemoved()),T.parent.children.splice(n,1)},onNodeRemoved:n.NOOP,addIdentifiers(e){},removeIdentifiers(e){},hoist(e){(0,n.isString)(e)&&(e=X(e)),T.hoists.push(e);let t=X(`_hoisted_${T.hoists.length}`,!1,e.loc,2);return t.hoisted=e,t},cache(e,t=!1,n=!1){let r=function(e,t,n=!1,r=!1){return{type:20,index:e,value:t,needPauseTracking:n,inVOnce:r,needArraySpread:!1,loc:Y}}(T.cached.length,e,t,n);return T.cached.push(r),r}};return T.filters=new Set,T}(l,u);return th(l,d),u.hoistStatic&&function e(t,r,i,s=!1,o=!1){let{children:l}=t,a=[];for(let n=0;n0){if(e>=2){r.codegenNode.patchFlag=-1,a.push(r);continue}}else{let e=r.codegenNode;if(13===e.type){let t=e.patchFlag;if((void 0===t||512===t||1===t)&&td(r,i)>=2){let t=tp(r);t&&(e.props=i.hoist(t))}e.dynamicProps&&(e.dynamicProps=i.hoist(e.dynamicProps))}}}else if(12===r.type&&(s?0:tc(r,i))>=2){a.push(r);continue}if(1===r.type){let n=1===r.tagType;n&&i.scopes.vSlot++,e(r,t,i,!1,o),n&&i.scopes.vSlot--}else if(11===r.type)e(r,t,i,1===r.children.length,!0);else if(9===r.type)for(let n=0;ne.key===t||e.key.content===t);return n&&n.value}}u.length&&1===t.type&&1===t.tagType&&t.codegenNode&&13===t.codegenNode.type&&t.codegenNode.children&&!(0,n.isArray)(t.codegenNode.children)&&15===t.codegenNode.children.type&&t.codegenNode.children.properties.push(Z("__",X(JSON.stringify(u),!1))),a.length&&i.transformHoist&&i.transformHoist(l,i,t)}(l,void 0,d,!!ta(l)),u.ssr||function(e,t){let{helper:n}=t,{children:r}=e;if(1===r.length){let n=ta(e);if(n&&n.codegenNode){let r=n.codegenNode;13===r.type&&er(r,t),e.codegenNode=r}else e.codegenNode=r[0]}else r.length>1&&(e.codegenNode=G(t,n(i),void 0,e.children,64,void 0,void 0,!0,void 0,!1))}(l,d),l.helpers=new Set([...d.helpers.keys()]),l.components=[...d.components],l.directives=[...d.directives],l.imports=d.imports,l.hoists=d.hoists,l.temps=d.temps,l.cached=d.cached,l.transformed=!0,l.filters=[...d.filters],function(e,t={}){let n=function(e,{mode:t="function",prefixIdentifiers:n="module"===t,sourceMap:r=!1,filename:i="template.vue.html",scopeId:s=null,optimizeImports:o=!1,runtimeGlobalName:l="Vue",runtimeModuleName:a="vue",ssrRuntimeModuleName:c="vue/server-renderer",ssr:u=!1,isTS:d=!1,inSSR:p=!1}){let h={mode:t,prefixIdentifiers:n,sourceMap:r,filename:i,scopeId:s,optimizeImports:o,runtimeGlobalName:l,runtimeModuleName:a,ssrRuntimeModuleName:c,ssr:u,isTS:d,inSSR:p,source:e.source,code:"",column:1,line:1,offset:0,indentLevel:0,pure:!1,map:void 0,helper:e=>`_${q[e]}`,push(e,t=-2,n){h.code+=e},indent(){f(++h.indentLevel)},deindent(e=!1){e?--h.indentLevel:f(--h.indentLevel)},newline(){f(h.indentLevel)}};function f(e){h.push("\n"+" ".repeat(e),0)}return h}(e,t);t.onContextCreated&&t.onContextCreated(n);let{mode:r,push:i,prefixIdentifiers:s,indent:o,deindent:l,newline:a,scopeId:c,ssr:u}=n,d=Array.from(e.helpers),p=d.length>0,x=!s&&"module"!==r;var b=e,k=n;let{ssr:S,prefixIdentifiers:_,push:w,newline:E,runtimeModuleName:T,runtimeGlobalName:C,ssrRuntimeModuleName:A}=k,O=Array.from(b.helpers);if(O.length>0&&(w(`const _Vue = ${C} +`,-1),b.hoists.length)){let e=[h,f,g,m,y].filter(e=>O.includes(e)).map(tm).join(", ");w(`const { ${e} } = _Vue +`,-1)}(function(e,t){if(!e.length)return;t.pure=!0;let{push:n,newline:r}=t;r();for(let i=0;i0)&&a()),e.directives.length&&(ty(e.directives,"directive",n),e.temps>0&&a()),e.filters&&e.filters.length&&(a(),ty(e.filters,"filter",n),a()),e.temps>0){i("let ");for(let t=0;t0?", ":""}_temp${t}`)}return(e.components.length||e.directives.length||e.temps)&&(i(` -`,0),a()),u||i("return "),e.codegenNode?tb(e.codegenNode,n):i("null"),x&&(l(),i("}")),l(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(l,o)}let t3=()=>({props:[]})}),u("6VrmS",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("13ZGu",function(e,t){i(e.exports),s(e.exports,"default",function(){return o});var n=c("9J6tU"),r=c("gQG4c"),o={name:"ChatInput",components:{"dynamic-form":n.default},mixins:[r.IconManagerMixin],props:{currentMessage:{type:String,default:""},isLoading:{type:Boolean,default:!1},placeholder:{type:String,default:"Typ je bericht hier... - Enter om te verzenden, Shift+Enter voor nieuwe regel"},maxLength:{type:Number,default:2e3},formData:{type:Object,default:null}},emits:["send-message","update-message","submit-form"],data(){return{localMessage:this.currentMessage,formValues:{},translatedPlaceholder:this.placeholder,isTranslating:!1,languageChangeHandler:null}},computed:{characterCount(){return this.localMessage.length},isOverLimit(){return this.characterCount>this.maxLength},hasFormData(){return this.formData&&this.formData.fields&&(Array.isArray(this.formData.fields)&&this.formData.fields.length>0||"object"==typeof this.formData.fields&&Object.keys(this.formData.fields).length>0)},canSend(){let e=this.formData&&this.validateForm(),t=this.localMessage.trim()&&!this.isOverLimit;return!this.isLoading&&(e||t)},hasFormDataToSend(){return this.formData&&this.validateForm()},sendButtonText(){return this.isLoading?"Verzenden...":this.formData?"Verstuur formulier":"Verstuur bericht"}},watch:{"formData.icon":{handler(e){e&&window.iconManager&&window.iconManager.ensureIconsLoaded({},[e])},immediate:!0},formData:{handler(e,t){if(console.log("ChatInput formData changed:",e),!e){console.log("FormData is null of undefined"),this.formValues={};return}if(!e.fields)return void console.error("FormData bevat geen velden!",e);console.log("Velden in formData:",e.fields),console.log("Aantal velden:",Array.isArray(e.fields)?e.fields.length:Object.keys(e.fields).length),this.initFormValues(),console.log("Formulierwaarden geïnitialiseerd:",this.formValues)},immediate:!0,deep:!0},currentMessage(e){this.localMessage=e},localMessage(e){this.$emit("update-message",e),this.autoResize()}},created(){this.languageChangeHandler=e=>{e.detail&&e.detail.language&&this.handleLanguageChange(e)},document.addEventListener("language-changed",this.languageChangeHandler)},mounted(){this.autoResize(),console.log("ChatInput mounted, formData:",this.formData),this.formData&&console.log("FormData bij mount:",JSON.stringify(this.formData))},beforeUnmount(){this.languageChangeHandler&&document.removeEventListener("language-changed",this.languageChangeHandler)},methods:{handleLanguageChange(e){e.detail&&e.detail.language&&this.translatePlaceholder(e.detail.language)},async translatePlaceholder(e){if(this.isTranslating)return void console.log("Placeholder vertaling al bezig, overslaan...");this.isTranslating=!0;let t=this.placeholder;try{if(!window.TranslationClient||"function"!=typeof window.TranslationClient.translate)return void console.error("TranslationClient.translate is niet beschikbaar voor placeholder");let n=window.chatConfig?.apiPrefix||"",r=await window.TranslationClient.translate(t,e,null,"chat_input_placeholder",n);r.success?this.translatedPlaceholder=r.translated_text:console.error("Vertaling placeholder mislukt:",r.error)}catch(e){console.error("Fout bij vertalen placeholder:",e)}finally{this.isTranslating=!1}},initFormValues(){this.formData&&this.formData.fields&&(console.log("Initializing form values for fields:",this.formData.fields),this.formValues={},Array.isArray(this.formData.fields)?this.formData.fields.forEach(e=>{let t=e.id||e.name;t&&(this.formValues[t]=void 0!==e.default?e.default:"")}):"object"==typeof this.formData.fields&&Object.entries(this.formData.fields).forEach(([e,t])=>{this.formValues[e]=void 0!==t.default?t.default:""}),console.log("Initialized form values:",this.formValues))},handleKeydown(e){"Enter"!==e.key||e.shiftKey?"Escape"===e.key&&(this.localMessage=""):(e.preventDefault(),this.sendMessage())},sendMessage(){this.canSend&&(this.formData?this.validateForm()&&this.$emit("submit-form",this.formValues):this.localMessage.trim()&&this.$emit("send-message"))},getFormValuesForSending(){return this.formValues},resetForm(){this.formValues={},this.initFormValues()},cancelForm(){this.formValues={}},validateForm(){if(!this.formData||!this.formData.fields)return!1;let e=[];return Array.isArray(this.formData.fields)?e=this.formData.fields.filter(e=>{if(!e.required)return!1;let t=e.id||e.name,n=this.formValues[t];return null==n||"string"==typeof n&&!n.trim()}):Object.entries(this.formData.fields).forEach(([t,n])=>{if(n.required){let r=this.formValues[t];null!=r&&("string"!=typeof r||r.trim())||e.push(n)}}),0===e.length},autoResize(){this.$nextTick(()=>{let e=this.$refs.messageInput;e&&(e.style.height="auto",e.style.height=Math.min(e.scrollHeight,120)+"px")})},focusInput(){this.$refs.messageInput?.focus()},clearInput(){this.localMessage="",this.focusInput()},updateFormValues(e){JSON.stringify(e)!==JSON.stringify(this.formValues)&&(this.formValues=JSON.parse(JSON.stringify(e)))}}}}),u("9J6tU",function(e,t){let n;s(e.exports,"default",function(){return r}),(n=c("lrkvW")).__esModule&&(n=n.default),n.render=c("dfeQd").render,n.__cssModules={},c("bpKaV").default(n),n.__scopeId="data-v-97c80a",n.__file="DynamicForm.vue";var r=n}),u("lrkvW",function(e,t){i(e.exports),s(e.exports,"default",function(){return n});var n={name:"DynamicForm",components:{"form-field":c("70gdv").default},props:{formData:{type:Object,required:!0,validator:e=>e&&"object"==typeof e?e.title||e.name?e.fields?Array.isArray(e.fields)||"object"==typeof e.fields?(console.log("FormData is geldig:",e),!0):(console.error("FormData.fields is geen array of object"),!1):(console.error("FormData heeft geen fields eigenschap"),!1):(console.error("FormData heeft geen title of name"),!1):(console.error("FormData is niet een geldig object"),!1)},formValues:{type:Object,default:()=>({})},isSubmitting:{type:Boolean,default:!1},readOnly:{type:Boolean,default:!1},hideActions:{type:Boolean,default:!1}},emits:["submit","cancel","update:formValues"],data(){return{localFormValues:{...this.formValues}}},computed:{isFormValid(){let e=[];return Array.isArray(this.formData.fields)?this.formData.fields.forEach(t=>{let n=t.id||t.name;if(t.required){let r=this.localFormValues[n];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(t.name)}}):Object.entries(this.formData.fields).forEach(([t,n])=>{if(n.required){let r=this.localFormValues[t];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(n.name)}}),0===e.length}},watch:{formValues:{handler(e){JSON.stringify(e)!==JSON.stringify(this.localFormValues)&&(this.localFormValues=JSON.parse(JSON.stringify(e)))},deep:!0},localFormValues:{handler(e){JSON.stringify(e)!==JSON.stringify(this.formValues)&&this.$emit("update:formValues",JSON.parse(JSON.stringify(e)))},deep:!0},"formData.icon":{handler(e){e&&window.iconManager&&window.iconManager.loadIcon(e)},immediate:!0}},created(){window.iconManager&&this.formData&&this.formData.icon&&window.iconManager.loadIcon(this.formData.icon)},methods:{updateFieldValue(e,t){this.localFormValues={...this.localFormValues,[e]:t}},handleSubmit(){let e=[];if(Array.isArray(this.formData.fields)?this.formData.fields.forEach(t=>{let n=t.id||t.name;if(t.required){let r=this.localFormValues[n];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(t.name)}}):Object.entries(this.formData.fields).forEach(([t,n])=>{if(n.required){let r=this.localFormValues[t];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(n.name)}}),e.length>0)return void alert(`De volgende velden zijn verplicht: ${e.join(", ")}`);this.$emit("submit",this.localFormValues)},handleCancel(){this.$emit("cancel")},getFieldsForDisplay(){if(Array.isArray(this.formData.fields)){let e={};return this.formData.fields.forEach(t=>{e[t.id||t.name]=t}),e}return this.formData.fields},formatFieldValue(e,t){let n=this.localFormValues[e];return null==n?"-":"boolean"===t.type?n?"Ja":"Nee":"enum"===t.type&&!n&&t.default?t.default:n.toString()}}}}),u("70gdv",function(e,t){let n;s(e.exports,"default",function(){return r}),(n=c("8cmof")).__esModule&&(n=n.default),n.render=c("58B43").render,n.__cssModules={},c("hvpzC").default(n),n.__scopeId="data-v-5d4747",n.__file="FormField.vue";var r=n}),u("8cmof",function(e,t){i(e.exports),s(e.exports,"default",function(){return n});var n={name:"FormField",props:{field:{type:Object,required:!0,validator:e=>e.name&&e.type},fieldId:{type:String,required:!0},modelValue:{default:null}},emits:["update:modelValue"],computed:{value:{get(){return void 0===this.modelValue||null===this.modelValue?"boolean"===this.field.type?!0===this.field.default:void 0!==this.field.default?this.field.default:"":this.modelValue},set(e){JSON.stringify(e)!==JSON.stringify(this.modelValue)&&this.$emit("update:modelValue",e)}},fieldType(){return({str:"text",string:"text",int:"number",integer:"number",float:"number",text:"textarea",enum:"select",options:"radio",boolean:"checkbox",file:"file",date:"date",time:"time",email:"email",url:"url"})[this.field.type]||this.field.type},stepValue(){return"float"===this.field.type?"any":1},description(){return this.field.description||""}},methods:{handleFileUpload(e){let t=e.target.files[0];t&&(this.value=t)}}}}),u("58B43",function(e,t){s(e.exports,"render",function(){return I}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO"),i=c("fNp5a");let o={class:"form-field",style:{"margin-bottom":"15px",display:"grid","grid-template-columns":"35% 65%","align-items":"center"}},l=["for"],a={key:0,class:"required",style:{color:"#d93025","margin-left":"2px"}},u={style:{width:"100%"}},d={key:0,class:"field-context",style:{"margin-bottom":"8px","font-size":"0.9em",color:"#666","background-color":"#f8f9fa",padding:"8px","border-radius":"4px","border-left":"3px solid #4285f4"}},p=["id","required","placeholder","title"],h=["id","required","step","placeholder","title"],f=["id","required","rows","placeholder","title"],g=["id","required","title"],m=["value"],y={key:5,class:"radio-group",style:{display:"flex","flex-direction":"column",gap:"8px"}},x=["name","value","required"],b={key:6,class:"checkbox-container",style:{display:"flex","align-items":"center"}},k={class:"checkbox-label",style:{display:"flex","align-items":"center",cursor:"pointer"}},S=["id","required"],_={class:"checkbox-text"},w={key:0,class:"required",style:{color:"#d93025","margin-left":"2px"}},D=["id","required","accept","title"],E=["id","required","title"],C=["id","required","title"],T=["id","required","placeholder","title"],A=["id","required","placeholder","title"],O={key:12,class:"field-description",style:{display:"block","margin-top":"5px","font-size":"0.8rem",color:"#777","line-height":"1.4"}};function I(e,t,s,c,I,N){return(0,n.openBlock)(),(0,n.createElementBlock)("div",o,["checkbox"!==N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("label",{key:0,for:s.fieldId,style:{"margin-right":"10px","font-weight":"500"}},[(0,n.createTextVNode)((0,r.toDisplayString)(s.field.name)+" ",1),s.field.required?((0,n.openBlock)(),(0,n.createElementBlock)("span",a,"*")):(0,n.createCommentVNode)("",!0)],8,l)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",u,[s.field.context?((0,n.openBlock)(),(0,n.createElementBlock)("div",d,(0,r.toDisplayString)(s.field.context),1)):(0,n.createCommentVNode)("",!0),"text"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:1,id:s.fieldId,type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>N.value=e),required:s.field.required,placeholder:s.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,p)),[[i.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"number"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:2,id:s.fieldId,type:"number","onUpdate:modelValue":t[1]||(t[1]=e=>N.value=e),required:s.field.required,step:N.stepValue,placeholder:s.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,h)),[[i.vModelText,N.value,void 0,{number:!0}]]):(0,n.createCommentVNode)("",!0),"textarea"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("textarea",{key:3,id:s.fieldId,"onUpdate:modelValue":t[2]||(t[2]=e=>N.value=e),required:s.field.required,rows:s.field.rows||3,placeholder:s.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box",resize:"vertical"}},null,8,f)),[[i.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"select"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("select",{key:4,id:s.fieldId,"onUpdate:modelValue":t[3]||(t[3]=e=>N.value=e),required:s.field.required,title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},[t[11]||(t[11]=(0,n.createElementVNode)("option",{value:""},"Selecteer een optie",-1)),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(s.field.allowedValues||s.field.allowed_values||[],e=>((0,n.openBlock)(),(0,n.createElementBlock)("option",{key:e,value:e},(0,r.toDisplayString)(e),9,m))),128))],8,g)),[[i.vModelSelect,N.value]]):(0,n.createCommentVNode)("",!0),"radio"===N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("div",y,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(s.field.allowedValues||s.field.allowed_values||[],e=>((0,n.openBlock)(),(0,n.createElementBlock)("label",{key:e,class:"radio-label",style:{display:"flex","align-items":"center",cursor:"pointer"}},[(0,n.withDirectives)((0,n.createElementVNode)("input",{type:"radio",name:s.fieldId,value:e,"onUpdate:modelValue":t[4]||(t[4]=e=>N.value=e),required:s.field.required,style:{"margin-right":"8px"}},null,8,x),[[i.vModelRadio,N.value]]),(0,n.createElementVNode)("span",null,(0,r.toDisplayString)(e),1)]))),128))])):(0,n.createCommentVNode)("",!0),"checkbox"===N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("div",b,[(0,n.createElementVNode)("label",k,[(0,n.withDirectives)((0,n.createElementVNode)("input",{type:"checkbox",id:s.fieldId,"onUpdate:modelValue":t[5]||(t[5]=e=>N.value=e),required:s.field.required,style:{"margin-right":"8px"}},null,8,S),[[i.vModelCheckbox,N.value]]),(0,n.createElementVNode)("span",_,(0,r.toDisplayString)(s.field.name),1),s.field.required?((0,n.openBlock)(),(0,n.createElementBlock)("span",w,"*")):(0,n.createCommentVNode)("",!0)])])):(0,n.createCommentVNode)("",!0),"file"===N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:7,id:s.fieldId,type:"file",onChange:t[6]||(t[6]=(...e)=>N.handleFileUpload&&N.handleFileUpload(...e)),required:s.field.required,accept:s.field.accept||"*",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,40,D)):(0,n.createCommentVNode)("",!0),"date"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:8,id:s.fieldId,type:"date","onUpdate:modelValue":t[7]||(t[7]=e=>N.value=e),required:s.field.required,title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,E)),[[i.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"time"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:9,id:s.fieldId,type:"time","onUpdate:modelValue":t[8]||(t[8]=e=>N.value=e),required:s.field.required,title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,C)),[[i.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"email"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:10,id:s.fieldId,type:"email","onUpdate:modelValue":t[9]||(t[9]=e=>N.value=e),required:s.field.required,placeholder:s.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,T)),[[i.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"url"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:11,id:s.fieldId,type:"url","onUpdate:modelValue":t[10]||(t[10]=e=>N.value=e),required:s.field.required,placeholder:s.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,A)),[[i.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),N.description?((0,n.openBlock)(),(0,n.createElementBlock)("small",O,(0,r.toDisplayString)(N.description),1)):(0,n.createCommentVNode)("",!0)])])}}),u("hvpzC",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("dfeQd",function(e,t){s(e.exports,"render",function(){return k}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO");let i={class:"dynamic-form-container"},o={class:"dynamic-form"},l={key:0,class:"form-header"},a={key:0,class:"form-icon"},u={class:"material-symbols-outlined"},d={class:"form-title"},p={class:"form-fields"},h={key:1,class:"form-actions"},f=["disabled"],g=["disabled"],m={key:0},y={key:1},x={key:2,class:"form-readonly"},b={class:"field-label"};function k(e,t,s,c,k,S){let _=(0,n.resolveComponent)("form-field");return(0,n.openBlock)(),(0,n.createElementBlock)("div",i,[(0,n.createElementVNode)("div",o,[s.formData.title||s.formData.name||s.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("div",l,[s.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("div",a,[(0,n.createElementVNode)("span",u,(0,r.toDisplayString)(s.formData.icon),1)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",d,(0,r.toDisplayString)(s.formData.title||s.formData.name),1)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",p,[Array.isArray(s.formData.fields)?((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,{key:0},(0,n.renderList)(s.formData.fields,e=>((0,n.openBlock)(),(0,n.createBlock)(_,{key:e.id||e.name,field:e,"field-id":e.id||e.name,"model-value":k.localFormValues[e.id||e.name],"onUpdate:modelValue":t=>S.updateFieldValue(e.id||e.name,t)},null,8,["field","field-id","model-value","onUpdate:modelValue"]))),128)):"object"==typeof s.formData.fields?((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,{key:1},(0,n.renderList)(s.formData.fields,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)(_,{key:t,field:e,"field-id":t,"model-value":k.localFormValues[t],"onUpdate:modelValue":e=>S.updateFieldValue(t,e)},null,8,["field","field-id","model-value","onUpdate:modelValue"]))),128)):(0,n.createCommentVNode)("",!0)]),s.hideActions||s.readOnly?(0,n.createCommentVNode)("",!0):((0,n.openBlock)(),(0,n.createElementBlock)("div",h,[(0,n.createElementVNode)("button",{type:"button",onClick:t[0]||(t[0]=(...e)=>S.handleCancel&&S.handleCancel(...e)),class:"btn btn-secondary",disabled:s.isSubmitting}," Annuleren ",8,f),(0,n.createElementVNode)("button",{type:"button",onClick:t[1]||(t[1]=(...e)=>S.handleSubmit&&S.handleSubmit(...e)),class:"btn btn-primary",disabled:s.isSubmitting||!S.isFormValid},[s.isSubmitting?((0,n.openBlock)(),(0,n.createElementBlock)("span",m,"Verzenden...")):((0,n.openBlock)(),(0,n.createElementBlock)("span",y,"Versturen"))],8,g)])),s.readOnly?((0,n.openBlock)(),(0,n.createElementBlock)("div",x,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(S.getFieldsForDisplay(),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:t,class:"form-field-readonly"},[(0,n.createElementVNode)("div",b,(0,r.toDisplayString)(e.name)+":",1),(0,n.createElementVNode)("div",{class:(0,r.normalizeClass)(["field-value",{"text-value":"text"===e.type}])},(0,r.toDisplayString)(S.formatFieldValue(t,e)),3)]))),128))])):(0,n.createCommentVNode)("",!0)])])}}),u("bpKaV",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("gQG4c",function(e,t){s(e.exports,"IconManagerMixin",function(){return n}),window.iconManager={loadedIcons:[],loadIcon:function(e,t={}){if(!e||this.loadedIcons.includes(e))return;let n={opsz:24,wght:400,FILL:0,GRAD:0,...t},r=`material-symbols-${e}`;if(!document.getElementById(r)){let t=document.createElement("link");t.id=r,t.rel="stylesheet",t.href=`https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@${n.opsz},${n.wght},${n.FILL},${n.GRAD}&icon_names=${e}`,document.head.appendChild(t),console.log(`Material Symbol geladen: ${e}`),this.loadedIcons.push(e)}},loadIcons:function(e,t={}){if(!e||!Array.isArray(e)||0===e.length)return;let n=e.filter(e=>!this.loadedIcons.includes(e));if(0===n.length)return;let r={opsz:24,wght:400,FILL:0,GRAD:0,...t},i=`material-symbols-set-${n.join("-")}`;if(!document.getElementById(i)){let e=document.createElement("link");e.id=i,e.rel="stylesheet",e.href=`https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@${r.opsz},${r.wght},${r.FILL},${r.GRAD}&icon_names=${n.join(",")}`,document.head.appendChild(e),console.log(`Material Symbols geladen: ${n.join(", ")}`),this.loadedIcons.push(...n)}}};let n={created(){this.formData&&this.formData.icon&&window.iconManager.loadIcon(this.formData.icon)},watch:{"formData.icon":function(e){e&&window.iconManager.loadIcon(e)}},methods:{loadIcon(e,t){window.iconManager.loadIcon(e,t)},loadIcons(e,t){window.iconManager.loadIcons(e,t)}}};console.log("IconManager en IconManagerMixin zijn beschikbaar voor componenten")}),u("dv6Fl",function(e,t){s(e.exports,"render",function(){return y}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO"),i=c("fNp5a");let o={class:"chat-input-container"},l={key:0,class:"dynamic-form-container"},a={key:0,style:{color:"red",padding:"10px"}},u={class:"chat-input"},d={class:"input-main"},p=["placeholder","disabled","maxlength"],h={class:"input-actions"},f=["disabled","title"],g={key:0,class:"loading-spinner"},m={key:1,width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"};function y(e,t,s,c,y,x){let b=(0,n.resolveComponent)("dynamic-form");return(0,n.openBlock)(),(0,n.createElementBlock)("div",o,[s.formData?((0,n.openBlock)(),(0,n.createElementBlock)("div",l,[s.formData.fields?(0,n.createCommentVNode)("",!0):((0,n.openBlock)(),(0,n.createElementBlock)("div",a,"Fout: Geen velden gevonden in formulier")),s.formData&&s.formData.fields?((0,n.openBlock)(),(0,n.createBlock)(b,{key:1,"form-data":s.formData,"form-values":y.formValues,"is-submitting":s.isLoading,"hide-actions":!0,"onUpdate:formValues":x.updateFormValues},null,8,["form-data","form-values","is-submitting","onUpdate:formValues"])):(0,n.createCommentVNode)("",!0)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",u,[(0,n.createElementVNode)("div",d,[(0,n.withDirectives)((0,n.createElementVNode)("textarea",{ref:"messageInput","onUpdate:modelValue":t[0]||(t[0]=e=>y.localMessage=e),onKeydown:t[1]||(t[1]=(...e)=>x.handleKeydown&&x.handleKeydown(...e)),placeholder:y.translatedPlaceholder,rows:"1",disabled:s.isLoading,maxlength:s.maxLength,class:(0,r.normalizeClass)(["message-input",{"over-limit":x.isOverLimit}])},null,42,p),[[i.vModelText,y.localMessage]]),s.maxLength?((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:0,class:(0,r.normalizeClass)(["character-counter",{"over-limit":x.isOverLimit}])},(0,r.toDisplayString)(x.characterCount)+"/"+(0,r.toDisplayString)(s.maxLength),3)):(0,n.createCommentVNode)("",!0)]),(0,n.createElementVNode)("div",h,[(0,n.createElementVNode)("button",{onClick:t[2]||(t[2]=(...e)=>x.sendMessage&&x.sendMessage(...e)),class:(0,r.normalizeClass)(["send-btn",{"form-mode":s.formData}]),disabled:!x.canSend,title:s.formData?"Verstuur formulier":"Verstuur bericht"},[s.isLoading?((0,n.openBlock)(),(0,n.createElementBlock)("span",g,"⏳")):((0,n.openBlock)(),(0,n.createElementBlock)("svg",m,t[3]||(t[3]=[(0,n.createElementVNode)("path",{d:"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"},null,-1)])))],10,f)])])])}}),u("dOnmI",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("dwb6L",function(e,t){i(e.exports),s(e.exports,"default",function(){return o});var n=c("lVdl4"),r=c("aNcdg"),o={name:"MessageHistory",components:{"chat-message":n.default,"typing-indicator":r.default},props:{messages:{type:Array,default:()=>[]},isTyping:{type:Boolean,default:!1},isSubmittingForm:{type:Boolean,default:!1},apiPrefix:{type:String,default:""},autoScroll:{type:Boolean,default:!0}},emits:["load-more","specialist-complete","specialist-error"],data:()=>({isAtBottom:!0,showScrollButton:!1,unreadCount:0,languageChangeHandler:null}),watch:{messages:{handler(e,t){this.autoScroll&&e.length>(t?.length||0)&&this.$nextTick(()=>{this.scrollToBottom()})},deep:!0},isTyping(e){e&&this.autoScroll&&this.$nextTick(()=>{this.scrollToBottom()})}},created(){this.languageChangeHandler=e=>{e.detail&&e.detail.language&&this.handleLanguageChange(e)},document.addEventListener("language-changed",this.languageChangeHandler)},mounted(){this.setupScrollListener(),this.autoScroll&&this.$nextTick(()=>{this.scrollToBottom()})},beforeUnmount(){let e=this.$refs.messagesContainer;e&&e.removeEventListener("scroll",this.handleScroll),this.languageChangeHandler&&document.removeEventListener("language-changed",this.languageChangeHandler)},methods:{async handleLanguageChange(e){if(1===this.messages.length&&"ai"===this.messages[0].sender){let t=this.messages[0];if(t.originalContent){console.log("Vertaling van eerste AI bericht naar:",e.detail.language);try{if(!window.TranslationClient||"function"!=typeof window.TranslationClient.translate)return void console.error("TranslationClient.translate is niet beschikbaar");let n=await window.TranslationClient.translate(t.originalContent,e.detail.language,null,"chat_message",this.apiPrefix);n.success?(t.content=n.translated_text,console.log("Eerste bericht succesvol vertaald")):console.error("Vertaling mislukt:",n.error)}catch(e){console.error("Fout bij vertalen eerste bericht:",e)}}}},scrollToBottom(){let e=this.$refs.messagesContainer;e&&(e.scrollTop=e.scrollHeight,this.isAtBottom=!0,this.showScrollButton=!1,this.unreadCount=0)},setupScrollListener(){let e=this.$refs.messagesContainer;e&&e.addEventListener("scroll",this.handleScroll)},handleScroll(){let e=this.$refs.messagesContainer;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<100;this.isAtBottom=t,0===e.scrollTop&&this.$emit("load-more")},handleImageLoaded(){this.isAtBottom&&this.$nextTick(()=>this.scrollToBottom())},searchMessages(e){if(!e.trim())return this.messages;let t=e.toLowerCase();return this.messages.filter(e=>e.content&&e.content.toLowerCase().includes(t))}}}}),u("lVdl4",function(e,t){let n;s(e.exports,"default",function(){return r}),(n=c("cVxOO")).__esModule&&(n=n.default),n.render=c("9jZm8").render,n.__cssModules={},c("JObLi").default(n),n.__scopeId="data-v-a78b4e",n.__file="ChatMessage.vue";var r=n}),u("cVxOO",function(e,t){i(e.exports),s(e.exports,"default",function(){return o});var n=c("9J6tU"),r=c("3b050"),o={name:"ChatMessage",components:{"dynamic-form":n.default,"progress-tracker":r.default},props:{message:{type:Object,required:!0,validator:e=>e.id&&void 0!==e.content&&e.sender&&e.type},isSubmittingForm:{type:Boolean,default:!1},apiPrefix:{type:String,default:""}},emits:["image-loaded","retry-message","specialist-complete","specialist-error"],data:()=>({formVisible:!0}),created(){window.iconManager&&this.message.formData&&this.message.formData.icon&&window.iconManager.loadIcon(this.message.formData.icon),"ai"!==this.message.sender||this.message.originalContent||(this.message.originalContent=this.message.content)},mounted(){document.addEventListener("language-changed",this.handleLanguageChange)},beforeUnmount(){document.removeEventListener("language-changed",this.handleLanguageChange)},computed:{hasFormData(){return this.message.formData&&(Array.isArray(this.message.formData.fields)&&this.message.formData.fields.length>0||"object"==typeof this.message.formData.fields&&Object.keys(this.message.formData.fields).length>0)},hasFormValues(){return this.message.formValues&&Object.keys(this.message.formValues).length>0}},watch:{"message.formData.icon":{handler(e){e&&window.iconManager&&window.iconManager.loadIcon(e)},immediate:!0}},methods:{async handleLanguageChange(e){},handleSpecialistError(e){console.log("ChatMessage received specialist-error event:",e),this.message.type="error",this.message.content=e.message||"Er is een fout opgetreden bij het verwerken van uw verzoek.",this.message.retryable=!0,this.message.error=!0,this.$emit("specialist-error",{messageId:this.message.id,...e})},handleSpecialistComplete(e){console.log("ChatMessage received specialist-complete event:",e),e.answer?(console.log("Updating message content with answer:",e.answer),this.message.content=e.answer):console.error("No answer in specialist-complete event data"),this.$emit("specialist-complete",{messageId:this.message.id,answer:e.answer,form_request:e.form_request,result:e.result,interactionId:e.interactionId,taskId:e.taskId})},formatMessage:e=>e?e.replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/`(.*?)`/g,"$1").replace(/\[([^\]]+)\]\(([^)]+)\)/g,'$1').replace(/\n/g,"
"):"",removeMessage(){},reactToMessage(e){},getMessageClass(){return`message ${this.message.sender}`}}}}),u("3b050",function(e,t){let n;s(e.exports,"default",function(){return r}),(n=c("kkMhm")).__esModule&&(n=n.default),n.render=c("iqgMR").render,n.__cssModules={},c("kgXYb").default(n),n.__scopeId="data-v-3ff60a",n.__file="ProgressTracker.vue";var r=n}),u("kkMhm",function(e,t){i(e.exports),s(e.exports,"default",function(){return n});var n={name:"ProgressTracker",props:{taskId:{type:String,required:!0},apiPrefix:{type:String,default:""}},emits:["specialist-complete","specialist-error"],data:()=>({isExpanded:!1,isCompleted:!1,hasError:!1,connecting:!0,error:null,progressLines:[],eventSource:null}),computed:{displayLines(){return this.isExpanded?this.progressLines:this.progressLines.length>0?[this.progressLines[this.progressLines.length-1]]:[]}},mounted(){this.connectToProgressStream()},beforeUnmount(){this.disconnectEventSource()},methods:{connectToProgressStream(){if(!this.taskId)return void console.error("Geen task ID beschikbaar voor progress tracking");console.log("Connecting to progress stream for task:",this.taskId);let e=window.location.origin,t=`${e}${this.apiPrefix}/api/progress/${this.taskId}`;console.log("SSE URL:",t);try{this.eventSource=new EventSource(t),this.eventSource.onopen=()=>{console.log("Progress stream connected"),this.connecting=!1},this.eventSource.onmessage=e=>{this.handleProgressUpdate(e)},this.eventSource.onerror=e=>{console.error("Progress stream error:",e),this.handleError(e)},this.eventSource.addEventListener("progress",e=>{this.handleProgressUpdate(e)}),this.eventSource.addEventListener("complete",e=>{this.handleSpecialistComplete(e)}),this.eventSource.addEventListener("error",e=>{this.handleSpecialistError(e)})}catch(e){console.error("Failed to create EventSource:",e),this.error="Kan geen verbinding maken met de voortgangsstream.",this.connecting=!1}},disconnectEventSource(){this.eventSource&&(console.log("Disconnecting progress stream"),this.eventSource.close(),this.eventSource=null)},handleProgressUpdate(e){try{let t=JSON.parse(e.data);console.log("Progress update:",t),t.message&&(this.progressLines.push(t.message),this.isExpanded&&this.$nextTick(()=>{let e=this.$refs.progressContainer;e&&(e.scrollTop=e.scrollHeight)}))}catch(e){console.error("Error parsing progress data:",e)}},handleSpecialistComplete(e){console.log("Specialist complete event:",e);try{let t=JSON.parse(e.data);console.log("Specialist complete data:",t),this.isCompleted=!0,this.connecting=!1,this.disconnectEventSource(),t.result&&t.result.answer?this.$emit("specialist-complete",{answer:t.result.answer,form_request:t.result.form_request,result:t.result,interactionId:t.interaction_id,taskId:this.taskId}):console.error("Missing result.answer in specialist complete data:",t)}catch(e){console.error("Error parsing specialist complete data:",e),this.handleSpecialistError({data:JSON.stringify({Error:"Failed to parse completion data"})})}},handleSpecialistError(e){console.log("Specialist error event:",e);try{let t=JSON.parse(e.data);console.log("Specialist error data:",t),this.isCompleted=!0,this.hasError=!0,this.connecting=!1,this.disconnectEventSource();let n="We could not process your request. Please try again later.";this.error=n,t.Error&&console.error("Specialist Error:",t.Error),this.$emit("specialist-error",{message:n,originalError:t.Error,taskId:this.taskId})}catch(e){console.error("Error parsing specialist error data:",e),this.error="Er is een onbekende fout opgetreden.",this.isCompleted=!0,this.hasError=!0,this.connecting=!1,this.disconnectEventSource()}},handleError(e){console.error("SSE Error event:",e),this.error="Er is een fout opgetreden bij het verwerken van updates.",this.connecting=!1;try{let t=JSON.parse(e.data);t&&t.message&&(this.error=t.message)}catch(e){}},toggleExpand(){this.isExpanded=!this.isExpanded,this.isExpanded&&this.$nextTick(()=>{let e=this.$refs.progressContainer;e&&(e.scrollTop=e.scrollHeight)})}}}}),u("iqgMR",function(e,t){s(e.exports,"render",function(){return y}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO");let i=["title"],o={class:"progress-title"},l={key:0,class:"spinner"},a={key:1,class:"status-icon error"},u={key:2,class:"status-icon completed"},d={key:3,class:"status-icon in-progress"},p={key:4},h={key:5},f={key:6},g={class:"progress-toggle"},m={key:0,class:"progress-error"};function y(e,t,s,c,y,x){return(0,n.openBlock)(),(0,n.createElementBlock)("div",{class:(0,r.normalizeClass)(["progress-tracker",{expanded:y.isExpanded,completed:y.isCompleted&&!y.hasError,error:y.error||y.hasError}])},[(0,n.createElementVNode)("div",{class:"progress-header",onClick:t[0]||(t[0]=(...e)=>x.toggleExpand&&x.toggleExpand(...e)),title:y.isExpanded?"Inklappen":"Uitklappen voor volledige voortgang"},[(0,n.createElementVNode)("div",o,[y.connecting?((0,n.openBlock)(),(0,n.createElementBlock)("span",l)):y.error?((0,n.openBlock)(),(0,n.createElementBlock)("span",a,"✗")):y.isCompleted?((0,n.openBlock)(),(0,n.createElementBlock)("span",u,"✓")):((0,n.openBlock)(),(0,n.createElementBlock)("span",d)),y.error?((0,n.openBlock)(),(0,n.createElementBlock)("span",p,"Fout bij verwerking")):y.isCompleted?((0,n.openBlock)(),(0,n.createElementBlock)("span",h,"Verwerking voltooid")):((0,n.openBlock)(),(0,n.createElementBlock)("span",f,"Bezig met redeneren..."))]),(0,n.createElementVNode)("div",g,(0,r.toDisplayString)(y.isExpanded?"▲":"▼"),1)],8,i),y.error?((0,n.openBlock)(),(0,n.createElementBlock)("div",m,(0,r.toDisplayString)(y.error),1)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",{ref:"progressContainer",class:(0,r.normalizeClass)(["progress-content",{"single-line":!y.isExpanded}])},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(x.displayLines,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:t,class:"progress-line"},(0,r.toDisplayString)(e),1))),128))],2)],2)}}),u("kgXYb",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("9jZm8",function(e,t){s(e.exports,"render",function(){return A}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO");let i=["data-message-id"],o={key:0,class:"message-content",style:{width:"100%"}},l={key:1,class:"form-display user-form-values"},a={key:2,class:"form-display ai-form-values",style:{"margin-top":"15px"}},u={class:"form-result-table"},d={key:0},p={colspan:"2"},h={class:"form-header"},f={key:0,class:"material-symbols-outlined"},g={class:"field-label"},m={class:"field-value"},y=["type","placeholder"],x=["placeholder","rows"],b={key:2,class:"form-select"},k=["value"],S={key:3,class:"toggle-switch"},_=["placeholder"],w=["innerHTML"],D={key:1,class:"message-content error-content"},E={class:"form-error"},C={key:2,class:"message-content"},T=["innerHTML"];function A(e,t,s,c,A,O){let I=(0,n.resolveComponent)("progress-tracker"),N=(0,n.resolveComponent)("dynamic-form");return(0,n.openBlock)(),(0,n.createElementBlock)("div",{class:(0,r.normalizeClass)(O.getMessageClass()),"data-message-id":s.message.id},["text"===s.message.type?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,["ai"===s.message.sender&&s.message.taskId?((0,n.openBlock)(),(0,n.createBlock)(I,{key:0,"task-id":s.message.taskId,"api-prefix":s.apiPrefix,class:"message-progress",onSpecialistComplete:O.handleSpecialistComplete,onSpecialistError:O.handleSpecialistError},null,8,["task-id","api-prefix","onSpecialistComplete","onSpecialistError"])):(0,n.createCommentVNode)("",!0),s.message.formValues&&"user"===s.message.sender?((0,n.openBlock)(),(0,n.createElementBlock)("div",l,[(0,n.createVNode)(N,{"form-data":s.message.formData,"form-values":s.message.formValues,"read-only":!0,"hide-actions":"",class:"message-form user-form"},null,8,["form-data","form-values"])])):(0,n.createCommentVNode)("",!0),s.message.formData&&"ai"===s.message.sender?((0,n.openBlock)(),(0,n.createElementBlock)("div",a,[(0,n.createElementVNode)("table",u,[s.message.formData.title||s.message.formData.name||s.message.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("thead",d,[(0,n.createElementVNode)("tr",null,[(0,n.createElementVNode)("th",p,[(0,n.createElementVNode)("div",h,[s.message.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("span",f,(0,r.toDisplayString)(s.message.formData.icon),1)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("span",null,(0,r.toDisplayString)(s.message.formData.title||s.message.formData.name),1)])])])])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("tbody",null,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(s.message.formData.fields,(e,i)=>((0,n.openBlock)(),(0,n.createElementBlock)("tr",{key:i},[(0,n.createElementVNode)("td",g,(0,r.toDisplayString)(e.name)+":",1),(0,n.createElementVNode)("td",m,["str"===e.type||"string"===e.type||"int"===e.type||"integer"===e.type||"float"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:0,type:"int"===e.type||"integer"===e.type||"float"===e.type?"number":"text",placeholder:e.placeholder||"",class:"form-input"},null,8,y)):"text"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("textarea",{key:1,placeholder:e.placeholder||"",rows:e.rows||3,class:"form-textarea"},null,8,x)):"enum"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("select",b,[t[1]||(t[1]=(0,n.createElementVNode)("option",{value:""},"Selecteer een optie",-1)),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.allowedValues||e.allowed_values||[],e=>((0,n.openBlock)(),(0,n.createElementBlock)("option",{key:e,value:e},(0,r.toDisplayString)(e),9,k))),128))])):"boolean"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("div",S,t[2]||(t[2]=[(0,n.createElementVNode)("input",{type:"checkbox",class:"toggle-input"},null,-1),(0,n.createElementVNode)("span",{class:"toggle-slider"},[(0,n.createElementVNode)("span",{class:"toggle-knob"})],-1)]))):((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:4,type:"text",placeholder:e.placeholder||"",class:"form-input"},null,8,_))])]))),128))])])])):(0,n.createCommentVNode)("",!0),s.message.content?((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:3,class:"message-text",innerHTML:O.formatMessage(s.message.content)},null,8,w)):(0,n.createCommentVNode)("",!0)])):"error"===s.message.type?((0,n.openBlock)(),(0,n.createElementBlock)("div",D,[(0,n.createElementVNode)("div",E,(0,r.toDisplayString)(s.message.content),1),s.message.retryable?((0,n.openBlock)(),(0,n.createElementBlock)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$emit("retry-message",s.message.id)),class:"retry-btn"}," Opnieuw proberen ")):(0,n.createCommentVNode)("",!0)])):((0,n.openBlock)(),(0,n.createElementBlock)("div",C,[(0,n.createElementVNode)("div",{class:"message-text",innerHTML:O.formatMessage(s.message.content)},null,8,T)]))],10,i)}}),u("JObLi",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("aNcdg",function(e,t){let n;s(e.exports,"default",function(){return r}),(n=c("4QSxf")).__esModule&&(n=n.default),n.render=c("lDgl1").render,n.__cssModules={},c("8dpGK").default(n),n.__scopeId="data-v-a78025",n.__file="TypingIndicator.vue";var r=n}),u("4QSxf",function(e,t){i(e.exports),s(e.exports,"default",function(){return n});var n={name:"TypingIndicator",props:{showText:{type:Boolean,default:!1},text:{type:String,default:"Bezig met typen..."}},methods:{}}}),u("lDgl1",function(e,t){s(e.exports,"render",function(){return l}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO");let i={class:"typing-indicator"},o={key:0,class:"typing-text"};function l(e,t,s,l,a,c){return(0,n.openBlock)(),(0,n.createElementBlock)("div",i,[t[0]||(t[0]=(0,n.createElementVNode)("div",{class:"typing-dot"},null,-1)),t[1]||(t[1]=(0,n.createElementVNode)("div",{class:"typing-dot"},null,-1)),t[2]||(t[2]=(0,n.createElementVNode)("div",{class:"typing-dot"},null,-1)),s.showText?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,(0,r.toDisplayString)(s.text),1)):(0,n.createCommentVNode)("",!0)])}}),u("8dpGK",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("3LFpJ",function(e,t){s(e.exports,"render",function(){return a}),c("iJXGE");var n=c("iADb3");let r={class:"message-history-container"},i={class:"chat-messages",ref:"messagesContainer"},o={key:0,class:"load-more-indicator"},l={key:1,class:"empty-state"};function a(e,t,s,a,c,u){let d=(0,n.resolveComponent)("chat-message"),p=(0,n.resolveComponent)("typing-indicator");return(0,n.openBlock)(),(0,n.createElementBlock)("div",r,[(0,n.createElementVNode)("div",i,[e.$slots.loading?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,[(0,n.renderSlot)(e.$slots,"loading")])):(0,n.createCommentVNode)("",!0),0===s.messages.length?((0,n.openBlock)(),(0,n.createElementBlock)("div",l,t[2]||(t[2]=[(0,n.createElementVNode)("div",{class:"empty-icon"},"\uD83D\uDCAC",-1),(0,n.createElementVNode)("div",{class:"empty-text"},"Nog geen berichten",-1),(0,n.createElementVNode)("div",{class:"empty-subtext"},"Start een gesprek door een bericht te typen!",-1)]))):((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,{key:2},(0,n.renderList)(s.messages,(r,i)=>((0,n.openBlock)(),(0,n.createBlock)(d,{key:r.id,message:r,"is-submitting-form":s.isSubmittingForm,"api-prefix":s.apiPrefix,onImageLoaded:u.handleImageLoaded,onSpecialistComplete:t[0]||(t[0]=t=>e.$emit("specialist-complete",t)),onSpecialistError:t[1]||(t[1]=t=>e.$emit("specialist-error",t))},null,8,["message","is-submitting-form","api-prefix","onImageLoaded"]))),128)),s.isTyping?((0,n.openBlock)(),(0,n.createBlock)(p,{key:3})):(0,n.createCommentVNode)("",!0)],512)])}}),u("6hDPH",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),u("eu21N",function(e,t){i(e.exports),s(e.exports,"default",function(){return n});var n={name:"FormMessage",props:{formData:{type:Object,required:!0},formValues:{type:Object,required:!0}},computed:{hasFormData(){return this.formData&&this.formData.fields&&Object.keys(this.formData.fields).length>0},formattedFields(){return this.hasFormData?Object.entries(this.formData.fields).map(([e,t])=>{let n=this.formValues[e]||"";return"boolean"===t.type?n=n?"Ja":"Nee":"enum"===t.type&&!n&&t.default?n=t.default:t.type,{id:e,name:t.name,value:n||"-",type:t.type}}):[]}}}}),u("8lvfw",function(e,t){s(e.exports,"render",function(){return p}),c("iJXGE");var n=c("iADb3"),r=c("fVHkO");let i={key:0,class:"form-message"},o={key:0,class:"form-message-header"},l={key:0,class:"material-icons form-message-icon"},a={class:"form-message-title"},u={class:"form-message-fields"},d={class:"field-message-label"};function p(e,t,s,c,p,h){return h.hasFormData?((0,n.openBlock)(),(0,n.createElementBlock)("div",i,[s.formData.name?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,[s.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("i",l,(0,r.toDisplayString)(s.formData.icon),1)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("span",a,(0,r.toDisplayString)(s.formData.name),1)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",u,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(h.formattedFields,e=>((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:e.id,class:"form-message-field"},[(0,n.createElementVNode)("div",d,(0,r.toDisplayString)(e.name)+":",1),(0,n.createElementVNode)("div",{class:(0,r.normalizeClass)(["field-message-value",{"text-value":"text"===e.type}])},(0,r.toDisplayString)(e.value),3)]))),128))])])):(0,n.createCommentVNode)("",!0)}}),u("4boaj",function(e,t){s(e.exports,"default",function(){return n});var n=e=>{}}),c("iJXGE");var d=c("fNp5a"),p=c("iADb3"),h={};"u">typeof globalThis||"u">typeof self&&self,h=function(){"use strict";var e={exports:{}},t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},o={Hooks:()=>ey,Lexer:()=>eh,Marked:()=>ev,Parser:()=>em,Renderer:()=>ef,TextRenderer:()=>eg,Tokenizer:()=>ep,defaults:()=>c,getDefaults:()=>a,lexer:()=>eT,marked:()=>eb,options:()=>ek,parse:()=>eE,parseInline:()=>eD,parser:()=>eC,setOptions:()=>eS,use:()=>e_,walkTokens:()=>ew};for(var l in o)t(s,l,{get:o[l],enumerable:!0});function a(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}e.exports=((e,s,o,l)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let a of r(s))i.call(e,a)||a===o||t(e,a,{get:()=>s[a],enumerable:!(l=n(s,a))||l.enumerable});return e})(t({},"__esModule",{value:!0}),s);var c=a(),u={exec:()=>null};function d(e,t=""){let n="string"==typeof e?e:e.source,r={replace:(e,t)=>{let i="string"==typeof t?t:t.source;return i=i.replace(p.caret,"$1"),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var p={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},h=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,f=/(?:[*+-]|\d{1,9}[.)])/,g=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,m=d(g).replace(/bull/g,f).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),y=d(g).replace(/bull/g,f).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),x=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,b=/(?!\s*\])(?:\\.|[^\[\]\\])+/,k=d(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",b).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),S=d(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,f).getRegex(),_="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",w=/|$))/,D=d("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",w).replace("tag",_).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),E=d(x).replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",_).getRegex(),C={blockquote:d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",E).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:k,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:h,html:D,lheading:m,list:S,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:E,table:u,text:/^[^\n]+/},T=d("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",_).getRegex(),A={...C,lheading:y,table:T,paragraph:d(x).replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",T).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",_).getRegex()},O={...C,html:d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",w).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:u,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:d(x).replace("hr",h).replace("heading",` *#{1,6} *[^ -]`).replace("lheading",m).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},I=/^( {2,}|\\)\n(?!\s*$)/,N=/[\p{P}\p{S}]/u,M=/[\s\p{P}\p{S}]/u,V=/[^\s\p{P}\p{S}]/u,B=d(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,M).getRegex(),L=/(?!~)[\p{P}\p{S}]/u,R=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,P=d(R,"u").replace(/punct/g,N).getRegex(),$=d(R,"u").replace(/punct/g,L).getRegex(),F="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",z=d(F,"gu").replace(/notPunctSpace/g,V).replace(/punctSpace/g,M).replace(/punct/g,N).getRegex(),U=d(F,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,L).getRegex(),j=d("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,V).replace(/punctSpace/g,M).replace(/punct/g,N).getRegex(),H=d(/\\(punct)/,"gu").replace(/punct/g,N).getRegex(),q=d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),G=d(w).replace("(?:--\x3e|$)","--\x3e").getRegex(),J=d("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",G).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),Y=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,W=d(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",Y).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),K=d(/^!?\[(label)\]\[(ref)\]/).replace("label",Y).replace("ref",b).getRegex(),Z=d(/^!?\[(ref)\](?:\[\])?/).replace("ref",b).getRegex(),X=d("reflink|nolink(?!\\()","g").replace("reflink",K).replace("nolink",Z).getRegex(),Q={_backpedal:u,anyPunctuation:H,autolink:q,blockSkip:/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<(?! )[^<>]*?>/g,br:I,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:u,emStrongLDelim:P,emStrongRDelimAst:z,emStrongRDelimUnd:j,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:W,nolink:Z,punctuation:B,reflink:K,reflinkSearch:X,tag:J,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},eo=e=>es[e];function el(e,t){if(t){if(p.escapeTest.test(e))return e.replace(p.escapeReplace,eo)}else if(p.escapeTestNoEncode.test(e))return e.replace(p.escapeReplaceNoEncode,eo);return e}function ea(e){try{e=encodeURI(e).replace(p.percentDecode,"%")}catch{return null}return e}function ec(e,t){let n=e.replace(p.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"}).split(p.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:eu(e,` +`,0),a()),u||i("return "),e.codegenNode?tb(e.codegenNode,n):i("null"),x&&(l(),i("}")),l(),i("}"),{ast:e,code:n.code,preamble:"",map:n.map?n.map.toJSON():void 0}}(l,o)}let t2=()=>({props:[]})}),a("6VrmS",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("13ZGu",function(e,t){n(e.exports),r(e.exports,"default",function(){return o});var i=l("9J6tU"),s=l("gQG4c"),o={name:"ChatInput",components:{"dynamic-form":i.default},mixins:[s.IconManagerMixin],props:{currentMessage:{type:String,default:""},isLoading:{type:Boolean,default:!1},placeholder:{type:String,default:"Typ je bericht hier... - Enter om te verzenden, Shift+Enter voor nieuwe regel"},maxLength:{type:Number,default:2e3},formData:{type:Object,default:null}},emits:["send-message","update-message","submit-form"],data(){return{localMessage:this.currentMessage,formValues:{},translatedPlaceholder:this.placeholder,isTranslating:!1,languageChangeHandler:null}},computed:{characterCount(){return this.localMessage.length},isOverLimit(){return this.characterCount>this.maxLength},hasFormData(){return this.formData&&this.formData.fields&&(Array.isArray(this.formData.fields)&&this.formData.fields.length>0||"object"==typeof this.formData.fields&&Object.keys(this.formData.fields).length>0)},canSend(){let e=this.formData&&this.validateForm(),t=this.localMessage.trim()&&!this.isOverLimit;return!this.isLoading&&(e||t)},hasFormDataToSend(){return this.formData&&this.validateForm()},sendButtonText(){return this.isLoading?"Verzenden...":this.formData?"Verstuur formulier":"Verstuur bericht"}},watch:{"formData.icon":{handler(e){e&&window.iconManager&&window.iconManager.ensureIconsLoaded({},[e])},immediate:!0},formData:{handler(e,t){if(console.log("ChatInput formData changed:",e),!e){console.log("FormData is null of undefined"),this.formValues={};return}if(!e.fields)return void console.error("FormData bevat geen velden!",e);console.log("Velden in formData:",e.fields),console.log("Aantal velden:",Array.isArray(e.fields)?e.fields.length:Object.keys(e.fields).length),this.initFormValues(),console.log("Formulierwaarden geïnitialiseerd:",this.formValues)},immediate:!0,deep:!0},currentMessage(e){this.localMessage=e},localMessage(e){this.$emit("update-message",e),this.autoResize()}},created(){this.languageChangeHandler=e=>{e.detail&&e.detail.language&&this.handleLanguageChange(e)},document.addEventListener("language-changed",this.languageChangeHandler)},mounted(){this.autoResize(),console.log("ChatInput mounted, formData:",this.formData),this.formData&&console.log("FormData bij mount:",JSON.stringify(this.formData))},beforeUnmount(){this.languageChangeHandler&&document.removeEventListener("language-changed",this.languageChangeHandler)},methods:{handleLanguageChange(e){e.detail&&e.detail.language&&this.translatePlaceholder(e.detail.language)},async translatePlaceholder(e){if(this.isTranslating)return void console.log("Placeholder vertaling al bezig, overslaan...");this.isTranslating=!0;let t=this.placeholder;try{if(!window.TranslationClient||"function"!=typeof window.TranslationClient.translate)return void console.error("TranslationClient.translate is niet beschikbaar voor placeholder");let n=window.chatConfig?.apiPrefix||"",r=await window.TranslationClient.translate(t,e,null,"chat_input_placeholder",n);r.success?this.translatedPlaceholder=r.translated_text:console.error("Vertaling placeholder mislukt:",r.error)}catch(e){console.error("Fout bij vertalen placeholder:",e)}finally{this.isTranslating=!1}},initFormValues(){this.formData&&this.formData.fields&&(console.log("Initializing form values for fields:",this.formData.fields),this.formValues={},Array.isArray(this.formData.fields)?this.formData.fields.forEach(e=>{let t=e.id||e.name;t&&(this.formValues[t]=void 0!==e.default?e.default:"")}):"object"==typeof this.formData.fields&&Object.entries(this.formData.fields).forEach(([e,t])=>{this.formValues[e]=void 0!==t.default?t.default:""}),console.log("Initialized form values:",this.formValues))},handleKeydown(e){"Enter"!==e.key||e.shiftKey?"Escape"===e.key&&(this.localMessage=""):(e.preventDefault(),this.sendMessage())},sendMessage(){this.canSend&&(this.formData?this.validateForm()&&this.$emit("submit-form",this.formValues):this.localMessage.trim()&&this.$emit("send-message"))},getFormValuesForSending(){return this.formValues},resetForm(){this.formValues={},this.initFormValues()},cancelForm(){this.formValues={}},validateForm(){if(!this.formData||!this.formData.fields)return!1;let e=[];return Array.isArray(this.formData.fields)?e=this.formData.fields.filter(e=>{if(!e.required)return!1;let t=e.id||e.name,n=this.formValues[t];return null==n||"string"==typeof n&&!n.trim()}):Object.entries(this.formData.fields).forEach(([t,n])=>{if(n.required){let r=this.formValues[t];null!=r&&("string"!=typeof r||r.trim())||e.push(n)}}),0===e.length},autoResize(){this.$nextTick(()=>{let e=this.$refs.messageInput;e&&(e.style.height="auto",e.style.height=Math.min(e.scrollHeight,120)+"px")})},focusInput(){this.$refs.messageInput?.focus()},clearInput(){this.localMessage="",this.focusInput()},updateFormValues(e){JSON.stringify(e)!==JSON.stringify(this.formValues)&&(this.formValues=JSON.parse(JSON.stringify(e)))}}}}),a("9J6tU",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("lrkvW")).__esModule&&(n=n.default),n.render=l("dfeQd").render,n.__cssModules={},l("bpKaV").default(n),n.__scopeId="data-v-97c80a",n.__file="DynamicForm.vue";var i=n}),a("lrkvW",function(e,t){n(e.exports),r(e.exports,"default",function(){return i});var i={name:"DynamicForm",components:{"form-field":l("70gdv").default},props:{formData:{type:Object,required:!0,validator:e=>e&&"object"==typeof e?e.title||e.name?e.fields?Array.isArray(e.fields)||"object"==typeof e.fields?(console.log("FormData is geldig:",e),!0):(console.error("FormData.fields is geen array of object"),!1):(console.error("FormData heeft geen fields eigenschap"),!1):(console.error("FormData heeft geen title of name"),!1):(console.error("FormData is niet een geldig object"),!1)},formValues:{type:Object,default:()=>({})},isSubmitting:{type:Boolean,default:!1},readOnly:{type:Boolean,default:!1},hideActions:{type:Boolean,default:!1}},emits:["submit","cancel","update:formValues"],data(){return{localFormValues:{...this.formValues}}},computed:{isFormValid(){let e=[];return Array.isArray(this.formData.fields)?this.formData.fields.forEach(t=>{let n=t.id||t.name;if(t.required){let r=this.localFormValues[n];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(t.name)}}):Object.entries(this.formData.fields).forEach(([t,n])=>{if(n.required){let r=this.localFormValues[t];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(n.name)}}),0===e.length}},watch:{formValues:{handler(e){JSON.stringify(e)!==JSON.stringify(this.localFormValues)&&(this.localFormValues=JSON.parse(JSON.stringify(e)))},deep:!0},localFormValues:{handler(e){JSON.stringify(e)!==JSON.stringify(this.formValues)&&this.$emit("update:formValues",JSON.parse(JSON.stringify(e)))},deep:!0},"formData.icon":{handler(e){e&&window.iconManager&&window.iconManager.loadIcon(e)},immediate:!0}},created(){window.iconManager&&this.formData&&this.formData.icon&&window.iconManager.loadIcon(this.formData.icon)},methods:{updateFieldValue(e,t){this.localFormValues={...this.localFormValues,[e]:t}},handleSubmit(){let e=[];if(Array.isArray(this.formData.fields)?this.formData.fields.forEach(t=>{let n=t.id||t.name;if(t.required){let r=this.localFormValues[n];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(t.name)}}):Object.entries(this.formData.fields).forEach(([t,n])=>{if(n.required){let r=this.localFormValues[t];(null==r||"string"==typeof r&&!r.trim()||Array.isArray(r)&&0===r.length)&&e.push(n.name)}}),e.length>0)return void alert(`De volgende velden zijn verplicht: ${e.join(", ")}`);this.$emit("submit",this.localFormValues)},handleCancel(){this.$emit("cancel")},getFieldsForDisplay(){if(Array.isArray(this.formData.fields)){let e={};return this.formData.fields.forEach(t=>{e[t.id||t.name]=t}),e}return this.formData.fields},formatFieldValue(e,t){let n=this.localFormValues[e];return null==n?"-":"boolean"===t.type?n?"Ja":"Nee":"enum"===t.type&&!n&&t.default?t.default:n.toString()}}}}),a("70gdv",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("8cmof")).__esModule&&(n=n.default),n.render=l("58B43").render,n.__cssModules={},l("hvpzC").default(n),n.__scopeId="data-v-5d4747",n.__file="FormField.vue";var i=n}),a("8cmof",function(e,t){n(e.exports),r(e.exports,"default",function(){return i});var i={name:"FormField",props:{field:{type:Object,required:!0,validator:e=>e.name&&e.type},fieldId:{type:String,required:!0},modelValue:{default:null}},emits:["update:modelValue"],computed:{value:{get(){return void 0===this.modelValue||null===this.modelValue?"boolean"===this.field.type?!0===this.field.default:void 0!==this.field.default?this.field.default:"":this.modelValue},set(e){JSON.stringify(e)!==JSON.stringify(this.modelValue)&&this.$emit("update:modelValue",e)}},fieldType(){return({str:"text",string:"text",int:"number",integer:"number",float:"number",text:"textarea",enum:"select",options:"radio",boolean:"checkbox",file:"file",date:"date",time:"time",email:"email",url:"url"})[this.field.type]||this.field.type},stepValue(){return"float"===this.field.type?"any":1},description(){return this.field.description||""}},methods:{handleFileUpload(e){let t=e.target.files[0];t&&(this.value=t)}}}}),a("58B43",function(e,t){r(e.exports,"render",function(){return I}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO"),s=l("fNp5a");let o={class:"form-field",style:{"margin-bottom":"15px",display:"grid","grid-template-columns":"35% 65%","align-items":"center"}},a=["for"],c={key:0,class:"required",style:{color:"#d93025","margin-left":"2px"}},u={style:{width:"100%"}},d={key:0,class:"field-context",style:{"margin-bottom":"8px","font-size":"0.9em",color:"#666","background-color":"#f8f9fa",padding:"8px","border-radius":"4px","border-left":"3px solid #4285f4"}},p=["id","required","placeholder","title"],h=["id","required","step","placeholder","title"],f=["id","required","rows","placeholder","title"],g=["id","required","title"],m=["value"],y={key:5,class:"radio-group",style:{display:"flex","flex-direction":"column",gap:"8px"}},x=["name","value","required"],b={key:6,class:"checkbox-container",style:{display:"flex","align-items":"center"}},k={class:"checkbox-label",style:{display:"flex","align-items":"center",cursor:"pointer"}},S=["id","required"],_={class:"checkbox-text"},w={key:0,class:"required",style:{color:"#d93025","margin-left":"2px"}},E=["id","required","accept","title"],T=["id","required","title"],C=["id","required","title"],A=["id","required","placeholder","title"],O=["id","required","placeholder","title"],D={key:12,class:"field-description",style:{display:"block","margin-top":"5px","font-size":"0.8rem",color:"#777","line-height":"1.4"}};function I(e,t,r,l,I,N){return(0,n.openBlock)(),(0,n.createElementBlock)("div",o,["checkbox"!==N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("label",{key:0,for:r.fieldId,style:{"margin-right":"10px","font-weight":"500"}},[(0,n.createTextVNode)((0,i.toDisplayString)(r.field.name)+" ",1),r.field.required?((0,n.openBlock)(),(0,n.createElementBlock)("span",c,"*")):(0,n.createCommentVNode)("",!0)],8,a)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",u,[r.field.context?((0,n.openBlock)(),(0,n.createElementBlock)("div",d,(0,i.toDisplayString)(r.field.context),1)):(0,n.createCommentVNode)("",!0),"text"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:1,id:r.fieldId,type:"text","onUpdate:modelValue":t[0]||(t[0]=e=>N.value=e),required:r.field.required,placeholder:r.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,p)),[[s.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"number"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:2,id:r.fieldId,type:"number","onUpdate:modelValue":t[1]||(t[1]=e=>N.value=e),required:r.field.required,step:N.stepValue,placeholder:r.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,h)),[[s.vModelText,N.value,void 0,{number:!0}]]):(0,n.createCommentVNode)("",!0),"textarea"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("textarea",{key:3,id:r.fieldId,"onUpdate:modelValue":t[2]||(t[2]=e=>N.value=e),required:r.field.required,rows:r.field.rows||3,placeholder:r.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box",resize:"vertical"}},null,8,f)),[[s.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"select"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("select",{key:4,id:r.fieldId,"onUpdate:modelValue":t[3]||(t[3]=e=>N.value=e),required:r.field.required,title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},[t[11]||(t[11]=(0,n.createElementVNode)("option",{value:""},"Selecteer een optie",-1)),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(r.field.allowedValues||r.field.allowed_values||[],e=>((0,n.openBlock)(),(0,n.createElementBlock)("option",{key:e,value:e},(0,i.toDisplayString)(e),9,m))),128))],8,g)),[[s.vModelSelect,N.value]]):(0,n.createCommentVNode)("",!0),"radio"===N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("div",y,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(r.field.allowedValues||r.field.allowed_values||[],e=>((0,n.openBlock)(),(0,n.createElementBlock)("label",{key:e,class:"radio-label",style:{display:"flex","align-items":"center",cursor:"pointer"}},[(0,n.withDirectives)((0,n.createElementVNode)("input",{type:"radio",name:r.fieldId,value:e,"onUpdate:modelValue":t[4]||(t[4]=e=>N.value=e),required:r.field.required,style:{"margin-right":"8px"}},null,8,x),[[s.vModelRadio,N.value]]),(0,n.createElementVNode)("span",null,(0,i.toDisplayString)(e),1)]))),128))])):(0,n.createCommentVNode)("",!0),"checkbox"===N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("div",b,[(0,n.createElementVNode)("label",k,[(0,n.withDirectives)((0,n.createElementVNode)("input",{type:"checkbox",id:r.fieldId,"onUpdate:modelValue":t[5]||(t[5]=e=>N.value=e),required:r.field.required,style:{"margin-right":"8px"}},null,8,S),[[s.vModelCheckbox,N.value]]),(0,n.createElementVNode)("span",_,(0,i.toDisplayString)(r.field.name),1),r.field.required?((0,n.openBlock)(),(0,n.createElementBlock)("span",w,"*")):(0,n.createCommentVNode)("",!0)])])):(0,n.createCommentVNode)("",!0),"file"===N.fieldType?((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:7,id:r.fieldId,type:"file",onChange:t[6]||(t[6]=(...e)=>N.handleFileUpload&&N.handleFileUpload(...e)),required:r.field.required,accept:r.field.accept||"*",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,40,E)):(0,n.createCommentVNode)("",!0),"date"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:8,id:r.fieldId,type:"date","onUpdate:modelValue":t[7]||(t[7]=e=>N.value=e),required:r.field.required,title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,T)),[[s.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"time"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:9,id:r.fieldId,type:"time","onUpdate:modelValue":t[8]||(t[8]=e=>N.value=e),required:r.field.required,title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,C)),[[s.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"email"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:10,id:r.fieldId,type:"email","onUpdate:modelValue":t[9]||(t[9]=e=>N.value=e),required:r.field.required,placeholder:r.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,A)),[[s.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),"url"===N.fieldType?(0,n.withDirectives)(((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:11,id:r.fieldId,type:"url","onUpdate:modelValue":t[10]||(t[10]=e=>N.value=e),required:r.field.required,placeholder:r.field.placeholder||"",title:N.description,style:{width:"100%",padding:"8px","border-radius":"4px",border:"1px solid #ddd","box-sizing":"border-box"}},null,8,O)),[[s.vModelText,N.value]]):(0,n.createCommentVNode)("",!0),N.description?((0,n.openBlock)(),(0,n.createElementBlock)("small",D,(0,i.toDisplayString)(N.description),1)):(0,n.createCommentVNode)("",!0)])])}}),a("hvpzC",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("dfeQd",function(e,t){r(e.exports,"render",function(){return k}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO");let s={class:"dynamic-form-container"},o={class:"dynamic-form"},a={key:0,class:"form-header"},c={key:0,class:"form-icon"},u={class:"material-symbols-outlined"},d={class:"form-title"},p={class:"form-fields"},h={key:1,class:"form-actions"},f=["disabled"],g=["disabled"],m={key:0},y={key:1},x={key:2,class:"form-readonly"},b={class:"field-label"};function k(e,t,r,l,k,S){let _=(0,n.resolveComponent)("form-field");return(0,n.openBlock)(),(0,n.createElementBlock)("div",s,[(0,n.createElementVNode)("div",o,[r.formData.title||r.formData.name||r.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("div",a,[r.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("div",c,[(0,n.createElementVNode)("span",u,(0,i.toDisplayString)(r.formData.icon),1)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",d,(0,i.toDisplayString)(r.formData.title||r.formData.name),1)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",p,[Array.isArray(r.formData.fields)?((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,{key:0},(0,n.renderList)(r.formData.fields,e=>((0,n.openBlock)(),(0,n.createBlock)(_,{key:e.id||e.name,field:e,"field-id":e.id||e.name,"model-value":k.localFormValues[e.id||e.name],"onUpdate:modelValue":t=>S.updateFieldValue(e.id||e.name,t)},null,8,["field","field-id","model-value","onUpdate:modelValue"]))),128)):"object"==typeof r.formData.fields?((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,{key:1},(0,n.renderList)(r.formData.fields,(e,t)=>((0,n.openBlock)(),(0,n.createBlock)(_,{key:t,field:e,"field-id":t,"model-value":k.localFormValues[t],"onUpdate:modelValue":e=>S.updateFieldValue(t,e)},null,8,["field","field-id","model-value","onUpdate:modelValue"]))),128)):(0,n.createCommentVNode)("",!0)]),r.hideActions||r.readOnly?(0,n.createCommentVNode)("",!0):((0,n.openBlock)(),(0,n.createElementBlock)("div",h,[(0,n.createElementVNode)("button",{type:"button",onClick:t[0]||(t[0]=(...e)=>S.handleCancel&&S.handleCancel(...e)),class:"btn btn-secondary",disabled:r.isSubmitting}," Annuleren ",8,f),(0,n.createElementVNode)("button",{type:"button",onClick:t[1]||(t[1]=(...e)=>S.handleSubmit&&S.handleSubmit(...e)),class:"btn btn-primary",disabled:r.isSubmitting||!S.isFormValid},[r.isSubmitting?((0,n.openBlock)(),(0,n.createElementBlock)("span",m,"Verzenden...")):((0,n.openBlock)(),(0,n.createElementBlock)("span",y,"Versturen"))],8,g)])),r.readOnly?((0,n.openBlock)(),(0,n.createElementBlock)("div",x,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(S.getFieldsForDisplay(),(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:t,class:"form-field-readonly"},[(0,n.createElementVNode)("div",b,(0,i.toDisplayString)(e.name)+":",1),(0,n.createElementVNode)("div",{class:(0,i.normalizeClass)(["field-value",{"text-value":"text"===e.type}])},(0,i.toDisplayString)(S.formatFieldValue(t,e)),3)]))),128))])):(0,n.createCommentVNode)("",!0)])])}}),a("bpKaV",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("gQG4c",function(e,t){r(e.exports,"IconManagerMixin",function(){return n}),window.iconManager={loadedIcons:[],loadIcon:function(e,t={}){if(!e||this.loadedIcons.includes(e))return;let n={opsz:24,wght:400,FILL:0,GRAD:0,...t},r=`material-symbols-${e}`;if(!document.getElementById(r)){let t=document.createElement("link");t.id=r,t.rel="stylesheet",t.href=`https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@${n.opsz},${n.wght},${n.FILL},${n.GRAD}&icon_names=${e}`,document.head.appendChild(t),console.log(`Material Symbol geladen: ${e}`),this.loadedIcons.push(e)}},loadIcons:function(e,t={}){if(!e||!Array.isArray(e)||0===e.length)return;let n=e.filter(e=>!this.loadedIcons.includes(e));if(0===n.length)return;let r={opsz:24,wght:400,FILL:0,GRAD:0,...t},i=`material-symbols-set-${n.join("-")}`;if(!document.getElementById(i)){let e=document.createElement("link");e.id=i,e.rel="stylesheet",e.href=`https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@${r.opsz},${r.wght},${r.FILL},${r.GRAD}&icon_names=${n.join(",")}`,document.head.appendChild(e),console.log(`Material Symbols geladen: ${n.join(", ")}`),this.loadedIcons.push(...n)}}};let n={created(){this.formData&&this.formData.icon&&window.iconManager.loadIcon(this.formData.icon)},watch:{"formData.icon":function(e){e&&window.iconManager.loadIcon(e)}},methods:{loadIcon(e,t){window.iconManager.loadIcon(e,t)},loadIcons(e,t){window.iconManager.loadIcons(e,t)}}};console.log("IconManager en IconManagerMixin zijn beschikbaar voor componenten")}),a("dv6Fl",function(e,t){r(e.exports,"render",function(){return y}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO"),s=l("fNp5a");let o={class:"chat-input-container"},a={key:0,class:"dynamic-form-container"},c={key:0,style:{color:"red",padding:"10px"}},u={class:"chat-input"},d={class:"input-main"},p=["placeholder","disabled","maxlength"],h={class:"input-actions"},f=["disabled","title"],g={key:0,class:"loading-spinner"},m={key:1,width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor"};function y(e,t,r,l,y,x){let b=(0,n.resolveComponent)("dynamic-form");return(0,n.openBlock)(),(0,n.createElementBlock)("div",o,[r.formData?((0,n.openBlock)(),(0,n.createElementBlock)("div",a,[r.formData.fields?(0,n.createCommentVNode)("",!0):((0,n.openBlock)(),(0,n.createElementBlock)("div",c,"Fout: Geen velden gevonden in formulier")),r.formData&&r.formData.fields?((0,n.openBlock)(),(0,n.createBlock)(b,{key:1,"form-data":r.formData,"form-values":y.formValues,"is-submitting":r.isLoading,"hide-actions":!0,"onUpdate:formValues":x.updateFormValues},null,8,["form-data","form-values","is-submitting","onUpdate:formValues"])):(0,n.createCommentVNode)("",!0)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",u,[(0,n.createElementVNode)("div",d,[(0,n.withDirectives)((0,n.createElementVNode)("textarea",{ref:"messageInput","onUpdate:modelValue":t[0]||(t[0]=e=>y.localMessage=e),onKeydown:t[1]||(t[1]=(...e)=>x.handleKeydown&&x.handleKeydown(...e)),placeholder:y.translatedPlaceholder,rows:"1",disabled:r.isLoading,maxlength:r.maxLength,class:(0,i.normalizeClass)(["message-input",{"over-limit":x.isOverLimit}])},null,42,p),[[s.vModelText,y.localMessage]]),r.maxLength?((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:0,class:(0,i.normalizeClass)(["character-counter",{"over-limit":x.isOverLimit}])},(0,i.toDisplayString)(x.characterCount)+"/"+(0,i.toDisplayString)(r.maxLength),3)):(0,n.createCommentVNode)("",!0)]),(0,n.createElementVNode)("div",h,[(0,n.createElementVNode)("button",{onClick:t[2]||(t[2]=(...e)=>x.sendMessage&&x.sendMessage(...e)),class:(0,i.normalizeClass)(["send-btn",{"form-mode":r.formData}]),disabled:!x.canSend,title:r.formData?"Verstuur formulier":"Verstuur bericht"},[r.isLoading?((0,n.openBlock)(),(0,n.createElementBlock)("span",g,"⏳")):((0,n.openBlock)(),(0,n.createElementBlock)("svg",m,t[3]||(t[3]=[(0,n.createElementVNode)("path",{d:"M2.01 21L23 12 2.01 3 2 10l15 2-15 2z"},null,-1)])))],10,f)])])])}}),a("dOnmI",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("dwb6L",function(e,t){n(e.exports),r(e.exports,"default",function(){return o});var i=l("lVdl4"),s=l("aNcdg"),o={name:"MessageHistory",components:{"chat-message":i.default,"typing-indicator":s.default},props:{messages:{type:Array,default:()=>[]},isTyping:{type:Boolean,default:!1},isSubmittingForm:{type:Boolean,default:!1},apiPrefix:{type:String,default:""},autoScroll:{type:Boolean,default:!0}},emits:["load-more","specialist-complete","specialist-error"],data:()=>({isAtBottom:!0,showScrollButton:!1,unreadCount:0,languageChangeHandler:null}),watch:{messages:{handler(e,t){this.autoScroll&&e.length>(t?.length||0)&&this.$nextTick(()=>{this.scrollToBottom()})},deep:!0},isTyping(e){e&&this.autoScroll&&this.$nextTick(()=>{this.scrollToBottom()})}},created(){this.languageChangeHandler=e=>{e.detail&&e.detail.language&&this.handleLanguageChange(e)},document.addEventListener("language-changed",this.languageChangeHandler)},mounted(){this.setupScrollListener(),this.autoScroll&&this.$nextTick(()=>{this.scrollToBottom()})},beforeUnmount(){let e=this.$refs.messagesContainer;e&&e.removeEventListener("scroll",this.handleScroll),this.languageChangeHandler&&document.removeEventListener("language-changed",this.languageChangeHandler)},methods:{async handleLanguageChange(e){if(1===this.messages.length&&"ai"===this.messages[0].sender){let t=this.messages[0];if(t.originalContent){console.log("Vertaling van eerste AI bericht naar:",e.detail.language);try{if(!window.TranslationClient||"function"!=typeof window.TranslationClient.translate)return void console.error("TranslationClient.translate is niet beschikbaar");let n=await window.TranslationClient.translate(t.originalContent,e.detail.language,null,"chat_message",this.apiPrefix);n.success?(t.content=n.translated_text,console.log("Eerste bericht succesvol vertaald")):console.error("Vertaling mislukt:",n.error)}catch(e){console.error("Fout bij vertalen eerste bericht:",e)}}}},scrollToBottom(){let e=this.$refs.messagesContainer;e&&(e.scrollTop=e.scrollHeight,this.isAtBottom=!0,this.showScrollButton=!1,this.unreadCount=0)},setupScrollListener(){let e=this.$refs.messagesContainer;e&&e.addEventListener("scroll",this.handleScroll)},handleScroll(){let e=this.$refs.messagesContainer;if(!e)return;let t=e.scrollHeight-e.scrollTop-e.clientHeight<100;this.isAtBottom=t,0===e.scrollTop&&this.$emit("load-more")},handleImageLoaded(){this.isAtBottom&&this.$nextTick(()=>this.scrollToBottom())},searchMessages(e){if(!e.trim())return this.messages;let t=e.toLowerCase();return this.messages.filter(e=>e.content&&e.content.toLowerCase().includes(t))}}}}),a("lVdl4",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("cVxOO")).__esModule&&(n=n.default),n.render=l("9jZm8").render,n.__cssModules={},l("JObLi").default(n),n.__scopeId="data-v-a78b4e",n.__file="ChatMessage.vue";var i=n}),a("cVxOO",function(e,t){n(e.exports),r(e.exports,"default",function(){return o});var i=l("9J6tU"),s=l("3b050"),o={name:"ChatMessage",components:{"dynamic-form":i.default,"progress-tracker":s.default},props:{message:{type:Object,required:!0,validator:e=>e.id&&void 0!==e.content&&e.sender&&e.type},isSubmittingForm:{type:Boolean,default:!1},apiPrefix:{type:String,default:""}},emits:["image-loaded","retry-message","specialist-complete","specialist-error"],data:()=>({formVisible:!0}),created(){window.iconManager&&this.message.formData&&this.message.formData.icon&&window.iconManager.loadIcon(this.message.formData.icon),"ai"!==this.message.sender||this.message.originalContent||(this.message.originalContent=this.message.content)},mounted(){document.addEventListener("language-changed",this.handleLanguageChange)},beforeUnmount(){document.removeEventListener("language-changed",this.handleLanguageChange)},computed:{hasFormData(){return this.message.formData&&(Array.isArray(this.message.formData.fields)&&this.message.formData.fields.length>0||"object"==typeof this.message.formData.fields&&Object.keys(this.message.formData.fields).length>0)},hasFormValues(){return this.message.formValues&&Object.keys(this.message.formValues).length>0}},watch:{"message.formData.icon":{handler(e){e&&window.iconManager&&window.iconManager.loadIcon(e)},immediate:!0}},methods:{async handleLanguageChange(e){},handleSpecialistError(e){console.log("ChatMessage received specialist-error event:",e),this.message.type="error",this.message.content=e.message||"Er is een fout opgetreden bij het verwerken van uw verzoek.",this.message.retryable=!0,this.message.error=!0,this.$emit("specialist-error",{messageId:this.message.id,...e})},handleSpecialistComplete(e){console.log("ChatMessage received specialist-complete event:",e),e.answer?(console.log("Updating message content with answer:",e.answer),this.message.content=e.answer):console.error("No answer in specialist-complete event data"),this.$emit("specialist-complete",{messageId:this.message.id,answer:e.answer,form_request:e.form_request,result:e.result,interactionId:e.interactionId,taskId:e.taskId})},formatMessage:e=>e?e.replace(/\*\*(.*?)\*\*/g,"$1").replace(/\*(.*?)\*/g,"$1").replace(/`(.*?)`/g,"$1").replace(/\[([^\]]+)\]\(([^)]+)\)/g,'$1').replace(/\n/g,"
"):"",removeMessage(){},reactToMessage(e){},getMessageClass(){return`message ${this.message.sender}`}}}}),a("3b050",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("kkMhm")).__esModule&&(n=n.default),n.render=l("iqgMR").render,n.__cssModules={},l("kgXYb").default(n),n.__scopeId="data-v-237cbd",n.__file="ProgressTracker.vue";var i=n}),a("kkMhm",function(e,t){n(e.exports),r(e.exports,"default",function(){return i});var i={name:"ProgressTracker",props:{taskId:{type:String,required:!0},apiPrefix:{type:String,default:""}},emits:["specialist-complete","specialist-error"],data:()=>({isExpanded:!1,isCompleted:!1,hasError:!1,connecting:!0,error:null,progressLines:[],eventSource:null}),computed:{displayLines(){return this.isExpanded?this.progressLines:this.progressLines.length>0?[this.progressLines[this.progressLines.length-1]]:[]}},mounted(){this.connectToProgressStream()},beforeUnmount(){this.disconnectEventSource()},methods:{connectToProgressStream(){if(!this.taskId)return void console.error("Geen task ID beschikbaar voor progress tracking");console.log("Connecting to progress stream for task:",this.taskId);let e=window.location.origin,t=`${e}${this.apiPrefix}/api/task_progress/${this.taskId}`;console.log("SSE URL:",t);try{this.eventSource=new EventSource(t),this.eventSource.onopen=()=>{console.log("Progress stream connected"),this.connecting=!1},this.eventSource.onmessage=e=>{this.handleProgressUpdate(e)},this.eventSource.onerror=e=>{console.error("Progress stream error:",e),this.handleError(e)}}catch(e){console.error("Failed to create EventSource:",e),this.error="Kan geen verbinding maken met de voortgangsstream.",this.connecting=!1}},disconnectEventSource(){this.eventSource&&(console.log("Disconnecting progress stream"),this.eventSource.close(),this.eventSource=null)},handleProgressUpdate(e){try{let t=JSON.parse(e.data);if(console.log("Progress update:",t),"EveAI Specialist Complete"===t.processing_type){console.log("Detected specialist complete via processing_type"),this.handleSpecialistComplete(e);return}if("EveAI Specialist Error"===t.processing_type){console.log("Detected specialist error via processing_type or status"),this.handleSpecialistError(e);return}t.message?this.progressLines.push(t.message):t.data&&t.data.message?this.progressLines.push(t.data.message):t.processing_type&&this.progressLines.push(`${t.processing_type}...`),this.isExpanded&&this.$nextTick(()=>{let e=this.$refs.progressContainer;e&&(e.scrollTop=e.scrollHeight)})}catch(e){console.error("Error parsing progress data:",e)}},handleSpecialistComplete(e){console.log("Specialist complete event:",e);try{let t=JSON.parse(e.data);console.log("Specialist complete data:",t),this.isCompleted=!0,this.connecting=!1,this.disconnectEventSource();let n=null,r=null,i=null,s=null;n=t.data.result,console.log("Result data:",n),n&&(r=n.answer,i=n.form_request,s=t.data.interaction_id),this.$emit("specialist-complete",{answer:r,form_request:i,result:n,interactionId:s,taskId:this.taskId})}catch(e){console.error("Error parsing specialist complete data:",e),this.handleSpecialistError({data:JSON.stringify({Error:"Failed to parse completion data",processing_type:"EveAI Specialist Error"})})}},handleSpecialistError(e){console.log("Specialist error event:",e);try{let t=JSON.parse(e.data);console.log("Specialist error data:",t),this.isCompleted=!0,this.hasError=!0,this.connecting=!1,this.disconnectEventSource();let n="We could not process your request. Please try again later.";this.error=n;let r=t.Error||t.error||t.message||t.data?.error||t.data?.Error||t.data?.message||"Unknown error";console.error("Specialist Error:",r),this.$emit("specialist-error",{message:n,originalError:r,taskId:this.taskId})}catch(e){console.error("Error parsing specialist error data:",e),this.error="Er is een onbekende fout opgetreden.",this.isCompleted=!0,this.hasError=!0,this.connecting=!1,this.disconnectEventSource(),this.$emit("specialist-error",{message:"Er is een onbekende fout opgetreden.",originalError:"Failed to parse error data",taskId:this.taskId})}},handleError(e){console.error("SSE Error event:",e),this.error="Er is een fout opgetreden bij het verwerken van updates.",this.connecting=!1;try{if(e.data){let t=JSON.parse(e.data);t&&t.message&&(this.error=t.message)}}catch(e){}this.$emit("specialist-error",{message:this.error,originalError:"SSE Connection Error",taskId:this.taskId})},toggleExpand(){this.isExpanded=!this.isExpanded,this.isExpanded&&this.$nextTick(()=>{let e=this.$refs.progressContainer;e&&(e.scrollTop=e.scrollHeight)})}}}}),a("iqgMR",function(e,t){r(e.exports,"render",function(){return y}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO");let s=["title"],o={class:"progress-title"},a={key:0,class:"spinner"},c={key:1,class:"status-icon error"},u={key:2,class:"status-icon completed"},d={key:3,class:"status-icon in-progress"},p={key:4},h={key:5},f={key:6},g={class:"progress-toggle"},m={key:0,class:"progress-error"};function y(e,t,r,l,y,x){return(0,n.openBlock)(),(0,n.createElementBlock)("div",{class:(0,i.normalizeClass)(["progress-tracker",{expanded:y.isExpanded,completed:y.isCompleted&&!y.hasError,error:y.error||y.hasError}])},[(0,n.createElementVNode)("div",{class:"progress-header",onClick:t[0]||(t[0]=(...e)=>x.toggleExpand&&x.toggleExpand(...e)),title:y.isExpanded?"Inklappen":"Uitklappen voor volledige voortgang"},[(0,n.createElementVNode)("div",o,[y.connecting?((0,n.openBlock)(),(0,n.createElementBlock)("span",a)):y.error?((0,n.openBlock)(),(0,n.createElementBlock)("span",c,"✗")):y.isCompleted?((0,n.openBlock)(),(0,n.createElementBlock)("span",u,"✓")):((0,n.openBlock)(),(0,n.createElementBlock)("span",d)),y.error?((0,n.openBlock)(),(0,n.createElementBlock)("span",p,"Fout bij verwerking")):y.isCompleted?((0,n.openBlock)(),(0,n.createElementBlock)("span",h,"Verwerking voltooid")):((0,n.openBlock)(),(0,n.createElementBlock)("span",f,"Bezig met redeneren..."))]),(0,n.createElementVNode)("div",g,(0,i.toDisplayString)(y.isExpanded?"▲":"▼"),1)],8,s),y.error?((0,n.openBlock)(),(0,n.createElementBlock)("div",m,(0,i.toDisplayString)(y.error),1)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",{ref:"progressContainer",class:(0,i.normalizeClass)(["progress-content",{"single-line":!y.isExpanded}])},[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(x.displayLines,(e,t)=>((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:t,class:"progress-line"},(0,i.toDisplayString)(e),1))),128))],2)],2)}}),a("kgXYb",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("9jZm8",function(e,t){r(e.exports,"render",function(){return O}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO");let s=["data-message-id"],o={key:0,class:"message-content",style:{width:"100%"}},a={key:1,class:"form-display user-form-values"},c={key:2,class:"form-display ai-form-values",style:{"margin-top":"15px"}},u={class:"form-result-table"},d={key:0},p={colspan:"2"},h={class:"form-header"},f={key:0,class:"material-symbols-outlined"},g={class:"field-label"},m={class:"field-value"},y=["type","placeholder"],x=["placeholder","rows"],b={key:2,class:"form-select"},k=["value"],S={key:3,class:"toggle-switch"},_=["placeholder"],w=["innerHTML"],E={key:1,class:"message-content error-content"},T={class:"form-error"},C={key:2,class:"message-content"},A=["innerHTML"];function O(e,t,r,l,O,D){let I=(0,n.resolveComponent)("progress-tracker"),N=(0,n.resolveComponent)("dynamic-form");return(0,n.openBlock)(),(0,n.createElementBlock)("div",{class:(0,i.normalizeClass)(D.getMessageClass()),"data-message-id":r.message.id},["text"===r.message.type?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,["ai"===r.message.sender&&r.message.taskId?((0,n.openBlock)(),(0,n.createBlock)(I,{key:0,"task-id":r.message.taskId,"api-prefix":r.apiPrefix,class:"message-progress",onSpecialistComplete:D.handleSpecialistComplete,onSpecialistError:D.handleSpecialistError},null,8,["task-id","api-prefix","onSpecialistComplete","onSpecialistError"])):(0,n.createCommentVNode)("",!0),r.message.formValues&&"user"===r.message.sender?((0,n.openBlock)(),(0,n.createElementBlock)("div",a,[(0,n.createVNode)(N,{"form-data":r.message.formData,"form-values":r.message.formValues,"read-only":!0,"hide-actions":"",class:"message-form user-form"},null,8,["form-data","form-values"])])):(0,n.createCommentVNode)("",!0),r.message.formData&&"ai"===r.message.sender?((0,n.openBlock)(),(0,n.createElementBlock)("div",c,[(0,n.createElementVNode)("table",u,[r.message.formData.title||r.message.formData.name||r.message.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("thead",d,[(0,n.createElementVNode)("tr",null,[(0,n.createElementVNode)("th",p,[(0,n.createElementVNode)("div",h,[r.message.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("span",f,(0,i.toDisplayString)(r.message.formData.icon),1)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("span",null,(0,i.toDisplayString)(r.message.formData.title||r.message.formData.name),1)])])])])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("tbody",null,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(r.message.formData.fields,(e,r)=>((0,n.openBlock)(),(0,n.createElementBlock)("tr",{key:r},[(0,n.createElementVNode)("td",g,(0,i.toDisplayString)(e.name)+":",1),(0,n.createElementVNode)("td",m,["str"===e.type||"string"===e.type||"int"===e.type||"integer"===e.type||"float"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:0,type:"int"===e.type||"integer"===e.type||"float"===e.type?"number":"text",placeholder:e.placeholder||"",class:"form-input"},null,8,y)):"text"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("textarea",{key:1,placeholder:e.placeholder||"",rows:e.rows||3,class:"form-textarea"},null,8,x)):"enum"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("select",b,[t[1]||(t[1]=(0,n.createElementVNode)("option",{value:""},"Selecteer een optie",-1)),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(e.allowedValues||e.allowed_values||[],e=>((0,n.openBlock)(),(0,n.createElementBlock)("option",{key:e,value:e},(0,i.toDisplayString)(e),9,k))),128))])):"boolean"===e.type?((0,n.openBlock)(),(0,n.createElementBlock)("div",S,t[2]||(t[2]=[(0,n.createElementVNode)("input",{type:"checkbox",class:"toggle-input"},null,-1),(0,n.createElementVNode)("span",{class:"toggle-slider"},[(0,n.createElementVNode)("span",{class:"toggle-knob"})],-1)]))):((0,n.openBlock)(),(0,n.createElementBlock)("input",{key:4,type:"text",placeholder:e.placeholder||"",class:"form-input"},null,8,_))])]))),128))])])])):(0,n.createCommentVNode)("",!0),r.message.content?((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:3,class:"message-text",innerHTML:D.formatMessage(r.message.content)},null,8,w)):(0,n.createCommentVNode)("",!0)])):"error"===r.message.type?((0,n.openBlock)(),(0,n.createElementBlock)("div",E,[(0,n.createElementVNode)("div",T,(0,i.toDisplayString)(r.message.content),1),r.message.retryable?((0,n.openBlock)(),(0,n.createElementBlock)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$emit("retry-message",r.message.id)),class:"retry-btn"}," Opnieuw proberen ")):(0,n.createCommentVNode)("",!0)])):((0,n.openBlock)(),(0,n.createElementBlock)("div",C,[(0,n.createElementVNode)("div",{class:"message-text",innerHTML:D.formatMessage(r.message.content)},null,8,A)]))],10,s)}}),a("JObLi",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("aNcdg",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("4QSxf")).__esModule&&(n=n.default),n.render=l("lDgl1").render,n.__cssModules={},l("8dpGK").default(n),n.__scopeId="data-v-a78025",n.__file="TypingIndicator.vue";var i=n}),a("4QSxf",function(e,t){n(e.exports),r(e.exports,"default",function(){return i});var i={name:"TypingIndicator",props:{showText:{type:Boolean,default:!1},text:{type:String,default:"Bezig met typen..."}},methods:{}}}),a("lDgl1",function(e,t){r(e.exports,"render",function(){return a}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO");let s={class:"typing-indicator"},o={key:0,class:"typing-text"};function a(e,t,r,l,a,c){return(0,n.openBlock)(),(0,n.createElementBlock)("div",s,[t[0]||(t[0]=(0,n.createElementVNode)("div",{class:"typing-dot"},null,-1)),t[1]||(t[1]=(0,n.createElementVNode)("div",{class:"typing-dot"},null,-1)),t[2]||(t[2]=(0,n.createElementVNode)("div",{class:"typing-dot"},null,-1)),r.showText?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,(0,i.toDisplayString)(r.text),1)):(0,n.createCommentVNode)("",!0)])}}),a("8dpGK",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("3LFpJ",function(e,t){r(e.exports,"render",function(){return c}),l("iJXGE");var n=l("iADb3");let i={class:"message-history-container"},s={class:"chat-messages",ref:"messagesContainer"},o={key:0,class:"load-more-indicator"},a={key:1,class:"empty-state"};function c(e,t,r,l,c,u){let d=(0,n.resolveComponent)("chat-message"),p=(0,n.resolveComponent)("typing-indicator");return(0,n.openBlock)(),(0,n.createElementBlock)("div",i,[(0,n.createElementVNode)("div",s,[e.$slots.loading?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,[(0,n.renderSlot)(e.$slots,"loading")])):(0,n.createCommentVNode)("",!0),0===r.messages.length?((0,n.openBlock)(),(0,n.createElementBlock)("div",a,t[2]||(t[2]=[(0,n.createElementVNode)("div",{class:"empty-icon"},"\uD83D\uDCAC",-1),(0,n.createElementVNode)("div",{class:"empty-text"},"Nog geen berichten",-1),(0,n.createElementVNode)("div",{class:"empty-subtext"},"Start een gesprek door een bericht te typen!",-1)]))):((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,{key:2},(0,n.renderList)(r.messages,(i,s)=>((0,n.openBlock)(),(0,n.createBlock)(d,{key:i.id,message:i,"is-submitting-form":r.isSubmittingForm,"api-prefix":r.apiPrefix,onImageLoaded:u.handleImageLoaded,onSpecialistComplete:t[0]||(t[0]=t=>e.$emit("specialist-complete",t)),onSpecialistError:t[1]||(t[1]=t=>e.$emit("specialist-error",t))},null,8,["message","is-submitting-form","api-prefix","onImageLoaded"]))),128)),r.isTyping?((0,n.openBlock)(),(0,n.createBlock)(p,{key:3})):(0,n.createCommentVNode)("",!0)],512)])}}),a("6hDPH",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("eu21N",function(e,t){n(e.exports),r(e.exports,"default",function(){return i});var i={name:"FormMessage",props:{formData:{type:Object,required:!0},formValues:{type:Object,required:!0}},computed:{hasFormData(){return this.formData&&this.formData.fields&&Object.keys(this.formData.fields).length>0},formattedFields(){return this.hasFormData?Object.entries(this.formData.fields).map(([e,t])=>{let n=this.formValues[e]||"";return"boolean"===t.type?n=n?"Ja":"Nee":"enum"===t.type&&!n&&t.default?n=t.default:t.type,{id:e,name:t.name,value:n||"-",type:t.type}}):[]}}}}),a("8lvfw",function(e,t){r(e.exports,"render",function(){return p}),l("iJXGE");var n=l("iADb3"),i=l("fVHkO");let s={key:0,class:"form-message"},o={key:0,class:"form-message-header"},a={key:0,class:"material-icons form-message-icon"},c={class:"form-message-title"},u={class:"form-message-fields"},d={class:"field-message-label"};function p(e,t,r,l,p,h){return h.hasFormData?((0,n.openBlock)(),(0,n.createElementBlock)("div",s,[r.formData.name?((0,n.openBlock)(),(0,n.createElementBlock)("div",o,[r.formData.icon?((0,n.openBlock)(),(0,n.createElementBlock)("i",a,(0,i.toDisplayString)(r.formData.icon),1)):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("span",c,(0,i.toDisplayString)(r.formData.name),1)])):(0,n.createCommentVNode)("",!0),(0,n.createElementVNode)("div",u,[((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(h.formattedFields,e=>((0,n.openBlock)(),(0,n.createElementBlock)("div",{key:e.id,class:"form-message-field"},[(0,n.createElementVNode)("div",d,(0,i.toDisplayString)(e.name)+":",1),(0,n.createElementVNode)("div",{class:(0,i.normalizeClass)(["field-message-value",{"text-value":"text"===e.type}])},(0,i.toDisplayString)(e.value),3)]))),128))])])):(0,n.createCommentVNode)("",!0)}}),a("4boaj",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),a("6jOml",function(e,t){n(e.exports),r(e.exports,"default",function(){return p});var i=l("aNcdg"),s=l("70gdv"),o=l("9J6tU"),a=l("lVdl4"),c=l("1MYs0"),u=l("3b050");l("2Fvhx");var d=l("2TN9T"),p={name:"ChatApp",components:{TypingIndicator:i.default,FormField:s.default,DynamicForm:o.default,ChatMessage:a.default,MessageHistory:c.default,ProgressTracker:u.default,ChatInput:d.default},data(){let e=window.chatConfig||{},t=e.settings||{},n=e.language||"nl",r=e.explanation||"",i=e.tenantMake||{};return{tenantName:i.name||"EveAI",tenantLogoUrl:i.logo_url||"",currentLanguage:n,supportedLanguageDetails:e.supportedLanguageDetails||{},allowedLanguages:e.allowedLanguages||["nl","en","fr","de"],supportedLanguages:e.supportedLanguages||[],originalExplanation:r,explanation:e.explanation||"",currentMessage:"",allMessages:[],isTyping:!1,isLoading:!1,isSubmittingForm:!1,messageIdCounter:1,formValues:{},currentInputFormData:null,apiPrefix:e.apiPrefix||"",conversationId:e.conversationId||"default",userId:e.userId||null,userName:e.userName||"",settings:{maxMessageLength:t.maxMessageLength||2e3,allowFileUpload:!0===t.allowFileUpload,allowVoiceMessage:!0===t.allowVoiceMessage,autoScroll:!0===t.autoScroll},isMobile:window.innerWidth<=768,showSidebar:window.innerWidth>768,messageSearch:"",filteredMessages:[],isSearching:!1}},computed:{compiledExplanation(){return"function"==typeof marked?marked(this.explanation):marked&&"function"==typeof marked.parse?marked.parse(this.explanation.replace(/\[\[(.*?)\]\]/g,"$1")):(console.error("Marked library not properly loaded"),this.explanation)},displayMessages(){return this.isSearching?this.filteredMessages:this.allMessages},hasMessages(){return this.allMessages.length>0},displayLanguages(){return this.supportedLanguages&&this.allowedLanguages?this.supportedLanguages.filter(e=>this.allowedLanguages.includes(e.code)):[]}},mounted(){this.initializeChat(),this.setupEventListeners()},beforeUnmount(){this.cleanup()},methods:{initializeChat(){console.log("Initializing chat application..."),this.loadHistoricalMessages(),console.log("Nr of messages:",this.allMessages.length),0===this.allMessages.length&&this.addWelcomeMessage(),this.$nextTick(()=>{this.focusChatInput()})},loadHistoricalMessages(){let e=(window.chatConfig||{}).messages||[];e.length>0&&(this.allMessages=e.filter(e=>null!=e).map(e=>({id:this.messageIdCounter++,content:"string"==typeof e?e:e.content||"",sender:e.sender||"ai",type:e.type||"text",timestamp:e.timestamp||new Date().toISOString(),formData:e.formData||null,status:e.status||"delivered"})),console.log(`Loaded ${this.allMessages.length} historical messages`))},async addWelcomeMessage(){console.log("Sending initialize message to backend"),this.isTyping=!0,this.isLoading=!0,console.log("API prefix:",this.apiPrefix);try{let e=await fetch(`${this.apiPrefix}/api/send_message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:"Initialize",language:this.currentLanguage,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})});if(!e.ok)throw Error(`HTTP error! status: ${e.status}`);let t=await e.json();if(console.log("Initialize response:",t),t.task_id){let e={id:this.messageIdCounter++,content:"Bezig met laden...",sender:"ai",type:"text",timestamp:new Date().toISOString(),taskId:t.task_id,status:"processing"};this.allMessages.push(e)}}catch(e){console.error("Error sending initialize message:",e),this.addMessage({content:"Er is een fout opgetreden bij het initialiseren van de chat.",sender:"ai",type:"error"})}finally{this.isTyping=!1,this.isLoading=!1}},addMessage(e){let t={id:this.messageIdCounter++,content:e.content||"",sender:e.sender||"user",type:e.type||"text",timestamp:e.timestamp||new Date().toISOString(),formData:e.formData||null,formValues:e.formValues||null,status:e.status||"delivered"};return this.allMessages.push(t),this.$nextTick(()=>{this.scrollToBottom()}),t},async sendMessage(){if(!this.currentMessage.trim()&&!this.currentInputFormData)return;console.log("Sending message:",this.currentMessage),this.addMessage({content:this.currentMessage,sender:"user",formData:this.currentInputFormData,formValues:this.formValues});let e=this.currentMessage,t={...this.formValues};this.currentMessage="",this.formValues={},this.currentInputFormData=null,this.isTyping=!0,this.isLoading=!0;try{let n=await fetch(`${this.apiPrefix}/api/send_message`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({message:e,form_values:Object.keys(t).length>0?t:void 0,language:this.currentLanguage,timezone:Intl.DateTimeFormat().resolvedOptions().timeZone})});if(!n.ok)throw Error(`HTTP error! status: ${n.status}`);let r=await n.json();if(console.log("Send message response:",r),r.task_id){let e={id:this.messageIdCounter++,content:"Bezig met verwerken...",sender:"ai",type:"text",timestamp:new Date().toISOString(),taskId:r.task_id,status:"processing"};this.allMessages.push(e)}}catch(e){console.error("Error sending message:",e),this.addMessage({content:"Er is een fout opgetreden bij het verzenden van het bericht.",sender:"ai",type:"error"})}finally{this.isTyping=!1,this.isLoading=!1}},updateCurrentMessage(e){this.currentMessage=e},submitFormFromInput(e){console.log("Form submitted from input:",e),this.formValues=e,this.sendMessage()},handleFileUpload(e){console.log("File upload:",e)},handleVoiceRecord(e){console.log("Voice record:",e)},setupEventListeners(){document.addEventListener("language-changed",e=>{e.detail&&e.detail.language&&(this.currentLanguage=e.detail.language,console.log(`Language changed to: ${this.currentLanguage}`))}),window.addEventListener("resize",()=>{this.isMobile=window.innerWidth<=768,this.showSidebar=window.innerWidth>768})},cleanup(){document.removeEventListener("language-changed",this.handleLanguageChange),window.removeEventListener("resize",this.handleResize)},handleSpecialistComplete(e){console.log("Specialist complete event received:",e);let t=this.allMessages.findIndex(t=>t.taskId===e.taskId);-1!==t&&(this.allMessages[t].content=e.answer,this.allMessages[t].status="completed",e.form_request&&(console.log("Form request received:",e.form_request),this.currentInputFormData=e.form_request)),this.isTyping=!1,this.isLoading=!1},handleSpecialistError(e){console.log("Specialist error event received:",e);let t=this.allMessages.findIndex(t=>t.taskId===e.taskId);-1!==t&&(this.allMessages[t].content=e.message||"Er is een fout opgetreden.",this.allMessages[t].type="error",this.allMessages[t].status="error"),this.isTyping=!1,this.isLoading=!1},scrollToBottom(){this.$refs.messageHistory&&this.$refs.messageHistory.scrollToBottom()},focusChatInput(){this.$refs.chatInput&&this.$refs.chatInput.focusInput()},searchMessages(e){if(!e.trim()){this.isSearching=!1,this.filteredMessages=[];return}this.isSearching=!0;let t=e.toLowerCase();this.filteredMessages=this.allMessages.filter(e=>e.content&&e.content.toLowerCase().includes(t))},clearSearch(){this.isSearching=!1,this.filteredMessages=[],this.messageSearch=""}}}}),a("1MYs0",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("dwb6L")).__esModule&&(n=n.default),n.render=l("3LFpJ").render,n.__cssModules={},l("6hDPH").default(n),n.__scopeId="data-v-efbfed",n.__file="MessageHistory.vue";var i=n}),a("2Fvhx",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("lfk1t")).__esModule&&(n=n.default),n.render=l("esoaL").render,n.__cssModules={},l("6VrmS").default(n),n.__scopeId="data-v-f6c05b",n.__file="LanguageSelector.vue";var i=n}),a("2TN9T",function(e,t){let n;r(e.exports,"default",function(){return i}),(n=l("13ZGu")).__esModule&&(n=n.default),n.render=l("dv6Fl").render,n.__cssModules={},l("dOnmI").default(n),n.__scopeId="data-v-df2e88",n.__file="ChatInput.vue";var i=n}),a("1JmDG",function(e,t){r(e.exports,"render",function(){return s}),l("iJXGE");var n=l("iADb3");let i={class:"chat-app-container"};function s(e,t,r,s,o,l){let a=(0,n.resolveComponent)("message-history"),c=(0,n.resolveComponent)("chat-input");return(0,n.openBlock)(),(0,n.createElementBlock)("div",i,[(0,n.createVNode)(a,{messages:l.displayMessages,"is-typing":o.isTyping,"is-submitting-form":o.isSubmittingForm,"api-prefix":o.apiPrefix,"auto-scroll":!0,onSpecialistError:l.handleSpecialistError,onSpecialistComplete:l.handleSpecialistComplete,ref:"messageHistory",class:"chat-messages-area"},null,8,["messages","is-typing","is-submitting-form","api-prefix","onSpecialistError","onSpecialistComplete"]),(0,n.createVNode)(c,{"current-message":o.currentMessage,"is-loading":o.isLoading,"max-length":2e3,"allow-file-upload":!0,"allow-voice-message":!1,"form-data":o.currentInputFormData,onSendMessage:l.sendMessage,onUpdateMessage:l.updateCurrentMessage,onUploadFile:l.handleFileUpload,onRecordVoice:l.handleVoiceRecord,onSubmitForm:l.submitFormFromInput,ref:"chatInput",class:"chat-input-area"},null,8,["current-message","is-loading","form-data","onSendMessage","onUpdateMessage","onUploadFile","onRecordVoice","onSubmitForm"])])}}),a("cH9BU",function(e,t){r(e.exports,"default",function(){return n});var n=e=>{}}),l("iJXGE");var c=l("fNp5a"),u=l("iADb3"),d={};"u">typeof globalThis||"u">typeof self&&self,d=function(){"use strict";var e={exports:{}},t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.prototype.hasOwnProperty,s={},o={Hooks:()=>ey,Lexer:()=>eh,Marked:()=>ex,Parser:()=>em,Renderer:()=>ef,TextRenderer:()=>eg,Tokenizer:()=>ep,defaults:()=>c,getDefaults:()=>a,lexer:()=>eA,marked:()=>eb,options:()=>ek,parse:()=>eT,parseInline:()=>eE,parser:()=>eC,setOptions:()=>eS,use:()=>e_,walkTokens:()=>ew};for(var l in o)t(s,l,{get:o[l],enumerable:!0});function a(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}e.exports=((e,s,o,l)=>{if(s&&"object"==typeof s||"function"==typeof s)for(let a of r(s))i.call(e,a)||a===o||t(e,a,{get:()=>s[a],enumerable:!(l=n(s,a))||l.enumerable});return e})(t({},"__esModule",{value:!0}),s);var c=a(),u={exec:()=>null};function d(e,t=""){let n="string"==typeof e?e:e.source,r={replace:(e,t)=>{let i="string"==typeof t?t:t.source;return i=i.replace(p.caret,"$1"),n=n.replace(e,i),r},getRegex:()=>new RegExp(n,t)};return r}var p={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceTabs:/^\t+/,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] /,listReplaceTask:/^\[[ xX]\] +/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:e=>RegExp(`^( {0,3}${e})((?:[ ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ ][^\\n]*)?(?:\\n|$))`),hrRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}#`),htmlBeginRegex:e=>RegExp(`^ {0,${Math.min(3,e-1)}}<(?:[a-z].*>|!--)`,"i")},h=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,f=/(?:[*+-]|\d{1,9}[.)])/,g=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,m=d(g).replace(/bull/g,f).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),y=d(g).replace(/bull/g,f).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),x=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,b=/(?!\s*\])(?:\\.|[^\[\]\\])+/,k=d(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",b).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),S=d(/^( {0,3}bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,f).getRegex(),_="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",w=/|$))/,E=d("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|\\n*|$)|\\n*|$)|)[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$)|(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ ]*)+\\n|$))","i").replace("comment",w).replace("tag",_).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),T=d(x).replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",_).getRegex(),C={blockquote:d(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",T).getRegex(),code:/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,def:k,fences:/^ {0,3}(`{3,}(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,heading:/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,hr:h,html:E,lheading:m,list:S,newline:/^(?:[ \t]*(?:\n|$))+/,paragraph:T,table:u,text:/^[^\n]+/},A=d("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3} )[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",_).getRegex(),O={...C,lheading:y,table:A,paragraph:d(x).replace("hr",h).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",A).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)]) ").replace("html",")|<(?:script|pre|style|textarea|!--)").replace("tag",_).getRegex()},D={...C,html:d(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",w).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:u,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:d(x).replace("hr",h).replace("heading",` *#{1,6} *[^ +]`).replace("lheading",m).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},I=/^( {2,}|\\)\n(?!\s*$)/,N=/[\p{P}\p{S}]/u,M=/[\s\p{P}\p{S}]/u,V=/[^\s\p{P}\p{S}]/u,R=d(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,M).getRegex(),L=/(?!~)[\p{P}\p{S}]/u,B=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,P=d(B,"u").replace(/punct/g,N).getRegex(),$=d(B,"u").replace(/punct/g,L).getRegex(),F="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",z=d(F,"gu").replace(/notPunctSpace/g,V).replace(/punctSpace/g,M).replace(/punct/g,N).getRegex(),j=d(F,"gu").replace(/notPunctSpace/g,/(?:[^\s\p{P}\p{S}]|~)/u).replace(/punctSpace/g,/(?!~)[\s\p{P}\p{S}]/u).replace(/punct/g,L).getRegex(),H=d("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,V).replace(/punctSpace/g,M).replace(/punct/g,N).getRegex(),U=d(/\\(punct)/,"gu").replace(/punct/g,N).getRegex(),q=d(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),J=d(w).replace("(?:--\x3e|$)","--\x3e").getRegex(),Y=d("^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^").replace("comment",J).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),G=/(?:\[(?:\\.|[^\[\]\\])*\]|\\.|`[^`]*`|[^\[\]\\`])*?/,W=d(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",G).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),K=d(/^!?\[(label)\]\[(ref)\]/).replace("label",G).replace("ref",b).getRegex(),Z=d(/^!?\[(ref)\](?:\[\])?/).replace("ref",b).getRegex(),X=d("reflink|nolink(?!\\()","g").replace("reflink",K).replace("nolink",Z).getRegex(),Q={_backpedal:u,anyPunctuation:U,autolink:q,blockSkip:/\[[^[\]]*?\]\((?:\\.|[^\\\(\)]|\((?:\\.|[^\\\(\)])*\))*\)|`[^`]*?`|<(?! )[^<>]*?>/g,br:I,code:/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,del:u,emStrongLDelim:P,emStrongRDelimAst:z,emStrongRDelimUnd:H,escape:/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,link:W,nolink:Z,punctuation:R,reflink:K,reflinkSearch:X,tag:Y,text:/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\":">",'"':""","'":"'"},eo=e=>es[e];function el(e,t){if(t){if(p.escapeTest.test(e))return e.replace(p.escapeReplace,eo)}else if(p.escapeTestNoEncode.test(e))return e.replace(p.escapeReplaceNoEncode,eo);return e}function ea(e){try{e=encodeURI(e).replace(p.percentDecode,"%")}catch{return null}return e}function ec(e,t){let n=e.replace(p.findPipe,(e,t,n)=>{let r=!1,i=t;for(;--i>=0&&"\\"===n[i];)r=!r;return r?"|":" |"}).split(p.splitPipe),r=0;if(n[0].trim()||n.shift(),n.length>0&&!n.at(-1)?.trim()&&n.pop(),t)if(n.length>t)n.splice(t);else for(;n.length0)return{type:"space",raw:t[0]}}code(e){let t=this.rules.block.code.exec(e);if(t){let e=t[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:t[0],codeBlockStyle:"indented",text:this.options.pedantic?e:eu(e,` `)}}}fences(e){let t=this.rules.block.fences.exec(e);if(t){let e=t[0],n=function(e,t,n){let r=e.match(n.other.indentCodeCompensation);if(null===r)return t;let i=r[1];return t.split(` `).map(e=>{let t=e.match(n.other.beginningSpace);if(null===t)return e;let[r]=t;return r.length>=i.length?e.slice(i.length):e}).join(` `)}(e,t[3]||"",this.rules);return{type:"code",raw:e,lang:t[2]?t[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):t[2],text:n}}}heading(e){let t=this.rules.block.heading.exec(e);if(t){let e=t[2].trim();if(this.rules.other.endingHash.test(e)){let t=eu(e,"#");(this.options.pedantic||!t||this.rules.other.endingSpaceChar.test(t))&&(e=t.trim())}return{type:"heading",raw:t[0],depth:t[1].length,text:e,tokens:this.lexer.inline(e)}}}hr(e){let t=this.rules.block.hr.exec(e);if(t)return{type:"hr",raw:eu(t[0],` @@ -70,46 +70,5 @@ ${this.parser.parse(e)} ${e} `}tablecell(e){let t=this.parser.parseInline(e.tokens),n=e.header?"th":"td";return(e.align?`<${n} align="${e.align}">`:`<${n}>`)+t+` `}strong({tokens:e}){return`${this.parser.parseInline(e)}`}em({tokens:e}){return`${this.parser.parseInline(e)}`}codespan({text:e}){return`${el(e,!0)}`}br(e){return"
"}del({tokens:e}){return`${this.parser.parseInline(e)}`}link({href:e,title:t,tokens:n}){let r=this.parser.parseInline(n),i=ea(e);if(null===i)return r;let s='
"}image({href:e,title:t,text:n,tokens:r}){r&&(n=this.parser.parseInline(r,this.parser.textRenderer));let i=ea(e);if(null===i)return el(n);e=i;let s=`${n}{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if("renderer"in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return!1===r&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new ef(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let r=e.renderer[n],i=t[n];t[n]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n||""}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new ep(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let r=e.tokenizer[n],i=t[n];t[n]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new ey;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let r=e.hooks[n],i=t[n];ey.passThroughHooks.has(n)?t[n]=e=>{if(this.defaults.async)return Promise.resolve(r.call(t,e)).then(e=>i.call(t,e));let n=r.call(t,e);return i.call(t,n)}:t[n]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return eh.lex(e,t??this.defaults)}parser(e,t){return em.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},s=this.onError(!!i.silent,!!i.async);if(!0===this.defaults.async&&!1===r.async)return s(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return s(Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return s(Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=e);let o=i.hooks?i.hooks.provideLexer():e?eh.lex:eh.lexInline,l=i.hooks?i.hooks.provideParser():e?em.parse:em.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(t):t).then(e=>o(e,i)).then(e=>i.hooks?i.hooks.processAllTokens(e):e).then(e=>i.walkTokens?Promise.all(this.walkTokens(e,i.walkTokens)).then(()=>e):e).then(e=>l(e,i)).then(e=>i.hooks?i.hooks.postprocess(e):e).catch(s);try{i.hooks&&(t=i.hooks.preprocess(t));let e=o(t,i);i.hooks&&(e=i.hooks.processAllTokens(e)),i.walkTokens&&this.walkTokens(e,i.walkTokens);let n=l(e,i);return i.hooks&&(n=i.hooks.postprocess(n)),n}catch(e){return s(e)}}}onError(e,t){return n=>{if(n.message+=` -Please report this to https://github.com/markedjs/marked.`,e){let e="

An error occurred:

"+el(n.message+"",!0)+"
";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},ex=new ev;function eb(e,t){return ex.parse(e,t)}eb.options=eb.setOptions=function(e){return ex.setOptions(e),eb.defaults=ex.defaults,c=eb.defaults,eb},eb.getDefaults=a,eb.defaults=c,eb.use=function(...e){return ex.use(...e),eb.defaults=ex.defaults,c=eb.defaults,eb},eb.walkTokens=function(e,t){return ex.walkTokens(e,t)},eb.parseInline=ex.parseInline,eb.Parser=em,eb.parser=em.parse,eb.Renderer=ef,eb.TextRenderer=eg,eb.Lexer=eh,eb.lexer=eh.lex,eb.Tokenizer=ep,eb.Hooks=ey,eb.parse=eb;var ek=eb.options,eS=eb.setOptions,e_=eb.use,ew=eb.walkTokens,eD=eb.parseInline,eE=eb,eC=em.parse,eT=eh.lex;return e.exports}(),c("gQG4c"),window.TranslationClient={translate:async function(e,t,n=null,r=null,i=""){try{let s={text:e,target_lang:t};n&&(s.source_lang=n),r&&(s.context=r);let o=`${i}/chat/api/translate`;console.log(`Vertaling aanvragen op endpoint: ${o}`);let l=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!l.ok){let e=await l.json();throw Error(e.error||"Onbekende fout bij vertalen")}return await l.json()}catch(e){throw console.error("Vertaalfout:",e),e}}},console.log("TranslationClient geladen en klaar voor gebruik");var f={};s(f,"LanguageSelector",function(){return g}),s(f,"ChatInput",function(){return m}),s(f,"MessageHistory",function(){return y}),s(f,"ChatMessage",function(){return c("lVdl4").default}),s(f,"TypingIndicator",function(){return c("aNcdg").default}),s(f,"ProgressTracker",function(){return c("3b050").default}),s(f,"DynamicForm",function(){return c("9J6tU").default}),s(f,"FormField",function(){return c("70gdv").default}),s(f,"FormMessage",function(){return w}),(e=c("lfk1t")).__esModule&&(e=e.default),e.render=c("esoaL").render,e.__cssModules={},c("6VrmS").default(e),e.__scopeId="data-v-9a7b49",e.__file="LanguageSelector.vue";var g=e;(t=c("13ZGu")).__esModule&&(t=t.default),t.render=c("dv6Fl").render,t.__cssModules={},c("dOnmI").default(t),t.__scopeId="data-v-df2e88",t.__file="ChatInput.vue";var m=t;(n=c("dwb6L")).__esModule&&(n=n.default),n.render=c("3LFpJ").render,n.__cssModules={},c("6hDPH").default(n),n.__scopeId="data-v-efbfed",n.__file="MessageHistory.vue";var y=n,x=c("lVdl4"),b=c("aNcdg"),k=c("3b050"),S=c("9J6tU"),_=c("70gdv");(r=c("eu21N")).__esModule&&(r=r.default),r.render=c("8lvfw").render,r.__cssModules={},c("4boaj").default(r),r.__scopeId="data-v-199543",r.__file="FormMessage.vue";var w=r;console.log("Vue components loaded successfully from barrel export");var b=c("aNcdg"),_=c("70gdv"),S=c("9J6tU"),x=c("lVdl4"),k=c("3b050");let D={name:"ChatApp",components:{TypingIndicator:b.default,FormField:_.default,DynamicForm:S.default,ChatMessage:x.default,MessageHistory:y,ProgressTracker:k.default,ChatInput:m},data(){let e=window.chatConfig||{},t=e.settings||{},n=e.language||"nl",r=e.explanation||"",i=e.tenantMake||{};return{tenantName:i.name||"EveAI",tenantLogoUrl:i.logo_url||"",currentLanguage:n,supportedLanguageDetails:e.supportedLanguageDetails||{},allowedLanguages:e.allowedLanguages||["nl","en","fr","de"],supportedLanguages:e.supportedLanguages||[],originalExplanation:r,explanation:e.explanation||"",currentMessage:"",allMessages:[],isTyping:!1,isLoading:!1,isSubmittingForm:!1,messageIdCounter:1,formValues:{},currentInputFormData:null,apiPrefix:e.apiPrefix||"",conversationId:e.conversationId||"default",userId:e.userId||null,userName:e.userName||"",settings:{maxMessageLength:t.maxMessageLength||2e3,allowFileUpload:!0===t.allowFileUpload,allowVoiceMessage:!0===t.allowVoiceMessage,autoScroll:!0===t.autoScroll},isMobile:window.innerWidth<=768,showSidebar:window.innerWidth>768,messageSearch:"",filteredMessages:[],isSearching:!1}},computed:{compiledExplanation(){return"function"==typeof marked?marked(this.explanation):marked&&"function"==typeof marked.parse?marked.parse(this.explanation.replace(/\[\[(.*?)\]\]/g,"$1")):(console.error("Marked library not properly loaded"),this.explanation)},displayMessages(){return this.isSearching?this.filteredMessages:this.allMessages},hasMessages(){return this.allMessages.length>0},displayLanguages(){return this.supportedLanguages&&this.allowedLanguages?this.supportedLanguages.filter(e=>this.allowedLanguages.includes(e.code)):[]}},mounted(){console.log("\uD83D\uDD0D [DEBUG] ChatApp mounted"),console.log("\uD83D\uDD0D [DEBUG] ChatApp data:",{tenantName:this.tenantName,currentLanguage:this.currentLanguage,allowedLanguages:this.allowedLanguages,conversationId:this.conversationId,userId:this.userId}),console.log("\uD83D\uDD0D [DEBUG] Geregistreerde componenten:",{messageHistory:!!this.$options.components.MessageHistory,chatInput:!!this.$options.components.ChatInput}),this.renderComponent(),console.log("\uD83D\uDD0D [DEBUG] ChatApp mounted"),console.log("\uD83D\uDD0D [DEBUG] Props en data:",{currentLanguage:this.currentLanguage,allowedLanguages:this.allowedLanguages,tenantName:this.tenantName}),this.initializeChat(),this.setupEventListeners(),this.renderComponent()},beforeUnmount(){this.cleanup()},renderComponent(){console.log("\uD83D\uDD0D [DEBUG] ChatApp.renderComponent() aangeroepen")},methods:{initializeChat(){console.log("Initializing chat application..."),this.loadHistoricalMessages(),console.log("Nr of messages:",this.allMessages.length),0===this.allMessages.length&&this.addWelcomeMessage(),this.$nextTick(()=>{this.focusChatInput()})},loadHistoricalMessages(){let e=(window.chatConfig||{}).messages||[];e.length>0&&(this.allMessages=e.filter(e=>null!=e).map(e=>({id:this.messageIdCounter++,content:"string"==typeof e?e:e.content||"",sender:e.sender||"ai",type:e.type||"text",timestamp:e.timestamp||new Date().toISOString(),formData:e.formData||null,status:e.status||"delivered"})),console.log(`Loaded ${this.allMessages.length} historical messages`))},async addWelcomeMessage(){console.log("Sending initialize message to backend"),this.isTyping=!0,this.isLoading=!0;try{let e={message:"Initialize",conversation_id:this.conversationId,user_id:this.userId,language:this.currentLanguage},t=await this.callAPI("/api/send_message",e);this.isTyping=!1;let n=this.addMessage("","ai","text");t.task_id&&(console.log("Monitoring Initialize Task ID: ",t.task_id),n.taskId=t.task_id)}catch(e){console.error("Error sending initialize message:",e),this.isTyping=!1,this.addMessage('Hallo! Ik ben je AI assistant. Vraag gerust om een formulier zoals "contactformulier" of "bestelformulier"!',"ai","text")}finally{this.isLoading=!1}},setupEventListeners(){window.addEventListener("resize",this.handleResize),document.addEventListener("keydown",this.handleGlobalKeydown),document.addEventListener("language-changed",e=>{e.detail&&e.detail.language&&(console.log("ChatApp received language-changed event:",e.detail.language),this.handleLanguageChange(e.detail.language))})},cleanup(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("keydown",this.handleGlobalKeydown)},handleLanguageChange(e){if(this.currentLanguage!==e){console.log(`ChatApp: Taal gewijzigd van ${this.currentLanguage} naar ${e}`),this.currentLanguage=e,this.translateSidebar(e),this.storeLanguagePreference(e);let t=new CustomEvent("language-changed",{detail:{language:e}});document.dispatchEvent(t)}},__handleExternalLanguageChange(e){this.handleLanguageChange(e)},storeLanguagePreference(e){localStorage.setItem("preferredLanguage",e),window.chatConfig&&(window.chatConfig.language=e),console.log(`Taalvoorkeur opgeslagen: ${e}`)},async translateSidebar(e){console.log(`Sidebar wordt vertaald naar: ${e}`);let t=this.originalExplanation||this.explanation;try{if(!window.TranslationClient||"function"!=typeof window.TranslationClient.translate){console.error("TranslationClient.translate is niet beschikbaar"),this.showTranslationIndicator(e,"Vertaling niet beschikbaar",!1);return}this.showTranslationIndicator(e,"Bezig met vertalen..."),console.log("API prefix voor vertaling:",this.apiPrefix);let n=await window.TranslationClient.translate(t,e,null,"sidebar_explanation",this.apiPrefix);if(n.success){console.log("Translated text: "+n.translated_text),this.explanation=n.translated_text,window.__vueApp&&window.__vueApp._instance&&(window.__vueApp._instance.proxy.explanation=n.translated_text);let t=document.querySelector(".sidebar-explanation");if(t)console.log("DOM-element gevonden, directe update toepassen"),t.innerHTML="function"==typeof marked?marked(n.translated_text):marked&&"function"==typeof marked.parse?marked.parse(n.translated_text):n.translated_text;else console.error("Sidebar explanation element niet gevonden in DOM");this.showTranslationIndicator(e,"Vertaling voltooid!",!0)}else console.error("Vertaling mislukt:",n.error),this.showTranslationIndicator(e,"Vertaling mislukt",!1)}catch(t){console.error("Fout bij vertalen sidebar:",t),this.showTranslationIndicator(e,"Vertaling mislukt",!1)}},addMessage(e,t,n="text",r=null,i=null){let s={id:this.messageIdCounter++,content:e,sender:t,type:n,formData:r,formValues:i,timestamp:new Date().toISOString(),status:"user"===t?"sent":"delivered"};return this.allMessages.push(s),"form"===n&&r&&!i&&(this.formValues[s.id]={},r.fields.forEach(e=>{let t=e.name||e.id;t&&(this.formValues[s.id][t]=e.defaultValue||"")})),this.isSearching&&this.performSearch(),s},showTranslationIndicator(e,t,n=null){let r=document.querySelector(".sidebar-explanation");if(r){let e=r.querySelector(".language-change-indicator");e&&e.remove();let i=document.createElement("div");i.className="language-change-indicator",!0===n&&i.classList.add("success"),!1===n&&i.classList.add("error"),i.innerHTML=`${t}`,r.prepend(i),null!==n&&setTimeout(()=>{r.contains(i)&&i.remove()},3e3)}},attachFormDataToMessage(e,t,n){let r=this.allMessages.find(t=>t.id===e);r&&(r.formData=t,r.formValues=n)},updateCurrentMessage(e){this.currentMessage=e},async sendMessage(){let e=this.currentMessage.trim();if(!e||this.isLoading)return;console.log("Sending text message:",e);let t=this.addMessage(e,"user","text");this.currentMessage="",this.isTyping=!0,this.isLoading=!0;try{let n={message:e,conversation_id:this.conversationId,user_id:this.userId,language:this.currentLanguage},r=await this.callAPI("/api/send_message",n);if(this.isTyping=!1,t.status="delivered","form"===r.type)this.addMessage("","ai","form",r.formData);else{let e=this.addMessage("","ai","text");r.task_id&&(console.log("Monitoring Task ID: ",r.task_id),e.taskId=r.task_id)}}catch(e){console.error("Error sending message:",e),this.isTyping=!1,t.status="failed",this.addMessage("Sorry, er ging iets mis bij het verzenden van je bericht. Probeer het opnieuw.","ai","error")}finally{this.isLoading=!1}},async submitFormFromInput(e){if(this.isSubmittingForm=!0,!this.currentInputFormData)return void console.error("No form data available");console.log("Form values received:",e),console.log("Current input form data:",this.currentInputFormData);try{let t=this.addMessage(this.currentMessage.trim(),"user","text");t.formData=this.currentInputFormData,t.formValues=e,this.currentMessage="",this.$emit("update-message",""),this.isTyping=!0,this.isLoading=!0;let n={message:t.content,conversation_id:this.conversationId,user_id:this.userId,form_values:e},r=await this.callAPI("/api/send_message",n);this.isTyping=!1,t.status="delivered";let i=this.addMessage("","ai","text");r.task_id&&(console.log("Monitoring Task ID: ",r.task_id),i.taskId=r.task_id),this.currentInputFormData=null}catch(e){console.error("Error submitting form:",e),this.addMessage("Sorry, er ging iets mis bij het verzenden van het formulier. Probeer het opnieuw.","ai","text"),this.currentInputFormData=null}finally{this.isSubmittingForm=!1,this.isLoading=!1}},retryMessage(e){let t=this.allMessages.find(t=>t.id===e);t&&"failed"===t.status&&(this.currentMessage=t.content,this.removeMessage(e),this.sendMessage())},submitForm(e){console.log("\uD83D\uDD0D [DEBUG] Formulier verzenden:",e),e&&!this.isLoading&&(this.isSubmittingForm=!0,this.addFormMessage(e,"user"),this.sendFormToBackend(e),this.currentInputFormData=null)},sendFormToBackend(e){console.log("\uD83D\uDD0D [DEBUG] Formulier naar backend versturen",e),this.isSubmittingForm=!1},sendMessageToBackend(e){console.log("\uD83D\uDD0D [DEBUG] Bericht naar backend versturen",e)},addFormMessage(e,t){console.log("\uD83D\uDD0D [DEBUG] Formulier bericht toevoegen:",e)},focusChatInput(){this.$nextTick(()=>{if(!this.$el)return void console.warn("$el is niet beschikbaar in focusChatInput");try{let e=this.$el.querySelector(".chat-input-container");if(e){console.log("\uD83D\uDD0D [DEBUG] Focus op chat input");let t=e.querySelector("input, textarea");t&&t.focus()}}catch(e){console.error("Fout bij focussen op chat input:",e)}})},removeMessage(e){let t=this.allMessages.findIndex(t=>t.id===e);-1!==t&&(this.allMessages.splice(t,1),this.formValues[e]&&delete this.formValues[e])},async handleFileUpload(e){console.log("Uploading file:",e.name);let t=this.addMessage("","user","file",{fileName:e.name,fileSize:this.formatFileSize(e.size),fileType:e.type});try{setTimeout(()=>{t.fileUrl=URL.createObjectURL(e),t.status="delivered"},1e3)}catch(e){console.error("Error uploading file:",e),t.status="failed"}},async handleVoiceRecord(e){console.log("Processing voice recording"),this.addMessage("","user","voice",{audioBlob:e,duration:"00:05"})},performSearch(){if(!this.messageSearch.trim()){this.isSearching=!1,this.filteredMessages=[];return}this.isSearching=!0;let e=this.messageSearch.toLowerCase();this.filteredMessages=this.allMessages.filter(t=>t.content&&t.content.toLowerCase().includes(e))},clearSearch(){this.messageSearch="",this.isSearching=!1,this.filteredMessages=[]},handleSpecialistComplete(e){if(console.log("ChatApp received specialist-complete:",e),e.form_request){console.log("Setting form request in ChatInput:",e.form_request);try{let t=this.convertFormRequest(e.form_request);t&&t.title&&t.fields?this.currentInputFormData=t:console.error("Invalid form data after conversion:",t)}catch(e){console.error("Error processing form request:",e)}}},handleSpecialistError(e){console.log("ChatApp received specialist-error:",e),this.addMessage(e.message||"Er is een fout opgetreden bij het verwerken van uw verzoek.","ai","error")},convertFormRequest(e){let t;return(console.log("Converting form request:",e),e)?(e.fields&&"object"==typeof e.fields&&!Array.isArray(e.fields)?t=Object.entries(e.fields).map(([e,t])=>({id:e,name:t.name||e,type:t.type||"text",description:t.description||"",required:t.required||!1,default:t.default||"",allowedValues:t.allowed_values||null,context:t.context||null})):Array.isArray(e.fields)?t=e.fields.map(e=>({id:e.id||e.name,name:e.name||e.id,type:e.type||"text",description:e.description||"",required:e.required||!1,default:e.default||e.defaultValue||"",allowedValues:e.allowed_values||e.allowedValues||null,context:e.context||null})):(console.warn("Formulier heeft geen geldige velden"),t=[]),{title:e.name||e.title||"Formulier",description:e.description||"",icon:e.icon||"form",version:e.version||"1.0",fields:t}):(console.error("Geen geldig formRequest ontvangen"),null)},handleResize(){this.isMobile=window.innerWidth<=768,this.showSidebar=window.innerWidth>768},handleGlobalKeydown(e){(e.ctrlKey||e.metaKey)&&"k"===e.key&&(e.preventDefault(),this.focusSearch()),"Escape"===e.key&&this.isSearching&&this.clearSearch()},async callAPI(e,t){let n=this.apiPrefix+"/chat"+e;console.log("Calling API with prefix:",{prefix:this.apiPrefix,endpoint:e,fullEndpoint:n});let r=await fetch(n,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!r.ok)throw Error(`HTTP error! status: ${r.status}`);return r.json()},formatFileSize(e){if(0===e)return"0 Bytes";let t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["Bytes","KB","MB","GB"][t]},focusSearch(){this.$refs.searchInput?.focus()},renderComponent(){console.log("\uD83D\uDD0D [DEBUG] ChatApp.renderComponent() aangeroepen"),console.log("\uD83D\uDD0D [DEBUG] window.Vue beschikbaar:",!!window.Vue),window.Vue&&(console.log("\uD83D\uDD0D [DEBUG] window.Vue.createApp beschikbaar:",!!window.Vue.createApp),console.log("\uD83D\uDD0D [DEBUG] window.Vue.version:",window.Vue.version));let e=document.querySelector(".chat-container");if(!e)return void console.error("Container niet gevonden voor ChatApp (.chat-container)");console.log("\uD83D\uDD0D [DEBUG] ChatApp container gevonden, inhoud wordt gerenderd"),console.log("\uD83D\uDD0D [DEBUG] Beschikbare components:",{MessageHistory:!!window.Components?.MessageHistory,ChatInput:!!window.Components?.ChatInput}),e.innerHTML=` -
- -
- - -
-
- `;let t=document.getElementById("chat-message-history"),n=document.getElementById("chat-input-container");if(t){console.log("\uD83D\uDD0D [DEBUG] MessageHistory container gevonden, initialiseren...");try{let e={messages:this.allMessages,isTyping:this.isTyping,isSubmittingForm:this.isSubmittingForm,apiPrefix:this.apiPrefix,autoScroll:!0},n=window.Vue.createApp(y,e);n.component("chat-message",x.default),n.component("typing-indicator",b.default),n.component("progress-tracker",k.default),n.component("dynamic-form",S.default),n.config.errorHandler=(e,t,n)=>{console.error("\uD83D\uDEA8 [Vue Error in MessageHistory]",e),console.error("Component:",t),console.error("Error Info:",n)},n.config.globalProperties.$emit=(e,...t)=>{"specialist-complete"===e?this.handleSpecialistComplete(t[0]):"specialist-error"===e&&this.handleSpecialistError(t[0])};let r=null;"function"==typeof y.renderComponent?r=y.renderComponent(t,e,n):(r=n.mount(t),console.log("\uD83D\uDD0D [DEBUG] MessageHistory direct gemount via app.mount()")),this.$refs.messageHistory=r,console.log("\uD83D\uDD0D [DEBUG] MessageHistory component succesvol geïnitialiseerd")}catch(e){console.error("\uD83D\uDEA8 [ERROR] Fout bij initialiseren MessageHistory:",e)}}else console.error("MessageHistory container niet gevonden in de DOM");if(n){console.log("\uD83D\uDD0D [DEBUG] ChatInput container gevonden, initialiseren...");try{let e={currentMessage:this.currentMessage,isLoading:this.isLoading,maxLength:this.settings.maxMessageLength,formData:this.currentInputFormData,allowFileUpload:this.settings.allowFileUpload,allowVoiceMessage:this.settings.allowVoiceMessage},t=window.Vue.createApp(m,e);t.component("dynamic-form",S.default),t.component("form-field",_.default),t.config.errorHandler=(e,t,n)=>{console.error("\uD83D\uDEA8 [Vue Error in ChatInput]",e),console.error("Component:",t),console.error("Error Info:",n)},t.config.globalProperties.$emit=(e,...t)=>{"send-message"===e?this.sendMessage():"update-message"===e?this.updateCurrentMessage(t[0]):"submit-form"===e?this.submitFormFromInput(t[0]):"upload-file"===e?this.handleFileUpload(t[0]):"record-voice"===e&&this.handleVoiceRecord(t[0])};let r=null;"function"==typeof m.renderComponent?(console.log("\uD83D\uDD0D [DEBUG] ChatInput.renderComponent wordt aangeroepen met chatInputApp:",t),console.log("\uD83D\uDD0D [DEBUG] chatInputApp.mount type:",typeof t.mount),r=m.renderComponent(n,e,t)):(console.log("\uD83D\uDD0D [DEBUG] ChatInput wordt direct gemount via app.mount()"),r=t.mount(n),console.log("\uD83D\uDD0D [DEBUG] ChatInput direct gemount via app.mount()")),this.$refs.chatInput=r,console.log("\uD83D\uDD0D [DEBUG] ChatInput component succesvol geïnitialiseerd")}catch(e){console.error("\uD83D\uDEA8 [ERROR] Fout bij initialiseren ChatInput:",e)}}else console.error("ChatInput container niet gevonden in de DOM");console.log("\uD83D\uDD0D [DEBUG] ChatApp succesvol gerenderd met alle componenten")}},render:()=>document.createElement("div"),template:` -
- - - - - - -
- `};window.Vue={createApp:d.createApp,version:p.version},window.marked=h.marked,console.log("\uD83D\uDD0D [DEBUG] Vue object:",window.Vue),console.log("\uD83D\uDD0D [DEBUG] Vue.createApp:",typeof window.Vue.createApp),console.log("\uD83D\uDD0D [DEBUG] Vue.version:",window.Vue.version),window.Components=f,console.log("Components loaded:",Object.keys(f)),window.addEventListener("error",function(e){console.error("\uD83D\uDEA8 [Global Error]",e.error)}),document.addEventListener("DOMContentLoaded",function(){console.log("\uD83D\uDD0D [DEBUG] DOM content loaded, initializing application..."),window.chatConfig||(console.error("chatConfig is niet beschikbaar"),window.chatConfig={}),function(){let e=document.getElementById("sidebar-explanation");e&&window.chatConfig.explanation&&("function"==typeof window.marked?e.innerHTML=window.marked(window.chatConfig.explanation):window.marked&&"function"==typeof window.marked.parse?e.innerHTML=window.marked.parse(window.chatConfig.explanation.replace(/\[\[(.*?)\]\]/g,"$1")):e.innerHTML=window.chatConfig.explanation)}(),function(){console.log("\uD83D\uDD0D [DEBUG] Start initializeLanguageSelector");let e=document.getElementById("language-selector-container");if(console.log("\uD83D\uDD0D [DEBUG] Container element:",e),!e)return console.error("#language-selector-container niet gevonden");try{let t={initialLanguage:window.chatConfig.language||"nl",supportedLanguageDetails:window.chatConfig.supportedLanguageDetails||{},allowedLanguages:window.chatConfig.allowedLanguages||["nl","en","fr","de"]};console.log("\uD83D\uDD0D [DEBUG] Props voor LanguageSelector:",JSON.stringify(t,null,2));let n=window.Vue&&"function"==typeof window.Vue.createApp?window.Vue.createApp(g,t):(0,d.createApp)(g,t);n.config.errorHandler=(e,t,n)=>{console.error("\uD83D\uDEA8 [Vue Error]",e),console.error("Component:",t),console.error("Error Info:",n)};let r=n.mount(e);console.log("\uD83D\uDD0D [DEBUG] LanguageSelector successfully mounted with Vue template:",r),document.addEventListener("vue:language-changed",function(e){let t=e.detail.language;console.log(`Taal gewijzigd naar ${t}`),window.chatConfig&&(window.chatConfig.language=t);let n=new CustomEvent("language-changed",{detail:{language:t}});document.dispatchEvent(n),localStorage.setItem("preferredLanguage",t)}),console.log("\uD83D\uDD0D [DEBUG] Language selector setup voltooid")}catch(e){console.error("\uD83D\uDEA8 [CRITICAL ERROR] Bij initialiseren language selector:",e),console.error("Stack trace:",e.stack)}}(),function(){console.log("\uD83D\uDD0D [DEBUG] Start initializeChatApp");let e=document.querySelector(".chat-container");if(console.log("\uD83D\uDD0D [DEBUG] Chat container element:",e),!e)return console.error(".chat-container niet gevonden");try{if(console.log("\uD83D\uDD0D [DEBUG] ChatApp component beschikbaar:",D),console.log("\uD83D\uDD0D [DEBUG] Geïmporteerde componenten:",Object.keys(f)),console.log("\uD83D\uDD0D [DEBUG] MessageHistory component:",f.MessageHistory),console.log("\uD83D\uDD0D [DEBUG] ChatInput component:",f.ChatInput),!D)throw Error("ChatApp component niet gevonden");f.MessageHistory&&f.ChatInput&&f.TypingIndicator&&f.ChatMessage||console.warn("⚠️ [WARN] Niet alle benodigde sub-componenten zijn geladen!");let t={apiPrefix:window.chatConfig.apiPrefix||"",conversationId:window.chatConfig.conversationId||"default",userId:window.chatConfig.userId||null,userName:window.chatConfig.userName||"",initialLanguage:window.chatConfig.language||"nl",supportedLanguageDetails:window.chatConfig.supportedLanguageDetails||{},allowedLanguages:window.chatConfig.allowedLanguages||["nl","en","fr","de"]};console.log("\uD83D\uDD0D [DEBUG] Alle componenten registreren voor ChatApp..."),console.log("\uD83D\uDD0D [DEBUG] Props voor ChatApp:",JSON.stringify(t,null,2));let n=(0,d.createApp)(D,t);Object.entries(f).forEach(([e,t])=>{console.log(`\u{1F50D} [DEBUG] Registreer component globaal: ${e}`),n.component(e,t)}),n.config.errorHandler=(e,t,n)=>{console.error("\uD83D\uDEA8 [Vue Error in ChatApp]",e),console.error("Component:",t),console.error("Error Info:",n)},console.log("\uD83D\uDD0D [DEBUG] ChatApp Vue app object:",n),console.log("\uD83D\uDD0D [DEBUG] App.mount functie:",typeof n.mount);let r=n.mount(e);console.log("\uD83D\uDD0D [DEBUG] ChatApp gemount, instance:",r),window.__chatApp=r,window.__vueApp=n,console.log("\uD83D\uDD0D [DEBUG] Vue app instance globaal beschikbaar als window.__vueApp"),console.log("\uD83D\uDD0D [DEBUG] Belangrijke ChatApp methods beschikbaar:",{initializeChat:"function"==typeof r.initializeChat})}catch(t){console.error("\uD83D\uDEA8 [CRITICAL ERROR] Bij initialiseren chat app:",t),console.error("Stack trace:",t.stack),e.innerHTML="
Fout bij het initialiseren van de chat applicatie
"}}()}),console.log("Chat client modules geladen en gebundeld met moderne ES module structuur.")}(); \ No newline at end of file +`+this.renderer.text(s);t?n+=this.renderer.paragraph({type:"paragraph",raw:o,text:o,tokens:[{type:"text",raw:o,text:o,escaped:!0}]}):n+=o;continue}default:{let e='Token with "'+i.type+'" type was not found.';if(this.options.silent)return console.error(e),"";throw Error(e)}}}return n}parseInline(e,t=this.renderer){let n="";for(let r=0;r{let i=e[r].flat(1/0);n=n.concat(this.walkTokens(i,t))}):e.tokens&&(n=n.concat(this.walkTokens(e.tokens,t)))}}return n}use(...e){let t=this.defaults.extensions||{renderers:{},childTokens:{}};return e.forEach(e=>{let n={...e};if(n.async=this.defaults.async||n.async||!1,e.extensions&&(e.extensions.forEach(e=>{if(!e.name)throw Error("extension name required");if("renderer"in e){let n=t.renderers[e.name];n?t.renderers[e.name]=function(...t){let r=e.renderer.apply(this,t);return!1===r&&(r=n.apply(this,t)),r}:t.renderers[e.name]=e.renderer}if("tokenizer"in e){if(!e.level||"block"!==e.level&&"inline"!==e.level)throw Error("extension level must be 'block' or 'inline'");let n=t[e.level];n?n.unshift(e.tokenizer):t[e.level]=[e.tokenizer],e.start&&("block"===e.level?t.startBlock?t.startBlock.push(e.start):t.startBlock=[e.start]:"inline"===e.level&&(t.startInline?t.startInline.push(e.start):t.startInline=[e.start]))}"childTokens"in e&&e.childTokens&&(t.childTokens[e.name]=e.childTokens)}),n.extensions=t),e.renderer){let t=this.defaults.renderer||new ef(this.defaults);for(let n in e.renderer){if(!(n in t))throw Error(`renderer '${n}' does not exist`);if(["options","parser"].includes(n))continue;let r=e.renderer[n],i=t[n];t[n]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n||""}}n.renderer=t}if(e.tokenizer){let t=this.defaults.tokenizer||new ep(this.defaults);for(let n in e.tokenizer){if(!(n in t))throw Error(`tokenizer '${n}' does not exist`);if(["options","rules","lexer"].includes(n))continue;let r=e.tokenizer[n],i=t[n];t[n]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.tokenizer=t}if(e.hooks){let t=this.defaults.hooks||new ey;for(let n in e.hooks){if(!(n in t))throw Error(`hook '${n}' does not exist`);if(["options","block"].includes(n))continue;let r=e.hooks[n],i=t[n];ey.passThroughHooks.has(n)?t[n]=e=>{if(this.defaults.async)return Promise.resolve(r.call(t,e)).then(e=>i.call(t,e));let n=r.call(t,e);return i.call(t,n)}:t[n]=(...e)=>{let n=r.apply(t,e);return!1===n&&(n=i.apply(t,e)),n}}n.hooks=t}if(e.walkTokens){let t=this.defaults.walkTokens,r=e.walkTokens;n.walkTokens=function(e){let n=[];return n.push(r.call(this,e)),t&&(n=n.concat(t.call(this,e))),n}}this.defaults={...this.defaults,...n}}),this}setOptions(e){return this.defaults={...this.defaults,...e},this}lexer(e,t){return eh.lex(e,t??this.defaults)}parser(e,t){return em.parse(e,t??this.defaults)}parseMarkdown(e){return(t,n)=>{let r={...n},i={...this.defaults,...r},s=this.onError(!!i.silent,!!i.async);if(!0===this.defaults.async&&!1===r.async)return s(Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof t>"u"||null===t)return s(Error("marked(): input parameter is undefined or null"));if("string"!=typeof t)return s(Error("marked(): input parameter is of type "+Object.prototype.toString.call(t)+", string expected"));i.hooks&&(i.hooks.options=i,i.hooks.block=e);let o=i.hooks?i.hooks.provideLexer():e?eh.lex:eh.lexInline,l=i.hooks?i.hooks.provideParser():e?em.parse:em.parseInline;if(i.async)return Promise.resolve(i.hooks?i.hooks.preprocess(t):t).then(e=>o(e,i)).then(e=>i.hooks?i.hooks.processAllTokens(e):e).then(e=>i.walkTokens?Promise.all(this.walkTokens(e,i.walkTokens)).then(()=>e):e).then(e=>l(e,i)).then(e=>i.hooks?i.hooks.postprocess(e):e).catch(s);try{i.hooks&&(t=i.hooks.preprocess(t));let e=o(t,i);i.hooks&&(e=i.hooks.processAllTokens(e)),i.walkTokens&&this.walkTokens(e,i.walkTokens);let n=l(e,i);return i.hooks&&(n=i.hooks.postprocess(n)),n}catch(e){return s(e)}}}onError(e,t){return n=>{if(n.message+=` +Please report this to https://github.com/markedjs/marked.`,e){let e="

An error occurred:

"+el(n.message+"",!0)+"
";return t?Promise.resolve(e):e}if(t)return Promise.reject(n);throw n}}},ev=new ex;function eb(e,t){return ev.parse(e,t)}eb.options=eb.setOptions=function(e){return ev.setOptions(e),eb.defaults=ev.defaults,c=eb.defaults,eb},eb.getDefaults=a,eb.defaults=c,eb.use=function(...e){return ev.use(...e),eb.defaults=ev.defaults,c=eb.defaults,eb},eb.walkTokens=function(e,t){return ev.walkTokens(e,t)},eb.parseInline=ev.parseInline,eb.Parser=em,eb.parser=em.parse,eb.Renderer=ef,eb.TextRenderer=eg,eb.Lexer=eh,eb.lexer=eh.lex,eb.Tokenizer=ep,eb.Hooks=ey,eb.parse=eb;var ek=eb.options,eS=eb.setOptions,e_=eb.use,ew=eb.walkTokens,eE=eb.parseInline,eT=eb,eC=em.parse,eA=eh.lex;return e.exports}(),l("gQG4c"),window.TranslationClient={translate:async function(e,t,n=null,r=null,i=""){try{let s={text:e,target_lang:t};n&&(s.source_lang=n),r&&(s.context=r);let o=`${i}/api/translate`;console.log(`Vertaling aanvragen op endpoint: ${o}`);let l=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});if(!l.ok){let e=await l.json();throw Error(e.error||"Onbekende fout bij vertalen")}return await l.json()}catch(e){throw console.error("Vertaalfout:",e),e}}},console.log("TranslationClient geladen en klaar voor gebruik");var p={};r(p,"LanguageSelector",function(){return l("2Fvhx").default}),r(p,"ChatInput",function(){return l("2TN9T").default}),r(p,"MessageHistory",function(){return l("1MYs0").default}),r(p,"ChatMessage",function(){return l("lVdl4").default}),r(p,"TypingIndicator",function(){return l("aNcdg").default}),r(p,"ProgressTracker",function(){return l("3b050").default}),r(p,"DynamicForm",function(){return l("9J6tU").default}),r(p,"FormField",function(){return l("70gdv").default}),r(p,"FormMessage",function(){return f});var h=l("2Fvhx");l("2TN9T"),l("1MYs0"),l("lVdl4"),l("aNcdg"),l("3b050"),l("9J6tU"),l("70gdv"),(e=l("eu21N")).__esModule&&(e=e.default),e.render=l("8lvfw").render,e.__cssModules={},l("4boaj").default(e),e.__scopeId="data-v-199543",e.__file="FormMessage.vue";var f=e;console.log("Vue components loaded successfully from barrel export");var h=l("2Fvhx");(t=l("6jOml")).__esModule&&(t=t.default),t.render=l("1JmDG").render,t.__cssModules={},l("cH9BU").default(t),t.__scopeId="data-v-bfe173",t.__file="ChatApp.vue";var g=t;window.Vue={createApp:c.createApp,version:u.version},window.marked=d.marked,window.Components=p,console.log("Components loaded:",Object.keys(p)),window.addEventListener("error",function(e){console.error("\uD83D\uDEA8 [Global Error]",e.error)}),document.addEventListener("DOMContentLoaded",function(){window.chatConfig||(console.error("chatConfig is niet beschikbaar"),window.chatConfig={}),function(){let e=document.getElementById("sidebar-explanation");e&&window.chatConfig.explanation&&("function"==typeof window.marked?e.innerHTML=window.marked(window.chatConfig.explanation):window.marked&&"function"==typeof window.marked.parse?e.innerHTML=window.marked.parse(window.chatConfig.explanation.replace(/\[\[(.*?)\]\]/g,"$1")):e.innerHTML=window.chatConfig.explanation)}(),function(){let e=document.getElementById("language-selector-container");if(!e)return console.error("#language-selector-container niet gevonden");try{let t={initialLanguage:window.chatConfig.language||"nl",supportedLanguageDetails:window.chatConfig.supportedLanguageDetails||{},allowedLanguages:window.chatConfig.allowedLanguages||["nl","en","fr","de"]},n=window.Vue&&"function"==typeof window.Vue.createApp?window.Vue.createApp(h.default,t):(0,c.createApp)(h.default,t);n.config.errorHandler=(e,t,n)=>{console.error("\uD83D\uDEA8 [Vue Error]",e),console.error("Component:",t),console.error("Error Info:",n)},n.mount(e),document.addEventListener("vue:language-changed",function(e){let t=e.detail.language;console.log(`Taal gewijzigd naar ${t}`),window.chatConfig&&(window.chatConfig.language=t);let n=new CustomEvent("language-changed",{detail:{language:t}});document.dispatchEvent(n),localStorage.setItem("preferredLanguage",t)})}catch(e){console.error("\uD83D\uDEA8 [CRITICAL ERROR] Bij initialiseren language selector:",e),console.error("Stack trace:",e.stack)}}(),function(){let e=document.querySelector(".chat-container");if(!e)return console.error("\uD83D\uDEA8 [CRITICAL ERROR] .chat-container niet gevonden");try{if(!g)throw Error("\uD83D\uDEA8 [CRITICAL ERROR] ChatApp component niet gevonden");p.MessageHistory&&p.ChatInput&&p.TypingIndicator&&p.ChatMessage||console.warn("⚠️ [WARN] Niet alle benodigde sub-componenten zijn geladen!");let t={apiPrefix:window.chatConfig.apiPrefix||"",conversationId:window.chatConfig.conversationId||"default",userId:window.chatConfig.userId||null,userName:window.chatConfig.userName||"",initialLanguage:window.chatConfig.language||"nl",supportedLanguageDetails:window.chatConfig.supportedLanguageDetails||{},allowedLanguages:window.chatConfig.allowedLanguages||["nl","en","fr","de"]},n=(0,c.createApp)(g,t);n.provide("sseConfig",{maxRetries:3,retryDelay:2e3,handleSseError:function(e,t){return console.warn(`SSE verbinding voor task ${t} mislukt:`,e),this.fallbackToPolling(t)},fallbackToPolling:function(e){console.log(`Fallback naar polling voor task ${e}`);let n=setInterval(()=>{let r=`${t.apiPrefix}/api/task_status/${e}`;fetch(r).then(e=>{if(!e.ok)throw Error(`Task status endpoint error: ${e.status}`);return e.json()}).then(t=>{let r=new CustomEvent("message",{detail:{data:JSON.stringify(t)}});document.dispatchEvent(new CustomEvent(`sse:${e}:message`,{detail:r})),("completed"===t.status||"failed"===t.status||"cancelled"===t.status)&&clearInterval(n)}).catch(e=>console.error("Polling error:",e))},3e3);return n}}),Object.entries(p).forEach(([e,t])=>{n.component(e,t)}),n.config.errorHandler=(e,t,n)=>{console.error("\uD83D\uDEA8 [Vue Error in ChatApp]",e),console.error("Component:",t),console.error("Error Info:",n)};let r=n.mount(e);window.__chatApp=r,window.__vueApp=n}catch(t){console.error("\uD83D\uDEA8 [CRITICAL ERROR] Bij initialiseren chat app:",t),console.error("Stack trace:",t.stack),e.innerHTML="
Fout bij het initialiseren van de chat applicatie
"}}()}),window.getElementFromRef=function(e){if(!e)return null;if(e.value&&e.value instanceof HTMLElement)return e.value;if(e instanceof HTMLElement)return e;if(e.$el&&e.$el instanceof HTMLElement)return e.$el;if("object"==typeof e&&null!==e){let t=e.el||e.$el||e.value;if(t instanceof HTMLElement)return t}return null},console.log("Chat client modules geladen en gebundeld met moderne ES module structuur.")}(); \ No newline at end of file