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 4e358da..2189f80 100644 Binary files a/nginx/.parcel-cache/data.mdb and b/nginx/.parcel-cache/data.mdb differ diff --git a/nginx/.parcel-cache/e071da4be0b4b166-AssetGraph b/nginx/.parcel-cache/e071da4be0b4b166-AssetGraph index b51e4b1..c7dd9ed 100644 Binary files a/nginx/.parcel-cache/e071da4be0b4b166-AssetGraph and b/nginx/.parcel-cache/e071da4be0b4b166-AssetGraph differ diff --git a/nginx/frontend_src/js/chat-client.js b/nginx/frontend_src/js/chat-client.js index cb27a99..476a475 100644 --- a/nginx/frontend_src/js/chat-client.js +++ b/nginx/frontend_src/js/chat-client.js @@ -11,17 +11,12 @@ import '../../../eveai_chat_client/static/assets/css/language-selector.css'; // Dependencies import { createApp, version } from 'vue'; import { marked } from 'marked'; -import { FormField } from '../../../eveai_chat_client/static/assets/js/components/FormField.js'; +import { FormField } from '../../../../../../../../../Users/josako/Library/Application Support/JetBrains/PyCharm2025.1/scratches/old js files/FormField.js'; // Vue en andere bibliotheken beschikbaar maken window.Vue = { createApp, version }; window.marked = marked; -// Debug: Check Vue build type -console.log('🔍 [DEBUG] Vue object:', window.Vue); -console.log('🔍 [DEBUG] Vue.createApp:', typeof window.Vue.createApp); -console.log('🔍 [DEBUG] Vue.version:', window.Vue.version); - // Support tools import '../../../eveai_chat_client/static/assets/js/iconManager.js'; import '../../../eveai_chat_client/static/assets/js/translation.js'; @@ -35,7 +30,7 @@ console.log('Components loaded:', Object.keys(Components)); // Import specifieke componenten import LanguageSelector from '../../../eveai_chat_client/static/assets/vue-components/LanguageSelector.vue'; -import { ChatApp } from '../../../eveai_chat_client/static/assets/js/ChatApp.js'; +import ChatApp from '../../../eveai_chat_client/static/assets/vue-components/ChatApp.vue'; // Globale Vue error tracking window.addEventListener('error', function(event) { @@ -44,8 +39,6 @@ window.addEventListener('error', function(event) { // Wacht tot DOM geladen is document.addEventListener('DOMContentLoaded', function() { - console.log('🔍 [DEBUG] DOM content loaded, initializing application...'); - // Controleer of chatConfig is ingesteld if (!window.chatConfig) { console.error('chatConfig is niet beschikbaar'); @@ -82,10 +75,7 @@ function fillSidebarExplanation() { * Initialiseert de language selector */ function initializeLanguageSelector() { - console.log('🔍 [DEBUG] Start initializeLanguageSelector'); - const container = document.getElementById('language-selector-container'); - console.log('🔍 [DEBUG] Container element:', container); if (!container) { console.error('#language-selector-container niet gevonden'); @@ -100,8 +90,6 @@ function initializeLanguageSelector() { allowedLanguages: window.chatConfig.allowedLanguages || ['nl', 'en', 'fr', 'de'] }; - console.log('🔍 [DEBUG] Props voor LanguageSelector:', JSON.stringify(props, null, 2)); - // Mount de component direct - BELANGRIJK: we gebruiken window.Vue als dat beschikbaar is // Dit is nodig voor compatibiliteit met oude code const app = window.Vue && typeof window.Vue.createApp === 'function' @@ -117,7 +105,6 @@ function initializeLanguageSelector() { // Mount de component const mountedApp = app.mount(container); - console.log('🔍 [DEBUG] LanguageSelector successfully mounted with Vue template:', mountedApp); // Language change event listener document.addEventListener('vue:language-changed', function(event) { @@ -138,8 +125,6 @@ function initializeLanguageSelector() { // Sla voorkeur op localStorage.setItem('preferredLanguage', newLanguage); }); - - console.log('🔍 [DEBUG] Language selector setup voltooid'); } catch (error) { console.error('🚨 [CRITICAL ERROR] Bij initialiseren language selector:', error); console.error('Stack trace:', error.stack); @@ -150,29 +135,15 @@ function initializeLanguageSelector() { * Initialiseert de chat app (Vue component) */ function initializeChatApp() { - console.log('🔍 [DEBUG] Start initializeChatApp'); - const container = document.querySelector('.chat-container'); - console.log('🔍 [DEBUG] Chat container element:', container); - if (!container) { - console.error('.chat-container niet gevonden'); + console.error('🚨 [CRITICAL ERROR] .chat-container niet gevonden'); return; } try { - // Controleer of componenten beschikbaar zijn en log debug informatie - console.log('🔍 [DEBUG] ChatApp component beschikbaar:', ChatApp); - console.log('🔍 [DEBUG] Geïmporteerde componenten:', Object.keys(Components)); - console.log('🔍 [DEBUG] MessageHistory component:', Components.MessageHistory); - console.log('🔍 [DEBUG] ChatInput component:', Components.ChatInput); - - // Geen workarounds voor Popper nodig - - // Components are now using pure Vue templates - if (!ChatApp) { - throw new Error('ChatApp component niet gevonden'); + throw new Error('🚨 [CRITICAL ERROR] ChatApp component niet gevonden'); } // Extra verificatie dat alle sub-componenten beschikbaar zijn @@ -192,16 +163,48 @@ function initializeChatApp() { allowedLanguages: window.chatConfig.allowedLanguages || ['nl', 'en', 'fr', 'de'] }; - console.log('🔍 [DEBUG] Alle componenten registreren voor ChatApp...'); - - console.log('🔍 [DEBUG] Props voor ChatApp:', JSON.stringify(props, null, 2)); - // Mount de component met alle nodige componenten const app = createApp(ChatApp, props); + // SSE verbinding configuratie - injecteren in ChatApp component + app.provide('sseConfig', { + maxRetries: 3, + retryDelay: 2000, + handleSseError: function(error, taskId) { + console.warn(`SSE verbinding voor task ${taskId} mislukt:`, error); + // Fallback naar polling als SSE faalt + return this.fallbackToPolling(taskId); + }, + fallbackToPolling: function(taskId) { + console.log(`Fallback naar polling voor task ${taskId}`); + // Polling implementatie - elke 3 seconden status checken + const pollingInterval = setInterval(() => { + 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