reneco-advanced-input-module 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/cjs/ocr-file-uploader.voice-input-module.entry.cjs.js.map +1 -1
  2. package/dist/cjs/ocr-file-uploader_2.cjs.entry.js +4 -4
  3. package/dist/cjs/ocr-file-uploader_2.cjs.entry.js.map +1 -1
  4. package/dist/collection/components/voice-input-module/voice-input-module.js +3 -3
  5. package/dist/collection/components/voice-input-module/voice-input-module.js.map +1 -1
  6. package/dist/collection/services/llm.service.js +1 -1
  7. package/dist/collection/services/llm.service.js.map +1 -1
  8. package/dist/components/voice-input-module.js +4 -4
  9. package/dist/components/voice-input-module.js.map +1 -1
  10. package/dist/esm/ocr-file-uploader.voice-input-module.entry.js.map +1 -1
  11. package/dist/esm/ocr-file-uploader_2.entry.js +4 -4
  12. package/dist/esm/ocr-file-uploader_2.entry.js.map +1 -1
  13. package/dist/voice-input-module/ocr-file-uploader.voice-input-module.entry.esm.js.map +1 -1
  14. package/dist/voice-input-module/{p-37de1da2.entry.js → p-21d2e52b.entry.js} +3 -3
  15. package/dist/voice-input-module/p-21d2e52b.entry.js.map +1 -0
  16. package/dist/voice-input-module/voice-input-module.esm.js +1 -1
  17. package/package.json +1 -1
  18. package/www/build/ocr-file-uploader.voice-input-module.entry.esm.js.map +1 -1
  19. package/www/build/{p-37de1da2.entry.js → p-21d2e52b.entry.js} +3 -3
  20. package/www/build/p-21d2e52b.entry.js.map +1 -0
  21. package/www/build/{p-6438474d.js → p-b680b1be.js} +1 -1
  22. package/www/build/voice-input-module.esm.js +1 -1
  23. package/www/index.html +6 -6
  24. package/dist/voice-input-module/p-37de1da2.entry.js.map +0 -1
  25. package/www/build/p-37de1da2.entry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ocr-file-uploader.voice-input-module.entry.cjs.js","sources":["node_modules/ocr-file-uploader/dist/collection/components/ocr-file-uploader/ocr-file-uploader.css?tag=ocr-file-uploader&encapsulation=shadow","node_modules/ocr-file-uploader/dist/collection/components/ocr-file-uploader/ocr-file-uploader.js","src/services/audio-recorder.service.ts","src/services/speech-to-text.service.ts","src/services/llm.service.ts","src/utils/schema-converter.ts","node_modules/ocr-file-uploader/dist/esm/index-Ba2Ls6bG.js","node_modules/ocr-file-uploader/dist/esm/app-globals-DQuL1Twl.js","node_modules/ocr-file-uploader/dist/esm/loader.js","node_modules/ocr-file-uploader/loader/index.js","src/components/voice-input-module/voice-input-module.css?tag=voice-input-module&encapsulation=shadow","src/components/voice-input-module/voice-input-module.tsx"],"sourcesContent":["\r\n.upload-container {\r\n display: inline-block;\r\n cursor: pointer;\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n.upload-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n user-select: none;\r\n}\r\n\r\n.upload-button svg {\r\n width: 50px;\r\n height: 50px;\r\n stroke: #44ee44;\r\n}\r\n\r\n.upload-button:hover svg{\r\n transform: scale(1.05);\r\n stroke: #33dd33;\r\n}","import { h } from \"@stencil/core\";\nexport class OcrFileUploader {\n constructor() {\n this.batch = false;\n this.triggerUpload = () => {\n this.fileInput.click();\n };\n this.handleFileChange = async (event) => {\n const input = event.target;\n if (!input.files || input.files.length === 0)\n return;\n const file = input.files[0];\n // Here you can handle the file upload to your API\n console.log('Selected file:', file);\n const formData = new FormData();\n formData.append('file', file);\n if (this.batch) {\n try {\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-xml', {\n method: 'POST',\n body: formData\n });\n if (!response.ok) {\n console.error(\"There has been an error!:\", response);\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n // get the file as a blob\n const blob = await response.blob();\n // create a download link\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'result-' + Date.now().toString() + '.xlsx'; // filename\n document.body.appendChild(a);\n a.click();\n a.remove();\n window.URL.revokeObjectURL(url);\n }\n catch (err) {\n console.error(err);\n alert('Error uploading file');\n }\n }\n else {\n try {\n if (this.jsonSchema) {\n formData.append('json_schema', this.jsonSchema);\n }\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-json', {\n method: 'POST',\n body: formData\n });\n if (!response.ok) {\n console.error(\"There has been an error!:\", response);\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const data = await response.json();\n console.log('Upload successful:', data);\n if (this.callback && data[0] && data[0].content) {\n this.callback(data[0].content);\n }\n }\n catch (err) {\n console.error(err);\n alert('Error uploading file');\n }\n }\n };\n }\n render() {\n return (h(\"div\", { key: 'fecf4f7a1151d5a93092dcd7f34f61bbb5020a3a', class: \"upload-container\", onClick: this.triggerUpload }, h(\"input\", { key: '5dae519517ce2c93a5bedb54ec454aa7f0842670', type: \"file\", ref: el => (this.fileInput = el), onChange: this.handleFileChange, style: { display: 'none' } }), h(\"div\", { key: '856fae3bb684b769fbd1869d6e7ed96d4bd4706c', class: \"upload-button\" }, h(\"svg\", { key: '94b1f879d42904038a34f574607a46dcd6075fa2', viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, h(\"path\", { key: '020370d673d73a845aea7c15cfece3daa5214a78', d: \"M13.5 3H12H8C6.34315 3 5 4.34315 5 6V18C5 19.6569 6.34315 21 8 21H12M13.5 3L19 8.625M13.5 3V7.625C13.5 8.17728 13.9477 8.625 14.5 8.625H19M19 8.625V11.8125\", \"stroke-width\": \"2\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\" }), h(\"path\", { key: '3e14a32c1533e66de5da8bdcac5206196bd6302b', d: \"M17.5 21L17.5 15M17.5 15L20 17.5M17.5 15L15 17.5\", \"stroke-width\": \"2\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\" })))));\n }\n static get is() { return \"ocr-file-uploader\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ocr-file-uploader.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ocr-file-uploader.css\"]\n };\n }\n static get properties() {\n return {\n \"batch\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"batch\",\n \"defaultValue\": \"false\"\n },\n \"callback\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Function\",\n \"resolved\": \"Function\",\n \"references\": {\n \"Function\": {\n \"location\": \"global\",\n \"id\": \"global::Function\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"jsonSchema\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"json-schema\"\n }\n };\n }\n}\n","export class AudioRecorderService {\r\n private mediaRecorder: MediaRecorder | null = null;\r\n private audioChunks: Blob[] = [];\r\n private stream: MediaStream | null = null;\r\n\r\n async startRecording(): Promise<void> {\r\n try {\r\n // Check if the API exists before calling\r\n if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {\r\n console.error(\r\n 'Failed to start recording:', 'Microphone access is not supported in this browser or the page is not served over HTTPS/localhost.'\r\n );\r\n return; // Exit gracefully instead of throwing\r\n }\r\n \r\n this.stream = await navigator.mediaDevices.getUserMedia({\r\n audio: {\r\n echoCancellation: true,\r\n noiseSuppression: true,\r\n autoGainControl: true\r\n }\r\n });\r\n\r\n this.audioChunks = [];\r\n this.mediaRecorder = new MediaRecorder(this.stream, {\r\n mimeType: 'audio/webm;codecs=opus'\r\n });\r\n\r\n this.mediaRecorder.ondataavailable = (event) => {\r\n if (event.data && event.data.size > 0) {\r\n this.audioChunks.push(event.data);\r\n }\r\n };\r\n\r\n this.mediaRecorder.start(100); // Collect data every 100ms\r\n } catch (error: any) {\r\n console.error('Failed to start recording:', error);\r\n }\r\n }\r\n\r\n async stopRecording(): Promise<Blob> {\r\n return new Promise((resolve, reject) => {\r\n if (!this.mediaRecorder) {\r\n reject(new Error('No active recording found'));\r\n return;\r\n }\r\n\r\n this.mediaRecorder.onstop = () => {\r\n const audioBlob = new Blob(this.audioChunks, { type: 'audio/webm' });\r\n this.cleanup();\r\n resolve(audioBlob);\r\n };\r\n\r\n this.mediaRecorder.onerror = (event) => {\r\n reject(new Error(`Recording error: ${event}`));\r\n };\r\n\r\n this.mediaRecorder.stop();\r\n });\r\n }\r\n\r\n isRecording(): boolean {\r\n return this.mediaRecorder?.state === 'recording';\r\n }\r\n\r\n private cleanup(): void {\r\n if (this.stream) {\r\n this.stream.getTracks().forEach(track => track.stop());\r\n this.stream = null;\r\n }\r\n this.mediaRecorder = null;\r\n this.audioChunks = [];\r\n }\r\n}\r\n","import { SpeechToTextProvider, ServiceProviderConfig } from '../types/service-providers.types';\r\n\r\nexport class WhisperSpeechToTextService implements SpeechToTextProvider {\r\n private apiKey: string;\r\n private baseUrl: string;\r\n\r\n constructor(config: ServiceProviderConfig['speechToText']) {\r\n // Get API key from config or environment\r\n this.apiKey = config?.apiKey || this.getEnvironmentVariable('OPENAI_API_KEY') || '';\r\n this.baseUrl = config?.baseUrl || 'https://api.openai.com/v1';\r\n \r\n if (!this.apiKey) {\r\n throw new Error('OpenAI API key is required for Whisper service');\r\n }\r\n }\r\n\r\n private getEnvironmentVariable(name: string): string | undefined {\r\n // In browser environment, we might get env vars through other means\r\n if (typeof process !== 'undefined' && process.env) {\r\n return process.env[name];\r\n }\r\n // Check if it's available as a global variable or through other means\r\n return (window as any)[name] || undefined;\r\n }\r\n\r\n async transcribe(audioContent: File, lang: string = 'en'): Promise<string> {\r\n try {\r\n const formData = new FormData();\r\n \r\n formData.append('file', audioContent);\r\n formData.append('model', 'gpt-4o-transcribe');// >>> tronque le texte ?\r\n // formData.append('model', 'gpt-4o-mini-transcribe');// >>> tronque le texte ?\r\n // formData.append('model', 'whisper-1');\r\n formData.append('language', lang);\r\n formData.append('response_format', 'json');\r\n formData.append('max_output_tokens', '2000');\r\n\r\n const response = await fetch(`${this.baseUrl}/audio/transcriptions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${this.apiKey}`,\r\n },\r\n body: formData,\r\n });\r\n\r\n if (!response.ok) {\r\n const errorData = await response.json().catch(() => ({ error: 'Unknown error' }));\r\n throw new Error(`Transcription failed: ${errorData.error?.message || response.statusText}`);\r\n }\r\n\r\n const result = await response.json();\r\n return result.text || '';\r\n } catch (error) {\r\n throw new Error(`Speech-to-text transcription failed: ${error.message}`);\r\n }\r\n }\r\n}\r\n\r\nexport class SpeechToTextServiceFactory {\r\n static create(config: ServiceProviderConfig): SpeechToTextProvider {\r\n const provider = config.speechToText?.provider || 'whisper';\r\n \r\n switch (provider) {\r\n case 'whisper':\r\n return new WhisperSpeechToTextService(config.speechToText);\r\n default:\r\n throw new Error(`Unsupported speech-to-text provider: ${provider}`);\r\n }\r\n }\r\n}\r\n","import { LLMProvider, ServiceProviderConfig } from '../types/service-providers.types';\r\nimport { FormSchema } from '../types/form-schema.types';\r\n\r\nexport class OpenAILLMService implements LLMProvider {\r\n private apiKey: string;\r\n private model: string;\r\n private baseUrl: string;\r\n\r\n constructor(config: ServiceProviderConfig['llm']) {\r\n // Get API key from config or environment\r\n this.apiKey = config?.apiKey || this.getEnvironmentVariable('OPENAI_API_KEY') || '';\r\n // the newest OpenAI model is \"gpt-4.1-mini\". do not change this unless explicitly requested by the user\r\n // this.model = config?.model || 'gpt-4.1-mini';\r\n this.model = config?.model || 'gpt-4.1';\r\n this.baseUrl = config?.baseUrl || 'https://api.openai.com/v1';\r\n \r\n if (!this.apiKey) {\r\n throw new Error('OpenAI API key is required for LLM service');\r\n }\r\n }\r\n\r\n private getEnvironmentVariable(name: string): string | undefined {\r\n // In browser environment, we might get env vars through other means\r\n if (typeof process !== 'undefined' && process.env) {\r\n return process.env[name];\r\n }\r\n // Check if it's available as a global variable or through other means\r\n return (window as any)[name] || undefined;\r\n }\r\n\r\n private getOptimizeFieldsDescription(schema: any){\r\n return Object.values(schema).map((field: any) => \r\n `- ${field.name ?? field.title} ` +\r\n `(${field.type}` +\r\n `${field.required ? ', required' : ''}` +\r\n `${field.readonly ? ', readonly' : ''}` +\r\n `${field.min && field.min !== \"\" ? ', min='+field.min : ''}` +\r\n `${field.max && field.max !== \"\" ? ', max='+field.max : ''}` +\r\n `)` +\r\n `${field.options ? ` - options: ${field.options.join(', ')}` : ''}`\r\n ).join('\\n')\r\n }\r\n\r\n async fillFormFromTranscription(transcription: string, schema: any): Promise<any> {\r\n return this.fillForm(transcription, schema, true);\r\n }\r\n\r\n async fillFormFromJson(json: string, schema: any): Promise<any> {\r\n return this.fillForm(json, schema, false);\r\n }\r\n\r\n private async fillForm(data: string, schema: any, dataIsTranscription: boolean = true): Promise<any> {\r\n try {\r\n // Handle complex schema format with fields array\r\n if (schema?.fields || schema?.schema) {\r\n const finalSchema = schema?.fields || schema?.schema;\r\n const systemPrompt = `You are an expert form-filling assistant. You will receive a voice transcription and form field definitions. Your task is to extract values from the spoken content.\r\n Rules:\r\n 1. Only extract values that can be confidently determined from the transcription\r\n 2. Respect field types (string, number, datetime, boolean, select)\r\n 3. For datetime fields, use ISO format (YYYY-MM-DDTHH:MM)\r\n 4. For date fields, use the following format: DD/MM/YYYY\r\n 5. For boolean fields, interpret yes/no, true/false, positive/negative responses\r\n 6. For select fields, use exact option values from the provided choices\r\n 7. Only include fields where relevant information is found\r\n 8. The current GMT datetime is ${(new Date() as any).toGMTString()}\r\n 9. Respect the constraints written between parenthesis for readonly status (readonly fields must not be filled with values), min and max values, whatever the transcription says\r\n\r\n Respond with JSON in this exact format: {\"fields\": [{\"name\": \"field_name\", \"value\": \"extracted_value\"}]}`;\r\n\r\n let userPrompt = `\r\n Voice transcription: \"${data}\"\r\n\r\n Form fields:\r\n ${this.getOptimizeFieldsDescription(finalSchema)}\r\n\r\n Please extract values from the Transcription for these fields.\r\n `;\r\n\r\n //TODO\r\n\r\n // const userPrompt = (\r\n // dataIsTranscription \r\n // ?\r\n // `Voice transcription: \"${data}\"`\r\n // : \r\n // `Json datas: \"${JSON.stringify(data)}\"`\r\n // )+`\r\n\r\n // Form fields:\r\n // ${this.getOptimizeFieldsDescription(finalSchema)}\r\n\r\n // Please extract values from the ` + \r\n // (\r\n // dataIsTranscription \r\n // ?\r\n // `Transcription`\r\n // : \r\n // `Json generated file`\r\n // )+` for these fields.`;\r\n\r\n const response = await fetch(`${this.baseUrl}/chat/completions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this.apiKey}`,\r\n },\r\n body: JSON.stringify({\r\n model: this.model,\r\n messages: [\r\n { role: 'system', content: systemPrompt },\r\n { role: 'user', content: userPrompt }\r\n ],\r\n response_format: { type: 'json_object' },\r\n temperature: 0.1,\r\n }),\r\n });\r\n\r\n if (!response.ok) {\r\n const errorData = await response.json().catch(() => ({ error: 'Unknown error' }));\r\n throw new Error(`LLM API failed: ${errorData.error?.message || response.statusText}`);\r\n }\r\n\r\n const result = await response.json();\r\n return JSON.parse(result.choices[0].message.content);\r\n }\r\n\r\n // Handle simple schema format (backward compatibility)\r\n const systemPrompt = `You are an expert form-filling assistant. You will receive a voice transcription and a JSON form schema. Your task is to intelligently fill the form fields based on the spoken content.\r\n Rules:\r\n 1. Only fill fields that can be confidently determined from the transcription\r\n 2. Respect field types (string, number, date, boolean, select)\r\n 3. For datetime fields, use ISO format (YYYY-MM-DDTHH:MM)\r\n 4. For date fields, use the following format: DD/MM/YYYY\r\n 5. For boolean fields, interpret yes/no, true/false, positive/negative responses\r\n 6. For select fields, match the closest option from the provided choices\r\n 7. Leave fields empty if no relevant information is found\r\n 8. Return the same schema structure with 'default' values filled\r\n 9. The current GMT datetime is ${(new Date() as any).toGMTString()}\r\n 10. Respect the constraints written between parenthesis for readonly status (readonly fields must not be filled with values), min and max values, whatever the transcription says\r\n\r\n Respond with JSON in this exact format: {\"schema\": {...}}`;\r\n\r\n let userPrompt = `\r\n Voice transcription: \"${data}\"\r\n\r\n Form schema to fill:\r\n ${JSON.stringify(schema, null, 2)}\r\n\r\n Please fill the form fields based on the Transcription and return the schema with default values populated.\r\n `;\r\n\r\n // const userPrompt = (\r\n // dataIsTranscription \r\n // ?\r\n // `Voice transcription: \"${data}\"`\r\n // : \r\n // `Json datas: \"${JSON.stringify(data)}\"`\r\n // )+`\r\n\r\n // Form schema to fill:\r\n // ${JSON.stringify(schema, null, 2)}\r\n\r\n // Please fill the form fields based on the ` + \r\n // (\r\n // dataIsTranscription \r\n // ?\r\n // `Transcription`\r\n // : \r\n // `Json generated file`\r\n // )+` nd return the schema with default values populated.`;\r\n\r\n const response = await fetch(`${this.baseUrl}/chat/completions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this.apiKey}`,\r\n },\r\n body: JSON.stringify({\r\n model: this.model,\r\n messages: [\r\n { role: 'system', content: systemPrompt },\r\n { role: 'user', content: userPrompt }\r\n ],\r\n response_format: { type: 'json_object' },\r\n temperature: 0.1, // Low temperature for consistency\r\n }),\r\n });\r\n\r\n if (!response.ok) {\r\n const errorData = await response.json().catch(() => ({ error: 'Unknown error' }));\r\n throw new Error(`LLM API failed: ${errorData.error?.message || response.statusText}`);\r\n }\r\n\r\n const result = await response.json();\r\n const filledSchema = JSON.parse(result.choices[0].message.content);\r\n \r\n // Validate that the response has the correct structure\r\n if (!filledSchema.schema) {\r\n throw new Error('Invalid response format from LLM service');\r\n }\r\n\r\n return filledSchema;\r\n } catch (error) {\r\n throw new Error(`Form filling failed: ${error.message}`);\r\n }\r\n }\r\n}\r\n\r\nexport class LLMServiceFactory {\r\n static create(config: ServiceProviderConfig): LLMProvider {\r\n const provider = config.llm?.provider || 'openai';\r\n \r\n switch (provider) {\r\n case 'openai':\r\n return new OpenAILLMService(config.llm);\r\n default:\r\n throw new Error(`Unsupported LLM provider: ${provider}`);\r\n }\r\n }\r\n}\r\n","import { FormSchema, FormField, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended, FormFieldExtended } from '../types/form-schema.types';\r\n\r\nexport class SchemaConverter {\r\n /**\r\n * Convert XML form definition to JSON schema\r\n */\r\n static convertXmlToJsonLegacy(xmlForm: string): FormSchema {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n \r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n const schema: FormSchema = {\r\n schema: {}\r\n };\r\n\r\n // Extract form title and description\r\n const formElement = xmlDoc.querySelector('form');\r\n if (formElement) {\r\n schema.title = formElement.getAttribute('title') || undefined;\r\n schema.description = formElement.getAttribute('description') || undefined;\r\n }\r\n\r\n // Process input fields\r\n const inputs = xmlDoc.querySelectorAll('input, select, textarea');\r\n inputs.forEach(input => {\r\n const name = input.getAttribute('name');\r\n if (!name) return;\r\n\r\n const field: FormField = {\r\n type: this.mapXmlTypeToJsonTypeLegacy(input.tagName.toLowerCase(), input.getAttribute('type')),\r\n title: input.getAttribute('title') || input.getAttribute('placeholder') || name,\r\n description: input.getAttribute('description') || undefined,\r\n required: input.hasAttribute('required'),\r\n default: input.getAttribute('value') || undefined\r\n };\r\n\r\n // Handle select options\r\n if (input.tagName.toLowerCase() === 'select') {\r\n const options = Array.from(input.querySelectorAll('option')).map(option => \r\n option.textContent || option.getAttribute('value') || ''\r\n );\r\n if (options.length > 0) {\r\n field.options = options;\r\n }\r\n }\r\n\r\n // Handle validation attributes\r\n const min = input.getAttribute('min');\r\n const max = input.getAttribute('max');\r\n const pattern = input.getAttribute('pattern');\r\n\r\n if (min) field.min = parseFloat(min);\r\n if (max) field.max = parseFloat(max);\r\n if (pattern) field.pattern = pattern;\r\n\r\n schema.schema[name] = field;\r\n });\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema to XML form definition\r\n */\r\n static convertJsonToXmlLegacy(jsonForm: FormSchema): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const form = doc.createElement('form');\r\n \r\n if (jsonForm.title) {\r\n form.setAttribute('title', jsonForm.title);\r\n }\r\n if (jsonForm.description) {\r\n form.setAttribute('description', jsonForm.description);\r\n }\r\n\r\n Object.entries(jsonForm.schema).forEach(([fieldName, field]) => {\r\n // Inject default value from root if present\r\n const valueFromRoot = (jsonForm as any)[fieldName];\r\n const fieldWithDefault = {\r\n ...field,\r\n default: field.default ?? valueFromRoot // field.default has priority\r\n };\r\n\r\n const element = this.createXmlElementLegacy(doc, fieldName, fieldWithDefault);\r\n if (element) {\r\n form.appendChild(element);\r\n }\r\n });\r\n\r\n doc.appendChild(form);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapXmlTypeToJsonTypeLegacy(tagName: string, type: string | null): FormField['type'] {\r\n switch (tagName) {\r\n case 'select':\r\n return 'select';\r\n case 'textarea':\r\n return 'string';\r\n case 'input':\r\n switch (type) {\r\n case 'number':\r\n case 'range':\r\n return 'number';\r\n case 'date':\r\n case 'datetime-local':\r\n case 'time':\r\n return 'date';\r\n case 'checkbox':\r\n return 'boolean';\r\n default:\r\n return 'string';\r\n }\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n private static createXmlElementLegacy(doc: Document, fieldName: string, field: FormField): Element | null {\r\n let element: Element;\r\n\r\n switch (field.type) {\r\n case 'select':\r\n element = doc.createElement('select');\r\n if (field.options) {\r\n field.options.forEach(option => {\r\n const optionElement = doc.createElement('option');\r\n optionElement.setAttribute('value', option);\r\n optionElement.textContent = option;\r\n // Set selected if it matches the default value\r\n if (field.default !== undefined && field.default === option) {\r\n optionElement.setAttribute('selected', 'true');\r\n }\r\n element.appendChild(optionElement);\r\n });\r\n }\r\n break;\r\n\r\n case 'boolean':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'checkbox');\r\n if (field.default === true || field.default === 'true') {\r\n element.setAttribute('checked', 'true');\r\n }\r\n break;\r\n\r\n case 'number':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'number');\r\n if (field.min !== undefined) element.setAttribute('min', field.min.toString());\r\n if (field.max !== undefined) element.setAttribute('max', field.max.toString());\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n case 'date':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'date');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n default: // string, text, etc.\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'text');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n }\r\n\r\n element.setAttribute('name', fieldName);\r\n element.setAttribute('title', field.title);\r\n\r\n if (field.description) {\r\n element.setAttribute('description', field.description);\r\n }\r\n if (field.required) {\r\n element.setAttribute('required', 'true');\r\n }\r\n if (field.pattern) {\r\n element.setAttribute('pattern', field.pattern);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n \r\n /**\r\n * Convert new XML form definition to JSON schema\r\n */\r\n static async convertXmlToJson(xmlForm: string, classificationRootURL: string = \"http://localhost\", lang: 'fr'|'en' = 'en'): Promise<FormSchemaFieldsOnly> {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n\r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n // Root Xforms element (optional)\r\n const xforms = xmlDoc.querySelector('Xforms');\r\n if (!xforms) throw new Error('No Xforms root element found');\r\n\r\n const fields = xforms.querySelectorAll('Fields');\r\n if (fields.length === 0) throw new Error('No Fields elements found');\r\n\r\n const schema: FormSchemaFieldsOnly = {\r\n fields: {}\r\n };\r\n\r\n for (const fieldEl of Array.from(fields)) {\r\n // Read key info\r\n const name = fieldEl.querySelector('SystemName')?.textContent?.trim();\r\n if (!name) return;\r\n\r\n const helpText = fieldEl.querySelector('HelpText')?.textContent?.trim();\r\n const defaultValue = fieldEl.querySelector('DefaultValue')?.textContent;\r\n const enabledText = fieldEl.querySelector('Enabled')?.textContent?.trim().toLowerCase() || 'true';\r\n const isEnabled = enabledText === 'true';\r\n\r\n // keep as memory\r\n const field_ID = fieldEl.querySelector('ID')?.textContent;\r\n const field_TFie_PK_ID = fieldEl.querySelector('TFie_PK_ID')?.textContent;\r\n const field_TVal_PK_ID = fieldEl.querySelector('TVal_PK_ID')?.textContent;\r\n const field_TFIn_PK_ID = fieldEl.querySelector('TFIn_PK_ID')?.textContent;\r\n const field_isForm = fieldEl.querySelector('isForm')?.textContent;\r\n const field_LabelText = fieldEl.querySelector('LabelText')?.textContent;\r\n const field_SystemName = fieldEl.querySelector('SystemName')?.textContent;\r\n const field_CssStyle = fieldEl.querySelector('CssStyle')?.textContent;\r\n const field_ControlType = fieldEl.querySelector('ControlType')?.textContent || 'TextBox';\r\n const field_ValidationRequired = fieldEl.querySelector('ValidationRequired')?.textContent;\r\n const field_ValidationMin = fieldEl.querySelector('ValidationMin')?.textContent;\r\n const field_ValidationMax = fieldEl.querySelector('ValidationMax')?.textContent;\r\n const field_Mask = fieldEl.querySelector('Mask')?.textContent;\r\n const field_TypeId = fieldEl.querySelector('TypeId')?.textContent;\r\n const field_Unit = fieldEl.querySelector('Unit')?.textContent;\r\n const field_TFie_Fullpath = fieldEl.querySelector('TFie_Fullpath')?.textContent;\r\n const field_TVal_FK_Parent_ID = fieldEl.querySelector('TVal_FK_Parent_ID')?.textContent;\r\n\r\n const field: FormFieldExtended = {\r\n type: this.mapControlTypeToJsonType(field_ControlType),\r\n title: field_LabelText,\r\n description: helpText,\r\n required: field_ValidationRequired?.toLowerCase() === 'required',\r\n default: defaultValue || undefined,\r\n\r\n realType: field_ControlType,\r\n\r\n Enabled: isEnabled,\r\n ID: field_ID,\r\n TFie_PK_ID: field_TFie_PK_ID,\r\n TVal_PK_ID: field_TVal_PK_ID,\r\n TFIn_PK_ID: field_TFIn_PK_ID,\r\n isForm: field_isForm,\r\n LabelText: field_LabelText,\r\n SystemName: field_SystemName,\r\n CssStyle: field_CssStyle,\r\n ControlType: field_ControlType,\r\n ValidationRequired: field_ValidationRequired,\r\n ValidationMin: field_ValidationMin,\r\n ValidationMax: field_ValidationMax,\r\n Mask: field_Mask,\r\n TypeId: field_TypeId,\r\n Unit: field_Unit,\r\n TFie_Fullpath: field_TFie_Fullpath,\r\n TVal_FK_Parent_ID: field_TVal_FK_Parent_ID\r\n };\r\n\r\n // Handle select options\r\n if (field.type.toLowerCase() === 'select') {\r\n try {\r\n const response = await fetch(`${classificationRootURL}/ng/api/v1/classification/getList/${field.ControlType.toLowerCase() == 'termpicker' ? \"Position\" : \"Thesaurus\"}/?StartNodeID=${field_TypeId}`);\r\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n const data = await response.json();\r\n if (Array.isArray(data)) {\r\n const options = data.map(item => ({\r\n value: item.ID,\r\n label: item.System_Name\r\n }));\r\n if (options.length > 0) {\r\n field.pickerOptions = options;\r\n // TODO on degage les quotes simples temporairement, a corriger\r\n field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n }\r\n } else {\r\n console.error(\"Unexpected API response format:\", data);\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching classification data:\", error);\r\n }\r\n }\r\n\r\n if (field_ValidationMin) field.min = parseFloat(field_ValidationMin);\r\n if (field_ValidationMax) field.max = parseFloat(field_ValidationMax);\r\n if (field_Mask) field.pattern = field_Mask;\r\n\r\n // Optional: Add any other fields you want to track, e.g. min, max, pattern (not clearly in your XML)\r\n // You could also add the raw ControlType for round-trip fidelity if you want\r\n\r\n schema.fields[field_ID] = field;\r\n };\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema back to your new XML form definition format\r\n */\r\n static convertJsonToXml(jsonForm: FormSchemaFieldsOnlyExtended): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const xforms = doc.createElement('Xforms');\r\n\r\n Object.entries(( (jsonForm as any).schema ? (jsonForm as any).schema : (jsonForm as any).fields )).forEach(([fieldID, field]) => {\r\n const fieldEl = doc.createElement('Fields');\r\n const fieldToUse = (field as FormFieldExtended);\r\n\r\n // Set all subelements based on your XML structure\r\n // ID, PK IDs etc are missing here, so omit or generate dummy\r\n\r\n // <SystemName>\r\n const systemNameEl = doc.createElement('SystemName');\r\n systemNameEl.textContent = fieldToUse.SystemName;\r\n fieldEl.appendChild(systemNameEl);\r\n\r\n // <LabelText>\r\n const labelEl = doc.createElement('LabelText');\r\n labelEl.textContent = fieldToUse.title || fieldID;\r\n fieldEl.appendChild(labelEl);\r\n\r\n // <HelpText>\r\n const helpEl = doc.createElement('HelpText');\r\n helpEl.textContent = fieldToUse.description;\r\n fieldEl.appendChild(helpEl);\r\n\r\n // <ControlType>\r\n const controlTypeEl = doc.createElement('ControlType');\r\n controlTypeEl.textContent = fieldToUse.realType;\r\n fieldEl.appendChild(controlTypeEl);\r\n\r\n // <ValidationRequired>\r\n const validationEl = doc.createElement('ValidationRequired');\r\n validationEl.textContent = fieldToUse.required ? 'Required' : 'Not Required';\r\n fieldEl.appendChild(validationEl);\r\n\r\n // <DefaultValue>\r\n const defaultEl = doc.createElement('DefaultValue');\r\n const valueEl = doc.createElement('Value');\r\n if (jsonForm[fieldID] !== undefined) {\r\n defaultEl.textContent = jsonForm[fieldID].toString();\r\n valueEl.textContent = jsonForm[fieldID].toString();\r\n }\r\n else {\r\n defaultEl.textContent = fieldToUse.default || fieldToUse.value;\r\n valueEl.textContent = fieldToUse.value || fieldToUse.default;\r\n }\r\n fieldEl.appendChild(defaultEl);\r\n fieldEl.appendChild(valueEl);\r\n\r\n // <Enabled>\r\n const enabledEl = doc.createElement('Enabled');\r\n enabledEl.textContent = fieldToUse.Enabled === false ? 'False' : 'True';\r\n fieldEl.appendChild(enabledEl);\r\n\r\n // Add <isForm> Field to distinguish Field or Header etc\r\n const isFormEl = doc.createElement('isForm');\r\n isFormEl.textContent = fieldToUse.isForm;\r\n fieldEl.appendChild(isFormEl);\r\n\r\n if (fieldToUse.type === 'header') {\r\n const headerEl = doc.createElement('Header');\r\n headerEl.textContent = fieldToUse.title;\r\n fieldEl.appendChild(headerEl);\r\n }\r\n \r\n const idEl = doc.createElement('ID');\r\n idEl.textContent = fieldToUse.ID;\r\n fieldEl.appendChild(idEl);\r\n\r\n const tfiePkIdEl = doc.createElement('TFie_PK_ID');\r\n tfiePkIdEl.textContent = fieldToUse.TFie_PK_ID;\r\n fieldEl.appendChild(tfiePkIdEl);\r\n\r\n const tvalPkIdEl = doc.createElement('TVal_PK_ID');\r\n tvalPkIdEl.textContent = fieldToUse.TVal_PK_ID;\r\n fieldEl.appendChild(tvalPkIdEl);\r\n\r\n const tfInPkIdEl = doc.createElement('TFIn_PK_ID');\r\n tfInPkIdEl.textContent = fieldToUse.TFIn_PK_ID;\r\n fieldEl.appendChild(tfInPkIdEl);\r\n\r\n const cssStyleEl = doc.createElement('CssStyle');\r\n cssStyleEl.textContent = fieldToUse.CssStyle;\r\n fieldEl.appendChild(cssStyleEl);\r\n\r\n const typeIdEl = doc.createElement('TypeId');\r\n typeIdEl.textContent = fieldToUse.TypeId;\r\n fieldEl.appendChild(typeIdEl);\r\n\r\n const unitEl = doc.createElement('Unit');\r\n unitEl.textContent = fieldToUse.Unit;\r\n fieldEl.appendChild(unitEl);\r\n\r\n const tfieFullPathEl = doc.createElement('TFie_Fullpath');\r\n tfieFullPathEl.textContent = fieldToUse.TFie_Fullpath;\r\n fieldEl.appendChild(tfieFullPathEl);\r\n\r\n const tvalFkParentIdEl = doc.createElement('TVal_FK_Parent_ID');\r\n tvalFkParentIdEl.textContent = fieldToUse.TVal_FK_Parent_ID;\r\n fieldEl.appendChild(tvalFkParentIdEl);\r\n\r\n const validationMinEl = doc.createElement('ValidationMin');\r\n validationMinEl.textContent = fieldToUse.ValidationMin;\r\n fieldEl.appendChild(validationMinEl);\r\n\r\n const validationMaxEl = doc.createElement('ValidationMax');\r\n validationMaxEl.textContent = fieldToUse.ValidationMax;\r\n fieldEl.appendChild(validationMaxEl);\r\n\r\n const maskEl = doc.createElement('Mask');\r\n maskEl.textContent = fieldToUse.Mask;\r\n fieldEl.appendChild(maskEl);\r\n\r\n // Append to Xforms root\r\n xforms.appendChild(fieldEl);\r\n });\r\n\r\n doc.appendChild(xforms);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapControlTypeToJsonType(controlType: string): FormField['type'] {\r\n // Map your ControlType XML field to JSON field types\r\n switch (controlType.toLowerCase()) {\r\n case 'textbox':\r\n case 'text':\r\n return 'string';\r\n case 'datepicker':\r\n return 'date';\r\n case 'thesauruspicker':\r\n case 'thesauruspicker-ddl':\r\n case 'termpicker':\r\n return 'select';\r\n case 'dbpicker':\r\n return 'dbpicker'; // custom type if needed\r\n case 'header':\r\n return 'header'; // special type to handle header elements\r\n case 'checkbox':\r\n return 'boolean';\r\n case 'realpicker':\r\n return 'number';\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n // private static mapJsonTypeToControlType(type: string): string {\r\n // switch (type.toLowerCase()) {\r\n // case 'string':\r\n // return 'TextBox';\r\n // case 'date':\r\n // return 'DatePicker';\r\n // case 'select':\r\n // return 'ThesaurusPicker';\r\n // case 'dbpicker':\r\n // return 'DBPicker';\r\n // case 'boolean':\r\n // return 'CheckBox';\r\n // case 'header':\r\n // return 'Header';\r\n // default:\r\n // return 'TextBox';\r\n // }\r\n // }\r\n\r\n}\r\n","const NAMESPACE = 'ocr-file-uploader';\nconst BUILD = /* ocr-file-uploader */ { hotModuleReplacement: false, hydratedSelectorName: \"hydrated\", lazyLoad: true, prop: true, propChangeCallback: false, updatable: true};\n\n/*\n Stencil Client Platform v4.40.1 | MIT Licensed | https://stenciljs.com\n */\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n __defProp(target, \"default\", { value: mod, enumerable: true }) ,\n mod\n));\nvar __publicField = (obj, key, value) => __defNormalProp(obj, key + \"\" , value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\n\n// node_modules/balanced-match/index.js\nvar require_balanced_match = __commonJS({\n \"node_modules/balanced-match/index.js\"(exports, module) {\n module.exports = balanced;\n function balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n var r = range(a, b, str);\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n }\n function maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n }\n balanced.range = range;\n function range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i2 = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n while (i2 >= 0 && !result) {\n if (i2 == ai) {\n begs.push(i2);\n ai = str.indexOf(a, i2 + 1);\n } else if (begs.length == 1) {\n result = [begs.pop(), bi];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i2 + 1);\n }\n i2 = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length) {\n result = [left, right];\n }\n }\n return result;\n }\n }\n});\n\n// node_modules/brace-expansion/index.js\nvar require_brace_expansion = __commonJS({\n \"node_modules/brace-expansion/index.js\"(exports, module) {\n var balanced = require_balanced_match();\n module.exports = expandTop;\n var escSlash = \"\\0SLASH\" + Math.random() + \"\\0\";\n var escOpen = \"\\0OPEN\" + Math.random() + \"\\0\";\n var escClose = \"\\0CLOSE\" + Math.random() + \"\\0\";\n var escComma = \"\\0COMMA\" + Math.random() + \"\\0\";\n var escPeriod = \"\\0PERIOD\" + Math.random() + \"\\0\";\n function numeric(str) {\n return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);\n }\n function escapeBraces(str) {\n return str.split(\"\\\\\\\\\").join(escSlash).split(\"\\\\{\").join(escOpen).split(\"\\\\}\").join(escClose).split(\"\\\\,\").join(escComma).split(\"\\\\.\").join(escPeriod);\n }\n function unescapeBraces(str) {\n return str.split(escSlash).join(\"\\\\\").split(escOpen).join(\"{\").split(escClose).join(\"}\").split(escComma).join(\",\").split(escPeriod).join(\".\");\n }\n function parseCommaParts(str) {\n if (!str)\n return [\"\"];\n var parts = [];\n var m = balanced(\"{\", \"}\", str);\n if (!m)\n return str.split(\",\");\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(\",\");\n p[p.length - 1] += \"{\" + body + \"}\";\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n parts.push.apply(parts, p);\n return parts;\n }\n function expandTop(str) {\n if (!str)\n return [];\n if (str.substr(0, 2) === \"{}\") {\n str = \"\\\\{\\\\}\" + str.substr(2);\n }\n return expand2(escapeBraces(str), true).map(unescapeBraces);\n }\n function embrace(str) {\n return \"{\" + str + \"}\";\n }\n function isPadded(el) {\n return /^-?0\\d/.test(el);\n }\n function lte(i2, y) {\n return i2 <= y;\n }\n function gte(i2, y) {\n return i2 >= y;\n }\n function expand2(str, isTop) {\n var expansions = [];\n var m = balanced(\"{\", \"}\", str);\n if (!m) return [str];\n var pre = m.pre;\n var post = m.post.length ? expand2(m.post, false) : [\"\"];\n if (/\\$$/.test(m.pre)) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + \"{\" + m.body + \"}\" + post[k];\n expansions.push(expansion);\n }\n } else {\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(\",\") >= 0;\n if (!isSequence && !isOptions) {\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + \"{\" + m.body + escClose + m.post;\n return expand2(str);\n }\n return [str];\n }\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n n = expand2(n[0], false).map(embrace);\n if (n.length === 1) {\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n var N;\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length);\n var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n N = [];\n for (var i2 = x; test(i2, y); i2 += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i2);\n if (c === \"\\\\\")\n c = \"\";\n } else {\n c = String(i2);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join(\"0\");\n if (i2 < 0)\n c = \"-\" + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = [];\n for (var j = 0; j < n.length; j++) {\n N.push.apply(N, expand2(n[j], false));\n }\n }\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n }\n return expansions;\n }\n }\n});\n\n// src/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\nvar reWireGetterSetter = (instance, hostRef) => {\n var _a;\n const cmpMeta = hostRef.$cmpMeta$;\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);\n if (ogDescriptor) {\n Object.defineProperty(instance, memberName, {\n get() {\n return ogDescriptor.get.call(this);\n },\n set(newValue) {\n ogDescriptor.set.call(this, newValue);\n },\n configurable: true,\n enumerable: true\n });\n }\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\nfunction getPropertyDescriptor(obj, memberName) {\n while (obj) {\n const desc = Object.getOwnPropertyDescriptor(obj, memberName);\n if (desc == null ? void 0 : desc.get) return desc;\n obj = Object.getPrototypeOf(obj);\n }\n return void 0;\n}\n\n// src/client/client-host-ref.ts\nvar getHostRef = (ref) => {\n if (ref.__stencil__getHostRef) {\n return ref.__stencil__getHostRef();\n }\n return void 0;\n};\nvar registerInstance = (lazyInstance, hostRef) => {\n if (!hostRef) return;\n lazyInstance.__stencil__getHostRef = () => hostRef;\n hostRef.$lazyInstance$ = lazyInstance;\n if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.prop)) {\n reWireGetterSetter(lazyInstance, hostRef);\n }\n};\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map(),\n $serializerValues$: /* @__PURE__ */ new Map()\n };\n {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n {\n hostRef.$fetchedCbList$ = [];\n }\n const ref = hostRef;\n hostElement.__stencil__getHostRef = () => ref;\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\nvar consoleError = (e, el) => (0, console.error)(e, el);\n\n// src/client/client-load-module.ts\nvar cmpModules = /* @__PURE__ */ new Map();\nvar loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n const exportName = cmpMeta.$tagName$.replace(/-/g, \"_\");\n const bundleId = cmpMeta.$lazyBundleId$;\n if (!bundleId) {\n return void 0;\n }\n const module = cmpModules.get(bundleId) ;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${\"\"}`\n ).then(\n (importedModule) => {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n },\n (e) => {\n consoleError(e, hostRef.$hostElement$);\n }\n );\n};\n\n// src/client/client-style.ts\nvar styles = /* @__PURE__ */ new Map();\nvar HYDRATED_CSS = \"{visibility:hidden}.hydrated{visibility:inherit}\";\nvar SLOT_FB_CSS = \"slot-fb{display:contents}slot-fb[hidden]{display:none}\";\nvar win = typeof window !== \"undefined\" ? window : {};\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: \"\",\n jmp: (h2) => h2(),\n raf: (h2) => requestAnimationFrame(h2),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts)\n};\nvar promiseResolve = (v) => Promise.resolve(v);\nvar supportsConstructableStylesheets = /* @__PURE__ */ (() => {\n try {\n if (!win.document.adoptedStyleSheets) {\n return false;\n }\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === \"function\";\n } catch (e) {\n }\n return false;\n})() ;\nvar supportsMutableAdoptedStyleSheets = supportsConstructableStylesheets ? /* @__PURE__ */ (() => !!win.document && Object.getOwnPropertyDescriptor(win.document.adoptedStyleSheets, \"length\").writable)() : false;\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n } else {\n plt.raf(flush);\n }\n }\n};\nvar consume = (queue) => {\n for (let i2 = 0; i2 < queue.length; i2++) {\n try {\n queue[i2](performance.now());\n } catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar flush = () => {\n consume(queueDomReads);\n {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// node_modules/minimatch/dist/esm/index.js\nvar import_brace_expansion = __toESM(require_brace_expansion());\n\n// node_modules/minimatch/dist/esm/assert-valid-pattern.js\nvar MAX_PATTERN_LENGTH = 1024 * 64;\nvar assertValidPattern = (pattern) => {\n if (typeof pattern !== \"string\") {\n throw new TypeError(\"invalid pattern\");\n }\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError(\"pattern is too long\");\n }\n};\n\n// node_modules/minimatch/dist/esm/brace-expressions.js\nvar posixClasses = {\n \"[:alnum:]\": [\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\", true],\n \"[:alpha:]\": [\"\\\\p{L}\\\\p{Nl}\", true],\n \"[:ascii:]\": [\"\\\\x00-\\\\x7f\", false],\n \"[:blank:]\": [\"\\\\p{Zs}\\\\t\", true],\n \"[:cntrl:]\": [\"\\\\p{Cc}\", true],\n \"[:digit:]\": [\"\\\\p{Nd}\", true],\n \"[:graph:]\": [\"\\\\p{Z}\\\\p{C}\", true, true],\n \"[:lower:]\": [\"\\\\p{Ll}\", true],\n \"[:print:]\": [\"\\\\p{C}\", true],\n \"[:punct:]\": [\"\\\\p{P}\", true],\n \"[:space:]\": [\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\", true],\n \"[:upper:]\": [\"\\\\p{Lu}\", true],\n \"[:word:]\": [\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\", true],\n \"[:xdigit:]\": [\"A-Fa-f0-9\", false]\n};\nvar braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, \"\\\\$&\");\nvar regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\nvar rangesToString = (ranges) => ranges.join(\"\");\nvar parseClass = (glob, position) => {\n const pos = position;\n if (glob.charAt(pos) !== \"[\") {\n throw new Error(\"not in a brace expression\");\n }\n const ranges = [];\n const negs = [];\n let i2 = pos + 1;\n let sawStart = false;\n let uflag = false;\n let escaping = false;\n let negate = false;\n let endPos = pos;\n let rangeStart = \"\";\n WHILE: while (i2 < glob.length) {\n const c = glob.charAt(i2);\n if ((c === \"!\" || c === \"^\") && i2 === pos + 1) {\n negate = true;\n i2++;\n continue;\n }\n if (c === \"]\" && sawStart && !escaping) {\n endPos = i2 + 1;\n break;\n }\n sawStart = true;\n if (c === \"\\\\\") {\n if (!escaping) {\n escaping = true;\n i2++;\n continue;\n }\n }\n if (c === \"[\" && !escaping) {\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i2)) {\n if (rangeStart) {\n return [\"$.\", false, glob.length - pos, true];\n }\n i2 += cls.length;\n if (neg)\n negs.push(unip);\n else\n ranges.push(unip);\n uflag = uflag || u;\n continue WHILE;\n }\n }\n }\n escaping = false;\n if (rangeStart) {\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + \"-\" + braceEscape(c));\n } else if (c === rangeStart) {\n ranges.push(braceEscape(c));\n }\n rangeStart = \"\";\n i2++;\n continue;\n }\n if (glob.startsWith(\"-]\", i2 + 1)) {\n ranges.push(braceEscape(c + \"-\"));\n i2 += 2;\n continue;\n }\n if (glob.startsWith(\"-\", i2 + 1)) {\n rangeStart = c;\n i2 += 2;\n continue;\n }\n ranges.push(braceEscape(c));\n i2++;\n }\n if (endPos < i2) {\n return [\"\", false, 0, false];\n }\n if (!ranges.length && !negs.length) {\n return [\"$.\", false, glob.length - pos, true];\n }\n if (negs.length === 0 && ranges.length === 1 && /^\\\\?.$/.test(ranges[0]) && !negate) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n return [regexpEscape(r), false, endPos - pos, false];\n }\n const sranges = \"[\" + (negate ? \"^\" : \"\") + rangesToString(ranges) + \"]\";\n const snegs = \"[\" + (negate ? \"\" : \"^\") + rangesToString(negs) + \"]\";\n const comb = ranges.length && negs.length ? \"(\" + sranges + \"|\" + snegs + \")\" : ranges.length ? sranges : snegs;\n return [comb, uflag, endPos - pos, true];\n};\n\n// node_modules/minimatch/dist/esm/unescape.js\nvar unescape = (s, { windowsPathsNoEscape = false } = {}) => {\n return windowsPathsNoEscape ? s.replace(/\\[([^\\/\\\\])\\]/g, \"$1\") : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, \"$1$2\").replace(/\\\\([^\\/])/g, \"$1\");\n};\n\n// node_modules/minimatch/dist/esm/ast.js\nvar types = /* @__PURE__ */ new Set([\"!\", \"?\", \"+\", \"*\", \"@\"]);\nvar isExtglobType = (c) => types.has(c);\nvar startNoTraversal = \"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\";\nvar startNoDot = \"(?!\\\\.)\";\nvar addPatternStart = /* @__PURE__ */ new Set([\"[\", \".\"]);\nvar justDots = /* @__PURE__ */ new Set([\"..\", \".\"]);\nvar reSpecials = new Set(\"().*{}+?[]^$\\\\!\");\nvar regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\nvar qmark = \"[^/]\";\nvar star = qmark + \"*?\";\nvar starNoEmpty = qmark + \"+?\";\nvar _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;\nvar _AST = class _AST {\n constructor(type, parent, options = {}) {\n __privateAdd(this, _AST_instances);\n __publicField(this, \"type\");\n __privateAdd(this, _root);\n __privateAdd(this, _hasMagic);\n __privateAdd(this, _uflag, false);\n __privateAdd(this, _parts, []);\n __privateAdd(this, _parent);\n __privateAdd(this, _parentIndex);\n __privateAdd(this, _negs);\n __privateAdd(this, _filledNegs, false);\n __privateAdd(this, _options);\n __privateAdd(this, _toString);\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n __privateAdd(this, _emptyExt, false);\n this.type = type;\n if (type)\n __privateSet(this, _hasMagic, true);\n __privateSet(this, _parent, parent);\n __privateSet(this, _root, __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _root) : this);\n __privateSet(this, _options, __privateGet(this, _root) === this ? options : __privateGet(__privateGet(this, _root), _options));\n __privateSet(this, _negs, __privateGet(this, _root) === this ? [] : __privateGet(__privateGet(this, _root), _negs));\n if (type === \"!\" && !__privateGet(__privateGet(this, _root), _filledNegs))\n __privateGet(this, _negs).push(this);\n __privateSet(this, _parentIndex, __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _parts).length : 0);\n }\n get hasMagic() {\n if (__privateGet(this, _hasMagic) !== void 0)\n return __privateGet(this, _hasMagic);\n for (const p of __privateGet(this, _parts)) {\n if (typeof p === \"string\")\n continue;\n if (p.type || p.hasMagic)\n return __privateSet(this, _hasMagic, true);\n }\n return __privateGet(this, _hasMagic);\n }\n // reconstructs the pattern\n toString() {\n if (__privateGet(this, _toString) !== void 0)\n return __privateGet(this, _toString);\n if (!this.type) {\n return __privateSet(this, _toString, __privateGet(this, _parts).map((p) => String(p)).join(\"\"));\n } else {\n return __privateSet(this, _toString, this.type + \"(\" + __privateGet(this, _parts).map((p) => String(p)).join(\"|\") + \")\");\n }\n }\n push(...parts) {\n for (const p of parts) {\n if (p === \"\")\n continue;\n if (typeof p !== \"string\" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {\n throw new Error(\"invalid part: \" + p);\n }\n __privateGet(this, _parts).push(p);\n }\n }\n toJSON() {\n var _a;\n const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === \"string\" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];\n if (this.isStart() && !this.type)\n ret.unshift([]);\n if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === \"!\")) {\n ret.push({});\n }\n return ret;\n }\n isStart() {\n var _a;\n if (__privateGet(this, _root) === this)\n return true;\n if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))\n return false;\n if (__privateGet(this, _parentIndex) === 0)\n return true;\n const p = __privateGet(this, _parent);\n for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {\n const pp = __privateGet(p, _parts)[i2];\n if (!(pp instanceof _AST && pp.type === \"!\")) {\n return false;\n }\n }\n return true;\n }\n isEnd() {\n var _a, _b, _c;\n if (__privateGet(this, _root) === this)\n return true;\n if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === \"!\")\n return true;\n if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))\n return false;\n if (!this.type)\n return (_c = __privateGet(this, _parent)) == null ? void 0 : _c.isEnd();\n const pl = __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _parts).length : 0;\n return __privateGet(this, _parentIndex) === pl - 1;\n }\n copyIn(part) {\n if (typeof part === \"string\")\n this.push(part);\n else\n this.push(part.clone(this));\n }\n clone(parent) {\n const c = new _AST(this.type, parent);\n for (const p of __privateGet(this, _parts)) {\n c.copyIn(p);\n }\n return c;\n }\n static fromGlob(pattern, options = {}) {\n var _a;\n const ast = new _AST(null, void 0, options);\n __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);\n return ast;\n }\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern() {\n if (this !== __privateGet(this, _root))\n return __privateGet(this, _root).toMMPattern();\n const glob = this.toString();\n const [re, body, hasMagic, uflag] = this.toRegExpSource();\n const anyMagic = hasMagic || __privateGet(this, _hasMagic) || __privateGet(this, _options).nocase && !__privateGet(this, _options).nocaseMagicOnly && glob.toUpperCase() !== glob.toLowerCase();\n if (!anyMagic) {\n return body;\n }\n const flags = (__privateGet(this, _options).nocase ? \"i\" : \"\") + (uflag ? \"u\" : \"\");\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob\n });\n }\n get options() {\n return __privateGet(this, _options);\n }\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(allowDot) {\n var _a;\n const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;\n if (__privateGet(this, _root) === this)\n __privateMethod(this, _AST_instances, fillNegs_fn).call(this);\n if (!this.type) {\n const noEmpty = this.isStart() && this.isEnd();\n const src = __privateGet(this, _parts).map((p) => {\n var _a2;\n const [re, _, hasMagic, uflag] = typeof p === \"string\" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);\n __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);\n __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);\n return re;\n }).join(\"\");\n let start2 = \"\";\n if (this.isStart()) {\n if (typeof __privateGet(this, _parts)[0] === \"string\") {\n const dotTravAllowed = __privateGet(this, _parts).length === 1 && justDots.has(__privateGet(this, _parts)[0]);\n if (!dotTravAllowed) {\n const aps = addPatternStart;\n const needNoTrav = (\n // dots are allowed, and the pattern starts with [ or .\n dot && aps.has(src.charAt(0)) || // the pattern starts with \\., and then [ or .\n src.startsWith(\"\\\\.\") && aps.has(src.charAt(2)) || // the pattern starts with \\.\\., and then [ or .\n src.startsWith(\"\\\\.\\\\.\") && aps.has(src.charAt(4))\n );\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : \"\";\n }\n }\n }\n let end = \"\";\n if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === \"!\") {\n end = \"(?:$|\\\\/)\";\n }\n const final2 = start2 + src + end;\n return [\n final2,\n unescape(src),\n __privateSet(this, _hasMagic, !!__privateGet(this, _hasMagic)),\n __privateGet(this, _uflag)\n ];\n }\n const repeated = this.type === \"*\" || this.type === \"+\";\n const start = this.type === \"!\" ? \"(?:(?!(?:\" : \"(?:\";\n let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);\n if (this.isStart() && this.isEnd() && !body && this.type !== \"!\") {\n const s = this.toString();\n __privateSet(this, _parts, [s]);\n this.type = null;\n __privateSet(this, _hasMagic, void 0);\n return [s, unescape(this.toString()), false, false];\n }\n let bodyDotAllowed = !repeated || allowDot || dot || false ? \"\" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);\n if (bodyDotAllowed === body) {\n bodyDotAllowed = \"\";\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`;\n }\n let final = \"\";\n if (this.type === \"!\" && __privateGet(this, _emptyExt)) {\n final = (this.isStart() && !dot ? startNoDot : \"\") + starNoEmpty;\n } else {\n const close = this.type === \"!\" ? (\n // !() must match something,but !(x) can match ''\n \"))\" + (this.isStart() && !dot && !allowDot ? startNoDot : \"\") + star + \")\"\n ) : this.type === \"@\" ? \")\" : this.type === \"?\" ? \")?\" : this.type === \"+\" && bodyDotAllowed ? \")\" : this.type === \"*\" && bodyDotAllowed ? `)?` : `)${this.type}`;\n final = start + body + close;\n }\n return [\n final,\n unescape(body),\n __privateSet(this, _hasMagic, !!__privateGet(this, _hasMagic)),\n __privateGet(this, _uflag)\n ];\n }\n};\n_root = new WeakMap();\n_hasMagic = new WeakMap();\n_uflag = new WeakMap();\n_parts = new WeakMap();\n_parent = new WeakMap();\n_parentIndex = new WeakMap();\n_negs = new WeakMap();\n_filledNegs = new WeakMap();\n_options = new WeakMap();\n_toString = new WeakMap();\n_emptyExt = new WeakMap();\n_AST_instances = new WeakSet();\nfillNegs_fn = function() {\n if (this !== __privateGet(this, _root))\n throw new Error(\"should only call on root\");\n if (__privateGet(this, _filledNegs))\n return this;\n this.toString();\n __privateSet(this, _filledNegs, true);\n let n;\n while (n = __privateGet(this, _negs).pop()) {\n if (n.type !== \"!\")\n continue;\n let p = n;\n let pp = __privateGet(p, _parent);\n while (pp) {\n for (let i2 = __privateGet(p, _parentIndex) + 1; !pp.type && i2 < __privateGet(pp, _parts).length; i2++) {\n for (const part of __privateGet(n, _parts)) {\n if (typeof part === \"string\") {\n throw new Error(\"string part in extglob AST??\");\n }\n part.copyIn(__privateGet(pp, _parts)[i2]);\n }\n }\n p = pp;\n pp = __privateGet(p, _parent);\n }\n }\n return this;\n};\n_AST_static = new WeakSet();\nparseAST_fn = function(str, ast, pos, opt) {\n var _a, _b;\n let escaping = false;\n let inBrace = false;\n let braceStart = -1;\n let braceNeg = false;\n if (ast.type === null) {\n let i3 = pos;\n let acc2 = \"\";\n while (i3 < str.length) {\n const c = str.charAt(i3++);\n if (escaping || c === \"\\\\\") {\n escaping = !escaping;\n acc2 += c;\n continue;\n }\n if (inBrace) {\n if (i3 === braceStart + 1) {\n if (c === \"^\" || c === \"!\") {\n braceNeg = true;\n }\n } else if (c === \"]\" && !(i3 === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc2 += c;\n continue;\n } else if (c === \"[\") {\n inBrace = true;\n braceStart = i3;\n braceNeg = false;\n acc2 += c;\n continue;\n }\n if (!opt.noext && isExtglobType(c) && str.charAt(i3) === \"(\") {\n ast.push(acc2);\n acc2 = \"\";\n const ext2 = new _AST(c, ast);\n i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);\n ast.push(ext2);\n continue;\n }\n acc2 += c;\n }\n ast.push(acc2);\n return i3;\n }\n let i2 = pos + 1;\n let part = new _AST(null, ast);\n const parts = [];\n let acc = \"\";\n while (i2 < str.length) {\n const c = str.charAt(i2++);\n if (escaping || c === \"\\\\\") {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i2 === braceStart + 1) {\n if (c === \"^\" || c === \"!\") {\n braceNeg = true;\n }\n } else if (c === \"]\" && !(i2 === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n } else if (c === \"[\") {\n inBrace = true;\n braceStart = i2;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (isExtglobType(c) && str.charAt(i2) === \"(\") {\n part.push(acc);\n acc = \"\";\n const ext2 = new _AST(c, part);\n part.push(ext2);\n i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);\n continue;\n }\n if (c === \"|\") {\n part.push(acc);\n acc = \"\";\n parts.push(part);\n part = new _AST(null, ast);\n continue;\n }\n if (c === \")\") {\n if (acc === \"\" && __privateGet(ast, _parts).length === 0) {\n __privateSet(ast, _emptyExt, true);\n }\n part.push(acc);\n acc = \"\";\n ast.push(...parts, part);\n return i2;\n }\n acc += c;\n }\n ast.type = null;\n __privateSet(ast, _hasMagic, void 0);\n __privateSet(ast, _parts, [str.substring(pos - 1)]);\n return i2;\n};\npartsToRegExp_fn = function(dot) {\n return __privateGet(this, _parts).map((p) => {\n if (typeof p === \"string\") {\n throw new Error(\"string type in extglob ast??\");\n }\n const [re, _, _hasMagic2, uflag] = p.toRegExpSource(dot);\n __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);\n return re;\n }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join(\"|\");\n};\nparseGlob_fn = function(glob, hasMagic, noEmpty = false) {\n let escaping = false;\n let re = \"\";\n let uflag = false;\n for (let i2 = 0; i2 < glob.length; i2++) {\n const c = glob.charAt(i2);\n if (escaping) {\n escaping = false;\n re += (reSpecials.has(c) ? \"\\\\\" : \"\") + c;\n continue;\n }\n if (c === \"\\\\\") {\n if (i2 === glob.length - 1) {\n re += \"\\\\\\\\\";\n } else {\n escaping = true;\n }\n continue;\n }\n if (c === \"[\") {\n const [src, needUflag, consumed, magic] = parseClass(glob, i2);\n if (consumed) {\n re += src;\n uflag = uflag || needUflag;\n i2 += consumed - 1;\n hasMagic = hasMagic || magic;\n continue;\n }\n }\n if (c === \"*\") {\n if (noEmpty && glob === \"*\")\n re += starNoEmpty;\n else\n re += star;\n hasMagic = true;\n continue;\n }\n if (c === \"?\") {\n re += qmark;\n hasMagic = true;\n continue;\n }\n re += regExpEscape(c);\n }\n return [re, unescape(glob), !!hasMagic, uflag];\n};\n__privateAdd(_AST, _AST_static);\nvar AST = _AST;\n\n// node_modules/minimatch/dist/esm/escape.js\nvar escape = (s, { windowsPathsNoEscape = false } = {}) => {\n return windowsPathsNoEscape ? s.replace(/[?*()[\\]]/g, \"[$&]\") : s.replace(/[?*()[\\]\\\\]/g, \"\\\\$&\");\n};\n\n// node_modules/minimatch/dist/esm/index.js\nvar minimatch = (p, pattern, options = {}) => {\n assertValidPattern(pattern);\n if (!options.nocomment && pattern.charAt(0) === \"#\") {\n return false;\n }\n return new Minimatch(pattern, options).match(p);\n};\nvar starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nvar starDotExtTest = (ext2) => (f) => !f.startsWith(\".\") && f.endsWith(ext2);\nvar starDotExtTestDot = (ext2) => (f) => f.endsWith(ext2);\nvar starDotExtTestNocase = (ext2) => {\n ext2 = ext2.toLowerCase();\n return (f) => !f.startsWith(\".\") && f.toLowerCase().endsWith(ext2);\n};\nvar starDotExtTestNocaseDot = (ext2) => {\n ext2 = ext2.toLowerCase();\n return (f) => f.toLowerCase().endsWith(ext2);\n};\nvar starDotStarRE = /^\\*+\\.\\*+$/;\nvar starDotStarTest = (f) => !f.startsWith(\".\") && f.includes(\".\");\nvar starDotStarTestDot = (f) => f !== \".\" && f !== \"..\" && f.includes(\".\");\nvar dotStarRE = /^\\.\\*+$/;\nvar dotStarTest = (f) => f !== \".\" && f !== \"..\" && f.startsWith(\".\");\nvar starRE = /^\\*+$/;\nvar starTest = (f) => f.length !== 0 && !f.startsWith(\".\");\nvar starTestDot = (f) => f.length !== 0 && f !== \".\" && f !== \"..\";\nvar qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nvar qmarksTestNocase = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExt([$0]);\n if (!ext2)\n return noext;\n ext2 = ext2.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext2);\n};\nvar qmarksTestNocaseDot = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExtDot([$0]);\n if (!ext2)\n return noext;\n ext2 = ext2.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext2);\n};\nvar qmarksTestDot = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExtDot([$0]);\n return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);\n};\nvar qmarksTest = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExt([$0]);\n return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);\n};\nvar qmarksTestNoExt = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && !f.startsWith(\".\");\n};\nvar qmarksTestNoExtDot = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && f !== \".\" && f !== \"..\";\n};\nvar defaultPlatform = typeof process === \"object\" && process ? typeof process.env === \"object\" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : \"posix\";\nvar path = {\n win32: { sep: \"\\\\\" },\n posix: { sep: \"/\" }\n};\nvar sep = defaultPlatform === \"win32\" ? path.win32.sep : path.posix.sep;\nminimatch.sep = sep;\nvar GLOBSTAR = Symbol(\"globstar **\");\nminimatch.GLOBSTAR = GLOBSTAR;\nvar qmark2 = \"[^/]\";\nvar star2 = qmark2 + \"*?\";\nvar twoStarDot = \"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\";\nvar twoStarNoDot = \"(?:(?!(?:\\\\/|^)\\\\.).)*?\";\nvar filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options);\nminimatch.filter = filter;\nvar ext = (a, b = {}) => Object.assign({}, a, b);\nvar defaults = (def) => {\n if (!def || typeof def !== \"object\" || !Object.keys(def).length) {\n return minimatch;\n }\n const orig = minimatch;\n const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern, options = {}) {\n super(pattern, ext(def, options));\n }\n static defaults(options) {\n return orig.defaults(ext(def, options)).Minimatch;\n }\n },\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(type, parent, options = {}) {\n super(type, parent, ext(def, options));\n }\n /* c8 ignore stop */\n static fromGlob(pattern, options = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options));\n }\n },\n unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n defaults: (options) => orig.defaults(ext(def, options)),\n makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n sep: orig.sep,\n GLOBSTAR\n });\n};\nminimatch.defaults = defaults;\nvar braceExpand = (pattern, options = {}) => {\n assertValidPattern(pattern);\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n return [pattern];\n }\n return (0, import_brace_expansion.default)(pattern);\n};\nminimatch.braceExpand = braceExpand;\nvar makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nminimatch.makeRe = makeRe;\nvar match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options);\n list = list.filter((f) => mm.match(f));\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n};\nminimatch.match = match;\nvar globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nvar regExpEscape2 = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\nvar Minimatch = class {\n options;\n set;\n pattern;\n windowsPathsNoEscape;\n nonegate;\n negate;\n comment;\n empty;\n preserveMultipleSlashes;\n partial;\n globSet;\n globParts;\n nocase;\n isWindows;\n platform;\n windowsNoMagicRoot;\n regexp;\n constructor(pattern, options = {}) {\n assertValidPattern(pattern);\n options = options || {};\n this.options = options;\n this.pattern = pattern;\n this.platform = options.platform || defaultPlatform;\n this.isWindows = this.platform === \"win32\";\n this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, \"/\");\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n this.regexp = null;\n this.negate = false;\n this.nonegate = !!options.nonegate;\n this.comment = false;\n this.empty = false;\n this.partial = !!options.partial;\n this.nocase = !!this.options.nocase;\n this.windowsNoMagicRoot = options.windowsNoMagicRoot !== void 0 ? options.windowsNoMagicRoot : !!(this.isWindows && this.nocase);\n this.globSet = [];\n this.globParts = [];\n this.set = [];\n this.make();\n }\n hasMagic() {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true;\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== \"string\")\n return true;\n }\n }\n return false;\n }\n debug(..._) {\n }\n make() {\n const pattern = this.pattern;\n const options = this.options;\n if (!options.nocomment && pattern.charAt(0) === \"#\") {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n this.parseNegate();\n this.globSet = [...new Set(this.braceExpand())];\n if (options.debug) {\n this.debug = (...args) => console.error(...args);\n }\n this.debug(this.pattern, this.globSet);\n const rawGlobParts = this.globSet.map((s) => this.slashSplit(s));\n this.globParts = this.preprocess(rawGlobParts);\n this.debug(this.pattern, this.globParts);\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n const isUNC = s[0] === \"\" && s[1] === \"\" && (s[2] === \"?\" || !globMagic.test(s[2])) && !globMagic.test(s[3]);\n const isDrive = /^[a-z]:/i.test(s[0]);\n if (isUNC) {\n return [...s.slice(0, 4), ...s.slice(4).map((ss) => this.parse(ss))];\n } else if (isDrive) {\n return [s[0], ...s.slice(1).map((ss) => this.parse(ss))];\n }\n }\n return s.map((ss) => this.parse(ss));\n });\n this.debug(this.pattern, set);\n this.set = set.filter((s) => s.indexOf(false) === -1);\n if (this.isWindows) {\n for (let i2 = 0; i2 < this.set.length; i2++) {\n const p = this.set[i2];\n if (p[0] === \"\" && p[1] === \"\" && this.globParts[i2][2] === \"?\" && typeof p[3] === \"string\" && /^[a-z]:$/i.test(p[3])) {\n p[2] = \"?\";\n }\n }\n }\n this.debug(this.pattern, this.set);\n }\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts) {\n if (this.options.noglobstar) {\n for (let i2 = 0; i2 < globParts.length; i2++) {\n for (let j = 0; j < globParts[i2].length; j++) {\n if (globParts[i2][j] === \"**\") {\n globParts[i2][j] = \"*\";\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n globParts = this.firstPhasePreProcess(globParts);\n globParts = this.secondPhasePreProcess(globParts);\n } else if (optimizationLevel >= 1) {\n globParts = this.levelOneOptimize(globParts);\n } else {\n globParts = this.adjascentGlobstarOptimize(globParts);\n }\n return globParts;\n }\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts) {\n return globParts.map((parts) => {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf(\"**\", gs + 1))) {\n let i2 = gs;\n while (parts[i2 + 1] === \"**\") {\n i2++;\n }\n if (i2 !== gs) {\n parts.splice(gs, i2 - gs);\n }\n }\n return parts;\n });\n }\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts) {\n return globParts.map((parts) => {\n parts = parts.reduce((set, part) => {\n const prev = set[set.length - 1];\n if (part === \"**\" && prev === \"**\") {\n return set;\n }\n if (part === \"..\") {\n if (prev && prev !== \"..\" && prev !== \".\" && prev !== \"**\") {\n set.pop();\n return set;\n }\n }\n set.push(part);\n return set;\n }, []);\n return parts.length === 0 ? [\"\"] : parts;\n });\n }\n levelTwoFileOptimize(parts) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts);\n }\n let didSomething = false;\n do {\n didSomething = false;\n if (!this.preserveMultipleSlashes) {\n for (let i2 = 1; i2 < parts.length - 1; i2++) {\n const p = parts[i2];\n if (i2 === 1 && p === \"\" && parts[0] === \"\")\n continue;\n if (p === \".\" || p === \"\") {\n didSomething = true;\n parts.splice(i2, 1);\n i2--;\n }\n }\n if (parts[0] === \".\" && parts.length === 2 && (parts[1] === \".\" || parts[1] === \"\")) {\n didSomething = true;\n parts.pop();\n }\n }\n let dd = 0;\n while (-1 !== (dd = parts.indexOf(\"..\", dd + 1))) {\n const p = parts[dd - 1];\n if (p && p !== \".\" && p !== \"..\" && p !== \"**\") {\n didSomething = true;\n parts.splice(dd - 1, 2);\n dd -= 2;\n }\n }\n } while (didSomething);\n return parts.length === 0 ? [\"\"] : parts;\n }\n // First phase: single-pattern processing\n // <pre> is 1 or more portions\n // <rest> is 1 or more portions\n // <p> is any portion other than ., .., '', or **\n // <e> is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}\n // <pre>/<e>/<rest> -> <pre>/<rest>\n // <pre>/<p>/../<rest> -> <pre>/<rest>\n // **/**/<rest> -> **/<rest>\n //\n // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow\n // this WOULD be allowed if ** did follow symlinks, or * didn't\n firstPhasePreProcess(globParts) {\n let didSomething = false;\n do {\n didSomething = false;\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf(\"**\", gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === \"**\") {\n gss++;\n }\n if (gss > gs) {\n parts.splice(gs + 1, gss - gs);\n }\n let next = parts[gs + 1];\n const p = parts[gs + 2];\n const p2 = parts[gs + 3];\n if (next !== \"..\")\n continue;\n if (!p || p === \".\" || p === \"..\" || !p2 || p2 === \".\" || p2 === \"..\") {\n continue;\n }\n didSomething = true;\n parts.splice(gs, 1);\n const other = parts.slice(0);\n other[gs] = \"**\";\n globParts.push(other);\n gs--;\n }\n if (!this.preserveMultipleSlashes) {\n for (let i2 = 1; i2 < parts.length - 1; i2++) {\n const p = parts[i2];\n if (i2 === 1 && p === \"\" && parts[0] === \"\")\n continue;\n if (p === \".\" || p === \"\") {\n didSomething = true;\n parts.splice(i2, 1);\n i2--;\n }\n }\n if (parts[0] === \".\" && parts.length === 2 && (parts[1] === \".\" || parts[1] === \"\")) {\n didSomething = true;\n parts.pop();\n }\n }\n let dd = 0;\n while (-1 !== (dd = parts.indexOf(\"..\", dd + 1))) {\n const p = parts[dd - 1];\n if (p && p !== \".\" && p !== \"..\" && p !== \"**\") {\n didSomething = true;\n const needDot = dd === 1 && parts[dd + 1] === \"**\";\n const splin = needDot ? [\".\"] : [];\n parts.splice(dd - 1, 2, ...splin);\n if (parts.length === 0)\n parts.push(\"\");\n dd -= 2;\n }\n }\n }\n } while (didSomething);\n return globParts;\n }\n // second phase: multi-pattern dedupes\n // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest>\n // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest>\n // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest>\n //\n // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest>\n // ^-- not valid because ** doens't follow symlinks\n secondPhasePreProcess(globParts) {\n for (let i2 = 0; i2 < globParts.length - 1; i2++) {\n for (let j = i2 + 1; j < globParts.length; j++) {\n const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);\n if (!matched)\n continue;\n globParts[i2] = matched;\n globParts[j] = [];\n }\n }\n return globParts.filter((gs) => gs.length);\n }\n partsMatch(a, b, emptyGSMatch = false) {\n let ai = 0;\n let bi = 0;\n let result = [];\n let which = \"\";\n while (ai < a.length && bi < b.length) {\n if (a[ai] === b[bi]) {\n result.push(which === \"b\" ? b[bi] : a[ai]);\n ai++;\n bi++;\n } else if (emptyGSMatch && a[ai] === \"**\" && b[bi] === a[ai + 1]) {\n result.push(a[ai]);\n ai++;\n } else if (emptyGSMatch && b[bi] === \"**\" && a[ai] === b[bi + 1]) {\n result.push(b[bi]);\n bi++;\n } else if (a[ai] === \"*\" && b[bi] && (this.options.dot || !b[bi].startsWith(\".\")) && b[bi] !== \"**\") {\n if (which === \"b\")\n return false;\n which = \"a\";\n result.push(a[ai]);\n ai++;\n bi++;\n } else if (b[bi] === \"*\" && a[ai] && (this.options.dot || !a[ai].startsWith(\".\")) && a[ai] !== \"**\") {\n if (which === \"a\")\n return false;\n which = \"b\";\n result.push(b[bi]);\n ai++;\n bi++;\n } else {\n return false;\n }\n }\n return a.length === b.length && result;\n }\n parseNegate() {\n if (this.nonegate)\n return;\n const pattern = this.pattern;\n let negate = false;\n let negateOffset = 0;\n for (let i2 = 0; i2 < pattern.length && pattern.charAt(i2) === \"!\"; i2++) {\n negate = !negate;\n negateOffset++;\n }\n if (negateOffset)\n this.pattern = pattern.slice(negateOffset);\n this.negate = negate;\n }\n // set partial to true to test if, for example,\n // \"/a/b\" matches the start of \"/*/b/*/d\"\n // Partial means, if you run out of file before you run\n // out of pattern, then that's fine, as long as all\n // the parts match.\n matchOne(file, pattern, partial = false) {\n const options = this.options;\n if (this.isWindows) {\n const fileDrive = typeof file[0] === \"string\" && /^[a-z]:$/i.test(file[0]);\n const fileUNC = !fileDrive && file[0] === \"\" && file[1] === \"\" && file[2] === \"?\" && /^[a-z]:$/i.test(file[3]);\n const patternDrive = typeof pattern[0] === \"string\" && /^[a-z]:$/i.test(pattern[0]);\n const patternUNC = !patternDrive && pattern[0] === \"\" && pattern[1] === \"\" && pattern[2] === \"?\" && typeof pattern[3] === \"string\" && /^[a-z]:$/i.test(pattern[3]);\n const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;\n const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;\n if (typeof fdi === \"number\" && typeof pdi === \"number\") {\n const [fd, pd] = [file[fdi], pattern[pdi]];\n if (fd.toLowerCase() === pd.toLowerCase()) {\n pattern[pdi] = fd;\n if (pdi > fdi) {\n pattern = pattern.slice(pdi);\n } else if (fdi > pdi) {\n file = file.slice(fdi);\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n file = this.levelTwoFileOptimize(file);\n }\n this.debug(\"matchOne\", this, { file, pattern });\n this.debug(\"matchOne\", file.length, pattern.length);\n for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n this.debug(\"matchOne loop\");\n var p = pattern[pi];\n var f = file[fi];\n this.debug(pattern, p, f);\n if (p === false) {\n return false;\n }\n if (p === GLOBSTAR) {\n this.debug(\"GLOBSTAR\", [pattern, p, f]);\n var fr = fi;\n var pr = pi + 1;\n if (pr === pl) {\n this.debug(\"** at the end\");\n for (; fi < fl; fi++) {\n if (file[fi] === \".\" || file[fi] === \"..\" || !options.dot && file[fi].charAt(0) === \".\")\n return false;\n }\n return true;\n }\n while (fr < fl) {\n var swallowee = file[fr];\n this.debug(\"\\nglobstar while\", file, fr, pattern, pr, swallowee);\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug(\"globstar found match!\", fr, fl, swallowee);\n return true;\n } else {\n if (swallowee === \".\" || swallowee === \"..\" || !options.dot && swallowee.charAt(0) === \".\") {\n this.debug(\"dot detected!\", file, fr, pattern, pr);\n break;\n }\n this.debug(\"globstar swallow a segment, and continue\");\n fr++;\n }\n }\n if (partial) {\n this.debug(\"\\n>>> no match, partial?\", file, fr, pattern, pr);\n if (fr === fl) {\n return true;\n }\n }\n return false;\n }\n let hit;\n if (typeof p === \"string\") {\n hit = f === p;\n this.debug(\"string match\", p, f, hit);\n } else {\n hit = p.test(f);\n this.debug(\"pattern match\", p, f, hit);\n }\n if (!hit)\n return false;\n }\n if (fi === fl && pi === pl) {\n return true;\n } else if (fi === fl) {\n return partial;\n } else if (pi === pl) {\n return fi === fl - 1 && file[fi] === \"\";\n } else {\n throw new Error(\"wtf?\");\n }\n }\n braceExpand() {\n return braceExpand(this.pattern, this.options);\n }\n parse(pattern) {\n assertValidPattern(pattern);\n const options = this.options;\n if (pattern === \"**\")\n return GLOBSTAR;\n if (pattern === \"\")\n return \"\";\n let m;\n let fastTest = null;\n if (m = pattern.match(starRE)) {\n fastTest = options.dot ? starTestDot : starTest;\n } else if (m = pattern.match(starDotExtRE)) {\n fastTest = (options.nocase ? options.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options.dot ? starDotExtTestDot : starDotExtTest)(m[1]);\n } else if (m = pattern.match(qmarksRE)) {\n fastTest = (options.nocase ? options.dot ? qmarksTestNocaseDot : qmarksTestNocase : options.dot ? qmarksTestDot : qmarksTest)(m);\n } else if (m = pattern.match(starDotStarRE)) {\n fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n } else if (m = pattern.match(dotStarRE)) {\n fastTest = dotStarTest;\n }\n const re = AST.fromGlob(pattern, this.options).toMMPattern();\n if (fastTest && typeof re === \"object\") {\n Reflect.defineProperty(re, \"test\", { value: fastTest });\n }\n return re;\n }\n makeRe() {\n if (this.regexp || this.regexp === false)\n return this.regexp;\n const set = this.set;\n if (!set.length) {\n this.regexp = false;\n return this.regexp;\n }\n const options = this.options;\n const twoStar = options.noglobstar ? star2 : options.dot ? twoStarDot : twoStarNoDot;\n const flags = new Set(options.nocase ? [\"i\"] : []);\n let re = set.map((pattern) => {\n const pp = pattern.map((p) => {\n if (p instanceof RegExp) {\n for (const f of p.flags.split(\"\"))\n flags.add(f);\n }\n return typeof p === \"string\" ? regExpEscape2(p) : p === GLOBSTAR ? GLOBSTAR : p._src;\n });\n pp.forEach((p, i2) => {\n const next = pp[i2 + 1];\n const prev = pp[i2 - 1];\n if (p !== GLOBSTAR || prev === GLOBSTAR) {\n return;\n }\n if (prev === void 0) {\n if (next !== void 0 && next !== GLOBSTAR) {\n pp[i2 + 1] = \"(?:\\\\/|\" + twoStar + \"\\\\/)?\" + next;\n } else {\n pp[i2] = twoStar;\n }\n } else if (next === void 0) {\n pp[i2 - 1] = prev + \"(?:\\\\/|\" + twoStar + \")?\";\n } else if (next !== GLOBSTAR) {\n pp[i2 - 1] = prev + \"(?:\\\\/|\\\\/\" + twoStar + \"\\\\/)\" + next;\n pp[i2 + 1] = GLOBSTAR;\n }\n });\n return pp.filter((p) => p !== GLOBSTAR).join(\"/\");\n }).join(\"|\");\n const [open, close] = set.length > 1 ? [\"(?:\", \")\"] : [\"\", \"\"];\n re = \"^\" + open + re + close + \"$\";\n if (this.negate)\n re = \"^(?!\" + re + \").+$\";\n try {\n this.regexp = new RegExp(re, [...flags].join(\"\"));\n } catch (ex) {\n this.regexp = false;\n }\n return this.regexp;\n }\n slashSplit(p) {\n if (this.preserveMultipleSlashes) {\n return p.split(\"/\");\n } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n return [\"\", ...p.split(/\\/+/)];\n } else {\n return p.split(/\\/+/);\n }\n }\n match(f, partial = this.partial) {\n this.debug(\"match\", f, this.pattern);\n if (this.comment) {\n return false;\n }\n if (this.empty) {\n return f === \"\";\n }\n if (f === \"/\" && partial) {\n return true;\n }\n const options = this.options;\n if (this.isWindows) {\n f = f.split(\"\\\\\").join(\"/\");\n }\n const ff = this.slashSplit(f);\n this.debug(this.pattern, \"split\", ff);\n const set = this.set;\n this.debug(this.pattern, \"set\", set);\n let filename = ff[ff.length - 1];\n if (!filename) {\n for (let i2 = ff.length - 2; !filename && i2 >= 0; i2--) {\n filename = ff[i2];\n }\n }\n for (let i2 = 0; i2 < set.length; i2++) {\n const pattern = set[i2];\n let file = ff;\n if (options.matchBase && pattern.length === 1) {\n file = [filename];\n }\n const hit = this.matchOne(file, pattern, partial);\n if (hit) {\n if (options.flipNegate) {\n return true;\n }\n return !this.negate;\n }\n }\n if (options.flipNegate) {\n return false;\n }\n return this.negate;\n }\n static defaults(def) {\n return minimatch.defaults(def).Minimatch;\n }\n};\nminimatch.AST = AST;\nminimatch.Minimatch = Minimatch;\nminimatch.escape = escape;\nminimatch.unescape = unescape;\n\n// src/utils/query-nonce-meta-tag-content.ts\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) == null ? void 0 : _b.getAttribute(\"content\")) != null ? _c : void 0;\n}\n\n// src/utils/regular-expression.ts\nvar escapeRegExpSpecialCharacters = (text) => {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n// src/utils/result.ts\nvar result_exports = {};\n__export(result_exports, {\n err: () => err,\n map: () => map,\n ok: () => ok,\n unwrap: () => unwrap,\n unwrapErr: () => unwrapErr\n});\nvar ok = (value) => ({\n isOk: true,\n isErr: false,\n value\n});\nvar err = (value) => ({\n isOk: false,\n isErr: true,\n value\n});\nfunction map(result, fn) {\n if (result.isOk) {\n const val = fn(result.value);\n if (val instanceof Promise) {\n return val.then((newVal) => ok(newVal));\n } else {\n return ok(val);\n }\n }\n if (result.isErr) {\n const value = result.value;\n return err(value);\n }\n throw \"should never get here\";\n}\nvar unwrap = (result) => {\n if (result.isOk) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar unwrapErr = (result) => {\n if (result.isErr) {\n return result.value;\n } else {\n throw result.value;\n }\n};\n\n// src/utils/style.ts\nfunction createStyleSheetIfNeededAndSupported(styles2) {\n return void 0;\n}\n\n// src/utils/shadow-root.ts\nvar globalStyleSheet;\nfunction createShadowRoot(cmpMeta) {\n var _a;\n const opts = { mode: \"open\" };\n const shadowRoot = this.attachShadow(opts);\n if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;\n if (globalStyleSheet) {\n if (supportsMutableAdoptedStyleSheets) {\n shadowRoot.adoptedStyleSheets.push(globalStyleSheet);\n } else {\n shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];\n }\n }\n}\nvar createTime = (fnName, tagName = \"\") => {\n {\n return () => {\n return;\n };\n }\n};\nvar uniqueTime = (key, measureText) => {\n {\n return () => {\n return;\n };\n }\n};\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar registerStyle = (scopeId2, cssText, allowCS) => {\n let style = styles.get(scopeId2);\n if (supportsConstructableStylesheets && allowCS) {\n style = style || new CSSStyleSheet();\n if (typeof style === \"string\") {\n style = cssText;\n } else {\n style.replaceSync(cssText);\n }\n } else {\n style = cssText;\n }\n styles.set(scopeId2, style);\n};\nvar addStyle = (styleContainerNode, cmpMeta, mode) => {\n var _a, _b, _c;\n const scopeId2 = getScopeId(cmpMeta);\n const style = styles.get(scopeId2);\n if (!win.document) {\n return scopeId2;\n }\n styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : win.document;\n if (style) {\n if (typeof style === \"string\") {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());\n }\n if (!appliedStyles.has(scopeId2)) {\n styleElm = win.document.createElement(\"style\");\n styleElm.innerHTML = style;\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);\n if (nonce != null) {\n styleElm.setAttribute(\"nonce\", nonce);\n }\n if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {\n if (styleContainerNode.nodeName === \"HEAD\") {\n const preconnectLinks = styleContainerNode.querySelectorAll(\"link[rel=preconnect]\");\n const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector(\"style\");\n styleContainerNode.insertBefore(\n styleElm,\n (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null\n );\n } else if (\"host\" in styleContainerNode) {\n if (supportsConstructableStylesheets) {\n const currentWindow = (_b = styleContainerNode.defaultView) != null ? _b : styleContainerNode.ownerDocument.defaultView;\n const stylesheet = new currentWindow.CSSStyleSheet();\n stylesheet.replaceSync(style);\n if (supportsMutableAdoptedStyleSheets) {\n styleContainerNode.adoptedStyleSheets.unshift(stylesheet);\n } else {\n styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];\n }\n } else {\n const existingStyleContainer = styleContainerNode.querySelector(\"style\");\n if (existingStyleContainer) {\n existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;\n } else {\n styleContainerNode.prepend(styleElm);\n }\n }\n } else {\n styleContainerNode.append(styleElm);\n }\n }\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n styleContainerNode.insertBefore(styleElm, null);\n }\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n styleElm.innerHTML += SLOT_FB_CSS;\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId2);\n }\n }\n } else {\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());\n }\n if (!appliedStyles.has(scopeId2)) {\n const currentWindow = (_c = styleContainerNode.defaultView) != null ? _c : styleContainerNode.ownerDocument.defaultView;\n let stylesheet;\n if (style.constructor === currentWindow.CSSStyleSheet) {\n stylesheet = style;\n } else {\n stylesheet = new currentWindow.CSSStyleSheet();\n for (let i2 = 0; i2 < style.cssRules.length; i2++) {\n stylesheet.insertRule(style.cssRules[i2].cssText, i2);\n }\n }\n if (supportsMutableAdoptedStyleSheets) {\n styleContainerNode.adoptedStyleSheets.push(stylesheet);\n } else {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, stylesheet];\n }\n appliedStyles.add(scopeId2);\n }\n }\n }\n return scopeId2;\n};\nvar attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime(\"attachStyles\", cmpMeta.$tagName$);\n const scopeId2 = addStyle(\n elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),\n cmpMeta);\n if (flags & 10 /* needsScopedEncapsulation */) {\n elm[\"s-sc\"] = scopeId2;\n elm.classList.add(scopeId2 + \"-h\");\n }\n endAttachStyles();\n};\nvar getScopeId = (cmp, mode) => \"sc-\" + (cmp.$tagName$);\nvar h = (nodeName, vnodeData, ...children) => {\n if (typeof nodeName === \"string\") {\n nodeName = transformTag(nodeName);\n }\n let child = null;\n let key = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i2 = 0; i2 < c.length; i2++) {\n child = c[i2];\n if (Array.isArray(child)) {\n walk(child);\n } else if (child != null && typeof child !== \"boolean\") {\n if (simple = typeof nodeName !== \"function\" && !isComplexType(child)) {\n child = String(child);\n }\n if (simple && lastSimple) {\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n } else {\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class = typeof classData !== \"object\" ? classData : Object.keys(classData).filter((k) => classData[k]).join(\" \");\n }\n }\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n return vnode;\n};\nvar newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = (node) => node && node.$tag$ === Host;\nvar createSupportsRuleRe = (selector) => {\n const safeSelector2 = escapeRegExpSpecialCharacters(selector);\n return new RegExp(\n // First capture group: match any context before the selector that's not inside @supports selector()\n // Using negative lookahead to avoid matching inside @supports selector(...) condition\n `(^|[^@]|@(?!supports\\\\s+selector\\\\s*\\\\([^{]*?${safeSelector2}))(${safeSelector2}\\\\b)`,\n \"g\"\n );\n};\ncreateSupportsRuleRe(\"::slotted\");\ncreateSupportsRuleRe(\":host\");\ncreateSupportsRuleRe(\":host-context\");\nvar parsePropertyValue = (propValue, propType, isFormAssociated) => {\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n }\n if (propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\nvar emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {\n if (oldValue === newValue) {\n return;\n }\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n {\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n } else if (memberName === \"style\") {\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes(\"-\")) {\n elm.style.removeProperty(prop);\n } else {\n elm.style[prop] = \"\";\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (memberName === \"key\") ; else if (memberName === \"ref\") {\n if (newValue) {\n newValue(elm);\n }\n } else if ((!isProp ) && memberName[0] === \"o\" && memberName[1] === \"n\") {\n if (memberName[2] === \"-\") {\n memberName = memberName.slice(3);\n } else if (isMemberInElement(win, ln)) {\n memberName = ln.slice(2);\n } else {\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue || newValue) {\n const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);\n memberName = memberName.replace(CAPTURE_EVENT_REGEX, \"\");\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, capture);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, capture);\n }\n }\n } else {\n const isComplex = isComplexType(newValue);\n if ((isProp || isComplex && newValue !== null) && !isSvg) {\n try {\n if (!elm.tagName.includes(\"-\")) {\n const n = newValue == null ? \"\" : newValue;\n if (memberName === \"list\") {\n isProp = false;\n } else if (oldValue == null || elm[memberName] != n) {\n if (typeof elm.__lookupSetter__(memberName) === \"function\") {\n elm[memberName] = n;\n } else {\n elm.setAttribute(memberName, n);\n }\n }\n } else if (elm[memberName] !== newValue) {\n elm[memberName] = newValue;\n }\n } catch (e) {\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex && elm.nodeType === 1 /* ElementNode */) {\n newValue = newValue === true ? \"\" : newValue;\n {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = (value) => {\n if (typeof value === \"object\" && value && \"baseVal\" in value) {\n value = value.baseVal;\n }\n if (!value || typeof value !== \"string\") {\n return [];\n }\n return value.split(parseClassListRegex);\n};\nvar CAPTURE_EVENT_SUFFIX = \"Capture\";\nvar CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + \"$\");\n\n// src/runtime/vdom/update-element.ts\nvar updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {\n const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};\n const newVnodeAttrs = newVnode.$attrs$ || {};\n {\n for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n void 0,\n isSvgMode2,\n newVnode.$flags$);\n }\n }\n }\n for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n newVnodeAttrs[memberName],\n isSvgMode2,\n newVnode.$flags$);\n }\n};\nfunction sortedAttrNames(attrNames) {\n return attrNames.includes(\"ref\") ? (\n // we need to sort these to ensure that `'ref'` is the last attr\n [...attrNames.filter((attr) => attr !== \"ref\"), \"ref\"]\n ) : (\n // no need to sort, return the original array\n attrNames\n );\n}\nvar hostTagName;\nvar isSvgMode = false;\nvar createElm = (oldParentVNode, newParentVNode, childIndex) => {\n const newVNode2 = newParentVNode.$children$[childIndex];\n let i2 = 0;\n let elm;\n let childNode;\n {\n if (!isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n if (!win.document) {\n throw new Error(\n \"You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.\"\n );\n }\n elm = newVNode2.$elm$ = win.document.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n newVNode2.$tag$\n ) ;\n if (isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n {\n updateElement(null, newVNode2, isSvgMode);\n }\n if (newVNode2.$children$) {\n const appendTarget = newVNode2.$tag$ === \"template\" ? elm.content : elm;\n for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {\n childNode = createElm(oldParentVNode, newVNode2, i2);\n if (childNode) {\n appendTarget.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode2.$tag$ === \"svg\") {\n isSvgMode = false;\n } else if (elm.tagName === \"foreignObject\") {\n isSvgMode = true;\n }\n }\n }\n elm[\"s-hn\"] = hostTagName;\n return elm;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = parentElm;\n let childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n if (parentVNode.$tag$ === \"template\") {\n containerElm = containerElm.content;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n insertBefore(containerElm, childNode, before);\n }\n }\n }\n};\nvar removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n nullifyVNodeRefs(vnode);\n if (elm) {\n elm.remove();\n }\n }\n }\n};\nvar updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i2 = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n const containerElm = newVNode2.$tag$ === \"template\" ? parentElm.content : parentElm;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx];\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {\n patch(oldStartVnode, newStartVnode, isInitialRender);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {\n patch(oldEndVnode, newEndVnode, isInitialRender);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {\n patch(oldStartVnode, newEndVnode, isInitialRender);\n insertBefore(containerElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {\n patch(oldEndVnode, newStartVnode, isInitialRender);\n insertBefore(containerElm, oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n idxInOld = -1;\n {\n for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {\n if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {\n idxInOld = i2;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);\n } else {\n patch(elmToMove, newStartVnode, isInitialRender);\n oldCh[idxInOld] = void 0;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n } else {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n {\n insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(\n parentElm,\n newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,\n newVNode2,\n newCh,\n newStartIdx,\n newEndIdx\n );\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (!isInitialRender) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {\n leftVNode.$key$ = rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nvar patch = (oldVNode, newVNode2, isInitialRender = false) => {\n const elm = newVNode2.$elm$ = oldVNode.$elm$;\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode2.$children$;\n const tag = newVNode2.$tag$;\n {\n {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n {\n updateElement(oldVNode, newVNode2, isSvgMode);\n }\n if (oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);\n } else if (\n // don't do this on initial render as it can cause non-hydrated content to be removed\n !isInitialRender && BUILD.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n } else ;\n if (isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n }\n};\nvar nullifyVNodeRefs = (vNode) => {\n {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);\n }\n};\nvar insertBefore = (parent, newNode, reference) => {\n {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n const hostElm = hostRef.$hostElement$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const isHostElement = isHost(renderFnResults);\n const rootVnode = isHostElement ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n if (hostElm.hasAttribute(key) && ![\"key\", \"ref\", \"style\", \"class\"].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;\n patch(oldVNode, rootVnode, isInitialLoad);\n};\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent[\"s-p\"]) {\n const index = ancestorComponent[\"s-p\"].push(\n new Promise(\n (r) => hostRef.$onRenderResolve$ = () => {\n ancestorComponent[\"s-p\"].splice(index - 1, 1);\n r();\n }\n )\n );\n }\n};\nvar scheduleUpdate = (hostRef, isInitialLoad) => {\n {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n if (isInitialLoad) {\n queueMicrotask(() => {\n dispatch();\n });\n return;\n }\n return writeTask(dispatch) ;\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = hostRef.$lazyInstance$ ;\n if (!instance) {\n throw new Error(\n `Can't render component <${elm.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \\`externalRuntime: true\\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`\n );\n }\n let maybePromise;\n if (isInitialLoad) {\n {\n if (hostRef.$fetchedCbList$.length) {\n hostRef.$fetchedCbList$.forEach((cb) => cb(elm));\n }\n }\n maybePromise = safeCall(instance, \"componentWillLoad\", void 0, elm);\n } else {\n maybePromise = safeCall(instance, \"componentWillUpdate\", void 0, elm);\n }\n maybePromise = enqueue(maybePromise, () => safeCall(instance, \"componentWillRender\", void 0, elm));\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nvar enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn).catch((err2) => {\n console.error(err2);\n fn();\n}) : fn();\nvar isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === \"function\";\nvar updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime(\"update\", hostRef.$cmpMeta$.$tagName$);\n const rc = elm[\"s-rc\"];\n if (isInitialLoad) {\n attachStyles(hostRef);\n }\n const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n {\n const childrenPromises = (_a = elm[\"s-p\"]) != null ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n } else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= -17 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n {\n {\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = hostRef.$lazyInstance$ ;\n const ancestorComponent = hostRef.$ancestorComponent$;\n safeCall(instance, \"componentDidRender\", void 0, elm);\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n addHydratedFlag(elm);\n }\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n } else {\n safeCall(instance, \"componentDidUpdate\", void 0, elm);\n endPostUpdate();\n }\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = void 0;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= -517;\n }\n};\nvar appDidLoad = (who) => {\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n};\nvar safeCall = (instance, method, arg, elm) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n } catch (e) {\n consoleError(e, elm);\n }\n }\n return void 0;\n};\nvar addHydratedFlag = (elm) => {\n var _a;\n return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : \"hydrated\") ;\n};\n\n// src/runtime/set-value.ts\nvar getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nvar setValue = (ref, propName, newVal, cmpMeta) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return;\n }\n if (!hostRef) {\n throw new Error(\n `Couldn't find host element for \"${cmpMeta.$tagName$}\" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`\n );\n }\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = hostRef.$lazyInstance$ ;\n newVal = parsePropertyValue(\n newVal,\n cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n if (instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n scheduleUpdate(hostRef, false);\n }\n }\n};\n\n// src/runtime/proxy-component.ts\nvar proxyComponent = (Cstr, cmpMeta, flags) => {\n var _a, _b;\n const prototype = Cstr.prototype;\n if (cmpMeta.$members$ || BUILD.propChangeCallback) {\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {\n const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};\n if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;\n if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;\n if (flags & 1 /* isElementConstructor */ || !origGetter) {\n Object.defineProperty(prototype, memberName, {\n get() {\n {\n if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {\n return getValue(this, memberName);\n }\n const ref = getHostRef(this);\n const instance = ref ? ref.$lazyInstance$ : prototype;\n if (!instance) return;\n return instance[memberName];\n }\n },\n configurable: true,\n enumerable: true\n });\n }\n Object.defineProperty(prototype, memberName, {\n set(newValue) {\n const ref = getHostRef(this);\n if (!ref) {\n return;\n }\n if (origSetter) {\n const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n if (typeof currentValue === \"undefined\" && ref.$instanceValues$.get(memberName)) {\n newValue = ref.$instanceValues$.get(memberName);\n }\n origSetter.apply(this, [\n parsePropertyValue(\n newValue,\n memberFlags)\n ]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n {\n if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {\n setValue(this, memberName, newValue, cmpMeta);\n if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {\n ref.$fetchedCbList$.push(() => {\n if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {\n ref.$lazyInstance$[memberName] = newValue;\n }\n });\n }\n return;\n }\n const setterSetVal = () => {\n const currentValue = ref.$lazyInstance$[memberName];\n if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n ref.$lazyInstance$[memberName] = parsePropertyValue(\n newValue,\n memberFlags);\n setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);\n };\n if (ref.$lazyInstance$) {\n setterSetVal();\n } else {\n ref.$fetchedCbList$.push(() => {\n setterSetVal();\n });\n }\n }\n }\n });\n }\n });\n if ((flags & 1 /* isElementConstructor */)) {\n const attrNameToPropName = /* @__PURE__ */ new Map();\n prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {\n plt.jmp(() => {\n var _a2;\n const propName = attrNameToPropName.get(attrName);\n const hostRef = getHostRef(this);\n if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {\n newValue = this[propName];\n delete this[propName];\n }\n if (prototype.hasOwnProperty(propName) && typeof this[propName] === \"number\" && // cast type to number to avoid TS compiler issues\n this[propName] == newValue) {\n return;\n } else if (propName == null) {\n const flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && newValue !== oldValue) {\n const instance = hostRef.$lazyInstance$ ;\n const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];\n entry == null ? void 0 : entry.forEach((watcher) => {\n const [[watchMethodName, watcherFlags]] = Object.entries(watcher);\n if (instance[watchMethodName] != null && (flags2 & 128 /* isWatchReady */ || watcherFlags & 1 /* Immediate */)) {\n instance[watchMethodName].call(instance, newValue, oldValue, attrName);\n }\n });\n }\n return;\n }\n const propFlags = members.find(([m]) => m === propName);\n if (propFlags && propFlags[1][0] & 4 /* Boolean */) {\n newValue = newValue === null || newValue === \"false\" ? false : true;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\n if (newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {\n this[propName] = newValue;\n }\n });\n };\n Cstr.observedAttributes = Array.from(\n /* @__PURE__ */ new Set([\n ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),\n ...members.filter(([_, m]) => m[0] & 31 /* HasAttribute */).map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n return attrName;\n })\n ])\n );\n }\n }\n return Cstr;\n};\n\n// src/runtime/initialize-component.ts\nvar initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {\n let Cstr;\n if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n const bundleId = cmpMeta.$lazyBundleId$;\n if (bundleId) {\n const CstrImport = loadModule(cmpMeta, hostRef);\n if (CstrImport && \"then\" in CstrImport) {\n const endLoad = uniqueTime();\n Cstr = await CstrImport;\n endLoad();\n } else {\n Cstr = CstrImport;\n }\n if (!Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (!Cstr.isProxied) {\n proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime(\"createInstance\", cmpMeta.$tagName$);\n {\n hostRef.$flags$ |= 8 /* isConstructingInstance */;\n }\n try {\n new Cstr(hostRef);\n } catch (e) {\n consoleError(e, elm);\n }\n {\n hostRef.$flags$ &= -9 /* isConstructingInstance */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else {\n Cstr = elm.constructor;\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n if (Cstr && Cstr.style) {\n let style;\n if (typeof Cstr.style === \"string\") {\n style = Cstr.style;\n }\n const scopeId2 = getScopeId(cmpMeta);\n if (!styles.has(scopeId2) || BUILD.hotModuleReplacement) {\n const endRegisterStyles = createTime(\"registerStyles\", cmpMeta.$tagName$);\n registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n {\n safeCall(instance, \"connectedCallback\", void 0, elm);\n }\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (!hostRef) {\n return;\n }\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (ancestorComponent[\"s-p\"]) {\n attachToAncestor(hostRef, hostRef.$ancestorComponent$ = ancestorComponent);\n break;\n }\n }\n }\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && memberName in elm && elm[memberName] !== Object.prototype[memberName]) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n } else {\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));\n }\n }\n endConnected();\n }\n};\nvar disconnectInstance = (instance, elm) => {\n {\n safeCall(instance, \"disconnectedCallback\", void 0, elm || instance);\n }\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n disconnectInstance(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$, elm));\n }\n }\n if (rootAppliedStyles.has(elm)) {\n rootAppliedStyles.delete(elm);\n }\n if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {\n rootAppliedStyles.delete(elm.shadowRoot);\n }\n};\n\n// src/runtime/bootstrap-lazy.ts\nvar bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n if (!win.document) {\n console.warn(\"Stencil: No document found. Skipping bootstrapping lazy components.\");\n return;\n }\n const endBootstrap = createTime();\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements2 = win.customElements;\n const head = win.document.head;\n const metaCharset = /* @__PURE__ */ head.querySelector(\"meta[charset]\");\n const dataStyles = /* @__PURE__ */ win.document.createElement(\"style\");\n const deferredConnectedCallbacks = [];\n let appLoadFallback;\n let isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || \"./\", win.document.baseURI).href;\n let hasSlotRelocation = false;\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3]\n };\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n hasSlotRelocation = true;\n }\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n const tagName = transformTag(cmpMeta.$tagName$);\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n super(self);\n this.hasRegisteredEventListeners = false;\n self = this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n {\n if (!self.shadowRoot) {\n createShadowRoot.call(self, cmpMeta);\n } else {\n if (self.shadowRoot.mode !== \"open\") {\n throw new Error(\n `Unable to re-use existing shadow root for ${cmpMeta.$tagName$}! Mode is set to ${self.shadowRoot.mode} but Stencil only supports open shadow roots.`\n );\n }\n }\n }\n }\n }\n connectedCallback() {\n const hostRef = getHostRef(this);\n if (!hostRef) {\n return;\n }\n if (!this.hasRegisteredEventListeners) {\n this.hasRegisteredEventListeners = true;\n }\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n deferredConnectedCallbacks.push(this);\n } else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n plt.raf(() => {\n var _a3;\n const hostRef = getHostRef(this);\n if (!hostRef) {\n return;\n }\n const i2 = deferredConnectedCallbacks.findIndex((host) => host === this);\n if (i2 > -1) {\n deferredConnectedCallbacks.splice(i2, 1);\n }\n if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$.$elm$;\n }\n });\n }\n componentOnReady() {\n var _a3;\n return (_a3 = getHostRef(this)) == null ? void 0 : _a3.$onReadyPromise$;\n }\n };\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements2.get(tagName)) {\n cmpTags.push(tagName);\n customElements2.define(\n tagName,\n proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */)\n );\n }\n });\n });\n if (cmpTags.length > 0) {\n if (hasSlotRelocation) {\n dataStyles.textContent += SLOT_FB_CSS;\n }\n {\n dataStyles.textContent += cmpTags.sort() + HYDRATED_CSS;\n }\n if (dataStyles.innerHTML.length) {\n dataStyles.setAttribute(\"data-styles\", \"\");\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);\n if (nonce != null) {\n dataStyles.setAttribute(\"nonce\", nonce);\n }\n head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n }\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n } else {\n {\n plt.jmp(() => appLoadFallback = setTimeout(appDidLoad, 30));\n }\n }\n endBootstrap();\n};\n\n// src/runtime/nonce.ts\nvar setNonce = (nonce) => plt.$nonce$ = nonce;\nfunction transformTag(tag) {\n return tag;\n}\n\nexport { bootstrapLazy as b, h, promiseResolve as p, registerInstance as r, setNonce as s };\n","const globalScripts = () => {};\n\nexport { globalScripts as g };\n","import { b as bootstrapLazy } from './index-Ba2Ls6bG.js';\nexport { s as setNonce } from './index-Ba2Ls6bG.js';\nimport { g as globalScripts } from './app-globals-DQuL1Twl.js';\n\nconst defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([[\"ocr-file-uploader\",[[1,\"ocr-file-uploader\",{\"batch\":[4],\"callback\":[16],\"jsonSchema\":[1,\"json-schema\"]}]]]], options);\n};\n\nexport { defineCustomElements };\n","(function(){if(\"undefined\"!==typeof window&&void 0!==window.Reflect&&void 0!==window.customElements){var a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)};HTMLElement.prototype=a.prototype;HTMLElement.prototype.constructor=HTMLElement;Object.setPrototypeOf(HTMLElement,a)}})();\nexport * from '../dist/esm/loader.js';",":host {\r\n display: block;\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n}\r\n\r\n.row-audio-area {\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n\r\n.voice-recorder-container {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 1rem;\r\n padding: 1rem;\r\n border: 1px solid #e5e7eb;\r\n border-radius: 0.5rem;\r\n background: #ffffff;\r\n max-width: 100px;\r\n margin: 0 auto;\r\n}\r\n\r\n.voice-recorder-container-debug {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 1rem;\r\n padding: 1rem;\r\n border: 1px solid #e5e7eb;\r\n border-radius: 0.5rem;\r\n background: #ffffff;\r\n max-width: 800px;\r\n margin: 0 auto;\r\n}\r\n\r\n.upload-record-container {\r\n display: inline-block;\r\n cursor: pointer;\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n.upload-record-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n user-select: none;\r\n}\r\n\r\n.upload-record-button svg {\r\n width: 50px;\r\n height: 50px;\r\n stroke: #4444ee;\r\n}\r\n\r\n.upload-record-button svg path {\r\n fill: #4444ee;\r\n}\r\n\r\n.upload-record-button:hover svg {\r\n transform: scale(1.05);\r\n stroke: #4444ee;\r\n}\r\n\r\n.record-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 50px;\r\n height: 50px;\r\n border: none;\r\n border-radius: 50%;\r\n background: #ee4444;\r\n color: white;\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.record-button:hover:not(:disabled) {\r\n background: #dd3333;\r\n transform: scale(1.05);\r\n}\r\n\r\n.record-button:disabled {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n}\r\n\r\n.record-button.recording {\r\n background: #dd3333;\r\n animation: pulse 1.5s infinite;\r\n}\r\n\r\n.record-button.processing {\r\n background: #3b82f6;\r\n}\r\n\r\n@keyframes pulse {\r\n 0% {\r\n box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);\r\n }\r\n 70% {\r\n box-shadow: 0 0 0 10px rgba(239, 68, 68, 0);\r\n }\r\n 100% {\r\n box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);\r\n }\r\n}\r\n\r\n.record-icon {\r\n width: 24px;\r\n height: 24px;\r\n fill: currentColor;\r\n}\r\n\r\n.status-text {\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n text-align: center;\r\n min-height: 1.25rem;\r\n}\r\n\r\n.status-text.error {\r\n color: #ee4444;\r\n}\r\n\r\n.status-text.success {\r\n color: #10b981;\r\n}\r\n\r\n.debug-panel {\r\n width: 100%;\r\n margin-top: 1rem;\r\n padding: 1rem;\r\n background: #f9fafb;\r\n border: 1px solid #e5e7eb;\r\n border-radius: 0.375rem;\r\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\r\n font-size: 0.75rem;\r\n}\r\n\r\n.debug-title {\r\n font-weight: 600;\r\n margin-bottom: 0.5rem;\r\n color: #374151;\r\n}\r\n\r\n.debug-content {\r\n white-space: pre-wrap;\r\n word-break: break-word;\r\n color: #6b7280;\r\n max-height: 200px;\r\n overflow-y: auto;\r\n}\r\n\r\n.permissions-warning {\r\n padding: 0.75rem;\r\n background: #fef3c7;\r\n border: 1px solid #f59e0b;\r\n border-radius: 0.375rem;\r\n color: #92400e;\r\n font-size: 0.875rem;\r\n text-align: center;\r\n}\r\n\r\n.form-preview {\r\n width: 100%;\r\n margin-top: 1rem;\r\n padding: 1rem;\r\n background: #f8fafc;\r\n border: 1px solid #e2e8f0;\r\n border-radius: 0.375rem;\r\n}\r\n\r\n.form-preview-title {\r\n font-weight: 600;\r\n margin-bottom: 0.5rem;\r\n color: #1e293b;\r\n}\r\n\r\n.form-field {\r\n margin-bottom: 0.5rem;\r\n font-size: 0.875rem;\r\n}\r\n\r\n.field-name {\r\n font-weight: 500;\r\n color: #475569;\r\n}\r\n\r\n.field-value {\r\n color: #64748b;\r\n margin-left: 0.5rem;\r\n}\r\n\r\n.field-value.filled {\r\n color: #059669;\r\n font-weight: 500;\r\n}\r\n\r\n.voice-filled-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 1rem;\r\n margin-top: 1rem;\r\n}\r\n\r\n.form-group {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.25rem;\r\n}\r\n\r\n.form-label {\r\n font-weight: 500;\r\n color: #374151;\r\n font-size: 0.875rem;\r\n}\r\n\r\n.required {\r\n color: #ee4444;\r\n margin-left: 0.125rem;\r\n}\r\n\r\n.form-input {\r\n padding: 0.5rem;\r\n border: 1px solid #d1d5db;\r\n border-radius: 0.375rem;\r\n font-size: 0.875rem;\r\n transition: border-color 0.2s ease;\r\n}\r\n\r\n.form-input:focus {\r\n outline: none;\r\n border-color: #3b82f6;\r\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\r\n}\r\n\r\n.form-checkbox {\r\n width: auto;\r\n padding: 0;\r\n margin: 0;\r\n}\r\n\r\nselect.form-input {\r\n background-color: white;\r\n cursor: pointer;\r\n}\r\n\r\ninput[type=\"date\"].form-input {\r\n cursor: pointer;\r\n}\r\n\r\n.readonly-select {\r\n background: #f9fafb;\r\n border: 1px solid #d1d5db;\r\n border-radius: 0.375rem;\r\n padding: 0.5rem;\r\n}\r\n\r\n.select-placeholder {\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.select-options-list {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0.25rem;\r\n}\r\n\r\n.select-option {\r\n background: #e5e7eb;\r\n padding: 0.25rem 0.5rem;\r\n border-radius: 0.25rem;\r\n font-size: 0.875rem;\r\n color: #374151;\r\n}\r\n\r\n.multiselect-container {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n padding: 0.5rem;\r\n border: 1px solid #d1d5db;\r\n border-radius: 0.375rem;\r\n background: white;\r\n}\r\n\r\n.multiselect-option {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.5rem;\r\n border-radius: 0.25rem;\r\n cursor: pointer;\r\n transition: background 0.2s ease;\r\n}\r\n\r\n.multiselect-option:hover {\r\n background: #f3f4f6;\r\n}\r\n\r\n.multiselect-option input[type=\"checkbox\"] {\r\n width: 18px;\r\n height: 18px;\r\n cursor: pointer;\r\n}\r\n\r\n.multiselect-option input[type=\"checkbox\"]:checked + .multiselect-label {\r\n font-weight: 600;\r\n color: #059669;\r\n}\r\n\r\n.multiselect-label {\r\n font-size: 0.875rem;\r\n color: #374151;\r\n user-select: none;\r\n}","import { Component, Prop, Event, EventEmitter, State, h, Watch, Method } from '@stencil/core';\r\nimport { FormSchema, VoiceFormRecorderResult, FilledFormData, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended } from '../../types/form-schema.types';\r\nimport { ServiceProviderConfig } from '../../types/service-providers.types';\r\nimport { AudioRecorderService } from '../../services/audio-recorder.service';\r\nimport { SpeechToTextServiceFactory } from '../../services/speech-to-text.service';\r\nimport { LLMServiceFactory } from '../../services/llm.service';\r\nimport { SchemaConverter } from '../../utils/schema-converter';\r\nimport { defineCustomElements } from 'ocr-file-uploader/loader';\r\n\r\n// Initialize OCR\r\ndefineCustomElements();\r\n\r\n@Component({\r\n tag: 'voice-input-module',\r\n styleUrl: 'voice-input-module.css',\r\n shadow: true,\r\n})\r\nexport class VoiceFormRecorder {\r\n @Prop() formJson: string = '{}';\r\n @Prop() serviceConfig: string = '{}';\r\n @Prop() apiKey: string;\r\n @Prop() context: 'track'|'ng'|'ecoll-veto'|'ecoteka' = undefined;\r\n @Prop() classificationRootUrl: string = 'http://localhost';\r\n @Prop() language: 'fr'|'en' = 'en';\r\n @Prop() inputTypes: string = '';\r\n \r\n private get parsedInputTypes(): ('voice' | 'ocr' | 'audio')[] {\r\n if (!this.inputTypes) return [];\r\n try {\r\n return JSON.parse(this.inputTypes.replace(/'/g, '\"'));\r\n } catch {\r\n return this.inputTypes.split(',').map(type => type.trim() as 'voice' | 'ocr' | 'audio');\r\n }\r\n }\r\n \r\n @Prop() debug: boolean = false;\r\n @Prop() renderForm: boolean = false;\r\n @Prop() displayStatus: boolean = false;\r\n \r\n @Event() formFilled: EventEmitter<VoiceFormRecorderResult>;\r\n @Event() recordingStateChanged: EventEmitter<{ isRecording: boolean; state: string }>;\r\n\r\n @State() isRecording: boolean = false;\r\n @State() isProcessing: boolean = false;\r\n @State() statusMessage: string;\r\n @State() hasError: boolean = false;\r\n @State() transcription: string = '';\r\n @State() filledData: FilledFormData | null = null;\r\n @State() debugInfo: any = {};\r\n @State() isReadonlyMode: boolean = true; // Start in readonly preview mode\r\n\r\n private audioRecorder: AudioRecorderService;\r\n private speechToTextService: any;\r\n private llmService: any;\r\n private parsedSchema: any; // Support both simple FormSchema and complex nested schema\r\n private parsedConfig: ServiceProviderConfig;\r\n\r\n constructor() {\r\n this.audioRecorder = new AudioRecorderService();\r\n }\r\n\r\n componentWillLoad() {\r\n this.initializeServices();\r\n }\r\n\r\n @Watch('formJson')\r\n @Watch('serviceConfig')\r\n initializeServices() {\r\n try {\r\n if (!this.context){\r\n this.hasError = true;\r\n const errorMessage = (this.language == 'en' ? `Initialization error: context is '${this.context}'` : `Erreur d'initialisation: le contexte est '${this.context}'`);\r\n this.statusMessage = errorMessage;\r\n this.updateDebugInfo(errorMessage, { error: errorMessage });\r\n }\r\n else{\r\n // Parse form schema\r\n this.parsedSchema = JSON.parse(this.formJson || '{}');\r\n \r\n // Parse service configuration\r\n this.parsedConfig = JSON.parse(this.serviceConfig || '{}');\r\n \r\n // Add API key to config if provided via prop\r\n if (this.apiKey) {\r\n this.parsedConfig = {\r\n ...this.parsedConfig,\r\n speechToText: { ...this.parsedConfig.speechToText, apiKey: this.apiKey },\r\n llm: { ...this.parsedConfig.llm, apiKey: this.apiKey }\r\n };\r\n }\r\n \r\n // Initialize services\r\n this.speechToTextService = SpeechToTextServiceFactory.create(this.parsedConfig);\r\n this.llmService = LLMServiceFactory.create(this.parsedConfig);\r\n \r\n this.updateDebugInfo('Initialized', {\r\n schema: this.parsedSchema,\r\n config: this.parsedConfig\r\n });\r\n \r\n this.hasError = false;\r\n this.statusMessage = (this.language == 'en' ? 'Select an input method' : 'Sélectionner une méthode de saisie');\r\n if (this.parsedInputTypes.length === 0){\r\n this.inputTypes = 'voice';\r\n }\r\n }\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Initialization error: ${error.message}` : `Erreur d'initialisation: ${error.message}`);\r\n this.updateDebugInfo('Initialization Error', { error: error.message });\r\n }\r\n }\r\n\r\n private updateDebugInfo(action: string, data: any) {\r\n if (this.debug) {\r\n this.debugInfo = {\r\n ...this.debugInfo,\r\n [action]: {\r\n timestamp: new Date().toISOString(),\r\n data\r\n }\r\n };\r\n }\r\n }\r\n\r\n private async handleRecordClick() {\r\n if (this.isProcessing) return;\r\n\r\n if (this.isRecording) {\r\n await this.stopRecordingAndProcess();\r\n } else {\r\n await this.startRecording();\r\n }\r\n }\r\n\r\n private async startRecording() {\r\n try {\r\n this.hasError = false;\r\n this.statusMessage = (this.language == 'en' ? 'Starting recording...' : `Enregistrement ...`);\r\n this.updateDebugInfo('Start Recording Attempt', {});\r\n\r\n await this.audioRecorder.startRecording();\r\n \r\n this.isRecording = true;\r\n this.statusMessage = (this.language == 'en' ? 'Recording... Click to stop' : 'Enregistrement ... Cliquer pour stopper');\r\n this.updateDebugInfo('Recording Started', {});\r\n \r\n this.recordingStateChanged.emit({ \r\n isRecording: true, \r\n state: 'recording' \r\n });\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Recording failed: ${error.message}` : `Echec de l'enregistrement : ${error.message}`);\r\n this.updateDebugInfo('Recording Error', { error: error.message });\r\n \r\n this.formFilled.emit({\r\n success: false,\r\n error: error.message\r\n });\r\n }\r\n }\r\n\r\n private async processJsonForm(ocrData: any){\r\n console.log(\"processJsonForm\", ocrData);\r\n try {\r\n this.isProcessing = true;\r\n this.statusMessage = (this.language == 'en' ? 'Processing json...' : `Traitement du json ...`);\r\n\r\n // Extract content from OCR format\r\n const extractedData = ocrData?.content || ocrData;\r\n const jsonForm = JSON.stringify(extractedData);\r\n\r\n // Fill form using LLM\r\n this.statusMessage = (this.language == 'en' ? 'Filling form fields...' : 'Remplissage du formulaire ...');\r\n const trimmedSchema = await this.trimSchemaForAI(this.parsedSchema);\r\n const filledSchema = await this.llmService.fillFormFromJson(jsonForm, trimmedSchema);\r\n \r\n // Extract filled data\r\n this.filledData = this.extractFilledData(filledSchema);\r\n this.updateDebugInfo('Form Filled', { \r\n filledSchema, \r\n extractedData: this.filledData \r\n });\r\n \r\n this.parsedSchema = this.filledData;\r\n\r\n this.statusMessage = (this.language == 'en' ? 'Form completed!' : 'Formulaire remplis !');\r\n this.hasError = false;\r\n\r\n // Emit success event\r\n this.formFilled.emit({\r\n success: true,\r\n data: this.filledData,\r\n jsonForm: jsonForm\r\n });\r\n\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Processing failed: ${error.message}` : `Erreur de traitement : ${error.message}`);\r\n \r\n this.formFilled.emit({\r\n success: false,\r\n error: error.message,\r\n jsonForm: JSON.stringify(ocrData)\r\n });\r\n } finally {\r\n this.isProcessing = false;\r\n }\r\n }\r\n\r\n private async processAudioContent(audioFile) {\r\n this.updateDebugInfo('Audio Captured', { \r\n size: audioFile.size, \r\n type: audioFile.type \r\n });\r\n\r\n // Transcribe audio\r\n this.statusMessage = (this.language == 'en' ? 'Transcribing speech...' : 'Transcription du texte ...');\r\n const transcription = await this.speechToTextService.transcribe(audioFile, this.language);\r\n this.transcription = transcription;\r\n this.updateDebugInfo('Transcription Complete', { transcription });\r\n\r\n if (!transcription.trim()) {\r\n throw new Error('No speech detected in the recording');\r\n }\r\n\r\n // Fill form using LLM\r\n this.statusMessage = (this.language == 'en' ? 'Filling form fields...' : 'Remplissage du formulaire ...');\r\n const trimmedSchema = await this.trimSchemaForAI(this.parsedSchema);\r\n const filledSchema = await this.llmService.fillFormFromTranscription(transcription, trimmedSchema);\r\n \r\n // Extract filled data\r\n this.filledData = this.extractFilledData(filledSchema);\r\n this.updateDebugInfo('Form Filled', { \r\n filledSchema, \r\n extractedData: this.filledData \r\n });\r\n \r\n this.parsedSchema = this.filledData;\r\n\r\n this.statusMessage = (this.language == 'en' ? 'Form completed!' : 'Formulaire remplis !');\r\n this.hasError = false;\r\n\r\n // Emit success event\r\n this.formFilled.emit({\r\n success: true,\r\n data: this.filledData,\r\n transcription: transcription\r\n });\r\n }\r\n\r\n private async stopRecordingAndProcess() {\r\n try {\r\n this.isRecording = false;\r\n this.isProcessing = true;\r\n this.statusMessage = (this.language == 'en' ? 'Processing audio...' : `Traitement de l'audio ...`);\r\n this.updateDebugInfo('Stop Recording', {});\r\n\r\n this.recordingStateChanged.emit({ \r\n isRecording: false, \r\n state: 'processing' \r\n });\r\n\r\n // Stop recording and get audio blob\r\n const audioBlob = await this.audioRecorder.stopRecording();\r\n const audioContent = new File([audioBlob], 'audio.webm', { type: 'audio/webm' });\r\n this.processAudioContent(audioContent);\r\n\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Processing failed: ${error.message}` : `Erreur de traitement : ${error.message}`);\r\n this.updateDebugInfo('Processing Error', { error: error.message });\r\n \r\n this.formFilled.emit({\r\n success: false,\r\n error: error.message,\r\n transcription: this.transcription\r\n });\r\n } finally {\r\n this.isProcessing = false;\r\n this.recordingStateChanged.emit({ \r\n isRecording: false, \r\n state: 'idle' \r\n });\r\n }\r\n }\r\n\r\n private extractFilledData(filledData: any): any {\r\n // console.log(\"extractFilledData\", filledData);\r\n const updatedSchema = JSON.parse(JSON.stringify(this.parsedSchema));\r\n switch(this.context){\r\n case \"ecoteka\":\r\n // console.log(\"TODO extractFilledData\", filledData);\r\n case \"ng\": \r\n if (filledData?.fields) {\r\n // Map AI response back to original schema structure\r\n filledData.fields.forEach((field: any) => {\r\n const originalField = updatedSchema.Children.find((child: any) => \r\n child.System_Name === field.name || child.Settings?.Label === field.name\r\n );\r\n \r\n if (originalField && field.value !== undefined && field.value !== null && field.value !== '') {\r\n if (!originalField.Settings) originalField.Settings = {};\r\n originalField.Settings.Default_Value = field.value;\r\n }\r\n });\r\n }\r\n \r\n break;\r\n case \"ecoll-veto\":\r\n // console.log(\"TODO extractFilledData\", filledData, updatedSchema);\r\n if (filledData?.fields) {\r\n // Map AI response back to original schema structure\r\n filledData.fields.forEach((field: any) => {\r\n let originalField = updatedSchema[0].items.find((child: any) => \r\n child.label === field.name\r\n );\r\n if (!originalField)\r\n originalField = updatedSchema[1].items.find((child: any) =>\r\n child.label === field.name\r\n );\r\n \r\n if (originalField && field.value !== undefined && field.value !== null && field.value !== '') {\r\n updatedSchema[2][originalField.name] = field.value;\r\n }\r\n });\r\n }\r\n break;\r\n case \"track\":\r\n default:\r\n const data: FilledFormData = {};\r\n \r\n Object.entries(filledData.fields).forEach(([fieldID, field]: [string, any]) => {\r\n if (field.default !== undefined && field.default !== null && field.default !== '') {\r\n updatedSchema[fieldID] = field.default;\r\n }\r\n if (field.value !== undefined && field.value !== null && field.value !== '') {\r\n for (const key in updatedSchema.fields) {\r\n const schemaField = updatedSchema.fields[key];\r\n if (schemaField.title === field.name) {\r\n schemaField.value = field.value || field.default;\r\n schemaField.default = field.value || field.default;\r\n break; // stop after finding the first match\r\n }\r\n }\r\n }\r\n });\r\n\r\n break;\r\n }\r\n \r\n // console.log(\"extractFilledData result\", updatedSchema);\r\n return updatedSchema;\r\n }\r\n\r\n private async trimSchemaForAI(schema: any): Promise<any> {\r\n // console.log(\"trimSchemaForAI\", schema);\r\n switch(this.context){\r\n case \"ecoteka\":\r\n // console.log(\"TODO trimSchemaForAI\", schema)\r\n case \"ng\":\r\n const trimmed = { fields: [] };\r\n schema.Children.forEach((child: any) => {\r\n if (!child.System_Name || !child.Type) return;\r\n \r\n const fieldData: any = {\r\n name: child.Label || child.Settings?.Label || child.System_Name,\r\n type: this.mapFieldType(child.Type)\r\n };\r\n \r\n // Add options for classification/select fields\r\n const selectTypes = ['InputClassification', 'select']\r\n if (selectTypes.includes(child.Type) && child.Children && child.Children.length > 0) {\r\n fieldData.options = child.Children.map((option: any) => \r\n option.System_Name || option.Label || option.toString()\r\n );\r\n }\r\n\r\n console.log(\"fieldData\", fieldData);\r\n \r\n trimmed.fields.push(fieldData);\r\n });\r\n \r\n // console.log(\"Schema apres transformation, contexte NG:\", trimmed);\r\n return trimmed;\r\n case \"ecoll-veto\":\r\n // console.log(\"TODO trimSchemaForAI\", schema)\r\n const mergedItemsSchema = (this.parsedSchema[0].items).concat(this.parsedSchema[1].items);\r\n\r\n if (mergedItemsSchema) {\r\n const trimmedSchema: FormSchema = {\r\n title: 'Form Name',\r\n description: 'Form Description',\r\n schema: {}\r\n };\r\n\r\n Object.entries(mergedItemsSchema).forEach(async ([key, field]: [string, any]) => {\r\n const fieldName = field.name;\r\n const fieldType = this.mapFieldType(field.type) as any;\r\n const fieldLabel = field.label || fieldName;\r\n const isRequired = field.required || false;\r\n const fieldValue = ''; //TODO\r\n\r\n if (['position', 'thesaurus'].includes(fieldType)) {\r\n try {\r\n const response = await fetch(`${this.classificationRootUrl}/ng/api/v1/classification/getList/${fieldType.toLowerCase() == 'position' ? \"Position\" : \"Thesaurus\"}/?StartNodeID=${field.config.options.options.startNode}`);\r\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n const data = await response.json();\r\n if (Array.isArray(data)) {\r\n const options = data.map(item => ({\r\n value: item.ID,\r\n label: item.System_Name\r\n }));\r\n if (options.length > 0) {\r\n field.pickerOptions = options;\r\n // TODO on degage les quotes simples temporairement, a corriger\r\n field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n }\r\n } else {\r\n console.error(\"Unexpected API response format:\", data);\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching classification data:\", error);\r\n }\r\n }\r\n \r\n trimmedSchema.schema[fieldName] = {\r\n type: fieldType,\r\n title: fieldLabel,\r\n options: field.options,\r\n readonly: field.readonly === true,\r\n default: '',\r\n };\r\n });\r\n\r\n // console.log(\"Schema apres transformation, contexte Track:\", trimmedSchema);\r\n return trimmedSchema;\r\n }\r\n case \"track\":\r\n default:\r\n // Handle simple schema format (backward compatibility)\r\n if (schema?.schema ?? schema?.fields) {\r\n const trimmedSchema: FormSchema = {\r\n title: schema.title,\r\n description: schema.description,\r\n schema: {}\r\n };\r\n\r\n const finalSchema = schema?.schema ?? schema?.fields;\r\n\r\n Object.entries(finalSchema).forEach(([fieldName, field]: [string, any]) => {\r\n trimmedSchema.schema[fieldName] = {\r\n type: field.type,\r\n title: field.title,\r\n options: field.options,\r\n readonly: field.Enabled === false,\r\n default: field.DefaultValue,\r\n pattern: field.Mask,\r\n min: field.ValidationMin,\r\n max: field.ValidationMax\r\n };\r\n });\r\n\r\n \r\n // console.log(\"Schema apres transformation, contexte Track:\", trimmedSchema);\r\n return trimmedSchema;\r\n }\r\n break;\r\n }\r\n \r\n return schema;\r\n }\r\n\r\n private mapFieldType(type: string): string {\r\n const typeMapping = {\r\n 'InputAutocomplete': 'string',\r\n 'InputInteger': 'number',\r\n 'InputTextArea': 'string',\r\n 'InputDateTimePicker': 'datetime',\r\n 'InputDecimal': 'number',\r\n 'InputClassification': 'classification',\r\n 'InputCheckbox': 'boolean',\r\n 'InputTextTranslation': 'string',\r\n 'InputMultiSelect': 'multiselect',\r\n 'thesaurus': 'thesaurus',\r\n 'position': 'position',\r\n 'text': 'string',\r\n 'textarea': 'string',\r\n 'number': 'number',\r\n 'date': 'date',\r\n 'datetime': 'datetime',\r\n 'select': 'select',\r\n 'multiselect': 'multiselect',\r\n 'checkbox': 'checkbox'\r\n };\r\n \r\n return typeMapping[type] || 'string';\r\n }\r\n\r\n // Utility methods exposed as public API\r\n @Method() public async convertXmlToJson(xmlForm: string): Promise<FormSchemaFieldsOnly> {\r\n return SchemaConverter.convertXmlToJson(xmlForm, this.classificationRootUrl, this.language);\r\n }\r\n\r\n @Method() public async convertJsonToXml(jsonForm: FormSchemaFieldsOnlyExtended): Promise<string> {\r\n return SchemaConverter.convertJsonToXml(jsonForm);\r\n }\r\n\r\n // Utility methods exposed as public API\r\n @Method() public async convertXmlToJsonLegacy(xmlForm: string): Promise<FormSchema> {\r\n return SchemaConverter.convertXmlToJsonLegacy(xmlForm);\r\n }\r\n\r\n @Method() public async convertJsonToXmlLegacy(jsonForm: FormSchema): Promise<string> {\r\n return SchemaConverter.convertJsonToXmlLegacy(jsonForm);\r\n }\r\n\r\n private renderUploadButton() {\r\n if (!this.parsedInputTypes.includes('ocr'))\r\n return;\r\n return(\r\n <ocr-file-uploader\r\n batch={false}\r\n json-schema={this.convertSchemaToOcrFormat(this.parsedSchema)}\r\n callback={(data) => {this.processJsonForm(data);}}\r\n >\r\n </ocr-file-uploader>\r\n );\r\n }\r\n\r\n private convertSchemaToOcrFormat(schema: any): string {\r\n const ocrSchema = {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {\r\n meta: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {\r\n page: { type: \"integer\" },\r\n confiance_global: { type: \"number\" }\r\n },\r\n required: [\"page\", \"confiance_global\"]\r\n },\r\n content: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {},\r\n required: []\r\n }\r\n },\r\n required: [\"meta\", \"content\"]\r\n };\r\n\r\n if (schema?.Children) {\r\n schema.Children.forEach((child: any) => {\r\n if (child.System_Name && child.Type) {\r\n const fieldLabel = child.Settings?.Label || child.System_Name;\r\n const fieldType = this.mapOcrFieldType(child.Type);\r\n ocrSchema.properties.content.properties[fieldLabel] = {\r\n anyOf: [{ type: fieldType }, { type: \"null\" }]\r\n };\r\n }\r\n });\r\n }\r\n\r\n return JSON.stringify(ocrSchema);\r\n }\r\n\r\n private mapOcrFieldType(type: string): string {\r\n const typeMapping = {\r\n 'InputInteger': 'number',\r\n 'InputDecimal': 'number',\r\n 'InputDateTimePicker': 'string',\r\n 'InputCheckbox': 'boolean'\r\n };\r\n return typeMapping[type] || 'string';\r\n }\r\n\r\n private fileInputAudioRecord!: HTMLInputElement;\r\n\r\n private triggerAudioRecordUpload = () => {\r\n this.fileInputAudioRecord.click();\r\n };\r\n\r\n private handleAudioRecordChange = async (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n if (!input.files || input.files.length === 0) return;\r\n\r\n const file = input.files[0];\r\n\r\n // Here you can handle the file upload to your API\r\n console.log('Selected file:', file);\r\n\r\n this.processAudioContent(file);\r\n };\r\n\r\n private renderUploadRecordButton() {\r\n if (!this.parsedInputTypes.includes('audio'))\r\n return;\r\n \r\n return (\r\n <div class=\"upload-record-container\" onClick={this.triggerAudioRecordUpload}>\r\n <input\r\n type=\"file\"\r\n ref={el => (this.fileInputAudioRecord = el!)}\r\n onChange={this.handleAudioRecordChange}\r\n style={{ display: 'none' }}\r\n />\r\n <div class='upload-record-button'>\r\n <svg width=\"800px\" height=\"800px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2.75C6.89137 2.75 2.75 6.89137 2.75 12C2.75 17.1086 6.89137 21.25 12 21.25C12.6345 21.25 13.2534 21.1862 13.8508 21.065C14.2567 20.9826 14.6526 21.2448 14.735 21.6508C14.8174 22.0567 14.5551 22.4526 14.1492 22.535C13.4541 22.6761 12.7353 22.75 12 22.75C6.06294 22.75 1.25 17.9371 1.25 12C1.25 6.06294 6.06294 1.25 12 1.25C17.9371 1.25 22.75 6.06294 22.75 12C22.75 12.7353 22.6761 13.4541 22.535 14.1492C22.4526 14.5551 22.0567 14.8174 21.6508 14.735C21.2448 14.6526 20.9826 14.2567 21.065 13.8508C21.1862 13.2534 21.25 12.6345 21.25 12C21.25 6.89137 17.1086 2.75 12 2.75ZM12.7676 8.52584C12.7661 8.53409 12.7604 8.56729 12.7564 8.64336C12.7502 8.76101 12.75 8.91982 12.75 9.17082C12.75 9.27795 12.7501 9.33904 12.7518 9.38529C12.7528 9.41425 12.7542 9.42649 12.7546 9.42955C12.7662 9.48945 12.7993 9.54303 12.8477 9.58021C12.8502 9.58194 12.8606 9.58864 12.886 9.60252C12.9266 9.62468 12.9812 9.65209 13.0771 9.7L14.3938 10.3584C14.6183 10.4706 14.7604 10.5414 14.8684 10.5885C14.9382 10.6189 14.9705 10.6287 14.9785 10.631C15.0885 10.6405 15.1917 10.5767 15.2324 10.4742C15.2339 10.4659 15.2396 10.4327 15.2436 10.3566C15.2498 10.239 15.25 10.0802 15.25 9.82918C15.25 9.72205 15.2499 9.66096 15.2482 9.61471C15.2472 9.58575 15.2458 9.57351 15.2454 9.57045C15.2338 9.51055 15.2007 9.45697 15.1523 9.41979C15.1498 9.41805 15.1394 9.41136 15.114 9.39748C15.0734 9.37533 15.0188 9.34791 14.9229 9.3L13.6062 8.64164C13.3817 8.52939 13.2396 8.45859 13.1316 8.41151C13.0617 8.38107 13.0295 8.37131 13.0215 8.36896C12.9115 8.35945 12.8083 8.42327 12.7676 8.52584ZM12.75 11.2135L13.7396 11.7083C13.9425 11.8098 14.1204 11.8987 14.269 11.9635C14.4199 12.0293 14.5988 12.097 14.7972 12.1202C15.6037 12.2142 16.3689 11.7413 16.6454 10.978C16.7134 10.7901 16.7328 10.5998 16.7415 10.4355C16.75 10.2735 16.75 10.0747 16.75 9.8479V9.82918C16.75 9.81565 16.75 9.80205 16.75 9.78837C16.7503 9.62647 16.7505 9.45474 16.7188 9.28904C16.638 8.86674 16.4045 8.48898 16.0629 8.22783C15.9289 8.12535 15.7752 8.04877 15.6303 7.97658C15.618 7.97048 15.6059 7.96441 15.5938 7.95836L14.2603 7.29164C14.0575 7.19022 13.8796 7.10128 13.731 7.03647C13.5801 6.97071 13.4012 6.90297 13.2028 6.87982C12.3963 6.78575 11.6311 7.25868 11.3546 8.02203C11.2866 8.20986 11.2672 8.40019 11.2585 8.56454C11.2519 8.68919 11.2504 8.83571 11.2501 9L11.25 9.11944C11.25 9.13026 11.25 9.14115 11.25 9.1521V9.17082C11.25 9.18435 11.25 9.19795 11.25 9.21163C11.2499 9.23918 11.2499 9.26701 11.25 9.29505V12.5499C10.875 12.3581 10.4501 12.25 10 12.25C8.48122 12.25 7.25 13.4812 7.25 15C7.25 16.5188 8.48122 17.75 10 17.75C11.5188 17.75 12.75 16.5188 12.75 15V11.2135ZM11.25 15C11.25 14.3096 10.6904 13.75 10 13.75C9.30964 13.75 8.75 14.3096 8.75 15C8.75 15.6904 9.30964 16.25 10 16.25C10.6904 16.25 11.25 15.6904 11.25 15ZM17.4697 14.4697C17.7626 14.1768 18.2374 14.1768 18.5303 14.4697L21.0303 16.9697C21.3232 17.2626 21.3232 17.7374 21.0303 18.0303C20.7374 18.3232 20.2626 18.3232 19.9697 18.0303L18.75 16.8107V22C18.75 22.4142 18.4142 22.75 18 22.75C17.5858 22.75 17.25 22.4142 17.25 22V16.8107L16.0303 18.0303C15.7374 18.3232 15.2626 18.3232 14.9697 18.0303C14.6768 17.7374 14.6768 17.2626 14.9697 16.9697L17.4697 14.4697Z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n private renderRecordButton() {\r\n if (!this.parsedInputTypes.includes('voice'))\r\n return;\r\n\r\n const buttonClass = [\r\n 'record-button',\r\n this.isRecording && 'recording',\r\n this.isProcessing && 'processing'\r\n ].filter(Boolean).join(' ');\r\n\r\n const isDisabled = this.isProcessing || this.hasError;\r\n\r\n return (\r\n <button \r\n class={buttonClass}\r\n onClick={() => this.handleRecordClick()}\r\n disabled={isDisabled}\r\n aria-label={this.isRecording ? 'Stop recording' : 'Start recording'}\r\n >\r\n {this.isProcessing ? (\r\n <svg class=\"record-icon\" viewBox=\"0 0 24 24\">\r\n <circle cx=\"12\" cy=\"12\" r=\"3\">\r\n <animate attributeName=\"r\" values=\"3;6;3\" dur=\"1s\" repeatCount=\"indefinite\" />\r\n <animate attributeName=\"opacity\" values=\"1;0.3;1\" dur=\"1s\" repeatCount=\"indefinite\" />\r\n </circle>\r\n </svg>\r\n ) : this.isRecording ? (\r\n <svg class=\"record-icon\" viewBox=\"0 0 24 24\">\r\n <rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" />\r\n </svg>\r\n ) : (\r\n <svg class=\"record-icon\" viewBox=\"0 0 24 24\">\r\n <circle cx=\"12\" cy=\"12\" r=\"8\" />\r\n </svg>\r\n )}\r\n </button>\r\n );\r\n }\r\n\r\n private renderStatusMessage() {\r\n const statusClass = [\r\n 'status-text',\r\n this.hasError && 'error',\r\n this.filledData && !this.hasError && 'success'\r\n ].filter(Boolean).join(' ');\r\n\r\n return <div class={statusClass}>{this.statusMessage}</div>;\r\n }\r\n\r\n private renderFormPreview() {\r\n if (!this.parsedSchema) return null;\r\n\r\n const isPreview = this.isReadonlyMode && !this.filledData;\r\n const title = isPreview ? 'Form Preview (Voice input to fill)' : 'Voice-Filled Form:';\r\n \r\n return (\r\n <div class=\"form-preview\">\r\n <div class=\"form-preview-title\">{title}</div>\r\n <form class=\"voice-filled-form\">\r\n {this.renderFormFields()}\r\n </form>\r\n </div>\r\n );\r\n }\r\n\r\n private renderFormFields() {\r\n // console.log(\"renderFormFields\", this.parsedSchema);\r\n if (!this.parsedSchema) return null;\r\n \r\n switch(this.context){\r\n case \"ecoteka\":\r\n // console.log(\"TODO renderFormFields\", this.parsedSchema);\r\n case \"ng\":\r\n return this.parsedSchema.Children.map((child: any) => {\r\n if (!child.System_Name || !child.Type) return null;\r\n \r\n const fieldName = child.System_Name;\r\n const fieldType = this.mapFieldType(child.Type);\r\n const fieldLabel = child.Settings?.Label || child.System_Name;\r\n const isRequired = child.Required || false;\r\n const fieldValue = child.Settings?.Default_Value;\r\n \r\n return (\r\n <div class=\"form-group\" key={fieldName}>\r\n <label htmlFor={fieldName} class=\"form-label\">\r\n {fieldLabel}\r\n {isRequired && <span class=\"required\">*</span>}\r\n </label>\r\n {this.renderFormField(fieldName, {\r\n type: fieldType,\r\n title: fieldLabel,\r\n required: isRequired,\r\n options: child.Children?.map((option: any) => \r\n option.System_Name || option.Label || option.toString()\r\n )\r\n }, fieldValue)}\r\n </div>\r\n );\r\n }).filter(Boolean);\r\n case \"ecoll-veto\":\r\n // NOTE STEP 2\r\n // console.log(\"TODO renderFormFields\", this.parsedSchema);\r\n const mergedItemsSchema = (this.parsedSchema[0].items).concat(this.parsedSchema[1].items);\r\n return Object.entries(mergedItemsSchema).map(([key, field]: [string, any]) => {\r\n \r\n const fieldName = field.name;\r\n field.type = this.mapFieldType(field.type);\r\n const fieldLabel = field.label || fieldName;\r\n const isRequired = field.required || false;\r\n const fieldValue = this.parsedSchema[2][fieldName];\r\n\r\n // if (['position', 'thesaurus'].includes(field.type)) {\r\n // try {\r\n // const response = await fetch(`${this.classificationRootUrl}/ng/api/v1/classification/getList/${fieldType.toLowerCase() == 'position' ? \"Position\" : \"Thesaurus\"}/?StartNodeID=${field.config.options.options.startNode}`);\r\n // if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n // const data = await response.json();\r\n // if (Array.isArray(data)) {\r\n // const options = data.map(item => ({\r\n // value: item.ID,\r\n // label: item.System_Name\r\n // }));\r\n // if (options.length > 0) {\r\n // field.pickerOptions = options;\r\n // // TODO on degage les quotes simples temporairement, a corriger\r\n // field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n // }\r\n // } else {\r\n // console.error(\"Unexpected API response format:\", data);\r\n // }\r\n // } catch (error) {\r\n // console.error(\"Error fetching classification data:\", error);\r\n // }\r\n // }\r\n\r\n console.log(\"filling with\", field);\r\n\r\n return (\r\n <div class=\"form-group\" key={fieldName}>\r\n <label htmlFor={fieldName} class=\"form-label\">\r\n { fieldLabel }\r\n {isRequired && <span class=\"required\">*</span>}\r\n </label>\r\n {this.renderFormField(fieldName, field, (this.filledData?.[fieldName] ?? fieldValue))}\r\n </div>\r\n );\r\n });\r\n case \"track\":\r\n default:\r\n return Object.entries(this.parsedSchema.fields).map(([fieldName, field]: [string, any]) => (\r\n <div class=\"form-group\" key={fieldName}>\r\n <label htmlFor={fieldName} class=\"form-label\">\r\n {field.title || fieldName}\r\n {field.required && <span class=\"required\">*</span>}\r\n </label>\r\n {this.renderFormField(fieldName, field, (this.filledData?.[fieldName] ?? field.value))}\r\n </div>\r\n ));\r\n }\r\n }\r\n\r\n private renderFormField(fieldName: string, field: any, value: any) {\r\n const isReadonly = this.isReadonlyMode && !this.filledData;\r\n const commonProps = {\r\n id: fieldName,\r\n name: fieldName,\r\n class: 'form-input',\r\n required: field.required,\r\n disabled: isReadonly\r\n };\r\n\r\n switch (field.type) {\r\n case 'multiselect':\r\n if (isReadonly) {\r\n return (\r\n <div class=\"readonly-select\">\r\n <div class=\"select-placeholder\">Available options:</div>\r\n <ul class=\"select-options-list\">\r\n {field.options?.map(option => (\r\n <li class=\"select-option\">{option}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n const selectedValues = Array.isArray(value) ? value : (value ? [value] : []);\r\n return (\r\n <div class=\"multiselect-container\">\r\n {field.options?.map(option => {\r\n const isChecked = selectedValues.some(v => \r\n v?.toString().toLowerCase() === option?.toString().toLowerCase()\r\n );\r\n return (\r\n <label class=\"multiselect-option\">\r\n <input \r\n type=\"checkbox\" \r\n name={fieldName}\r\n value={option}\r\n checked={isChecked}\r\n disabled={isReadonly}\r\n />\r\n <span class=\"multiselect-label\">{option}</span>\r\n </label>\r\n );\r\n })}\r\n </div>\r\n );\r\n \r\n case 'select':\r\n if (isReadonly) {\r\n // In readonly mode, show all options as a list instead of dropdown\r\n return (\r\n <div class=\"readonly-select\">\r\n <div class=\"select-placeholder\">Available options:</div>\r\n <ul class=\"select-options-list\">\r\n {field.options?.map(option => (\r\n <li class=\"select-option\">{option}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n return (\r\n <select id={fieldName} name={fieldName} class=\"form-input\" required={field.required}>\r\n <option value=\"\">-- Select --</option>\r\n {field.options?.map(option => (\r\n <option value={option} selected={value === option}>\r\n {option}\r\n </option>\r\n ))}\r\n </select>\r\n );\r\n \r\n case 'boolean':\r\n return (\r\n <input \r\n {...commonProps}\r\n type=\"checkbox\" \r\n class=\"form-checkbox\"\r\n checked={value === true || value === 'true'}\r\n />\r\n );\r\n \r\n case 'number':\r\n return (\r\n <input \r\n {...commonProps}\r\n type=\"number\" \r\n min={field.min}\r\n max={field.max}\r\n step=\"any\"\r\n value={value || ''}\r\n />\r\n );\r\n \r\n case 'date':\r\n return (\r\n <input \r\n {...commonProps}\r\n type='date'\r\n value={value ? (([d, m, y]) => `${y}-${m}-${d}`)(value.split(\"/\")) : ''}\r\n />\r\n );\r\n\r\n case 'datetime':\r\n return (\r\n <input \r\n {...commonProps}\r\n type='datetime-local'\r\n value={value || ''}\r\n />\r\n );\r\n \r\n default: // string\r\n return (\r\n <input \r\n {...commonProps}\r\n type=\"text\" \r\n pattern={field.pattern}\r\n placeholder={field.description}\r\n value={value || ''}\r\n />\r\n );\r\n }\r\n }\r\n\r\n private renderDebugPanel() {\r\n if (!this.debug) return null;\r\n\r\n return (\r\n <div class=\"debug-panel\">\r\n <div class=\"debug-title\">Debug Information:</div>\r\n <div class=\"debug-content\">\r\n {JSON.stringify(this.debugInfo, null, 2)}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <div class={\"voice-recorder-container\" + (this.debug || this.renderForm ? \"-debug\" : \"\")}>\r\n <div class=\"row-audio-area\">\r\n {this.renderRecordButton()}\r\n {this.renderUploadRecordButton()}\r\n </div>\r\n {this.displayStatus ? this.renderStatusMessage() : \"\"}\r\n {this.renderUploadButton()}\r\n {this.renderForm ? this.renderFormPreview() : \"\"}\r\n {this.debug ? this.renderDebugPanel() : \"\"}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"names":["h"],"mappings":"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","x_google_ignoreList":[0,1,6,7,8,9]}
1
+ {"version":3,"file":"ocr-file-uploader.voice-input-module.entry.cjs.js","sources":["node_modules/ocr-file-uploader/dist/collection/components/ocr-file-uploader/ocr-file-uploader.css?tag=ocr-file-uploader&encapsulation=shadow","node_modules/ocr-file-uploader/dist/collection/components/ocr-file-uploader/ocr-file-uploader.js","src/services/audio-recorder.service.ts","src/services/speech-to-text.service.ts","src/services/llm.service.ts","src/utils/schema-converter.ts","node_modules/ocr-file-uploader/dist/esm/index-Ba2Ls6bG.js","node_modules/ocr-file-uploader/dist/esm/app-globals-DQuL1Twl.js","node_modules/ocr-file-uploader/dist/esm/loader.js","node_modules/ocr-file-uploader/loader/index.js","src/components/voice-input-module/voice-input-module.css?tag=voice-input-module&encapsulation=shadow","src/components/voice-input-module/voice-input-module.tsx"],"sourcesContent":["\r\n.upload-container {\r\n display: inline-block;\r\n cursor: pointer;\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n.upload-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n user-select: none;\r\n}\r\n\r\n.upload-button svg {\r\n width: 50px;\r\n height: 50px;\r\n stroke: #44ee44;\r\n}\r\n\r\n.upload-button:hover svg{\r\n transform: scale(1.05);\r\n stroke: #33dd33;\r\n}","import { h } from \"@stencil/core\";\nexport class OcrFileUploader {\n constructor() {\n this.batch = false;\n this.triggerUpload = () => {\n this.fileInput.click();\n };\n this.handleFileChange = async (event) => {\n const input = event.target;\n if (!input.files || input.files.length === 0)\n return;\n const file = input.files[0];\n // Here you can handle the file upload to your API\n console.log('Selected file:', file);\n const formData = new FormData();\n formData.append('file', file);\n if (this.batch) {\n try {\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-xml', {\n method: 'POST',\n body: formData\n });\n if (!response.ok) {\n console.error(\"There has been an error!:\", response);\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n // get the file as a blob\n const blob = await response.blob();\n // create a download link\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = 'result-' + Date.now().toString() + '.xlsx'; // filename\n document.body.appendChild(a);\n a.click();\n a.remove();\n window.URL.revokeObjectURL(url);\n }\n catch (err) {\n console.error(err);\n alert('Error uploading file');\n }\n }\n else {\n try {\n if (this.jsonSchema) {\n formData.append('json_schema', this.jsonSchema);\n }\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-json', {\n method: 'POST',\n body: formData\n });\n if (!response.ok) {\n console.error(\"There has been an error!:\", response);\n throw new Error(`HTTP error! status: ${response.status}`);\n }\n const data = await response.json();\n console.log('Upload successful:', data);\n if (this.callback && data[0] && data[0].content) {\n this.callback(data[0].content);\n }\n }\n catch (err) {\n console.error(err);\n alert('Error uploading file');\n }\n }\n };\n }\n render() {\n return (h(\"div\", { key: 'fecf4f7a1151d5a93092dcd7f34f61bbb5020a3a', class: \"upload-container\", onClick: this.triggerUpload }, h(\"input\", { key: '5dae519517ce2c93a5bedb54ec454aa7f0842670', type: \"file\", ref: el => (this.fileInput = el), onChange: this.handleFileChange, style: { display: 'none' } }), h(\"div\", { key: '856fae3bb684b769fbd1869d6e7ed96d4bd4706c', class: \"upload-button\" }, h(\"svg\", { key: '94b1f879d42904038a34f574607a46dcd6075fa2', viewBox: \"0 0 24 24\", fill: \"none\", xmlns: \"http://www.w3.org/2000/svg\" }, h(\"path\", { key: '020370d673d73a845aea7c15cfece3daa5214a78', d: \"M13.5 3H12H8C6.34315 3 5 4.34315 5 6V18C5 19.6569 6.34315 21 8 21H12M13.5 3L19 8.625M13.5 3V7.625C13.5 8.17728 13.9477 8.625 14.5 8.625H19M19 8.625V11.8125\", \"stroke-width\": \"2\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\" }), h(\"path\", { key: '3e14a32c1533e66de5da8bdcac5206196bd6302b', d: \"M17.5 21L17.5 15M17.5 15L20 17.5M17.5 15L15 17.5\", \"stroke-width\": \"2\", \"stroke-linecap\": \"round\", \"stroke-linejoin\": \"round\" })))));\n }\n static get is() { return \"ocr-file-uploader\"; }\n static get encapsulation() { return \"shadow\"; }\n static get originalStyleUrls() {\n return {\n \"$\": [\"ocr-file-uploader.css\"]\n };\n }\n static get styleUrls() {\n return {\n \"$\": [\"ocr-file-uploader.css\"]\n };\n }\n static get properties() {\n return {\n \"batch\": {\n \"type\": \"boolean\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"boolean\",\n \"resolved\": \"boolean\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"batch\",\n \"defaultValue\": \"false\"\n },\n \"callback\": {\n \"type\": \"unknown\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"Function\",\n \"resolved\": \"Function\",\n \"references\": {\n \"Function\": {\n \"location\": \"global\",\n \"id\": \"global::Function\"\n }\n }\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false\n },\n \"jsonSchema\": {\n \"type\": \"string\",\n \"mutable\": false,\n \"complexType\": {\n \"original\": \"string\",\n \"resolved\": \"string\",\n \"references\": {}\n },\n \"required\": false,\n \"optional\": false,\n \"docs\": {\n \"tags\": [],\n \"text\": \"\"\n },\n \"getter\": false,\n \"setter\": false,\n \"reflect\": false,\n \"attribute\": \"json-schema\"\n }\n };\n }\n}\n","export class AudioRecorderService {\r\n private mediaRecorder: MediaRecorder | null = null;\r\n private audioChunks: Blob[] = [];\r\n private stream: MediaStream | null = null;\r\n\r\n async startRecording(): Promise<void> {\r\n try {\r\n // Check if the API exists before calling\r\n if (!navigator.mediaDevices || !navigator.mediaDevices.getUserMedia) {\r\n console.error(\r\n 'Failed to start recording:', 'Microphone access is not supported in this browser or the page is not served over HTTPS/localhost.'\r\n );\r\n return; // Exit gracefully instead of throwing\r\n }\r\n \r\n this.stream = await navigator.mediaDevices.getUserMedia({\r\n audio: {\r\n echoCancellation: true,\r\n noiseSuppression: true,\r\n autoGainControl: true\r\n }\r\n });\r\n\r\n this.audioChunks = [];\r\n this.mediaRecorder = new MediaRecorder(this.stream, {\r\n mimeType: 'audio/webm;codecs=opus'\r\n });\r\n\r\n this.mediaRecorder.ondataavailable = (event) => {\r\n if (event.data && event.data.size > 0) {\r\n this.audioChunks.push(event.data);\r\n }\r\n };\r\n\r\n this.mediaRecorder.start(100); // Collect data every 100ms\r\n } catch (error: any) {\r\n console.error('Failed to start recording:', error);\r\n }\r\n }\r\n\r\n async stopRecording(): Promise<Blob> {\r\n return new Promise((resolve, reject) => {\r\n if (!this.mediaRecorder) {\r\n reject(new Error('No active recording found'));\r\n return;\r\n }\r\n\r\n this.mediaRecorder.onstop = () => {\r\n const audioBlob = new Blob(this.audioChunks, { type: 'audio/webm' });\r\n this.cleanup();\r\n resolve(audioBlob);\r\n };\r\n\r\n this.mediaRecorder.onerror = (event) => {\r\n reject(new Error(`Recording error: ${event}`));\r\n };\r\n\r\n this.mediaRecorder.stop();\r\n });\r\n }\r\n\r\n isRecording(): boolean {\r\n return this.mediaRecorder?.state === 'recording';\r\n }\r\n\r\n private cleanup(): void {\r\n if (this.stream) {\r\n this.stream.getTracks().forEach(track => track.stop());\r\n this.stream = null;\r\n }\r\n this.mediaRecorder = null;\r\n this.audioChunks = [];\r\n }\r\n}\r\n","import { SpeechToTextProvider, ServiceProviderConfig } from '../types/service-providers.types';\r\n\r\nexport class WhisperSpeechToTextService implements SpeechToTextProvider {\r\n private apiKey: string;\r\n private baseUrl: string;\r\n\r\n constructor(config: ServiceProviderConfig['speechToText']) {\r\n // Get API key from config or environment\r\n this.apiKey = config?.apiKey || this.getEnvironmentVariable('OPENAI_API_KEY') || '';\r\n this.baseUrl = config?.baseUrl || 'https://api.openai.com/v1';\r\n \r\n if (!this.apiKey) {\r\n throw new Error('OpenAI API key is required for Whisper service');\r\n }\r\n }\r\n\r\n private getEnvironmentVariable(name: string): string | undefined {\r\n // In browser environment, we might get env vars through other means\r\n if (typeof process !== 'undefined' && process.env) {\r\n return process.env[name];\r\n }\r\n // Check if it's available as a global variable or through other means\r\n return (window as any)[name] || undefined;\r\n }\r\n\r\n async transcribe(audioContent: File, lang: string = 'en'): Promise<string> {\r\n try {\r\n const formData = new FormData();\r\n \r\n formData.append('file', audioContent);\r\n formData.append('model', 'gpt-4o-transcribe');// >>> tronque le texte ?\r\n // formData.append('model', 'gpt-4o-mini-transcribe');// >>> tronque le texte ?\r\n // formData.append('model', 'whisper-1');\r\n formData.append('language', lang);\r\n formData.append('response_format', 'json');\r\n formData.append('max_output_tokens', '2000');\r\n\r\n const response = await fetch(`${this.baseUrl}/audio/transcriptions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Authorization': `Bearer ${this.apiKey}`,\r\n },\r\n body: formData,\r\n });\r\n\r\n if (!response.ok) {\r\n const errorData = await response.json().catch(() => ({ error: 'Unknown error' }));\r\n throw new Error(`Transcription failed: ${errorData.error?.message || response.statusText}`);\r\n }\r\n\r\n const result = await response.json();\r\n return result.text || '';\r\n } catch (error) {\r\n throw new Error(`Speech-to-text transcription failed: ${error.message}`);\r\n }\r\n }\r\n}\r\n\r\nexport class SpeechToTextServiceFactory {\r\n static create(config: ServiceProviderConfig): SpeechToTextProvider {\r\n const provider = config.speechToText?.provider || 'whisper';\r\n \r\n switch (provider) {\r\n case 'whisper':\r\n return new WhisperSpeechToTextService(config.speechToText);\r\n default:\r\n throw new Error(`Unsupported speech-to-text provider: ${provider}`);\r\n }\r\n }\r\n}\r\n","import { LLMProvider, ServiceProviderConfig } from '../types/service-providers.types';\r\nimport { FormSchema } from '../types/form-schema.types';\r\n\r\nexport class OpenAILLMService implements LLMProvider {\r\n private apiKey: string;\r\n private model: string;\r\n private baseUrl: string;\r\n\r\n constructor(config: ServiceProviderConfig['llm']) {\r\n // Get API key from config or environment\r\n this.apiKey = config?.apiKey || this.getEnvironmentVariable('OPENAI_API_KEY') || '';\r\n // the newest OpenAI model is \"gpt-4.1-mini\". do not change this unless explicitly requested by the user\r\n // this.model = config?.model || 'gpt-4.1-mini';\r\n this.model = config?.model || 'gpt-4.1';\r\n this.baseUrl = config?.baseUrl || 'https://api.openai.com/v1';\r\n \r\n if (!this.apiKey) {\r\n throw new Error('OpenAI API key is required for LLM service');\r\n }\r\n }\r\n\r\n private getEnvironmentVariable(name: string): string | undefined {\r\n // In browser environment, we might get env vars through other means\r\n if (typeof process !== 'undefined' && process.env) {\r\n return process.env[name];\r\n }\r\n // Check if it's available as a global variable or through other means\r\n return (window as any)[name] || undefined;\r\n }\r\n\r\n private getOptimizeFieldsDescription(schema: any){\r\n return Object.values(schema).map((field: any) => \r\n `- ${field.name ?? field.title} ` +\r\n `(${field.type}` +\r\n `${field.required ? ', required' : ''}` +\r\n `${field.readonly ? ', readonly' : ''}` +\r\n `${field.min && field.min !== \"\" ? ', min='+field.min : ''}` +\r\n `${field.max && field.max !== \"\" ? ', max='+field.max : ''}` +\r\n `)` +\r\n `${field.options && field.options.length > 0 ? ` - options: ${field.options.join(', ')}` : ''}`\r\n ).join('\\n')\r\n }\r\n\r\n async fillFormFromTranscription(transcription: string, schema: any): Promise<any> {\r\n return this.fillForm(transcription, schema, true);\r\n }\r\n\r\n async fillFormFromJson(json: string, schema: any): Promise<any> {\r\n return this.fillForm(json, schema, false);\r\n }\r\n\r\n private async fillForm(data: string, schema: any, dataIsTranscription: boolean = true): Promise<any> {\r\n try {\r\n // Handle complex schema format with fields array\r\n if (schema?.fields || schema?.schema) {\r\n const finalSchema = schema?.fields || schema?.schema;\r\n const systemPrompt = `You are an expert form-filling assistant. You will receive a voice transcription and form field definitions. Your task is to extract values from the spoken content.\r\n Rules:\r\n 1. Only extract values that can be confidently determined from the transcription\r\n 2. Respect field types (string, number, datetime, boolean, select)\r\n 3. For datetime fields, use ISO format (YYYY-MM-DDTHH:MM)\r\n 4. For date fields, use the following format: DD/MM/YYYY\r\n 5. For boolean fields, interpret yes/no, true/false, positive/negative responses\r\n 6. For select fields, use exact option values from the provided choices\r\n 7. Only include fields where relevant information is found\r\n 8. The current GMT datetime is ${(new Date() as any).toGMTString()}\r\n 9. Respect the constraints written between parenthesis for readonly status (readonly fields must not be filled with values), min and max values, whatever the transcription says\r\n\r\n Respond with JSON in this exact format: {\"fields\": [{\"name\": \"field_name\", \"value\": \"extracted_value\"}]}`;\r\n\r\n let userPrompt = `\r\n Voice transcription: \"${data}\"\r\n\r\n Form fields:\r\n ${this.getOptimizeFieldsDescription(finalSchema)}\r\n\r\n Please extract values from the Transcription for these fields.\r\n `;\r\n\r\n //TODO\r\n\r\n // const userPrompt = (\r\n // dataIsTranscription \r\n // ?\r\n // `Voice transcription: \"${data}\"`\r\n // : \r\n // `Json datas: \"${JSON.stringify(data)}\"`\r\n // )+`\r\n\r\n // Form fields:\r\n // ${this.getOptimizeFieldsDescription(finalSchema)}\r\n\r\n // Please extract values from the ` + \r\n // (\r\n // dataIsTranscription \r\n // ?\r\n // `Transcription`\r\n // : \r\n // `Json generated file`\r\n // )+` for these fields.`;\r\n\r\n const response = await fetch(`${this.baseUrl}/chat/completions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this.apiKey}`,\r\n },\r\n body: JSON.stringify({\r\n model: this.model,\r\n messages: [\r\n { role: 'system', content: systemPrompt },\r\n { role: 'user', content: userPrompt }\r\n ],\r\n response_format: { type: 'json_object' },\r\n temperature: 0.1,\r\n }),\r\n });\r\n\r\n if (!response.ok) {\r\n const errorData = await response.json().catch(() => ({ error: 'Unknown error' }));\r\n throw new Error(`LLM API failed: ${errorData.error?.message || response.statusText}`);\r\n }\r\n\r\n const result = await response.json();\r\n return JSON.parse(result.choices[0].message.content);\r\n }\r\n\r\n // Handle simple schema format (backward compatibility)\r\n const systemPrompt = `You are an expert form-filling assistant. You will receive a voice transcription and a JSON form schema. Your task is to intelligently fill the form fields based on the spoken content.\r\n Rules:\r\n 1. Only fill fields that can be confidently determined from the transcription\r\n 2. Respect field types (string, number, date, boolean, select)\r\n 3. For datetime fields, use ISO format (YYYY-MM-DDTHH:MM)\r\n 4. For date fields, use the following format: DD/MM/YYYY\r\n 5. For boolean fields, interpret yes/no, true/false, positive/negative responses\r\n 6. For select fields, match the closest option from the provided choices\r\n 7. Leave fields empty if no relevant information is found\r\n 8. Return the same schema structure with 'default' values filled\r\n 9. The current GMT datetime is ${(new Date() as any).toGMTString()}\r\n 10. Respect the constraints written between parenthesis for readonly status (readonly fields must not be filled with values), min and max values, whatever the transcription says\r\n\r\n Respond with JSON in this exact format: {\"schema\": {...}}`;\r\n\r\n let userPrompt = `\r\n Voice transcription: \"${data}\"\r\n\r\n Form schema to fill:\r\n ${JSON.stringify(schema, null, 2)}\r\n\r\n Please fill the form fields based on the Transcription and return the schema with default values populated.\r\n `;\r\n\r\n // const userPrompt = (\r\n // dataIsTranscription \r\n // ?\r\n // `Voice transcription: \"${data}\"`\r\n // : \r\n // `Json datas: \"${JSON.stringify(data)}\"`\r\n // )+`\r\n\r\n // Form schema to fill:\r\n // ${JSON.stringify(schema, null, 2)}\r\n\r\n // Please fill the form fields based on the ` + \r\n // (\r\n // dataIsTranscription \r\n // ?\r\n // `Transcription`\r\n // : \r\n // `Json generated file`\r\n // )+` nd return the schema with default values populated.`;\r\n\r\n const response = await fetch(`${this.baseUrl}/chat/completions`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${this.apiKey}`,\r\n },\r\n body: JSON.stringify({\r\n model: this.model,\r\n messages: [\r\n { role: 'system', content: systemPrompt },\r\n { role: 'user', content: userPrompt }\r\n ],\r\n response_format: { type: 'json_object' },\r\n temperature: 0.1, // Low temperature for consistency\r\n }),\r\n });\r\n\r\n if (!response.ok) {\r\n const errorData = await response.json().catch(() => ({ error: 'Unknown error' }));\r\n throw new Error(`LLM API failed: ${errorData.error?.message || response.statusText}`);\r\n }\r\n\r\n const result = await response.json();\r\n const filledSchema = JSON.parse(result.choices[0].message.content);\r\n \r\n // Validate that the response has the correct structure\r\n if (!filledSchema.schema) {\r\n throw new Error('Invalid response format from LLM service');\r\n }\r\n\r\n return filledSchema;\r\n } catch (error) {\r\n throw new Error(`Form filling failed: ${error.message}`);\r\n }\r\n }\r\n}\r\n\r\nexport class LLMServiceFactory {\r\n static create(config: ServiceProviderConfig): LLMProvider {\r\n const provider = config.llm?.provider || 'openai';\r\n \r\n switch (provider) {\r\n case 'openai':\r\n return new OpenAILLMService(config.llm);\r\n default:\r\n throw new Error(`Unsupported LLM provider: ${provider}`);\r\n }\r\n }\r\n}\r\n","import { FormSchema, FormField, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended, FormFieldExtended } from '../types/form-schema.types';\r\n\r\nexport class SchemaConverter {\r\n /**\r\n * Convert XML form definition to JSON schema\r\n */\r\n static convertXmlToJsonLegacy(xmlForm: string): FormSchema {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n \r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n const schema: FormSchema = {\r\n schema: {}\r\n };\r\n\r\n // Extract form title and description\r\n const formElement = xmlDoc.querySelector('form');\r\n if (formElement) {\r\n schema.title = formElement.getAttribute('title') || undefined;\r\n schema.description = formElement.getAttribute('description') || undefined;\r\n }\r\n\r\n // Process input fields\r\n const inputs = xmlDoc.querySelectorAll('input, select, textarea');\r\n inputs.forEach(input => {\r\n const name = input.getAttribute('name');\r\n if (!name) return;\r\n\r\n const field: FormField = {\r\n type: this.mapXmlTypeToJsonTypeLegacy(input.tagName.toLowerCase(), input.getAttribute('type')),\r\n title: input.getAttribute('title') || input.getAttribute('placeholder') || name,\r\n description: input.getAttribute('description') || undefined,\r\n required: input.hasAttribute('required'),\r\n default: input.getAttribute('value') || undefined\r\n };\r\n\r\n // Handle select options\r\n if (input.tagName.toLowerCase() === 'select') {\r\n const options = Array.from(input.querySelectorAll('option')).map(option => \r\n option.textContent || option.getAttribute('value') || ''\r\n );\r\n if (options.length > 0) {\r\n field.options = options;\r\n }\r\n }\r\n\r\n // Handle validation attributes\r\n const min = input.getAttribute('min');\r\n const max = input.getAttribute('max');\r\n const pattern = input.getAttribute('pattern');\r\n\r\n if (min) field.min = parseFloat(min);\r\n if (max) field.max = parseFloat(max);\r\n if (pattern) field.pattern = pattern;\r\n\r\n schema.schema[name] = field;\r\n });\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema to XML form definition\r\n */\r\n static convertJsonToXmlLegacy(jsonForm: FormSchema): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const form = doc.createElement('form');\r\n \r\n if (jsonForm.title) {\r\n form.setAttribute('title', jsonForm.title);\r\n }\r\n if (jsonForm.description) {\r\n form.setAttribute('description', jsonForm.description);\r\n }\r\n\r\n Object.entries(jsonForm.schema).forEach(([fieldName, field]) => {\r\n // Inject default value from root if present\r\n const valueFromRoot = (jsonForm as any)[fieldName];\r\n const fieldWithDefault = {\r\n ...field,\r\n default: field.default ?? valueFromRoot // field.default has priority\r\n };\r\n\r\n const element = this.createXmlElementLegacy(doc, fieldName, fieldWithDefault);\r\n if (element) {\r\n form.appendChild(element);\r\n }\r\n });\r\n\r\n doc.appendChild(form);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapXmlTypeToJsonTypeLegacy(tagName: string, type: string | null): FormField['type'] {\r\n switch (tagName) {\r\n case 'select':\r\n return 'select';\r\n case 'textarea':\r\n return 'string';\r\n case 'input':\r\n switch (type) {\r\n case 'number':\r\n case 'range':\r\n return 'number';\r\n case 'date':\r\n case 'datetime-local':\r\n case 'time':\r\n return 'date';\r\n case 'checkbox':\r\n return 'boolean';\r\n default:\r\n return 'string';\r\n }\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n private static createXmlElementLegacy(doc: Document, fieldName: string, field: FormField): Element | null {\r\n let element: Element;\r\n\r\n switch (field.type) {\r\n case 'select':\r\n element = doc.createElement('select');\r\n if (field.options) {\r\n field.options.forEach(option => {\r\n const optionElement = doc.createElement('option');\r\n optionElement.setAttribute('value', option);\r\n optionElement.textContent = option;\r\n // Set selected if it matches the default value\r\n if (field.default !== undefined && field.default === option) {\r\n optionElement.setAttribute('selected', 'true');\r\n }\r\n element.appendChild(optionElement);\r\n });\r\n }\r\n break;\r\n\r\n case 'boolean':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'checkbox');\r\n if (field.default === true || field.default === 'true') {\r\n element.setAttribute('checked', 'true');\r\n }\r\n break;\r\n\r\n case 'number':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'number');\r\n if (field.min !== undefined) element.setAttribute('min', field.min.toString());\r\n if (field.max !== undefined) element.setAttribute('max', field.max.toString());\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n case 'date':\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'date');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n break;\r\n\r\n default: // string, text, etc.\r\n element = doc.createElement('input');\r\n element.setAttribute('type', 'text');\r\n if (field.default !== undefined) element.setAttribute('value', field.default.toString());\r\n }\r\n\r\n element.setAttribute('name', fieldName);\r\n element.setAttribute('title', field.title);\r\n\r\n if (field.description) {\r\n element.setAttribute('description', field.description);\r\n }\r\n if (field.required) {\r\n element.setAttribute('required', 'true');\r\n }\r\n if (field.pattern) {\r\n element.setAttribute('pattern', field.pattern);\r\n }\r\n\r\n return element;\r\n }\r\n\r\n \r\n /**\r\n * Convert new XML form definition to JSON schema\r\n */\r\n static async convertXmlToJson(xmlForm: string, classificationRootURL: string = \"http://localhost\", lang: 'fr'|'en' = 'en'): Promise<FormSchemaFieldsOnly> {\r\n try {\r\n const parser = new DOMParser();\r\n const xmlDoc = parser.parseFromString(xmlForm, 'text/xml');\r\n\r\n if (xmlDoc.querySelector('parsererror')) {\r\n throw new Error('Invalid XML format');\r\n }\r\n\r\n // Root Xforms element (optional)\r\n const xforms = xmlDoc.querySelector('Xforms');\r\n if (!xforms) throw new Error('No Xforms root element found');\r\n\r\n const fields = xforms.querySelectorAll('Fields');\r\n if (fields.length === 0) throw new Error('No Fields elements found');\r\n\r\n const schema: FormSchemaFieldsOnly = {\r\n fields: {}\r\n };\r\n\r\n for (const fieldEl of Array.from(fields)) {\r\n // Read key info\r\n const name = fieldEl.querySelector('SystemName')?.textContent?.trim();\r\n if (!name) return;\r\n\r\n const helpText = fieldEl.querySelector('HelpText')?.textContent?.trim();\r\n const defaultValue = fieldEl.querySelector('DefaultValue')?.textContent;\r\n const enabledText = fieldEl.querySelector('Enabled')?.textContent?.trim().toLowerCase() || 'true';\r\n const isEnabled = enabledText === 'true';\r\n\r\n // keep as memory\r\n const field_ID = fieldEl.querySelector('ID')?.textContent;\r\n const field_TFie_PK_ID = fieldEl.querySelector('TFie_PK_ID')?.textContent;\r\n const field_TVal_PK_ID = fieldEl.querySelector('TVal_PK_ID')?.textContent;\r\n const field_TFIn_PK_ID = fieldEl.querySelector('TFIn_PK_ID')?.textContent;\r\n const field_isForm = fieldEl.querySelector('isForm')?.textContent;\r\n const field_LabelText = fieldEl.querySelector('LabelText')?.textContent;\r\n const field_SystemName = fieldEl.querySelector('SystemName')?.textContent;\r\n const field_CssStyle = fieldEl.querySelector('CssStyle')?.textContent;\r\n const field_ControlType = fieldEl.querySelector('ControlType')?.textContent || 'TextBox';\r\n const field_ValidationRequired = fieldEl.querySelector('ValidationRequired')?.textContent;\r\n const field_ValidationMin = fieldEl.querySelector('ValidationMin')?.textContent;\r\n const field_ValidationMax = fieldEl.querySelector('ValidationMax')?.textContent;\r\n const field_Mask = fieldEl.querySelector('Mask')?.textContent;\r\n const field_TypeId = fieldEl.querySelector('TypeId')?.textContent;\r\n const field_Unit = fieldEl.querySelector('Unit')?.textContent;\r\n const field_TFie_Fullpath = fieldEl.querySelector('TFie_Fullpath')?.textContent;\r\n const field_TVal_FK_Parent_ID = fieldEl.querySelector('TVal_FK_Parent_ID')?.textContent;\r\n\r\n const field: FormFieldExtended = {\r\n type: this.mapControlTypeToJsonType(field_ControlType),\r\n title: field_LabelText,\r\n description: helpText,\r\n required: field_ValidationRequired?.toLowerCase() === 'required',\r\n default: defaultValue || undefined,\r\n\r\n realType: field_ControlType,\r\n\r\n Enabled: isEnabled,\r\n ID: field_ID,\r\n TFie_PK_ID: field_TFie_PK_ID,\r\n TVal_PK_ID: field_TVal_PK_ID,\r\n TFIn_PK_ID: field_TFIn_PK_ID,\r\n isForm: field_isForm,\r\n LabelText: field_LabelText,\r\n SystemName: field_SystemName,\r\n CssStyle: field_CssStyle,\r\n ControlType: field_ControlType,\r\n ValidationRequired: field_ValidationRequired,\r\n ValidationMin: field_ValidationMin,\r\n ValidationMax: field_ValidationMax,\r\n Mask: field_Mask,\r\n TypeId: field_TypeId,\r\n Unit: field_Unit,\r\n TFie_Fullpath: field_TFie_Fullpath,\r\n TVal_FK_Parent_ID: field_TVal_FK_Parent_ID\r\n };\r\n\r\n // Handle select options\r\n if (field.type.toLowerCase() === 'select') {\r\n try {\r\n const response = await fetch(`${classificationRootURL}/ng/api/v1/classification/getList/${field.ControlType.toLowerCase() == 'termpicker' ? \"Position\" : \"Thesaurus\"}/?StartNodeID=${field_TypeId}`);\r\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n const data = await response.json();\r\n if (Array.isArray(data)) {\r\n const options = data.map(item => ({\r\n value: item.ID,\r\n label: item.System_Name\r\n }));\r\n if (options.length > 0) {\r\n field.pickerOptions = options;\r\n // TODO on degage les quotes simples temporairement, a corriger\r\n field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n }\r\n } else {\r\n console.error(\"Unexpected API response format:\", data);\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching classification data:\", error);\r\n }\r\n }\r\n\r\n if (field_ValidationMin) field.min = parseFloat(field_ValidationMin);\r\n if (field_ValidationMax) field.max = parseFloat(field_ValidationMax);\r\n if (field_Mask) field.pattern = field_Mask;\r\n\r\n // Optional: Add any other fields you want to track, e.g. min, max, pattern (not clearly in your XML)\r\n // You could also add the raw ControlType for round-trip fidelity if you want\r\n\r\n schema.fields[field_ID] = field;\r\n };\r\n\r\n return schema;\r\n } catch (error) {\r\n throw new Error(`XML to JSON conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n /**\r\n * Convert JSON schema back to your new XML form definition format\r\n */\r\n static convertJsonToXml(jsonForm: FormSchemaFieldsOnlyExtended): string {\r\n try {\r\n const doc = document.implementation.createDocument('', '', null);\r\n const xforms = doc.createElement('Xforms');\r\n\r\n Object.entries(( (jsonForm as any).schema ? (jsonForm as any).schema : (jsonForm as any).fields )).forEach(([fieldID, field]) => {\r\n const fieldEl = doc.createElement('Fields');\r\n const fieldToUse = (field as FormFieldExtended);\r\n\r\n // Set all subelements based on your XML structure\r\n // ID, PK IDs etc are missing here, so omit or generate dummy\r\n\r\n // <SystemName>\r\n const systemNameEl = doc.createElement('SystemName');\r\n systemNameEl.textContent = fieldToUse.SystemName;\r\n fieldEl.appendChild(systemNameEl);\r\n\r\n // <LabelText>\r\n const labelEl = doc.createElement('LabelText');\r\n labelEl.textContent = fieldToUse.title || fieldID;\r\n fieldEl.appendChild(labelEl);\r\n\r\n // <HelpText>\r\n const helpEl = doc.createElement('HelpText');\r\n helpEl.textContent = fieldToUse.description;\r\n fieldEl.appendChild(helpEl);\r\n\r\n // <ControlType>\r\n const controlTypeEl = doc.createElement('ControlType');\r\n controlTypeEl.textContent = fieldToUse.realType;\r\n fieldEl.appendChild(controlTypeEl);\r\n\r\n // <ValidationRequired>\r\n const validationEl = doc.createElement('ValidationRequired');\r\n validationEl.textContent = fieldToUse.required ? 'Required' : 'Not Required';\r\n fieldEl.appendChild(validationEl);\r\n\r\n // <DefaultValue>\r\n const defaultEl = doc.createElement('DefaultValue');\r\n const valueEl = doc.createElement('Value');\r\n if (jsonForm[fieldID] !== undefined) {\r\n defaultEl.textContent = jsonForm[fieldID].toString();\r\n valueEl.textContent = jsonForm[fieldID].toString();\r\n }\r\n else {\r\n defaultEl.textContent = fieldToUse.default || fieldToUse.value;\r\n valueEl.textContent = fieldToUse.value || fieldToUse.default;\r\n }\r\n fieldEl.appendChild(defaultEl);\r\n fieldEl.appendChild(valueEl);\r\n\r\n // <Enabled>\r\n const enabledEl = doc.createElement('Enabled');\r\n enabledEl.textContent = fieldToUse.Enabled === false ? 'False' : 'True';\r\n fieldEl.appendChild(enabledEl);\r\n\r\n // Add <isForm> Field to distinguish Field or Header etc\r\n const isFormEl = doc.createElement('isForm');\r\n isFormEl.textContent = fieldToUse.isForm;\r\n fieldEl.appendChild(isFormEl);\r\n\r\n if (fieldToUse.type === 'header') {\r\n const headerEl = doc.createElement('Header');\r\n headerEl.textContent = fieldToUse.title;\r\n fieldEl.appendChild(headerEl);\r\n }\r\n \r\n const idEl = doc.createElement('ID');\r\n idEl.textContent = fieldToUse.ID;\r\n fieldEl.appendChild(idEl);\r\n\r\n const tfiePkIdEl = doc.createElement('TFie_PK_ID');\r\n tfiePkIdEl.textContent = fieldToUse.TFie_PK_ID;\r\n fieldEl.appendChild(tfiePkIdEl);\r\n\r\n const tvalPkIdEl = doc.createElement('TVal_PK_ID');\r\n tvalPkIdEl.textContent = fieldToUse.TVal_PK_ID;\r\n fieldEl.appendChild(tvalPkIdEl);\r\n\r\n const tfInPkIdEl = doc.createElement('TFIn_PK_ID');\r\n tfInPkIdEl.textContent = fieldToUse.TFIn_PK_ID;\r\n fieldEl.appendChild(tfInPkIdEl);\r\n\r\n const cssStyleEl = doc.createElement('CssStyle');\r\n cssStyleEl.textContent = fieldToUse.CssStyle;\r\n fieldEl.appendChild(cssStyleEl);\r\n\r\n const typeIdEl = doc.createElement('TypeId');\r\n typeIdEl.textContent = fieldToUse.TypeId;\r\n fieldEl.appendChild(typeIdEl);\r\n\r\n const unitEl = doc.createElement('Unit');\r\n unitEl.textContent = fieldToUse.Unit;\r\n fieldEl.appendChild(unitEl);\r\n\r\n const tfieFullPathEl = doc.createElement('TFie_Fullpath');\r\n tfieFullPathEl.textContent = fieldToUse.TFie_Fullpath;\r\n fieldEl.appendChild(tfieFullPathEl);\r\n\r\n const tvalFkParentIdEl = doc.createElement('TVal_FK_Parent_ID');\r\n tvalFkParentIdEl.textContent = fieldToUse.TVal_FK_Parent_ID;\r\n fieldEl.appendChild(tvalFkParentIdEl);\r\n\r\n const validationMinEl = doc.createElement('ValidationMin');\r\n validationMinEl.textContent = fieldToUse.ValidationMin;\r\n fieldEl.appendChild(validationMinEl);\r\n\r\n const validationMaxEl = doc.createElement('ValidationMax');\r\n validationMaxEl.textContent = fieldToUse.ValidationMax;\r\n fieldEl.appendChild(validationMaxEl);\r\n\r\n const maskEl = doc.createElement('Mask');\r\n maskEl.textContent = fieldToUse.Mask;\r\n fieldEl.appendChild(maskEl);\r\n\r\n // Append to Xforms root\r\n xforms.appendChild(fieldEl);\r\n });\r\n\r\n doc.appendChild(xforms);\r\n\r\n const serializer = new XMLSerializer();\r\n return serializer.serializeToString(doc);\r\n } catch (error) {\r\n throw new Error(`JSON to XML conversion failed: ${error.message}`);\r\n }\r\n }\r\n\r\n private static mapControlTypeToJsonType(controlType: string): FormField['type'] {\r\n // Map your ControlType XML field to JSON field types\r\n switch (controlType.toLowerCase()) {\r\n case 'textbox':\r\n case 'text':\r\n return 'string';\r\n case 'datepicker':\r\n return 'date';\r\n case 'thesauruspicker':\r\n case 'thesauruspicker-ddl':\r\n case 'termpicker':\r\n return 'select';\r\n case 'dbpicker':\r\n return 'dbpicker'; // custom type if needed\r\n case 'header':\r\n return 'header'; // special type to handle header elements\r\n case 'checkbox':\r\n return 'boolean';\r\n case 'realpicker':\r\n return 'number';\r\n default:\r\n return 'string';\r\n }\r\n }\r\n\r\n // private static mapJsonTypeToControlType(type: string): string {\r\n // switch (type.toLowerCase()) {\r\n // case 'string':\r\n // return 'TextBox';\r\n // case 'date':\r\n // return 'DatePicker';\r\n // case 'select':\r\n // return 'ThesaurusPicker';\r\n // case 'dbpicker':\r\n // return 'DBPicker';\r\n // case 'boolean':\r\n // return 'CheckBox';\r\n // case 'header':\r\n // return 'Header';\r\n // default:\r\n // return 'TextBox';\r\n // }\r\n // }\r\n\r\n}\r\n","const NAMESPACE = 'ocr-file-uploader';\nconst BUILD = /* ocr-file-uploader */ { hotModuleReplacement: false, hydratedSelectorName: \"hydrated\", lazyLoad: true, prop: true, propChangeCallback: false, updatable: true};\n\n/*\n Stencil Client Platform v4.40.1 | MIT Licensed | https://stenciljs.com\n */\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __commonJS = (cb, mod) => function __require() {\n return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;\n};\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n __defProp(target, \"default\", { value: mod, enumerable: true }) ,\n mod\n));\nvar __publicField = (obj, key, value) => __defNormalProp(obj, key + \"\" , value);\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\nvar __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, \"write to private field\"), member.set(obj, value), value);\nvar __privateMethod = (obj, member, method) => (__accessCheck(obj, member, \"access private method\"), method);\n\n// node_modules/balanced-match/index.js\nvar require_balanced_match = __commonJS({\n \"node_modules/balanced-match/index.js\"(exports, module) {\n module.exports = balanced;\n function balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n var r = range(a, b, str);\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n }\n function maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n }\n balanced.range = range;\n function range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i2 = ai;\n if (ai >= 0 && bi > 0) {\n if (a === b) {\n return [ai, bi];\n }\n begs = [];\n left = str.length;\n while (i2 >= 0 && !result) {\n if (i2 == ai) {\n begs.push(i2);\n ai = str.indexOf(a, i2 + 1);\n } else if (begs.length == 1) {\n result = [begs.pop(), bi];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i2 + 1);\n }\n i2 = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length) {\n result = [left, right];\n }\n }\n return result;\n }\n }\n});\n\n// node_modules/brace-expansion/index.js\nvar require_brace_expansion = __commonJS({\n \"node_modules/brace-expansion/index.js\"(exports, module) {\n var balanced = require_balanced_match();\n module.exports = expandTop;\n var escSlash = \"\\0SLASH\" + Math.random() + \"\\0\";\n var escOpen = \"\\0OPEN\" + Math.random() + \"\\0\";\n var escClose = \"\\0CLOSE\" + Math.random() + \"\\0\";\n var escComma = \"\\0COMMA\" + Math.random() + \"\\0\";\n var escPeriod = \"\\0PERIOD\" + Math.random() + \"\\0\";\n function numeric(str) {\n return parseInt(str, 10) == str ? parseInt(str, 10) : str.charCodeAt(0);\n }\n function escapeBraces(str) {\n return str.split(\"\\\\\\\\\").join(escSlash).split(\"\\\\{\").join(escOpen).split(\"\\\\}\").join(escClose).split(\"\\\\,\").join(escComma).split(\"\\\\.\").join(escPeriod);\n }\n function unescapeBraces(str) {\n return str.split(escSlash).join(\"\\\\\").split(escOpen).join(\"{\").split(escClose).join(\"}\").split(escComma).join(\",\").split(escPeriod).join(\".\");\n }\n function parseCommaParts(str) {\n if (!str)\n return [\"\"];\n var parts = [];\n var m = balanced(\"{\", \"}\", str);\n if (!m)\n return str.split(\",\");\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(\",\");\n p[p.length - 1] += \"{\" + body + \"}\";\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length - 1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n parts.push.apply(parts, p);\n return parts;\n }\n function expandTop(str) {\n if (!str)\n return [];\n if (str.substr(0, 2) === \"{}\") {\n str = \"\\\\{\\\\}\" + str.substr(2);\n }\n return expand2(escapeBraces(str), true).map(unescapeBraces);\n }\n function embrace(str) {\n return \"{\" + str + \"}\";\n }\n function isPadded(el) {\n return /^-?0\\d/.test(el);\n }\n function lte(i2, y) {\n return i2 <= y;\n }\n function gte(i2, y) {\n return i2 >= y;\n }\n function expand2(str, isTop) {\n var expansions = [];\n var m = balanced(\"{\", \"}\", str);\n if (!m) return [str];\n var pre = m.pre;\n var post = m.post.length ? expand2(m.post, false) : [\"\"];\n if (/\\$$/.test(m.pre)) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + \"{\" + m.body + \"}\" + post[k];\n expansions.push(expansion);\n }\n } else {\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(\",\") >= 0;\n if (!isSequence && !isOptions) {\n if (m.post.match(/,(?!,).*\\}/)) {\n str = m.pre + \"{\" + m.body + escClose + m.post;\n return expand2(str);\n }\n return [str];\n }\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n n = expand2(n[0], false).map(embrace);\n if (n.length === 1) {\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n var N;\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length);\n var incr = n.length == 3 ? Math.abs(numeric(n[2])) : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n N = [];\n for (var i2 = x; test(i2, y); i2 += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i2);\n if (c === \"\\\\\")\n c = \"\";\n } else {\n c = String(i2);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join(\"0\");\n if (i2 < 0)\n c = \"-\" + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = [];\n for (var j = 0; j < n.length; j++) {\n N.push.apply(N, expand2(n[j], false));\n }\n }\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n }\n return expansions;\n }\n }\n});\n\n// src/utils/constants.ts\nvar SVG_NS = \"http://www.w3.org/2000/svg\";\nvar HTML_NS = \"http://www.w3.org/1999/xhtml\";\nvar reWireGetterSetter = (instance, hostRef) => {\n var _a;\n const cmpMeta = hostRef.$cmpMeta$;\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {\n const ogValue = instance[memberName];\n const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);\n if (ogDescriptor) {\n Object.defineProperty(instance, memberName, {\n get() {\n return ogDescriptor.get.call(this);\n },\n set(newValue) {\n ogDescriptor.set.call(this, newValue);\n },\n configurable: true,\n enumerable: true\n });\n }\n instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;\n }\n });\n};\nfunction getPropertyDescriptor(obj, memberName) {\n while (obj) {\n const desc = Object.getOwnPropertyDescriptor(obj, memberName);\n if (desc == null ? void 0 : desc.get) return desc;\n obj = Object.getPrototypeOf(obj);\n }\n return void 0;\n}\n\n// src/client/client-host-ref.ts\nvar getHostRef = (ref) => {\n if (ref.__stencil__getHostRef) {\n return ref.__stencil__getHostRef();\n }\n return void 0;\n};\nvar registerInstance = (lazyInstance, hostRef) => {\n if (!hostRef) return;\n lazyInstance.__stencil__getHostRef = () => hostRef;\n hostRef.$lazyInstance$ = lazyInstance;\n if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.prop)) {\n reWireGetterSetter(lazyInstance, hostRef);\n }\n};\nvar registerHost = (hostElement, cmpMeta) => {\n const hostRef = {\n $flags$: 0,\n $hostElement$: hostElement,\n $cmpMeta$: cmpMeta,\n $instanceValues$: /* @__PURE__ */ new Map(),\n $serializerValues$: /* @__PURE__ */ new Map()\n };\n {\n hostRef.$onReadyPromise$ = new Promise((r) => hostRef.$onReadyResolve$ = r);\n hostElement[\"s-p\"] = [];\n hostElement[\"s-rc\"] = [];\n }\n {\n hostRef.$fetchedCbList$ = [];\n }\n const ref = hostRef;\n hostElement.__stencil__getHostRef = () => ref;\n return ref;\n};\nvar isMemberInElement = (elm, memberName) => memberName in elm;\nvar consoleError = (e, el) => (0, console.error)(e, el);\n\n// src/client/client-load-module.ts\nvar cmpModules = /* @__PURE__ */ new Map();\nvar loadModule = (cmpMeta, hostRef, hmrVersionId) => {\n const exportName = cmpMeta.$tagName$.replace(/-/g, \"_\");\n const bundleId = cmpMeta.$lazyBundleId$;\n if (!bundleId) {\n return void 0;\n }\n const module = cmpModules.get(bundleId) ;\n if (module) {\n return module[exportName];\n }\n /*!__STENCIL_STATIC_IMPORT_SWITCH__*/\n return import(\n /* @vite-ignore */\n /* webpackInclude: /\\.entry\\.js$/ */\n /* webpackExclude: /\\.system\\.entry\\.js$/ */\n /* webpackMode: \"lazy\" */\n `./${bundleId}.entry.js${\"\"}`\n ).then(\n (importedModule) => {\n {\n cmpModules.set(bundleId, importedModule);\n }\n return importedModule[exportName];\n },\n (e) => {\n consoleError(e, hostRef.$hostElement$);\n }\n );\n};\n\n// src/client/client-style.ts\nvar styles = /* @__PURE__ */ new Map();\nvar HYDRATED_CSS = \"{visibility:hidden}.hydrated{visibility:inherit}\";\nvar SLOT_FB_CSS = \"slot-fb{display:contents}slot-fb[hidden]{display:none}\";\nvar win = typeof window !== \"undefined\" ? window : {};\nvar plt = {\n $flags$: 0,\n $resourcesUrl$: \"\",\n jmp: (h2) => h2(),\n raf: (h2) => requestAnimationFrame(h2),\n ael: (el, eventName, listener, opts) => el.addEventListener(eventName, listener, opts),\n rel: (el, eventName, listener, opts) => el.removeEventListener(eventName, listener, opts),\n ce: (eventName, opts) => new CustomEvent(eventName, opts)\n};\nvar promiseResolve = (v) => Promise.resolve(v);\nvar supportsConstructableStylesheets = /* @__PURE__ */ (() => {\n try {\n if (!win.document.adoptedStyleSheets) {\n return false;\n }\n new CSSStyleSheet();\n return typeof new CSSStyleSheet().replaceSync === \"function\";\n } catch (e) {\n }\n return false;\n})() ;\nvar supportsMutableAdoptedStyleSheets = supportsConstructableStylesheets ? /* @__PURE__ */ (() => !!win.document && Object.getOwnPropertyDescriptor(win.document.adoptedStyleSheets, \"length\").writable)() : false;\nvar queuePending = false;\nvar queueDomReads = [];\nvar queueDomWrites = [];\nvar queueTask = (queue, write) => (cb) => {\n queue.push(cb);\n if (!queuePending) {\n queuePending = true;\n if (write && plt.$flags$ & 4 /* queueSync */) {\n nextTick(flush);\n } else {\n plt.raf(flush);\n }\n }\n};\nvar consume = (queue) => {\n for (let i2 = 0; i2 < queue.length; i2++) {\n try {\n queue[i2](performance.now());\n } catch (e) {\n consoleError(e);\n }\n }\n queue.length = 0;\n};\nvar flush = () => {\n consume(queueDomReads);\n {\n consume(queueDomWrites);\n if (queuePending = queueDomReads.length > 0) {\n plt.raf(flush);\n }\n }\n};\nvar nextTick = (cb) => promiseResolve().then(cb);\nvar writeTask = /* @__PURE__ */ queueTask(queueDomWrites, true);\nvar isComplexType = (o) => {\n o = typeof o;\n return o === \"object\" || o === \"function\";\n};\n\n// node_modules/minimatch/dist/esm/index.js\nvar import_brace_expansion = __toESM(require_brace_expansion());\n\n// node_modules/minimatch/dist/esm/assert-valid-pattern.js\nvar MAX_PATTERN_LENGTH = 1024 * 64;\nvar assertValidPattern = (pattern) => {\n if (typeof pattern !== \"string\") {\n throw new TypeError(\"invalid pattern\");\n }\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError(\"pattern is too long\");\n }\n};\n\n// node_modules/minimatch/dist/esm/brace-expressions.js\nvar posixClasses = {\n \"[:alnum:]\": [\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\", true],\n \"[:alpha:]\": [\"\\\\p{L}\\\\p{Nl}\", true],\n \"[:ascii:]\": [\"\\\\x00-\\\\x7f\", false],\n \"[:blank:]\": [\"\\\\p{Zs}\\\\t\", true],\n \"[:cntrl:]\": [\"\\\\p{Cc}\", true],\n \"[:digit:]\": [\"\\\\p{Nd}\", true],\n \"[:graph:]\": [\"\\\\p{Z}\\\\p{C}\", true, true],\n \"[:lower:]\": [\"\\\\p{Ll}\", true],\n \"[:print:]\": [\"\\\\p{C}\", true],\n \"[:punct:]\": [\"\\\\p{P}\", true],\n \"[:space:]\": [\"\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f\", true],\n \"[:upper:]\": [\"\\\\p{Lu}\", true],\n \"[:word:]\": [\"\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}\", true],\n \"[:xdigit:]\": [\"A-Fa-f0-9\", false]\n};\nvar braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, \"\\\\$&\");\nvar regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\nvar rangesToString = (ranges) => ranges.join(\"\");\nvar parseClass = (glob, position) => {\n const pos = position;\n if (glob.charAt(pos) !== \"[\") {\n throw new Error(\"not in a brace expression\");\n }\n const ranges = [];\n const negs = [];\n let i2 = pos + 1;\n let sawStart = false;\n let uflag = false;\n let escaping = false;\n let negate = false;\n let endPos = pos;\n let rangeStart = \"\";\n WHILE: while (i2 < glob.length) {\n const c = glob.charAt(i2);\n if ((c === \"!\" || c === \"^\") && i2 === pos + 1) {\n negate = true;\n i2++;\n continue;\n }\n if (c === \"]\" && sawStart && !escaping) {\n endPos = i2 + 1;\n break;\n }\n sawStart = true;\n if (c === \"\\\\\") {\n if (!escaping) {\n escaping = true;\n i2++;\n continue;\n }\n }\n if (c === \"[\" && !escaping) {\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i2)) {\n if (rangeStart) {\n return [\"$.\", false, glob.length - pos, true];\n }\n i2 += cls.length;\n if (neg)\n negs.push(unip);\n else\n ranges.push(unip);\n uflag = uflag || u;\n continue WHILE;\n }\n }\n }\n escaping = false;\n if (rangeStart) {\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + \"-\" + braceEscape(c));\n } else if (c === rangeStart) {\n ranges.push(braceEscape(c));\n }\n rangeStart = \"\";\n i2++;\n continue;\n }\n if (glob.startsWith(\"-]\", i2 + 1)) {\n ranges.push(braceEscape(c + \"-\"));\n i2 += 2;\n continue;\n }\n if (glob.startsWith(\"-\", i2 + 1)) {\n rangeStart = c;\n i2 += 2;\n continue;\n }\n ranges.push(braceEscape(c));\n i2++;\n }\n if (endPos < i2) {\n return [\"\", false, 0, false];\n }\n if (!ranges.length && !negs.length) {\n return [\"$.\", false, glob.length - pos, true];\n }\n if (negs.length === 0 && ranges.length === 1 && /^\\\\?.$/.test(ranges[0]) && !negate) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n return [regexpEscape(r), false, endPos - pos, false];\n }\n const sranges = \"[\" + (negate ? \"^\" : \"\") + rangesToString(ranges) + \"]\";\n const snegs = \"[\" + (negate ? \"\" : \"^\") + rangesToString(negs) + \"]\";\n const comb = ranges.length && negs.length ? \"(\" + sranges + \"|\" + snegs + \")\" : ranges.length ? sranges : snegs;\n return [comb, uflag, endPos - pos, true];\n};\n\n// node_modules/minimatch/dist/esm/unescape.js\nvar unescape = (s, { windowsPathsNoEscape = false } = {}) => {\n return windowsPathsNoEscape ? s.replace(/\\[([^\\/\\\\])\\]/g, \"$1\") : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, \"$1$2\").replace(/\\\\([^\\/])/g, \"$1\");\n};\n\n// node_modules/minimatch/dist/esm/ast.js\nvar types = /* @__PURE__ */ new Set([\"!\", \"?\", \"+\", \"*\", \"@\"]);\nvar isExtglobType = (c) => types.has(c);\nvar startNoTraversal = \"(?!(?:^|/)\\\\.\\\\.?(?:$|/))\";\nvar startNoDot = \"(?!\\\\.)\";\nvar addPatternStart = /* @__PURE__ */ new Set([\"[\", \".\"]);\nvar justDots = /* @__PURE__ */ new Set([\"..\", \".\"]);\nvar reSpecials = new Set(\"().*{}+?[]^$\\\\!\");\nvar regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\nvar qmark = \"[^/]\";\nvar star = qmark + \"*?\";\nvar starNoEmpty = qmark + \"+?\";\nvar _root, _hasMagic, _uflag, _parts, _parent, _parentIndex, _negs, _filledNegs, _options, _toString, _emptyExt, _AST_instances, fillNegs_fn, _AST_static, parseAST_fn, partsToRegExp_fn, parseGlob_fn;\nvar _AST = class _AST {\n constructor(type, parent, options = {}) {\n __privateAdd(this, _AST_instances);\n __publicField(this, \"type\");\n __privateAdd(this, _root);\n __privateAdd(this, _hasMagic);\n __privateAdd(this, _uflag, false);\n __privateAdd(this, _parts, []);\n __privateAdd(this, _parent);\n __privateAdd(this, _parentIndex);\n __privateAdd(this, _negs);\n __privateAdd(this, _filledNegs, false);\n __privateAdd(this, _options);\n __privateAdd(this, _toString);\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n __privateAdd(this, _emptyExt, false);\n this.type = type;\n if (type)\n __privateSet(this, _hasMagic, true);\n __privateSet(this, _parent, parent);\n __privateSet(this, _root, __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _root) : this);\n __privateSet(this, _options, __privateGet(this, _root) === this ? options : __privateGet(__privateGet(this, _root), _options));\n __privateSet(this, _negs, __privateGet(this, _root) === this ? [] : __privateGet(__privateGet(this, _root), _negs));\n if (type === \"!\" && !__privateGet(__privateGet(this, _root), _filledNegs))\n __privateGet(this, _negs).push(this);\n __privateSet(this, _parentIndex, __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _parts).length : 0);\n }\n get hasMagic() {\n if (__privateGet(this, _hasMagic) !== void 0)\n return __privateGet(this, _hasMagic);\n for (const p of __privateGet(this, _parts)) {\n if (typeof p === \"string\")\n continue;\n if (p.type || p.hasMagic)\n return __privateSet(this, _hasMagic, true);\n }\n return __privateGet(this, _hasMagic);\n }\n // reconstructs the pattern\n toString() {\n if (__privateGet(this, _toString) !== void 0)\n return __privateGet(this, _toString);\n if (!this.type) {\n return __privateSet(this, _toString, __privateGet(this, _parts).map((p) => String(p)).join(\"\"));\n } else {\n return __privateSet(this, _toString, this.type + \"(\" + __privateGet(this, _parts).map((p) => String(p)).join(\"|\") + \")\");\n }\n }\n push(...parts) {\n for (const p of parts) {\n if (p === \"\")\n continue;\n if (typeof p !== \"string\" && !(p instanceof _AST && __privateGet(p, _parent) === this)) {\n throw new Error(\"invalid part: \" + p);\n }\n __privateGet(this, _parts).push(p);\n }\n }\n toJSON() {\n var _a;\n const ret = this.type === null ? __privateGet(this, _parts).slice().map((p) => typeof p === \"string\" ? p : p.toJSON()) : [this.type, ...__privateGet(this, _parts).map((p) => p.toJSON())];\n if (this.isStart() && !this.type)\n ret.unshift([]);\n if (this.isEnd() && (this === __privateGet(this, _root) || __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === \"!\")) {\n ret.push({});\n }\n return ret;\n }\n isStart() {\n var _a;\n if (__privateGet(this, _root) === this)\n return true;\n if (!((_a = __privateGet(this, _parent)) == null ? void 0 : _a.isStart()))\n return false;\n if (__privateGet(this, _parentIndex) === 0)\n return true;\n const p = __privateGet(this, _parent);\n for (let i2 = 0; i2 < __privateGet(this, _parentIndex); i2++) {\n const pp = __privateGet(p, _parts)[i2];\n if (!(pp instanceof _AST && pp.type === \"!\")) {\n return false;\n }\n }\n return true;\n }\n isEnd() {\n var _a, _b, _c;\n if (__privateGet(this, _root) === this)\n return true;\n if (((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === \"!\")\n return true;\n if (!((_b = __privateGet(this, _parent)) == null ? void 0 : _b.isEnd()))\n return false;\n if (!this.type)\n return (_c = __privateGet(this, _parent)) == null ? void 0 : _c.isEnd();\n const pl = __privateGet(this, _parent) ? __privateGet(__privateGet(this, _parent), _parts).length : 0;\n return __privateGet(this, _parentIndex) === pl - 1;\n }\n copyIn(part) {\n if (typeof part === \"string\")\n this.push(part);\n else\n this.push(part.clone(this));\n }\n clone(parent) {\n const c = new _AST(this.type, parent);\n for (const p of __privateGet(this, _parts)) {\n c.copyIn(p);\n }\n return c;\n }\n static fromGlob(pattern, options = {}) {\n var _a;\n const ast = new _AST(null, void 0, options);\n __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, pattern, ast, 0, options);\n return ast;\n }\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern() {\n if (this !== __privateGet(this, _root))\n return __privateGet(this, _root).toMMPattern();\n const glob = this.toString();\n const [re, body, hasMagic, uflag] = this.toRegExpSource();\n const anyMagic = hasMagic || __privateGet(this, _hasMagic) || __privateGet(this, _options).nocase && !__privateGet(this, _options).nocaseMagicOnly && glob.toUpperCase() !== glob.toLowerCase();\n if (!anyMagic) {\n return body;\n }\n const flags = (__privateGet(this, _options).nocase ? \"i\" : \"\") + (uflag ? \"u\" : \"\");\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob\n });\n }\n get options() {\n return __privateGet(this, _options);\n }\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(allowDot) {\n var _a;\n const dot = allowDot != null ? allowDot : !!__privateGet(this, _options).dot;\n if (__privateGet(this, _root) === this)\n __privateMethod(this, _AST_instances, fillNegs_fn).call(this);\n if (!this.type) {\n const noEmpty = this.isStart() && this.isEnd();\n const src = __privateGet(this, _parts).map((p) => {\n var _a2;\n const [re, _, hasMagic, uflag] = typeof p === \"string\" ? __privateMethod(_a2 = _AST, _AST_static, parseGlob_fn).call(_a2, p, __privateGet(this, _hasMagic), noEmpty) : p.toRegExpSource(allowDot);\n __privateSet(this, _hasMagic, __privateGet(this, _hasMagic) || hasMagic);\n __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);\n return re;\n }).join(\"\");\n let start2 = \"\";\n if (this.isStart()) {\n if (typeof __privateGet(this, _parts)[0] === \"string\") {\n const dotTravAllowed = __privateGet(this, _parts).length === 1 && justDots.has(__privateGet(this, _parts)[0]);\n if (!dotTravAllowed) {\n const aps = addPatternStart;\n const needNoTrav = (\n // dots are allowed, and the pattern starts with [ or .\n dot && aps.has(src.charAt(0)) || // the pattern starts with \\., and then [ or .\n src.startsWith(\"\\\\.\") && aps.has(src.charAt(2)) || // the pattern starts with \\.\\., and then [ or .\n src.startsWith(\"\\\\.\\\\.\") && aps.has(src.charAt(4))\n );\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n start2 = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : \"\";\n }\n }\n }\n let end = \"\";\n if (this.isEnd() && __privateGet(__privateGet(this, _root), _filledNegs) && ((_a = __privateGet(this, _parent)) == null ? void 0 : _a.type) === \"!\") {\n end = \"(?:$|\\\\/)\";\n }\n const final2 = start2 + src + end;\n return [\n final2,\n unescape(src),\n __privateSet(this, _hasMagic, !!__privateGet(this, _hasMagic)),\n __privateGet(this, _uflag)\n ];\n }\n const repeated = this.type === \"*\" || this.type === \"+\";\n const start = this.type === \"!\" ? \"(?:(?!(?:\" : \"(?:\";\n let body = __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, dot);\n if (this.isStart() && this.isEnd() && !body && this.type !== \"!\") {\n const s = this.toString();\n __privateSet(this, _parts, [s]);\n this.type = null;\n __privateSet(this, _hasMagic, void 0);\n return [s, unescape(this.toString()), false, false];\n }\n let bodyDotAllowed = !repeated || allowDot || dot || false ? \"\" : __privateMethod(this, _AST_instances, partsToRegExp_fn).call(this, true);\n if (bodyDotAllowed === body) {\n bodyDotAllowed = \"\";\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`;\n }\n let final = \"\";\n if (this.type === \"!\" && __privateGet(this, _emptyExt)) {\n final = (this.isStart() && !dot ? startNoDot : \"\") + starNoEmpty;\n } else {\n const close = this.type === \"!\" ? (\n // !() must match something,but !(x) can match ''\n \"))\" + (this.isStart() && !dot && !allowDot ? startNoDot : \"\") + star + \")\"\n ) : this.type === \"@\" ? \")\" : this.type === \"?\" ? \")?\" : this.type === \"+\" && bodyDotAllowed ? \")\" : this.type === \"*\" && bodyDotAllowed ? `)?` : `)${this.type}`;\n final = start + body + close;\n }\n return [\n final,\n unescape(body),\n __privateSet(this, _hasMagic, !!__privateGet(this, _hasMagic)),\n __privateGet(this, _uflag)\n ];\n }\n};\n_root = new WeakMap();\n_hasMagic = new WeakMap();\n_uflag = new WeakMap();\n_parts = new WeakMap();\n_parent = new WeakMap();\n_parentIndex = new WeakMap();\n_negs = new WeakMap();\n_filledNegs = new WeakMap();\n_options = new WeakMap();\n_toString = new WeakMap();\n_emptyExt = new WeakMap();\n_AST_instances = new WeakSet();\nfillNegs_fn = function() {\n if (this !== __privateGet(this, _root))\n throw new Error(\"should only call on root\");\n if (__privateGet(this, _filledNegs))\n return this;\n this.toString();\n __privateSet(this, _filledNegs, true);\n let n;\n while (n = __privateGet(this, _negs).pop()) {\n if (n.type !== \"!\")\n continue;\n let p = n;\n let pp = __privateGet(p, _parent);\n while (pp) {\n for (let i2 = __privateGet(p, _parentIndex) + 1; !pp.type && i2 < __privateGet(pp, _parts).length; i2++) {\n for (const part of __privateGet(n, _parts)) {\n if (typeof part === \"string\") {\n throw new Error(\"string part in extglob AST??\");\n }\n part.copyIn(__privateGet(pp, _parts)[i2]);\n }\n }\n p = pp;\n pp = __privateGet(p, _parent);\n }\n }\n return this;\n};\n_AST_static = new WeakSet();\nparseAST_fn = function(str, ast, pos, opt) {\n var _a, _b;\n let escaping = false;\n let inBrace = false;\n let braceStart = -1;\n let braceNeg = false;\n if (ast.type === null) {\n let i3 = pos;\n let acc2 = \"\";\n while (i3 < str.length) {\n const c = str.charAt(i3++);\n if (escaping || c === \"\\\\\") {\n escaping = !escaping;\n acc2 += c;\n continue;\n }\n if (inBrace) {\n if (i3 === braceStart + 1) {\n if (c === \"^\" || c === \"!\") {\n braceNeg = true;\n }\n } else if (c === \"]\" && !(i3 === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc2 += c;\n continue;\n } else if (c === \"[\") {\n inBrace = true;\n braceStart = i3;\n braceNeg = false;\n acc2 += c;\n continue;\n }\n if (!opt.noext && isExtglobType(c) && str.charAt(i3) === \"(\") {\n ast.push(acc2);\n acc2 = \"\";\n const ext2 = new _AST(c, ast);\n i3 = __privateMethod(_a = _AST, _AST_static, parseAST_fn).call(_a, str, ext2, i3, opt);\n ast.push(ext2);\n continue;\n }\n acc2 += c;\n }\n ast.push(acc2);\n return i3;\n }\n let i2 = pos + 1;\n let part = new _AST(null, ast);\n const parts = [];\n let acc = \"\";\n while (i2 < str.length) {\n const c = str.charAt(i2++);\n if (escaping || c === \"\\\\\") {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i2 === braceStart + 1) {\n if (c === \"^\" || c === \"!\") {\n braceNeg = true;\n }\n } else if (c === \"]\" && !(i2 === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n } else if (c === \"[\") {\n inBrace = true;\n braceStart = i2;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (isExtglobType(c) && str.charAt(i2) === \"(\") {\n part.push(acc);\n acc = \"\";\n const ext2 = new _AST(c, part);\n part.push(ext2);\n i2 = __privateMethod(_b = _AST, _AST_static, parseAST_fn).call(_b, str, ext2, i2, opt);\n continue;\n }\n if (c === \"|\") {\n part.push(acc);\n acc = \"\";\n parts.push(part);\n part = new _AST(null, ast);\n continue;\n }\n if (c === \")\") {\n if (acc === \"\" && __privateGet(ast, _parts).length === 0) {\n __privateSet(ast, _emptyExt, true);\n }\n part.push(acc);\n acc = \"\";\n ast.push(...parts, part);\n return i2;\n }\n acc += c;\n }\n ast.type = null;\n __privateSet(ast, _hasMagic, void 0);\n __privateSet(ast, _parts, [str.substring(pos - 1)]);\n return i2;\n};\npartsToRegExp_fn = function(dot) {\n return __privateGet(this, _parts).map((p) => {\n if (typeof p === \"string\") {\n throw new Error(\"string type in extglob ast??\");\n }\n const [re, _, _hasMagic2, uflag] = p.toRegExpSource(dot);\n __privateSet(this, _uflag, __privateGet(this, _uflag) || uflag);\n return re;\n }).filter((p) => !(this.isStart() && this.isEnd()) || !!p).join(\"|\");\n};\nparseGlob_fn = function(glob, hasMagic, noEmpty = false) {\n let escaping = false;\n let re = \"\";\n let uflag = false;\n for (let i2 = 0; i2 < glob.length; i2++) {\n const c = glob.charAt(i2);\n if (escaping) {\n escaping = false;\n re += (reSpecials.has(c) ? \"\\\\\" : \"\") + c;\n continue;\n }\n if (c === \"\\\\\") {\n if (i2 === glob.length - 1) {\n re += \"\\\\\\\\\";\n } else {\n escaping = true;\n }\n continue;\n }\n if (c === \"[\") {\n const [src, needUflag, consumed, magic] = parseClass(glob, i2);\n if (consumed) {\n re += src;\n uflag = uflag || needUflag;\n i2 += consumed - 1;\n hasMagic = hasMagic || magic;\n continue;\n }\n }\n if (c === \"*\") {\n if (noEmpty && glob === \"*\")\n re += starNoEmpty;\n else\n re += star;\n hasMagic = true;\n continue;\n }\n if (c === \"?\") {\n re += qmark;\n hasMagic = true;\n continue;\n }\n re += regExpEscape(c);\n }\n return [re, unescape(glob), !!hasMagic, uflag];\n};\n__privateAdd(_AST, _AST_static);\nvar AST = _AST;\n\n// node_modules/minimatch/dist/esm/escape.js\nvar escape = (s, { windowsPathsNoEscape = false } = {}) => {\n return windowsPathsNoEscape ? s.replace(/[?*()[\\]]/g, \"[$&]\") : s.replace(/[?*()[\\]\\\\]/g, \"\\\\$&\");\n};\n\n// node_modules/minimatch/dist/esm/index.js\nvar minimatch = (p, pattern, options = {}) => {\n assertValidPattern(pattern);\n if (!options.nocomment && pattern.charAt(0) === \"#\") {\n return false;\n }\n return new Minimatch(pattern, options).match(p);\n};\nvar starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nvar starDotExtTest = (ext2) => (f) => !f.startsWith(\".\") && f.endsWith(ext2);\nvar starDotExtTestDot = (ext2) => (f) => f.endsWith(ext2);\nvar starDotExtTestNocase = (ext2) => {\n ext2 = ext2.toLowerCase();\n return (f) => !f.startsWith(\".\") && f.toLowerCase().endsWith(ext2);\n};\nvar starDotExtTestNocaseDot = (ext2) => {\n ext2 = ext2.toLowerCase();\n return (f) => f.toLowerCase().endsWith(ext2);\n};\nvar starDotStarRE = /^\\*+\\.\\*+$/;\nvar starDotStarTest = (f) => !f.startsWith(\".\") && f.includes(\".\");\nvar starDotStarTestDot = (f) => f !== \".\" && f !== \"..\" && f.includes(\".\");\nvar dotStarRE = /^\\.\\*+$/;\nvar dotStarTest = (f) => f !== \".\" && f !== \"..\" && f.startsWith(\".\");\nvar starRE = /^\\*+$/;\nvar starTest = (f) => f.length !== 0 && !f.startsWith(\".\");\nvar starTestDot = (f) => f.length !== 0 && f !== \".\" && f !== \"..\";\nvar qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nvar qmarksTestNocase = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExt([$0]);\n if (!ext2)\n return noext;\n ext2 = ext2.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext2);\n};\nvar qmarksTestNocaseDot = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExtDot([$0]);\n if (!ext2)\n return noext;\n ext2 = ext2.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext2);\n};\nvar qmarksTestDot = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExtDot([$0]);\n return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);\n};\nvar qmarksTest = ([$0, ext2 = \"\"]) => {\n const noext = qmarksTestNoExt([$0]);\n return !ext2 ? noext : (f) => noext(f) && f.endsWith(ext2);\n};\nvar qmarksTestNoExt = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && !f.startsWith(\".\");\n};\nvar qmarksTestNoExtDot = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && f !== \".\" && f !== \"..\";\n};\nvar defaultPlatform = typeof process === \"object\" && process ? typeof process.env === \"object\" && process.env && process.env.__MINIMATCH_TESTING_PLATFORM__ || process.platform : \"posix\";\nvar path = {\n win32: { sep: \"\\\\\" },\n posix: { sep: \"/\" }\n};\nvar sep = defaultPlatform === \"win32\" ? path.win32.sep : path.posix.sep;\nminimatch.sep = sep;\nvar GLOBSTAR = Symbol(\"globstar **\");\nminimatch.GLOBSTAR = GLOBSTAR;\nvar qmark2 = \"[^/]\";\nvar star2 = qmark2 + \"*?\";\nvar twoStarDot = \"(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?\";\nvar twoStarNoDot = \"(?:(?!(?:\\\\/|^)\\\\.).)*?\";\nvar filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options);\nminimatch.filter = filter;\nvar ext = (a, b = {}) => Object.assign({}, a, b);\nvar defaults = (def) => {\n if (!def || typeof def !== \"object\" || !Object.keys(def).length) {\n return minimatch;\n }\n const orig = minimatch;\n const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern, options = {}) {\n super(pattern, ext(def, options));\n }\n static defaults(options) {\n return orig.defaults(ext(def, options)).Minimatch;\n }\n },\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(type, parent, options = {}) {\n super(type, parent, ext(def, options));\n }\n /* c8 ignore stop */\n static fromGlob(pattern, options = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options));\n }\n },\n unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n defaults: (options) => orig.defaults(ext(def, options)),\n makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n sep: orig.sep,\n GLOBSTAR\n });\n};\nminimatch.defaults = defaults;\nvar braceExpand = (pattern, options = {}) => {\n assertValidPattern(pattern);\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n return [pattern];\n }\n return (0, import_brace_expansion.default)(pattern);\n};\nminimatch.braceExpand = braceExpand;\nvar makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nminimatch.makeRe = makeRe;\nvar match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options);\n list = list.filter((f) => mm.match(f));\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n};\nminimatch.match = match;\nvar globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nvar regExpEscape2 = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, \"\\\\$&\");\nvar Minimatch = class {\n options;\n set;\n pattern;\n windowsPathsNoEscape;\n nonegate;\n negate;\n comment;\n empty;\n preserveMultipleSlashes;\n partial;\n globSet;\n globParts;\n nocase;\n isWindows;\n platform;\n windowsNoMagicRoot;\n regexp;\n constructor(pattern, options = {}) {\n assertValidPattern(pattern);\n options = options || {};\n this.options = options;\n this.pattern = pattern;\n this.platform = options.platform || defaultPlatform;\n this.isWindows = this.platform === \"win32\";\n this.windowsPathsNoEscape = !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, \"/\");\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n this.regexp = null;\n this.negate = false;\n this.nonegate = !!options.nonegate;\n this.comment = false;\n this.empty = false;\n this.partial = !!options.partial;\n this.nocase = !!this.options.nocase;\n this.windowsNoMagicRoot = options.windowsNoMagicRoot !== void 0 ? options.windowsNoMagicRoot : !!(this.isWindows && this.nocase);\n this.globSet = [];\n this.globParts = [];\n this.set = [];\n this.make();\n }\n hasMagic() {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true;\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== \"string\")\n return true;\n }\n }\n return false;\n }\n debug(..._) {\n }\n make() {\n const pattern = this.pattern;\n const options = this.options;\n if (!options.nocomment && pattern.charAt(0) === \"#\") {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n this.parseNegate();\n this.globSet = [...new Set(this.braceExpand())];\n if (options.debug) {\n this.debug = (...args) => console.error(...args);\n }\n this.debug(this.pattern, this.globSet);\n const rawGlobParts = this.globSet.map((s) => this.slashSplit(s));\n this.globParts = this.preprocess(rawGlobParts);\n this.debug(this.pattern, this.globParts);\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n const isUNC = s[0] === \"\" && s[1] === \"\" && (s[2] === \"?\" || !globMagic.test(s[2])) && !globMagic.test(s[3]);\n const isDrive = /^[a-z]:/i.test(s[0]);\n if (isUNC) {\n return [...s.slice(0, 4), ...s.slice(4).map((ss) => this.parse(ss))];\n } else if (isDrive) {\n return [s[0], ...s.slice(1).map((ss) => this.parse(ss))];\n }\n }\n return s.map((ss) => this.parse(ss));\n });\n this.debug(this.pattern, set);\n this.set = set.filter((s) => s.indexOf(false) === -1);\n if (this.isWindows) {\n for (let i2 = 0; i2 < this.set.length; i2++) {\n const p = this.set[i2];\n if (p[0] === \"\" && p[1] === \"\" && this.globParts[i2][2] === \"?\" && typeof p[3] === \"string\" && /^[a-z]:$/i.test(p[3])) {\n p[2] = \"?\";\n }\n }\n }\n this.debug(this.pattern, this.set);\n }\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts) {\n if (this.options.noglobstar) {\n for (let i2 = 0; i2 < globParts.length; i2++) {\n for (let j = 0; j < globParts[i2].length; j++) {\n if (globParts[i2][j] === \"**\") {\n globParts[i2][j] = \"*\";\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n globParts = this.firstPhasePreProcess(globParts);\n globParts = this.secondPhasePreProcess(globParts);\n } else if (optimizationLevel >= 1) {\n globParts = this.levelOneOptimize(globParts);\n } else {\n globParts = this.adjascentGlobstarOptimize(globParts);\n }\n return globParts;\n }\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts) {\n return globParts.map((parts) => {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf(\"**\", gs + 1))) {\n let i2 = gs;\n while (parts[i2 + 1] === \"**\") {\n i2++;\n }\n if (i2 !== gs) {\n parts.splice(gs, i2 - gs);\n }\n }\n return parts;\n });\n }\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts) {\n return globParts.map((parts) => {\n parts = parts.reduce((set, part) => {\n const prev = set[set.length - 1];\n if (part === \"**\" && prev === \"**\") {\n return set;\n }\n if (part === \"..\") {\n if (prev && prev !== \"..\" && prev !== \".\" && prev !== \"**\") {\n set.pop();\n return set;\n }\n }\n set.push(part);\n return set;\n }, []);\n return parts.length === 0 ? [\"\"] : parts;\n });\n }\n levelTwoFileOptimize(parts) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts);\n }\n let didSomething = false;\n do {\n didSomething = false;\n if (!this.preserveMultipleSlashes) {\n for (let i2 = 1; i2 < parts.length - 1; i2++) {\n const p = parts[i2];\n if (i2 === 1 && p === \"\" && parts[0] === \"\")\n continue;\n if (p === \".\" || p === \"\") {\n didSomething = true;\n parts.splice(i2, 1);\n i2--;\n }\n }\n if (parts[0] === \".\" && parts.length === 2 && (parts[1] === \".\" || parts[1] === \"\")) {\n didSomething = true;\n parts.pop();\n }\n }\n let dd = 0;\n while (-1 !== (dd = parts.indexOf(\"..\", dd + 1))) {\n const p = parts[dd - 1];\n if (p && p !== \".\" && p !== \"..\" && p !== \"**\") {\n didSomething = true;\n parts.splice(dd - 1, 2);\n dd -= 2;\n }\n }\n } while (didSomething);\n return parts.length === 0 ? [\"\"] : parts;\n }\n // First phase: single-pattern processing\n // <pre> is 1 or more portions\n // <rest> is 1 or more portions\n // <p> is any portion other than ., .., '', or **\n // <e> is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n // <pre>/**/../<p>/<p>/<rest> -> {<pre>/../<p>/<p>/<rest>,<pre>/**/<p>/<p>/<rest>}\n // <pre>/<e>/<rest> -> <pre>/<rest>\n // <pre>/<p>/../<rest> -> <pre>/<rest>\n // **/**/<rest> -> **/<rest>\n //\n // **/*/<rest> -> */**/<rest> <== not valid because ** doesn't follow\n // this WOULD be allowed if ** did follow symlinks, or * didn't\n firstPhasePreProcess(globParts) {\n let didSomething = false;\n do {\n didSomething = false;\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf(\"**\", gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === \"**\") {\n gss++;\n }\n if (gss > gs) {\n parts.splice(gs + 1, gss - gs);\n }\n let next = parts[gs + 1];\n const p = parts[gs + 2];\n const p2 = parts[gs + 3];\n if (next !== \"..\")\n continue;\n if (!p || p === \".\" || p === \"..\" || !p2 || p2 === \".\" || p2 === \"..\") {\n continue;\n }\n didSomething = true;\n parts.splice(gs, 1);\n const other = parts.slice(0);\n other[gs] = \"**\";\n globParts.push(other);\n gs--;\n }\n if (!this.preserveMultipleSlashes) {\n for (let i2 = 1; i2 < parts.length - 1; i2++) {\n const p = parts[i2];\n if (i2 === 1 && p === \"\" && parts[0] === \"\")\n continue;\n if (p === \".\" || p === \"\") {\n didSomething = true;\n parts.splice(i2, 1);\n i2--;\n }\n }\n if (parts[0] === \".\" && parts.length === 2 && (parts[1] === \".\" || parts[1] === \"\")) {\n didSomething = true;\n parts.pop();\n }\n }\n let dd = 0;\n while (-1 !== (dd = parts.indexOf(\"..\", dd + 1))) {\n const p = parts[dd - 1];\n if (p && p !== \".\" && p !== \"..\" && p !== \"**\") {\n didSomething = true;\n const needDot = dd === 1 && parts[dd + 1] === \"**\";\n const splin = needDot ? [\".\"] : [];\n parts.splice(dd - 1, 2, ...splin);\n if (parts.length === 0)\n parts.push(\"\");\n dd -= 2;\n }\n }\n }\n } while (didSomething);\n return globParts;\n }\n // second phase: multi-pattern dedupes\n // {<pre>/*/<rest>,<pre>/<p>/<rest>} -> <pre>/*/<rest>\n // {<pre>/<rest>,<pre>/<rest>} -> <pre>/<rest>\n // {<pre>/**/<rest>,<pre>/<rest>} -> <pre>/**/<rest>\n //\n // {<pre>/**/<rest>,<pre>/**/<p>/<rest>} -> <pre>/**/<rest>\n // ^-- not valid because ** doens't follow symlinks\n secondPhasePreProcess(globParts) {\n for (let i2 = 0; i2 < globParts.length - 1; i2++) {\n for (let j = i2 + 1; j < globParts.length; j++) {\n const matched = this.partsMatch(globParts[i2], globParts[j], !this.preserveMultipleSlashes);\n if (!matched)\n continue;\n globParts[i2] = matched;\n globParts[j] = [];\n }\n }\n return globParts.filter((gs) => gs.length);\n }\n partsMatch(a, b, emptyGSMatch = false) {\n let ai = 0;\n let bi = 0;\n let result = [];\n let which = \"\";\n while (ai < a.length && bi < b.length) {\n if (a[ai] === b[bi]) {\n result.push(which === \"b\" ? b[bi] : a[ai]);\n ai++;\n bi++;\n } else if (emptyGSMatch && a[ai] === \"**\" && b[bi] === a[ai + 1]) {\n result.push(a[ai]);\n ai++;\n } else if (emptyGSMatch && b[bi] === \"**\" && a[ai] === b[bi + 1]) {\n result.push(b[bi]);\n bi++;\n } else if (a[ai] === \"*\" && b[bi] && (this.options.dot || !b[bi].startsWith(\".\")) && b[bi] !== \"**\") {\n if (which === \"b\")\n return false;\n which = \"a\";\n result.push(a[ai]);\n ai++;\n bi++;\n } else if (b[bi] === \"*\" && a[ai] && (this.options.dot || !a[ai].startsWith(\".\")) && a[ai] !== \"**\") {\n if (which === \"a\")\n return false;\n which = \"b\";\n result.push(b[bi]);\n ai++;\n bi++;\n } else {\n return false;\n }\n }\n return a.length === b.length && result;\n }\n parseNegate() {\n if (this.nonegate)\n return;\n const pattern = this.pattern;\n let negate = false;\n let negateOffset = 0;\n for (let i2 = 0; i2 < pattern.length && pattern.charAt(i2) === \"!\"; i2++) {\n negate = !negate;\n negateOffset++;\n }\n if (negateOffset)\n this.pattern = pattern.slice(negateOffset);\n this.negate = negate;\n }\n // set partial to true to test if, for example,\n // \"/a/b\" matches the start of \"/*/b/*/d\"\n // Partial means, if you run out of file before you run\n // out of pattern, then that's fine, as long as all\n // the parts match.\n matchOne(file, pattern, partial = false) {\n const options = this.options;\n if (this.isWindows) {\n const fileDrive = typeof file[0] === \"string\" && /^[a-z]:$/i.test(file[0]);\n const fileUNC = !fileDrive && file[0] === \"\" && file[1] === \"\" && file[2] === \"?\" && /^[a-z]:$/i.test(file[3]);\n const patternDrive = typeof pattern[0] === \"string\" && /^[a-z]:$/i.test(pattern[0]);\n const patternUNC = !patternDrive && pattern[0] === \"\" && pattern[1] === \"\" && pattern[2] === \"?\" && typeof pattern[3] === \"string\" && /^[a-z]:$/i.test(pattern[3]);\n const fdi = fileUNC ? 3 : fileDrive ? 0 : void 0;\n const pdi = patternUNC ? 3 : patternDrive ? 0 : void 0;\n if (typeof fdi === \"number\" && typeof pdi === \"number\") {\n const [fd, pd] = [file[fdi], pattern[pdi]];\n if (fd.toLowerCase() === pd.toLowerCase()) {\n pattern[pdi] = fd;\n if (pdi > fdi) {\n pattern = pattern.slice(pdi);\n } else if (fdi > pdi) {\n file = file.slice(fdi);\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n file = this.levelTwoFileOptimize(file);\n }\n this.debug(\"matchOne\", this, { file, pattern });\n this.debug(\"matchOne\", file.length, pattern.length);\n for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n this.debug(\"matchOne loop\");\n var p = pattern[pi];\n var f = file[fi];\n this.debug(pattern, p, f);\n if (p === false) {\n return false;\n }\n if (p === GLOBSTAR) {\n this.debug(\"GLOBSTAR\", [pattern, p, f]);\n var fr = fi;\n var pr = pi + 1;\n if (pr === pl) {\n this.debug(\"** at the end\");\n for (; fi < fl; fi++) {\n if (file[fi] === \".\" || file[fi] === \"..\" || !options.dot && file[fi].charAt(0) === \".\")\n return false;\n }\n return true;\n }\n while (fr < fl) {\n var swallowee = file[fr];\n this.debug(\"\\nglobstar while\", file, fr, pattern, pr, swallowee);\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug(\"globstar found match!\", fr, fl, swallowee);\n return true;\n } else {\n if (swallowee === \".\" || swallowee === \"..\" || !options.dot && swallowee.charAt(0) === \".\") {\n this.debug(\"dot detected!\", file, fr, pattern, pr);\n break;\n }\n this.debug(\"globstar swallow a segment, and continue\");\n fr++;\n }\n }\n if (partial) {\n this.debug(\"\\n>>> no match, partial?\", file, fr, pattern, pr);\n if (fr === fl) {\n return true;\n }\n }\n return false;\n }\n let hit;\n if (typeof p === \"string\") {\n hit = f === p;\n this.debug(\"string match\", p, f, hit);\n } else {\n hit = p.test(f);\n this.debug(\"pattern match\", p, f, hit);\n }\n if (!hit)\n return false;\n }\n if (fi === fl && pi === pl) {\n return true;\n } else if (fi === fl) {\n return partial;\n } else if (pi === pl) {\n return fi === fl - 1 && file[fi] === \"\";\n } else {\n throw new Error(\"wtf?\");\n }\n }\n braceExpand() {\n return braceExpand(this.pattern, this.options);\n }\n parse(pattern) {\n assertValidPattern(pattern);\n const options = this.options;\n if (pattern === \"**\")\n return GLOBSTAR;\n if (pattern === \"\")\n return \"\";\n let m;\n let fastTest = null;\n if (m = pattern.match(starRE)) {\n fastTest = options.dot ? starTestDot : starTest;\n } else if (m = pattern.match(starDotExtRE)) {\n fastTest = (options.nocase ? options.dot ? starDotExtTestNocaseDot : starDotExtTestNocase : options.dot ? starDotExtTestDot : starDotExtTest)(m[1]);\n } else if (m = pattern.match(qmarksRE)) {\n fastTest = (options.nocase ? options.dot ? qmarksTestNocaseDot : qmarksTestNocase : options.dot ? qmarksTestDot : qmarksTest)(m);\n } else if (m = pattern.match(starDotStarRE)) {\n fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n } else if (m = pattern.match(dotStarRE)) {\n fastTest = dotStarTest;\n }\n const re = AST.fromGlob(pattern, this.options).toMMPattern();\n if (fastTest && typeof re === \"object\") {\n Reflect.defineProperty(re, \"test\", { value: fastTest });\n }\n return re;\n }\n makeRe() {\n if (this.regexp || this.regexp === false)\n return this.regexp;\n const set = this.set;\n if (!set.length) {\n this.regexp = false;\n return this.regexp;\n }\n const options = this.options;\n const twoStar = options.noglobstar ? star2 : options.dot ? twoStarDot : twoStarNoDot;\n const flags = new Set(options.nocase ? [\"i\"] : []);\n let re = set.map((pattern) => {\n const pp = pattern.map((p) => {\n if (p instanceof RegExp) {\n for (const f of p.flags.split(\"\"))\n flags.add(f);\n }\n return typeof p === \"string\" ? regExpEscape2(p) : p === GLOBSTAR ? GLOBSTAR : p._src;\n });\n pp.forEach((p, i2) => {\n const next = pp[i2 + 1];\n const prev = pp[i2 - 1];\n if (p !== GLOBSTAR || prev === GLOBSTAR) {\n return;\n }\n if (prev === void 0) {\n if (next !== void 0 && next !== GLOBSTAR) {\n pp[i2 + 1] = \"(?:\\\\/|\" + twoStar + \"\\\\/)?\" + next;\n } else {\n pp[i2] = twoStar;\n }\n } else if (next === void 0) {\n pp[i2 - 1] = prev + \"(?:\\\\/|\" + twoStar + \")?\";\n } else if (next !== GLOBSTAR) {\n pp[i2 - 1] = prev + \"(?:\\\\/|\\\\/\" + twoStar + \"\\\\/)\" + next;\n pp[i2 + 1] = GLOBSTAR;\n }\n });\n return pp.filter((p) => p !== GLOBSTAR).join(\"/\");\n }).join(\"|\");\n const [open, close] = set.length > 1 ? [\"(?:\", \")\"] : [\"\", \"\"];\n re = \"^\" + open + re + close + \"$\";\n if (this.negate)\n re = \"^(?!\" + re + \").+$\";\n try {\n this.regexp = new RegExp(re, [...flags].join(\"\"));\n } catch (ex) {\n this.regexp = false;\n }\n return this.regexp;\n }\n slashSplit(p) {\n if (this.preserveMultipleSlashes) {\n return p.split(\"/\");\n } else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n return [\"\", ...p.split(/\\/+/)];\n } else {\n return p.split(/\\/+/);\n }\n }\n match(f, partial = this.partial) {\n this.debug(\"match\", f, this.pattern);\n if (this.comment) {\n return false;\n }\n if (this.empty) {\n return f === \"\";\n }\n if (f === \"/\" && partial) {\n return true;\n }\n const options = this.options;\n if (this.isWindows) {\n f = f.split(\"\\\\\").join(\"/\");\n }\n const ff = this.slashSplit(f);\n this.debug(this.pattern, \"split\", ff);\n const set = this.set;\n this.debug(this.pattern, \"set\", set);\n let filename = ff[ff.length - 1];\n if (!filename) {\n for (let i2 = ff.length - 2; !filename && i2 >= 0; i2--) {\n filename = ff[i2];\n }\n }\n for (let i2 = 0; i2 < set.length; i2++) {\n const pattern = set[i2];\n let file = ff;\n if (options.matchBase && pattern.length === 1) {\n file = [filename];\n }\n const hit = this.matchOne(file, pattern, partial);\n if (hit) {\n if (options.flipNegate) {\n return true;\n }\n return !this.negate;\n }\n }\n if (options.flipNegate) {\n return false;\n }\n return this.negate;\n }\n static defaults(def) {\n return minimatch.defaults(def).Minimatch;\n }\n};\nminimatch.AST = AST;\nminimatch.Minimatch = Minimatch;\nminimatch.escape = escape;\nminimatch.unescape = unescape;\n\n// src/utils/query-nonce-meta-tag-content.ts\nfunction queryNonceMetaTagContent(doc) {\n var _a, _b, _c;\n return (_c = (_b = (_a = doc.head) == null ? void 0 : _a.querySelector('meta[name=\"csp-nonce\"]')) == null ? void 0 : _b.getAttribute(\"content\")) != null ? _c : void 0;\n}\n\n// src/utils/regular-expression.ts\nvar escapeRegExpSpecialCharacters = (text) => {\n return text.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n};\n\n// src/utils/result.ts\nvar result_exports = {};\n__export(result_exports, {\n err: () => err,\n map: () => map,\n ok: () => ok,\n unwrap: () => unwrap,\n unwrapErr: () => unwrapErr\n});\nvar ok = (value) => ({\n isOk: true,\n isErr: false,\n value\n});\nvar err = (value) => ({\n isOk: false,\n isErr: true,\n value\n});\nfunction map(result, fn) {\n if (result.isOk) {\n const val = fn(result.value);\n if (val instanceof Promise) {\n return val.then((newVal) => ok(newVal));\n } else {\n return ok(val);\n }\n }\n if (result.isErr) {\n const value = result.value;\n return err(value);\n }\n throw \"should never get here\";\n}\nvar unwrap = (result) => {\n if (result.isOk) {\n return result.value;\n } else {\n throw result.value;\n }\n};\nvar unwrapErr = (result) => {\n if (result.isErr) {\n return result.value;\n } else {\n throw result.value;\n }\n};\n\n// src/utils/style.ts\nfunction createStyleSheetIfNeededAndSupported(styles2) {\n return void 0;\n}\n\n// src/utils/shadow-root.ts\nvar globalStyleSheet;\nfunction createShadowRoot(cmpMeta) {\n var _a;\n const opts = { mode: \"open\" };\n const shadowRoot = this.attachShadow(opts);\n if (globalStyleSheet === void 0) globalStyleSheet = (_a = createStyleSheetIfNeededAndSupported()) != null ? _a : null;\n if (globalStyleSheet) {\n if (supportsMutableAdoptedStyleSheets) {\n shadowRoot.adoptedStyleSheets.push(globalStyleSheet);\n } else {\n shadowRoot.adoptedStyleSheets = [...shadowRoot.adoptedStyleSheets, globalStyleSheet];\n }\n }\n}\nvar createTime = (fnName, tagName = \"\") => {\n {\n return () => {\n return;\n };\n }\n};\nvar uniqueTime = (key, measureText) => {\n {\n return () => {\n return;\n };\n }\n};\nvar rootAppliedStyles = /* @__PURE__ */ new WeakMap();\nvar registerStyle = (scopeId2, cssText, allowCS) => {\n let style = styles.get(scopeId2);\n if (supportsConstructableStylesheets && allowCS) {\n style = style || new CSSStyleSheet();\n if (typeof style === \"string\") {\n style = cssText;\n } else {\n style.replaceSync(cssText);\n }\n } else {\n style = cssText;\n }\n styles.set(scopeId2, style);\n};\nvar addStyle = (styleContainerNode, cmpMeta, mode) => {\n var _a, _b, _c;\n const scopeId2 = getScopeId(cmpMeta);\n const style = styles.get(scopeId2);\n if (!win.document) {\n return scopeId2;\n }\n styleContainerNode = styleContainerNode.nodeType === 11 /* DocumentFragment */ ? styleContainerNode : win.document;\n if (style) {\n if (typeof style === \"string\") {\n styleContainerNode = styleContainerNode.head || styleContainerNode;\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n let styleElm;\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());\n }\n if (!appliedStyles.has(scopeId2)) {\n styleElm = win.document.createElement(\"style\");\n styleElm.innerHTML = style;\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);\n if (nonce != null) {\n styleElm.setAttribute(\"nonce\", nonce);\n }\n if (!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */)) {\n if (styleContainerNode.nodeName === \"HEAD\") {\n const preconnectLinks = styleContainerNode.querySelectorAll(\"link[rel=preconnect]\");\n const referenceNode2 = preconnectLinks.length > 0 ? preconnectLinks[preconnectLinks.length - 1].nextSibling : styleContainerNode.querySelector(\"style\");\n styleContainerNode.insertBefore(\n styleElm,\n (referenceNode2 == null ? void 0 : referenceNode2.parentNode) === styleContainerNode ? referenceNode2 : null\n );\n } else if (\"host\" in styleContainerNode) {\n if (supportsConstructableStylesheets) {\n const currentWindow = (_b = styleContainerNode.defaultView) != null ? _b : styleContainerNode.ownerDocument.defaultView;\n const stylesheet = new currentWindow.CSSStyleSheet();\n stylesheet.replaceSync(style);\n if (supportsMutableAdoptedStyleSheets) {\n styleContainerNode.adoptedStyleSheets.unshift(stylesheet);\n } else {\n styleContainerNode.adoptedStyleSheets = [stylesheet, ...styleContainerNode.adoptedStyleSheets];\n }\n } else {\n const existingStyleContainer = styleContainerNode.querySelector(\"style\");\n if (existingStyleContainer) {\n existingStyleContainer.innerHTML = style + existingStyleContainer.innerHTML;\n } else {\n styleContainerNode.prepend(styleElm);\n }\n }\n } else {\n styleContainerNode.append(styleElm);\n }\n }\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n styleContainerNode.insertBefore(styleElm, null);\n }\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n styleElm.innerHTML += SLOT_FB_CSS;\n }\n if (appliedStyles) {\n appliedStyles.add(scopeId2);\n }\n }\n } else {\n let appliedStyles = rootAppliedStyles.get(styleContainerNode);\n if (!appliedStyles) {\n rootAppliedStyles.set(styleContainerNode, appliedStyles = /* @__PURE__ */ new Set());\n }\n if (!appliedStyles.has(scopeId2)) {\n const currentWindow = (_c = styleContainerNode.defaultView) != null ? _c : styleContainerNode.ownerDocument.defaultView;\n let stylesheet;\n if (style.constructor === currentWindow.CSSStyleSheet) {\n stylesheet = style;\n } else {\n stylesheet = new currentWindow.CSSStyleSheet();\n for (let i2 = 0; i2 < style.cssRules.length; i2++) {\n stylesheet.insertRule(style.cssRules[i2].cssText, i2);\n }\n }\n if (supportsMutableAdoptedStyleSheets) {\n styleContainerNode.adoptedStyleSheets.push(stylesheet);\n } else {\n styleContainerNode.adoptedStyleSheets = [...styleContainerNode.adoptedStyleSheets, stylesheet];\n }\n appliedStyles.add(scopeId2);\n }\n }\n }\n return scopeId2;\n};\nvar attachStyles = (hostRef) => {\n const cmpMeta = hostRef.$cmpMeta$;\n const elm = hostRef.$hostElement$;\n const flags = cmpMeta.$flags$;\n const endAttachStyles = createTime(\"attachStyles\", cmpMeta.$tagName$);\n const scopeId2 = addStyle(\n elm.shadowRoot ? elm.shadowRoot : elm.getRootNode(),\n cmpMeta);\n if (flags & 10 /* needsScopedEncapsulation */) {\n elm[\"s-sc\"] = scopeId2;\n elm.classList.add(scopeId2 + \"-h\");\n }\n endAttachStyles();\n};\nvar getScopeId = (cmp, mode) => \"sc-\" + (cmp.$tagName$);\nvar h = (nodeName, vnodeData, ...children) => {\n if (typeof nodeName === \"string\") {\n nodeName = transformTag(nodeName);\n }\n let child = null;\n let key = null;\n let simple = false;\n let lastSimple = false;\n const vNodeChildren = [];\n const walk = (c) => {\n for (let i2 = 0; i2 < c.length; i2++) {\n child = c[i2];\n if (Array.isArray(child)) {\n walk(child);\n } else if (child != null && typeof child !== \"boolean\") {\n if (simple = typeof nodeName !== \"function\" && !isComplexType(child)) {\n child = String(child);\n }\n if (simple && lastSimple) {\n vNodeChildren[vNodeChildren.length - 1].$text$ += child;\n } else {\n vNodeChildren.push(simple ? newVNode(null, child) : child);\n }\n lastSimple = simple;\n }\n }\n };\n walk(children);\n if (vnodeData) {\n if (vnodeData.key) {\n key = vnodeData.key;\n }\n {\n const classData = vnodeData.className || vnodeData.class;\n if (classData) {\n vnodeData.class = typeof classData !== \"object\" ? classData : Object.keys(classData).filter((k) => classData[k]).join(\" \");\n }\n }\n }\n const vnode = newVNode(nodeName, null);\n vnode.$attrs$ = vnodeData;\n if (vNodeChildren.length > 0) {\n vnode.$children$ = vNodeChildren;\n }\n {\n vnode.$key$ = key;\n }\n return vnode;\n};\nvar newVNode = (tag, text) => {\n const vnode = {\n $flags$: 0,\n $tag$: tag,\n $text$: text,\n $elm$: null,\n $children$: null\n };\n {\n vnode.$attrs$ = null;\n }\n {\n vnode.$key$ = null;\n }\n return vnode;\n};\nvar Host = {};\nvar isHost = (node) => node && node.$tag$ === Host;\nvar createSupportsRuleRe = (selector) => {\n const safeSelector2 = escapeRegExpSpecialCharacters(selector);\n return new RegExp(\n // First capture group: match any context before the selector that's not inside @supports selector()\n // Using negative lookahead to avoid matching inside @supports selector(...) condition\n `(^|[^@]|@(?!supports\\\\s+selector\\\\s*\\\\([^{]*?${safeSelector2}))(${safeSelector2}\\\\b)`,\n \"g\"\n );\n};\ncreateSupportsRuleRe(\"::slotted\");\ncreateSupportsRuleRe(\":host\");\ncreateSupportsRuleRe(\":host-context\");\nvar parsePropertyValue = (propValue, propType, isFormAssociated) => {\n if (propValue != null && !isComplexType(propValue)) {\n if (propType & 4 /* Boolean */) {\n {\n return propValue === \"false\" ? false : propValue === \"\" || !!propValue;\n }\n }\n if (propType & 1 /* String */) {\n return String(propValue);\n }\n return propValue;\n }\n return propValue;\n};\nvar emitEvent = (elm, name, opts) => {\n const ev = plt.ce(name, opts);\n elm.dispatchEvent(ev);\n return ev;\n};\nvar setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRender) => {\n if (oldValue === newValue) {\n return;\n }\n let isProp = isMemberInElement(elm, memberName);\n let ln = memberName.toLowerCase();\n if (memberName === \"class\") {\n const classList = elm.classList;\n const oldClasses = parseClassList(oldValue);\n let newClasses = parseClassList(newValue);\n {\n classList.remove(...oldClasses.filter((c) => c && !newClasses.includes(c)));\n classList.add(...newClasses.filter((c) => c && !oldClasses.includes(c)));\n }\n } else if (memberName === \"style\") {\n {\n for (const prop in oldValue) {\n if (!newValue || newValue[prop] == null) {\n if (prop.includes(\"-\")) {\n elm.style.removeProperty(prop);\n } else {\n elm.style[prop] = \"\";\n }\n }\n }\n }\n for (const prop in newValue) {\n if (!oldValue || newValue[prop] !== oldValue[prop]) {\n if (prop.includes(\"-\")) {\n elm.style.setProperty(prop, newValue[prop]);\n } else {\n elm.style[prop] = newValue[prop];\n }\n }\n }\n } else if (memberName === \"key\") ; else if (memberName === \"ref\") {\n if (newValue) {\n newValue(elm);\n }\n } else if ((!isProp ) && memberName[0] === \"o\" && memberName[1] === \"n\") {\n if (memberName[2] === \"-\") {\n memberName = memberName.slice(3);\n } else if (isMemberInElement(win, ln)) {\n memberName = ln.slice(2);\n } else {\n memberName = ln[2] + memberName.slice(3);\n }\n if (oldValue || newValue) {\n const capture = memberName.endsWith(CAPTURE_EVENT_SUFFIX);\n memberName = memberName.replace(CAPTURE_EVENT_REGEX, \"\");\n if (oldValue) {\n plt.rel(elm, memberName, oldValue, capture);\n }\n if (newValue) {\n plt.ael(elm, memberName, newValue, capture);\n }\n }\n } else {\n const isComplex = isComplexType(newValue);\n if ((isProp || isComplex && newValue !== null) && !isSvg) {\n try {\n if (!elm.tagName.includes(\"-\")) {\n const n = newValue == null ? \"\" : newValue;\n if (memberName === \"list\") {\n isProp = false;\n } else if (oldValue == null || elm[memberName] != n) {\n if (typeof elm.__lookupSetter__(memberName) === \"function\") {\n elm[memberName] = n;\n } else {\n elm.setAttribute(memberName, n);\n }\n }\n } else if (elm[memberName] !== newValue) {\n elm[memberName] = newValue;\n }\n } catch (e) {\n }\n }\n if (newValue == null || newValue === false) {\n if (newValue !== false || elm.getAttribute(memberName) === \"\") {\n {\n elm.removeAttribute(memberName);\n }\n }\n } else if ((!isProp || flags & 4 /* isHost */ || isSvg) && !isComplex && elm.nodeType === 1 /* ElementNode */) {\n newValue = newValue === true ? \"\" : newValue;\n {\n elm.setAttribute(memberName, newValue);\n }\n }\n }\n};\nvar parseClassListRegex = /\\s/;\nvar parseClassList = (value) => {\n if (typeof value === \"object\" && value && \"baseVal\" in value) {\n value = value.baseVal;\n }\n if (!value || typeof value !== \"string\") {\n return [];\n }\n return value.split(parseClassListRegex);\n};\nvar CAPTURE_EVENT_SUFFIX = \"Capture\";\nvar CAPTURE_EVENT_REGEX = new RegExp(CAPTURE_EVENT_SUFFIX + \"$\");\n\n// src/runtime/vdom/update-element.ts\nvar updateElement = (oldVnode, newVnode, isSvgMode2, isInitialRender) => {\n const elm = newVnode.$elm$.nodeType === 11 /* DocumentFragment */ && newVnode.$elm$.host ? newVnode.$elm$.host : newVnode.$elm$;\n const oldVnodeAttrs = oldVnode && oldVnode.$attrs$ || {};\n const newVnodeAttrs = newVnode.$attrs$ || {};\n {\n for (const memberName of sortedAttrNames(Object.keys(oldVnodeAttrs))) {\n if (!(memberName in newVnodeAttrs)) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n void 0,\n isSvgMode2,\n newVnode.$flags$);\n }\n }\n }\n for (const memberName of sortedAttrNames(Object.keys(newVnodeAttrs))) {\n setAccessor(\n elm,\n memberName,\n oldVnodeAttrs[memberName],\n newVnodeAttrs[memberName],\n isSvgMode2,\n newVnode.$flags$);\n }\n};\nfunction sortedAttrNames(attrNames) {\n return attrNames.includes(\"ref\") ? (\n // we need to sort these to ensure that `'ref'` is the last attr\n [...attrNames.filter((attr) => attr !== \"ref\"), \"ref\"]\n ) : (\n // no need to sort, return the original array\n attrNames\n );\n}\nvar hostTagName;\nvar isSvgMode = false;\nvar createElm = (oldParentVNode, newParentVNode, childIndex) => {\n const newVNode2 = newParentVNode.$children$[childIndex];\n let i2 = 0;\n let elm;\n let childNode;\n {\n if (!isSvgMode) {\n isSvgMode = newVNode2.$tag$ === \"svg\";\n }\n if (!win.document) {\n throw new Error(\n \"You are trying to render a Stencil component in an environment that doesn't support the DOM. Make sure to populate the [`window`](https://developer.mozilla.org/en-US/docs/Web/API/Window/window) object before rendering a component.\"\n );\n }\n elm = newVNode2.$elm$ = win.document.createElementNS(\n isSvgMode ? SVG_NS : HTML_NS,\n newVNode2.$tag$\n ) ;\n if (isSvgMode && newVNode2.$tag$ === \"foreignObject\") {\n isSvgMode = false;\n }\n {\n updateElement(null, newVNode2, isSvgMode);\n }\n if (newVNode2.$children$) {\n const appendTarget = newVNode2.$tag$ === \"template\" ? elm.content : elm;\n for (i2 = 0; i2 < newVNode2.$children$.length; ++i2) {\n childNode = createElm(oldParentVNode, newVNode2, i2);\n if (childNode) {\n appendTarget.appendChild(childNode);\n }\n }\n }\n {\n if (newVNode2.$tag$ === \"svg\") {\n isSvgMode = false;\n } else if (elm.tagName === \"foreignObject\") {\n isSvgMode = true;\n }\n }\n }\n elm[\"s-hn\"] = hostTagName;\n return elm;\n};\nvar addVnodes = (parentElm, before, parentVNode, vnodes, startIdx, endIdx) => {\n let containerElm = parentElm;\n let childNode;\n if (containerElm.shadowRoot && containerElm.tagName === hostTagName) {\n containerElm = containerElm.shadowRoot;\n }\n if (parentVNode.$tag$ === \"template\") {\n containerElm = containerElm.content;\n }\n for (; startIdx <= endIdx; ++startIdx) {\n if (vnodes[startIdx]) {\n childNode = createElm(null, parentVNode, startIdx);\n if (childNode) {\n vnodes[startIdx].$elm$ = childNode;\n insertBefore(containerElm, childNode, before);\n }\n }\n }\n};\nvar removeVnodes = (vnodes, startIdx, endIdx) => {\n for (let index = startIdx; index <= endIdx; ++index) {\n const vnode = vnodes[index];\n if (vnode) {\n const elm = vnode.$elm$;\n nullifyVNodeRefs(vnode);\n if (elm) {\n elm.remove();\n }\n }\n }\n};\nvar updateChildren = (parentElm, oldCh, newVNode2, newCh, isInitialRender = false) => {\n let oldStartIdx = 0;\n let newStartIdx = 0;\n let idxInOld = 0;\n let i2 = 0;\n let oldEndIdx = oldCh.length - 1;\n let oldStartVnode = oldCh[0];\n let oldEndVnode = oldCh[oldEndIdx];\n let newEndIdx = newCh.length - 1;\n let newStartVnode = newCh[0];\n let newEndVnode = newCh[newEndIdx];\n let node;\n let elmToMove;\n const containerElm = newVNode2.$tag$ === \"template\" ? parentElm.content : parentElm;\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\n if (oldStartVnode == null) {\n oldStartVnode = oldCh[++oldStartIdx];\n } else if (oldEndVnode == null) {\n oldEndVnode = oldCh[--oldEndIdx];\n } else if (newStartVnode == null) {\n newStartVnode = newCh[++newStartIdx];\n } else if (newEndVnode == null) {\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newStartVnode, isInitialRender)) {\n patch(oldStartVnode, newStartVnode, isInitialRender);\n oldStartVnode = oldCh[++oldStartIdx];\n newStartVnode = newCh[++newStartIdx];\n } else if (isSameVnode(oldEndVnode, newEndVnode, isInitialRender)) {\n patch(oldEndVnode, newEndVnode, isInitialRender);\n oldEndVnode = oldCh[--oldEndIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldStartVnode, newEndVnode, isInitialRender)) {\n patch(oldStartVnode, newEndVnode, isInitialRender);\n insertBefore(containerElm, oldStartVnode.$elm$, oldEndVnode.$elm$.nextSibling);\n oldStartVnode = oldCh[++oldStartIdx];\n newEndVnode = newCh[--newEndIdx];\n } else if (isSameVnode(oldEndVnode, newStartVnode, isInitialRender)) {\n patch(oldEndVnode, newStartVnode, isInitialRender);\n insertBefore(containerElm, oldEndVnode.$elm$, oldStartVnode.$elm$);\n oldEndVnode = oldCh[--oldEndIdx];\n newStartVnode = newCh[++newStartIdx];\n } else {\n idxInOld = -1;\n {\n for (i2 = oldStartIdx; i2 <= oldEndIdx; ++i2) {\n if (oldCh[i2] && oldCh[i2].$key$ !== null && oldCh[i2].$key$ === newStartVnode.$key$) {\n idxInOld = i2;\n break;\n }\n }\n }\n if (idxInOld >= 0) {\n elmToMove = oldCh[idxInOld];\n if (elmToMove.$tag$ !== newStartVnode.$tag$) {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, idxInOld);\n } else {\n patch(elmToMove, newStartVnode, isInitialRender);\n oldCh[idxInOld] = void 0;\n node = elmToMove.$elm$;\n }\n newStartVnode = newCh[++newStartIdx];\n } else {\n node = createElm(oldCh && oldCh[newStartIdx], newVNode2, newStartIdx);\n newStartVnode = newCh[++newStartIdx];\n }\n if (node) {\n {\n insertBefore(oldStartVnode.$elm$.parentNode, node, oldStartVnode.$elm$);\n }\n }\n }\n }\n if (oldStartIdx > oldEndIdx) {\n addVnodes(\n parentElm,\n newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].$elm$,\n newVNode2,\n newCh,\n newStartIdx,\n newEndIdx\n );\n } else if (newStartIdx > newEndIdx) {\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\n }\n};\nvar isSameVnode = (leftVNode, rightVNode, isInitialRender = false) => {\n if (leftVNode.$tag$ === rightVNode.$tag$) {\n if (!isInitialRender) {\n return leftVNode.$key$ === rightVNode.$key$;\n }\n if (isInitialRender && !leftVNode.$key$ && rightVNode.$key$) {\n leftVNode.$key$ = rightVNode.$key$;\n }\n return true;\n }\n return false;\n};\nvar patch = (oldVNode, newVNode2, isInitialRender = false) => {\n const elm = newVNode2.$elm$ = oldVNode.$elm$;\n const oldChildren = oldVNode.$children$;\n const newChildren = newVNode2.$children$;\n const tag = newVNode2.$tag$;\n {\n {\n isSvgMode = tag === \"svg\" ? true : tag === \"foreignObject\" ? false : isSvgMode;\n }\n {\n updateElement(oldVNode, newVNode2, isSvgMode);\n }\n if (oldChildren !== null && newChildren !== null) {\n updateChildren(elm, oldChildren, newVNode2, newChildren, isInitialRender);\n } else if (newChildren !== null) {\n addVnodes(elm, null, newVNode2, newChildren, 0, newChildren.length - 1);\n } else if (\n // don't do this on initial render as it can cause non-hydrated content to be removed\n !isInitialRender && BUILD.updatable && oldChildren !== null\n ) {\n removeVnodes(oldChildren, 0, oldChildren.length - 1);\n } else ;\n if (isSvgMode && tag === \"svg\") {\n isSvgMode = false;\n }\n }\n};\nvar nullifyVNodeRefs = (vNode) => {\n {\n vNode.$attrs$ && vNode.$attrs$.ref && vNode.$attrs$.ref(null);\n vNode.$children$ && vNode.$children$.map(nullifyVNodeRefs);\n }\n};\nvar insertBefore = (parent, newNode, reference) => {\n {\n return parent == null ? void 0 : parent.insertBefore(newNode, reference);\n }\n};\nvar renderVdom = (hostRef, renderFnResults, isInitialLoad = false) => {\n const hostElm = hostRef.$hostElement$;\n const oldVNode = hostRef.$vnode$ || newVNode(null, null);\n const isHostElement = isHost(renderFnResults);\n const rootVnode = isHostElement ? renderFnResults : h(null, null, renderFnResults);\n hostTagName = hostElm.tagName;\n if (isInitialLoad && rootVnode.$attrs$) {\n for (const key of Object.keys(rootVnode.$attrs$)) {\n if (hostElm.hasAttribute(key) && ![\"key\", \"ref\", \"style\", \"class\"].includes(key)) {\n rootVnode.$attrs$[key] = hostElm[key];\n }\n }\n }\n rootVnode.$tag$ = null;\n rootVnode.$flags$ |= 4 /* isHost */;\n hostRef.$vnode$ = rootVnode;\n rootVnode.$elm$ = oldVNode.$elm$ = hostElm.shadowRoot || hostElm ;\n patch(oldVNode, rootVnode, isInitialLoad);\n};\n\n// src/runtime/update-component.ts\nvar attachToAncestor = (hostRef, ancestorComponent) => {\n if (ancestorComponent && !hostRef.$onRenderResolve$ && ancestorComponent[\"s-p\"]) {\n const index = ancestorComponent[\"s-p\"].push(\n new Promise(\n (r) => hostRef.$onRenderResolve$ = () => {\n ancestorComponent[\"s-p\"].splice(index - 1, 1);\n r();\n }\n )\n );\n }\n};\nvar scheduleUpdate = (hostRef, isInitialLoad) => {\n {\n hostRef.$flags$ |= 16 /* isQueuedForUpdate */;\n }\n if (hostRef.$flags$ & 4 /* isWaitingForChildren */) {\n hostRef.$flags$ |= 512 /* needsRerender */;\n return;\n }\n attachToAncestor(hostRef, hostRef.$ancestorComponent$);\n const dispatch = () => dispatchHooks(hostRef, isInitialLoad);\n if (isInitialLoad) {\n queueMicrotask(() => {\n dispatch();\n });\n return;\n }\n return writeTask(dispatch) ;\n};\nvar dispatchHooks = (hostRef, isInitialLoad) => {\n const elm = hostRef.$hostElement$;\n const endSchedule = createTime(\"scheduleUpdate\", hostRef.$cmpMeta$.$tagName$);\n const instance = hostRef.$lazyInstance$ ;\n if (!instance) {\n throw new Error(\n `Can't render component <${elm.tagName.toLowerCase()} /> with invalid Stencil runtime! Make sure this imported component is compiled with a \\`externalRuntime: true\\` flag. For more information, please refer to https://stenciljs.com/docs/custom-elements#externalruntime`\n );\n }\n let maybePromise;\n if (isInitialLoad) {\n {\n if (hostRef.$fetchedCbList$.length) {\n hostRef.$fetchedCbList$.forEach((cb) => cb(elm));\n }\n }\n maybePromise = safeCall(instance, \"componentWillLoad\", void 0, elm);\n } else {\n maybePromise = safeCall(instance, \"componentWillUpdate\", void 0, elm);\n }\n maybePromise = enqueue(maybePromise, () => safeCall(instance, \"componentWillRender\", void 0, elm));\n endSchedule();\n return enqueue(maybePromise, () => updateComponent(hostRef, instance, isInitialLoad));\n};\nvar enqueue = (maybePromise, fn) => isPromisey(maybePromise) ? maybePromise.then(fn).catch((err2) => {\n console.error(err2);\n fn();\n}) : fn();\nvar isPromisey = (maybePromise) => maybePromise instanceof Promise || maybePromise && maybePromise.then && typeof maybePromise.then === \"function\";\nvar updateComponent = async (hostRef, instance, isInitialLoad) => {\n var _a;\n const elm = hostRef.$hostElement$;\n const endUpdate = createTime(\"update\", hostRef.$cmpMeta$.$tagName$);\n const rc = elm[\"s-rc\"];\n if (isInitialLoad) {\n attachStyles(hostRef);\n }\n const endRender = createTime(\"render\", hostRef.$cmpMeta$.$tagName$);\n {\n callRender(hostRef, instance, elm, isInitialLoad);\n }\n if (rc) {\n rc.map((cb) => cb());\n elm[\"s-rc\"] = void 0;\n }\n endRender();\n endUpdate();\n {\n const childrenPromises = (_a = elm[\"s-p\"]) != null ? _a : [];\n const postUpdate = () => postUpdateComponent(hostRef);\n if (childrenPromises.length === 0) {\n postUpdate();\n } else {\n Promise.all(childrenPromises).then(postUpdate);\n hostRef.$flags$ |= 4 /* isWaitingForChildren */;\n childrenPromises.length = 0;\n }\n }\n};\nvar callRender = (hostRef, instance, elm, isInitialLoad) => {\n try {\n instance = instance.render() ;\n {\n hostRef.$flags$ &= -17 /* isQueuedForUpdate */;\n }\n {\n hostRef.$flags$ |= 2 /* hasRendered */;\n }\n {\n {\n {\n renderVdom(hostRef, instance, isInitialLoad);\n }\n }\n }\n } catch (e) {\n consoleError(e, hostRef.$hostElement$);\n }\n return null;\n};\nvar postUpdateComponent = (hostRef) => {\n const tagName = hostRef.$cmpMeta$.$tagName$;\n const elm = hostRef.$hostElement$;\n const endPostUpdate = createTime(\"postUpdate\", tagName);\n const instance = hostRef.$lazyInstance$ ;\n const ancestorComponent = hostRef.$ancestorComponent$;\n safeCall(instance, \"componentDidRender\", void 0, elm);\n if (!(hostRef.$flags$ & 64 /* hasLoadedComponent */)) {\n hostRef.$flags$ |= 64 /* hasLoadedComponent */;\n {\n addHydratedFlag(elm);\n }\n safeCall(instance, \"componentDidLoad\", void 0, elm);\n endPostUpdate();\n {\n hostRef.$onReadyResolve$(elm);\n if (!ancestorComponent) {\n appDidLoad();\n }\n }\n } else {\n safeCall(instance, \"componentDidUpdate\", void 0, elm);\n endPostUpdate();\n }\n {\n if (hostRef.$onRenderResolve$) {\n hostRef.$onRenderResolve$();\n hostRef.$onRenderResolve$ = void 0;\n }\n if (hostRef.$flags$ & 512 /* needsRerender */) {\n nextTick(() => scheduleUpdate(hostRef, false));\n }\n hostRef.$flags$ &= -517;\n }\n};\nvar appDidLoad = (who) => {\n nextTick(() => emitEvent(win, \"appload\", { detail: { namespace: NAMESPACE } }));\n};\nvar safeCall = (instance, method, arg, elm) => {\n if (instance && instance[method]) {\n try {\n return instance[method](arg);\n } catch (e) {\n consoleError(e, elm);\n }\n }\n return void 0;\n};\nvar addHydratedFlag = (elm) => {\n var _a;\n return elm.classList.add((_a = BUILD.hydratedSelectorName) != null ? _a : \"hydrated\") ;\n};\n\n// src/runtime/set-value.ts\nvar getValue = (ref, propName) => getHostRef(ref).$instanceValues$.get(propName);\nvar setValue = (ref, propName, newVal, cmpMeta) => {\n const hostRef = getHostRef(ref);\n if (!hostRef) {\n return;\n }\n if (!hostRef) {\n throw new Error(\n `Couldn't find host element for \"${cmpMeta.$tagName$}\" as it is unknown to this Stencil runtime. This usually happens when integrating a 3rd party Stencil component with another Stencil component or application. Please reach out to the maintainers of the 3rd party Stencil component or report this on the Stencil Discord server (https://chat.stenciljs.com) or comment on this similar [GitHub issue](https://github.com/stenciljs/core/issues/5457).`\n );\n }\n const oldVal = hostRef.$instanceValues$.get(propName);\n const flags = hostRef.$flags$;\n const instance = hostRef.$lazyInstance$ ;\n newVal = parsePropertyValue(\n newVal,\n cmpMeta.$members$[propName][0]);\n const areBothNaN = Number.isNaN(oldVal) && Number.isNaN(newVal);\n const didValueChange = newVal !== oldVal && !areBothNaN;\n if ((!(flags & 8 /* isConstructingInstance */) || oldVal === void 0) && didValueChange) {\n hostRef.$instanceValues$.set(propName, newVal);\n if ((flags & (2 /* hasRendered */ | 16 /* isQueuedForUpdate */)) === 2 /* hasRendered */) {\n if (instance.componentShouldUpdate) {\n if (instance.componentShouldUpdate(newVal, oldVal, propName) === false) {\n return;\n }\n }\n scheduleUpdate(hostRef, false);\n }\n }\n};\n\n// src/runtime/proxy-component.ts\nvar proxyComponent = (Cstr, cmpMeta, flags) => {\n var _a, _b;\n const prototype = Cstr.prototype;\n if (cmpMeta.$members$ || BUILD.propChangeCallback) {\n const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});\n members.map(([memberName, [memberFlags]]) => {\n if ((memberFlags & 31 /* Prop */ || (flags & 2 /* proxyState */) && memberFlags & 32 /* State */)) {\n const { get: origGetter, set: origSetter } = Object.getOwnPropertyDescriptor(prototype, memberName) || {};\n if (origGetter) cmpMeta.$members$[memberName][0] |= 2048 /* Getter */;\n if (origSetter) cmpMeta.$members$[memberName][0] |= 4096 /* Setter */;\n if (flags & 1 /* isElementConstructor */ || !origGetter) {\n Object.defineProperty(prototype, memberName, {\n get() {\n {\n if ((cmpMeta.$members$[memberName][0] & 2048 /* Getter */) === 0) {\n return getValue(this, memberName);\n }\n const ref = getHostRef(this);\n const instance = ref ? ref.$lazyInstance$ : prototype;\n if (!instance) return;\n return instance[memberName];\n }\n },\n configurable: true,\n enumerable: true\n });\n }\n Object.defineProperty(prototype, memberName, {\n set(newValue) {\n const ref = getHostRef(this);\n if (!ref) {\n return;\n }\n if (origSetter) {\n const currentValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n if (typeof currentValue === \"undefined\" && ref.$instanceValues$.get(memberName)) {\n newValue = ref.$instanceValues$.get(memberName);\n }\n origSetter.apply(this, [\n parsePropertyValue(\n newValue,\n memberFlags)\n ]);\n newValue = memberFlags & 32 /* State */ ? this[memberName] : ref.$hostElement$[memberName];\n setValue(this, memberName, newValue, cmpMeta);\n return;\n }\n {\n if ((flags & 1 /* isElementConstructor */) === 0 || (cmpMeta.$members$[memberName][0] & 4096 /* Setter */) === 0) {\n setValue(this, memberName, newValue, cmpMeta);\n if (flags & 1 /* isElementConstructor */ && !ref.$lazyInstance$) {\n ref.$fetchedCbList$.push(() => {\n if (cmpMeta.$members$[memberName][0] & 4096 /* Setter */ && ref.$lazyInstance$[memberName] !== ref.$instanceValues$.get(memberName)) {\n ref.$lazyInstance$[memberName] = newValue;\n }\n });\n }\n return;\n }\n const setterSetVal = () => {\n const currentValue = ref.$lazyInstance$[memberName];\n if (!ref.$instanceValues$.get(memberName) && currentValue) {\n ref.$instanceValues$.set(memberName, currentValue);\n }\n ref.$lazyInstance$[memberName] = parsePropertyValue(\n newValue,\n memberFlags);\n setValue(this, memberName, ref.$lazyInstance$[memberName], cmpMeta);\n };\n if (ref.$lazyInstance$) {\n setterSetVal();\n } else {\n ref.$fetchedCbList$.push(() => {\n setterSetVal();\n });\n }\n }\n }\n });\n }\n });\n if ((flags & 1 /* isElementConstructor */)) {\n const attrNameToPropName = /* @__PURE__ */ new Map();\n prototype.attributeChangedCallback = function(attrName, oldValue, newValue) {\n plt.jmp(() => {\n var _a2;\n const propName = attrNameToPropName.get(attrName);\n const hostRef = getHostRef(this);\n if (this.hasOwnProperty(propName) && BUILD.lazyLoad) {\n newValue = this[propName];\n delete this[propName];\n }\n if (prototype.hasOwnProperty(propName) && typeof this[propName] === \"number\" && // cast type to number to avoid TS compiler issues\n this[propName] == newValue) {\n return;\n } else if (propName == null) {\n const flags2 = hostRef == null ? void 0 : hostRef.$flags$;\n if (hostRef && flags2 && !(flags2 & 8 /* isConstructingInstance */) && newValue !== oldValue) {\n const instance = hostRef.$lazyInstance$ ;\n const entry = (_a2 = cmpMeta.$watchers$) == null ? void 0 : _a2[attrName];\n entry == null ? void 0 : entry.forEach((watcher) => {\n const [[watchMethodName, watcherFlags]] = Object.entries(watcher);\n if (instance[watchMethodName] != null && (flags2 & 128 /* isWatchReady */ || watcherFlags & 1 /* Immediate */)) {\n instance[watchMethodName].call(instance, newValue, oldValue, attrName);\n }\n });\n }\n return;\n }\n const propFlags = members.find(([m]) => m === propName);\n if (propFlags && propFlags[1][0] & 4 /* Boolean */) {\n newValue = newValue === null || newValue === \"false\" ? false : true;\n }\n const propDesc = Object.getOwnPropertyDescriptor(prototype, propName);\n if (newValue != this[propName] && (!propDesc.get || !!propDesc.set)) {\n this[propName] = newValue;\n }\n });\n };\n Cstr.observedAttributes = Array.from(\n /* @__PURE__ */ new Set([\n ...Object.keys((_b = cmpMeta.$watchers$) != null ? _b : {}),\n ...members.filter(([_, m]) => m[0] & 31 /* HasAttribute */).map(([propName, m]) => {\n const attrName = m[1] || propName;\n attrNameToPropName.set(attrName, propName);\n return attrName;\n })\n ])\n );\n }\n }\n return Cstr;\n};\n\n// src/runtime/initialize-component.ts\nvar initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {\n let Cstr;\n if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {\n hostRef.$flags$ |= 32 /* hasInitializedComponent */;\n const bundleId = cmpMeta.$lazyBundleId$;\n if (bundleId) {\n const CstrImport = loadModule(cmpMeta, hostRef);\n if (CstrImport && \"then\" in CstrImport) {\n const endLoad = uniqueTime();\n Cstr = await CstrImport;\n endLoad();\n } else {\n Cstr = CstrImport;\n }\n if (!Cstr) {\n throw new Error(`Constructor for \"${cmpMeta.$tagName$}#${hostRef.$modeName$}\" was not found`);\n }\n if (!Cstr.isProxied) {\n proxyComponent(Cstr, cmpMeta, 2 /* proxyState */);\n Cstr.isProxied = true;\n }\n const endNewInstance = createTime(\"createInstance\", cmpMeta.$tagName$);\n {\n hostRef.$flags$ |= 8 /* isConstructingInstance */;\n }\n try {\n new Cstr(hostRef);\n } catch (e) {\n consoleError(e, elm);\n }\n {\n hostRef.$flags$ &= -9 /* isConstructingInstance */;\n }\n endNewInstance();\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else {\n Cstr = elm.constructor;\n const cmpTag = elm.localName;\n customElements.whenDefined(cmpTag).then(() => hostRef.$flags$ |= 128 /* isWatchReady */);\n }\n if (Cstr && Cstr.style) {\n let style;\n if (typeof Cstr.style === \"string\") {\n style = Cstr.style;\n }\n const scopeId2 = getScopeId(cmpMeta);\n if (!styles.has(scopeId2) || BUILD.hotModuleReplacement) {\n const endRegisterStyles = createTime(\"registerStyles\", cmpMeta.$tagName$);\n registerStyle(scopeId2, style, !!(cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */));\n endRegisterStyles();\n }\n }\n }\n const ancestorComponent = hostRef.$ancestorComponent$;\n const schedule = () => scheduleUpdate(hostRef, true);\n if (ancestorComponent && ancestorComponent[\"s-rc\"]) {\n ancestorComponent[\"s-rc\"].push(schedule);\n } else {\n schedule();\n }\n};\nvar fireConnectedCallback = (instance, elm) => {\n {\n safeCall(instance, \"connectedCallback\", void 0, elm);\n }\n};\n\n// src/runtime/connected-callback.ts\nvar connectedCallback = (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (!hostRef) {\n return;\n }\n const cmpMeta = hostRef.$cmpMeta$;\n const endConnected = createTime(\"connectedCallback\", cmpMeta.$tagName$);\n if (!(hostRef.$flags$ & 1 /* hasConnected */)) {\n hostRef.$flags$ |= 1 /* hasConnected */;\n {\n let ancestorComponent = elm;\n while (ancestorComponent = ancestorComponent.parentNode || ancestorComponent.host) {\n if (ancestorComponent[\"s-p\"]) {\n attachToAncestor(hostRef, hostRef.$ancestorComponent$ = ancestorComponent);\n break;\n }\n }\n }\n if (cmpMeta.$members$) {\n Object.entries(cmpMeta.$members$).map(([memberName, [memberFlags]]) => {\n if (memberFlags & 31 /* Prop */ && memberName in elm && elm[memberName] !== Object.prototype[memberName]) {\n const value = elm[memberName];\n delete elm[memberName];\n elm[memberName] = value;\n }\n });\n }\n {\n initializeComponent(elm, hostRef, cmpMeta);\n }\n } else {\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n fireConnectedCallback(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));\n }\n }\n endConnected();\n }\n};\nvar disconnectInstance = (instance, elm) => {\n {\n safeCall(instance, \"disconnectedCallback\", void 0, elm || instance);\n }\n};\nvar disconnectedCallback = async (elm) => {\n if ((plt.$flags$ & 1 /* isTmpDisconnected */) === 0) {\n const hostRef = getHostRef(elm);\n if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {\n disconnectInstance(hostRef.$lazyInstance$, elm);\n } else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {\n hostRef.$onReadyPromise$.then(() => disconnectInstance(hostRef.$lazyInstance$, elm));\n }\n }\n if (rootAppliedStyles.has(elm)) {\n rootAppliedStyles.delete(elm);\n }\n if (elm.shadowRoot && rootAppliedStyles.has(elm.shadowRoot)) {\n rootAppliedStyles.delete(elm.shadowRoot);\n }\n};\n\n// src/runtime/bootstrap-lazy.ts\nvar bootstrapLazy = (lazyBundles, options = {}) => {\n var _a;\n if (!win.document) {\n console.warn(\"Stencil: No document found. Skipping bootstrapping lazy components.\");\n return;\n }\n const endBootstrap = createTime();\n const cmpTags = [];\n const exclude = options.exclude || [];\n const customElements2 = win.customElements;\n const head = win.document.head;\n const metaCharset = /* @__PURE__ */ head.querySelector(\"meta[charset]\");\n const dataStyles = /* @__PURE__ */ win.document.createElement(\"style\");\n const deferredConnectedCallbacks = [];\n let appLoadFallback;\n let isBootstrapping = true;\n Object.assign(plt, options);\n plt.$resourcesUrl$ = new URL(options.resourcesUrl || \"./\", win.document.baseURI).href;\n let hasSlotRelocation = false;\n lazyBundles.map((lazyBundle) => {\n lazyBundle[1].map((compactMeta) => {\n const cmpMeta = {\n $flags$: compactMeta[0],\n $tagName$: compactMeta[1],\n $members$: compactMeta[2],\n $listeners$: compactMeta[3]\n };\n if (cmpMeta.$flags$ & 4 /* hasSlotRelocation */) {\n hasSlotRelocation = true;\n }\n {\n cmpMeta.$members$ = compactMeta[2];\n }\n const tagName = transformTag(cmpMeta.$tagName$);\n const HostElement = class extends HTMLElement {\n // StencilLazyHost\n constructor(self) {\n super(self);\n this.hasRegisteredEventListeners = false;\n self = this;\n registerHost(self, cmpMeta);\n if (cmpMeta.$flags$ & 1 /* shadowDomEncapsulation */) {\n {\n if (!self.shadowRoot) {\n createShadowRoot.call(self, cmpMeta);\n } else {\n if (self.shadowRoot.mode !== \"open\") {\n throw new Error(\n `Unable to re-use existing shadow root for ${cmpMeta.$tagName$}! Mode is set to ${self.shadowRoot.mode} but Stencil only supports open shadow roots.`\n );\n }\n }\n }\n }\n }\n connectedCallback() {\n const hostRef = getHostRef(this);\n if (!hostRef) {\n return;\n }\n if (!this.hasRegisteredEventListeners) {\n this.hasRegisteredEventListeners = true;\n }\n if (appLoadFallback) {\n clearTimeout(appLoadFallback);\n appLoadFallback = null;\n }\n if (isBootstrapping) {\n deferredConnectedCallbacks.push(this);\n } else {\n plt.jmp(() => connectedCallback(this));\n }\n }\n disconnectedCallback() {\n plt.jmp(() => disconnectedCallback(this));\n plt.raf(() => {\n var _a3;\n const hostRef = getHostRef(this);\n if (!hostRef) {\n return;\n }\n const i2 = deferredConnectedCallbacks.findIndex((host) => host === this);\n if (i2 > -1) {\n deferredConnectedCallbacks.splice(i2, 1);\n }\n if (((_a3 = hostRef == null ? void 0 : hostRef.$vnode$) == null ? void 0 : _a3.$elm$) instanceof Node && !hostRef.$vnode$.$elm$.isConnected) {\n delete hostRef.$vnode$.$elm$;\n }\n });\n }\n componentOnReady() {\n var _a3;\n return (_a3 = getHostRef(this)) == null ? void 0 : _a3.$onReadyPromise$;\n }\n };\n cmpMeta.$lazyBundleId$ = lazyBundle[0];\n if (!exclude.includes(tagName) && !customElements2.get(tagName)) {\n cmpTags.push(tagName);\n customElements2.define(\n tagName,\n proxyComponent(HostElement, cmpMeta, 1 /* isElementConstructor */)\n );\n }\n });\n });\n if (cmpTags.length > 0) {\n if (hasSlotRelocation) {\n dataStyles.textContent += SLOT_FB_CSS;\n }\n {\n dataStyles.textContent += cmpTags.sort() + HYDRATED_CSS;\n }\n if (dataStyles.innerHTML.length) {\n dataStyles.setAttribute(\"data-styles\", \"\");\n const nonce = (_a = plt.$nonce$) != null ? _a : queryNonceMetaTagContent(win.document);\n if (nonce != null) {\n dataStyles.setAttribute(\"nonce\", nonce);\n }\n head.insertBefore(dataStyles, metaCharset ? metaCharset.nextSibling : head.firstChild);\n }\n }\n isBootstrapping = false;\n if (deferredConnectedCallbacks.length) {\n deferredConnectedCallbacks.map((host) => host.connectedCallback());\n } else {\n {\n plt.jmp(() => appLoadFallback = setTimeout(appDidLoad, 30));\n }\n }\n endBootstrap();\n};\n\n// src/runtime/nonce.ts\nvar setNonce = (nonce) => plt.$nonce$ = nonce;\nfunction transformTag(tag) {\n return tag;\n}\n\nexport { bootstrapLazy as b, h, promiseResolve as p, registerInstance as r, setNonce as s };\n","const globalScripts = () => {};\n\nexport { globalScripts as g };\n","import { b as bootstrapLazy } from './index-Ba2Ls6bG.js';\nexport { s as setNonce } from './index-Ba2Ls6bG.js';\nimport { g as globalScripts } from './app-globals-DQuL1Twl.js';\n\nconst defineCustomElements = async (win, options) => {\n if (typeof window === 'undefined') return undefined;\n await globalScripts();\n return bootstrapLazy([[\"ocr-file-uploader\",[[1,\"ocr-file-uploader\",{\"batch\":[4],\"callback\":[16],\"jsonSchema\":[1,\"json-schema\"]}]]]], options);\n};\n\nexport { defineCustomElements };\n","(function(){if(\"undefined\"!==typeof window&&void 0!==window.Reflect&&void 0!==window.customElements){var a=HTMLElement;window.HTMLElement=function(){return Reflect.construct(a,[],this.constructor)};HTMLElement.prototype=a.prototype;HTMLElement.prototype.constructor=HTMLElement;Object.setPrototypeOf(HTMLElement,a)}})();\nexport * from '../dist/esm/loader.js';",":host {\r\n display: block;\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\r\n}\r\n\r\n.row-audio-area {\r\n display: flex;\r\n flex-direction: row;\r\n}\r\n\r\n.voice-recorder-container {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 1rem;\r\n padding: 1rem;\r\n border: 1px solid #e5e7eb;\r\n border-radius: 0.5rem;\r\n background: #ffffff;\r\n max-width: 100px;\r\n margin: 0 auto;\r\n}\r\n\r\n.voice-recorder-container-debug {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 1rem;\r\n padding: 1rem;\r\n border: 1px solid #e5e7eb;\r\n border-radius: 0.5rem;\r\n background: #ffffff;\r\n max-width: 800px;\r\n margin: 0 auto;\r\n}\r\n\r\n.upload-record-container {\r\n display: inline-block;\r\n cursor: pointer;\r\n width: 50px;\r\n height: 50px;\r\n}\r\n\r\n.upload-record-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n transition: transform 0.2s ease, box-shadow 0.2s ease;\r\n user-select: none;\r\n}\r\n\r\n.upload-record-button svg {\r\n width: 50px;\r\n height: 50px;\r\n stroke: #4444ee;\r\n}\r\n\r\n.upload-record-button svg path {\r\n fill: #4444ee;\r\n}\r\n\r\n.upload-record-button:hover svg {\r\n transform: scale(1.05);\r\n stroke: #4444ee;\r\n}\r\n\r\n.record-button {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n width: 50px;\r\n height: 50px;\r\n border: none;\r\n border-radius: 50%;\r\n background: #ee4444;\r\n color: white;\r\n cursor: pointer;\r\n transition: all 0.2s ease;\r\n position: relative;\r\n overflow: hidden;\r\n}\r\n\r\n.record-button:hover:not(:disabled) {\r\n background: #dd3333;\r\n transform: scale(1.05);\r\n}\r\n\r\n.record-button:disabled {\r\n opacity: 0.6;\r\n cursor: not-allowed;\r\n}\r\n\r\n.record-button.recording {\r\n background: #dd3333;\r\n animation: pulse 1.5s infinite;\r\n}\r\n\r\n.record-button.processing {\r\n background: #3b82f6;\r\n}\r\n\r\n@keyframes pulse {\r\n 0% {\r\n box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);\r\n }\r\n 70% {\r\n box-shadow: 0 0 0 10px rgba(239, 68, 68, 0);\r\n }\r\n 100% {\r\n box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);\r\n }\r\n}\r\n\r\n.record-icon {\r\n width: 24px;\r\n height: 24px;\r\n fill: currentColor;\r\n}\r\n\r\n.status-text {\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n text-align: center;\r\n min-height: 1.25rem;\r\n}\r\n\r\n.status-text.error {\r\n color: #ee4444;\r\n}\r\n\r\n.status-text.success {\r\n color: #10b981;\r\n}\r\n\r\n.debug-panel {\r\n width: 100%;\r\n margin-top: 1rem;\r\n padding: 1rem;\r\n background: #f9fafb;\r\n border: 1px solid #e5e7eb;\r\n border-radius: 0.375rem;\r\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\r\n font-size: 0.75rem;\r\n}\r\n\r\n.debug-title {\r\n font-weight: 600;\r\n margin-bottom: 0.5rem;\r\n color: #374151;\r\n}\r\n\r\n.debug-content {\r\n white-space: pre-wrap;\r\n word-break: break-word;\r\n color: #6b7280;\r\n max-height: 200px;\r\n overflow-y: auto;\r\n}\r\n\r\n.permissions-warning {\r\n padding: 0.75rem;\r\n background: #fef3c7;\r\n border: 1px solid #f59e0b;\r\n border-radius: 0.375rem;\r\n color: #92400e;\r\n font-size: 0.875rem;\r\n text-align: center;\r\n}\r\n\r\n.form-preview {\r\n width: 100%;\r\n margin-top: 1rem;\r\n padding: 1rem;\r\n background: #f8fafc;\r\n border: 1px solid #e2e8f0;\r\n border-radius: 0.375rem;\r\n}\r\n\r\n.form-preview-title {\r\n font-weight: 600;\r\n margin-bottom: 0.5rem;\r\n color: #1e293b;\r\n}\r\n\r\n.form-field {\r\n margin-bottom: 0.5rem;\r\n font-size: 0.875rem;\r\n}\r\n\r\n.field-name {\r\n font-weight: 500;\r\n color: #475569;\r\n}\r\n\r\n.field-value {\r\n color: #64748b;\r\n margin-left: 0.5rem;\r\n}\r\n\r\n.field-value.filled {\r\n color: #059669;\r\n font-weight: 500;\r\n}\r\n\r\n.voice-filled-form {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 1rem;\r\n margin-top: 1rem;\r\n}\r\n\r\n.form-group {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.25rem;\r\n}\r\n\r\n.form-label {\r\n font-weight: 500;\r\n color: #374151;\r\n font-size: 0.875rem;\r\n}\r\n\r\n.required {\r\n color: #ee4444;\r\n margin-left: 0.125rem;\r\n}\r\n\r\n.form-input {\r\n padding: 0.5rem;\r\n border: 1px solid #d1d5db;\r\n border-radius: 0.375rem;\r\n font-size: 0.875rem;\r\n transition: border-color 0.2s ease;\r\n}\r\n\r\n.form-input:focus {\r\n outline: none;\r\n border-color: #3b82f6;\r\n box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);\r\n}\r\n\r\n.form-checkbox {\r\n width: auto;\r\n padding: 0;\r\n margin: 0;\r\n}\r\n\r\nselect.form-input {\r\n background-color: white;\r\n cursor: pointer;\r\n}\r\n\r\ninput[type=\"date\"].form-input {\r\n cursor: pointer;\r\n}\r\n\r\n.readonly-select {\r\n background: #f9fafb;\r\n border: 1px solid #d1d5db;\r\n border-radius: 0.375rem;\r\n padding: 0.5rem;\r\n}\r\n\r\n.select-placeholder {\r\n font-size: 0.875rem;\r\n color: #6b7280;\r\n margin-bottom: 0.5rem;\r\n}\r\n\r\n.select-options-list {\r\n list-style: none;\r\n margin: 0;\r\n padding: 0;\r\n display: flex;\r\n flex-wrap: wrap;\r\n gap: 0.25rem;\r\n}\r\n\r\n.select-option {\r\n background: #e5e7eb;\r\n padding: 0.25rem 0.5rem;\r\n border-radius: 0.25rem;\r\n font-size: 0.875rem;\r\n color: #374151;\r\n}\r\n\r\n.multiselect-container {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n padding: 0.5rem;\r\n border: 1px solid #d1d5db;\r\n border-radius: 0.375rem;\r\n background: white;\r\n}\r\n\r\n.multiselect-option {\r\n display: flex;\r\n align-items: center;\r\n gap: 0.5rem;\r\n padding: 0.5rem;\r\n border-radius: 0.25rem;\r\n cursor: pointer;\r\n transition: background 0.2s ease;\r\n}\r\n\r\n.multiselect-option:hover {\r\n background: #f3f4f6;\r\n}\r\n\r\n.multiselect-option input[type=\"checkbox\"] {\r\n width: 18px;\r\n height: 18px;\r\n cursor: pointer;\r\n}\r\n\r\n.multiselect-option input[type=\"checkbox\"]:checked + .multiselect-label {\r\n font-weight: 600;\r\n color: #059669;\r\n}\r\n\r\n.multiselect-label {\r\n font-size: 0.875rem;\r\n color: #374151;\r\n user-select: none;\r\n}","import { Component, Prop, Event, EventEmitter, State, h, Watch, Method } from '@stencil/core';\r\nimport { FormSchema, VoiceFormRecorderResult, FilledFormData, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended } from '../../types/form-schema.types';\r\nimport { ServiceProviderConfig } from '../../types/service-providers.types';\r\nimport { AudioRecorderService } from '../../services/audio-recorder.service';\r\nimport { SpeechToTextServiceFactory } from '../../services/speech-to-text.service';\r\nimport { LLMServiceFactory } from '../../services/llm.service';\r\nimport { SchemaConverter } from '../../utils/schema-converter';\r\nimport { defineCustomElements } from 'ocr-file-uploader/loader';\r\n\r\n// Initialize OCR\r\ndefineCustomElements();\r\n\r\n@Component({\r\n tag: 'voice-input-module',\r\n styleUrl: 'voice-input-module.css',\r\n shadow: true,\r\n})\r\nexport class VoiceFormRecorder {\r\n @Prop() formJson: string = '{}';\r\n @Prop() serviceConfig: string = '{}';\r\n @Prop() apiKey: string;\r\n @Prop() context: 'track'|'ng'|'ecoll-veto'|'ecoteka' = undefined;\r\n @Prop() classificationRootUrl: string = 'http://localhost';\r\n @Prop() language: 'fr'|'en' = 'en';\r\n @Prop() inputTypes: string = '';\r\n \r\n private get parsedInputTypes(): ('voice' | 'ocr' | 'audio')[] {\r\n if (!this.inputTypes) return [];\r\n try {\r\n return JSON.parse(this.inputTypes.replace(/'/g, '\"'));\r\n } catch {\r\n return this.inputTypes.split(',').map(type => type.trim() as 'voice' | 'ocr' | 'audio');\r\n }\r\n }\r\n \r\n @Prop() debug: boolean = false;\r\n @Prop() renderForm: boolean = false;\r\n @Prop() displayStatus: boolean = false;\r\n \r\n @Event() formFilled: EventEmitter<VoiceFormRecorderResult>;\r\n @Event() recordingStateChanged: EventEmitter<{ isRecording: boolean; state: string }>;\r\n\r\n @State() isRecording: boolean = false;\r\n @State() isProcessing: boolean = false;\r\n @State() statusMessage: string;\r\n @State() hasError: boolean = false;\r\n @State() transcription: string = '';\r\n @State() filledData: FilledFormData | null = null;\r\n @State() debugInfo: any = {};\r\n @State() isReadonlyMode: boolean = true; // Start in readonly preview mode\r\n\r\n private audioRecorder: AudioRecorderService;\r\n private speechToTextService: any;\r\n private llmService: any;\r\n private parsedSchema: any; // Support both simple FormSchema and complex nested schema\r\n private parsedConfig: ServiceProviderConfig;\r\n\r\n constructor() {\r\n this.audioRecorder = new AudioRecorderService();\r\n }\r\n\r\n componentWillLoad() {\r\n this.initializeServices();\r\n }\r\n\r\n @Watch('formJson')\r\n @Watch('serviceConfig')\r\n initializeServices() {\r\n try {\r\n if (!this.context){\r\n this.hasError = true;\r\n const errorMessage = (this.language == 'en' ? `Initialization error: context is '${this.context}'` : `Erreur d'initialisation: le contexte est '${this.context}'`);\r\n this.statusMessage = errorMessage;\r\n this.updateDebugInfo(errorMessage, { error: errorMessage });\r\n }\r\n else{\r\n // Parse form schema\r\n this.parsedSchema = JSON.parse(this.formJson || '{}');\r\n \r\n // Parse service configuration\r\n this.parsedConfig = JSON.parse(this.serviceConfig || '{}');\r\n \r\n // Add API key to config if provided via prop\r\n if (this.apiKey) {\r\n this.parsedConfig = {\r\n ...this.parsedConfig,\r\n speechToText: { ...this.parsedConfig.speechToText, apiKey: this.apiKey },\r\n llm: { ...this.parsedConfig.llm, apiKey: this.apiKey }\r\n };\r\n }\r\n \r\n // Initialize services\r\n this.speechToTextService = SpeechToTextServiceFactory.create(this.parsedConfig);\r\n this.llmService = LLMServiceFactory.create(this.parsedConfig);\r\n \r\n this.updateDebugInfo('Initialized', {\r\n schema: this.parsedSchema,\r\n config: this.parsedConfig\r\n });\r\n \r\n this.hasError = false;\r\n this.statusMessage = (this.language == 'en' ? 'Select an input method' : 'Sélectionner une méthode de saisie');\r\n if (this.parsedInputTypes.length === 0){\r\n this.inputTypes = 'voice';\r\n }\r\n }\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Initialization error: ${error.message}` : `Erreur d'initialisation: ${error.message}`);\r\n this.updateDebugInfo('Initialization Error', { error: error.message });\r\n }\r\n }\r\n\r\n private updateDebugInfo(action: string, data: any) {\r\n if (this.debug) {\r\n this.debugInfo = {\r\n ...this.debugInfo,\r\n [action]: {\r\n timestamp: new Date().toISOString(),\r\n data\r\n }\r\n };\r\n }\r\n }\r\n\r\n private async handleRecordClick() {\r\n if (this.isProcessing) return;\r\n\r\n if (this.isRecording) {\r\n await this.stopRecordingAndProcess();\r\n } else {\r\n await this.startRecording();\r\n }\r\n }\r\n\r\n private async startRecording() {\r\n try {\r\n this.hasError = false;\r\n this.statusMessage = (this.language == 'en' ? 'Starting recording...' : `Enregistrement ...`);\r\n this.updateDebugInfo('Start Recording Attempt', {});\r\n\r\n await this.audioRecorder.startRecording();\r\n \r\n this.isRecording = true;\r\n this.statusMessage = (this.language == 'en' ? 'Recording... Click to stop' : 'Enregistrement ... Cliquer pour stopper');\r\n this.updateDebugInfo('Recording Started', {});\r\n \r\n this.recordingStateChanged.emit({ \r\n isRecording: true, \r\n state: 'recording' \r\n });\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Recording failed: ${error.message}` : `Echec de l'enregistrement : ${error.message}`);\r\n this.updateDebugInfo('Recording Error', { error: error.message });\r\n \r\n this.formFilled.emit({\r\n success: false,\r\n error: error.message\r\n });\r\n }\r\n }\r\n\r\n private async processJsonForm(ocrData: any){\r\n console.log(\"processJsonForm\", ocrData);\r\n try {\r\n this.isProcessing = true;\r\n this.statusMessage = (this.language == 'en' ? 'Processing json...' : `Traitement du json ...`);\r\n\r\n // Extract content from OCR format\r\n const extractedData = ocrData?.content || ocrData;\r\n const jsonForm = JSON.stringify(extractedData);\r\n\r\n // Fill form using LLM\r\n this.statusMessage = (this.language == 'en' ? 'Filling form fields...' : 'Remplissage du formulaire ...');\r\n const trimmedSchema = await this.trimSchemaForAI(this.parsedSchema);\r\n const filledSchema = await this.llmService.fillFormFromJson(jsonForm, trimmedSchema);\r\n \r\n // Extract filled data\r\n this.filledData = this.extractFilledData(filledSchema);\r\n this.updateDebugInfo('Form Filled', { \r\n filledSchema, \r\n extractedData: this.filledData \r\n });\r\n \r\n this.parsedSchema = this.filledData;\r\n\r\n this.statusMessage = (this.language == 'en' ? 'Form completed!' : 'Formulaire remplis !');\r\n this.hasError = false;\r\n\r\n // Emit success event\r\n this.formFilled.emit({\r\n success: true,\r\n data: this.filledData,\r\n jsonForm: jsonForm\r\n });\r\n\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Processing failed: ${error.message}` : `Erreur de traitement : ${error.message}`);\r\n \r\n this.formFilled.emit({\r\n success: false,\r\n error: error.message,\r\n jsonForm: JSON.stringify(ocrData)\r\n });\r\n } finally {\r\n this.isProcessing = false;\r\n }\r\n }\r\n\r\n private async processAudioContent(audioFile) {\r\n this.updateDebugInfo('Audio Captured', { \r\n size: audioFile.size, \r\n type: audioFile.type \r\n });\r\n\r\n // Transcribe audio\r\n this.statusMessage = (this.language == 'en' ? 'Transcribing speech...' : 'Transcription du texte ...');\r\n const transcription = await this.speechToTextService.transcribe(audioFile, this.language);\r\n this.transcription = transcription;\r\n this.updateDebugInfo('Transcription Complete', { transcription });\r\n\r\n if (!transcription.trim()) {\r\n throw new Error('No speech detected in the recording');\r\n }\r\n\r\n // Fill form using LLM\r\n this.statusMessage = (this.language == 'en' ? 'Filling form fields...' : 'Remplissage du formulaire ...');\r\n const trimmedSchema = await this.trimSchemaForAI(this.parsedSchema);\r\n const filledSchema = await this.llmService.fillFormFromTranscription(transcription, trimmedSchema);\r\n \r\n // Extract filled data\r\n this.filledData = this.extractFilledData(filledSchema);\r\n this.updateDebugInfo('Form Filled', { \r\n filledSchema, \r\n extractedData: this.filledData \r\n });\r\n \r\n this.parsedSchema = this.filledData;\r\n\r\n this.statusMessage = (this.language == 'en' ? 'Form completed!' : 'Formulaire remplis !');\r\n this.hasError = false;\r\n\r\n // Emit success event\r\n this.formFilled.emit({\r\n success: true,\r\n data: this.filledData,\r\n transcription: transcription\r\n });\r\n }\r\n\r\n private async stopRecordingAndProcess() {\r\n try {\r\n this.isRecording = false;\r\n this.isProcessing = true;\r\n this.statusMessage = (this.language == 'en' ? 'Processing audio...' : `Traitement de l'audio ...`);\r\n this.updateDebugInfo('Stop Recording', {});\r\n\r\n this.recordingStateChanged.emit({ \r\n isRecording: false, \r\n state: 'processing' \r\n });\r\n\r\n // Stop recording and get audio blob\r\n const audioBlob = await this.audioRecorder.stopRecording();\r\n const audioContent = new File([audioBlob], 'audio.webm', { type: 'audio/webm' });\r\n this.processAudioContent(audioContent);\r\n\r\n } catch (error) {\r\n this.hasError = true;\r\n this.statusMessage = (this.language == 'en' ? `Processing failed: ${error.message}` : `Erreur de traitement : ${error.message}`);\r\n this.updateDebugInfo('Processing Error', { error: error.message });\r\n \r\n this.formFilled.emit({\r\n success: false,\r\n error: error.message,\r\n transcription: this.transcription\r\n });\r\n } finally {\r\n this.isProcessing = false;\r\n this.recordingStateChanged.emit({ \r\n isRecording: false, \r\n state: 'idle' \r\n });\r\n }\r\n }\r\n\r\n private extractFilledData(filledData: any): any {\r\n // console.log(\"extractFilledData\", filledData);\r\n const updatedSchema = JSON.parse(JSON.stringify(this.parsedSchema));\r\n switch(this.context){\r\n case \"ecoteka\":\r\n // console.log(\"TODO extractFilledData\", filledData);\r\n case \"ng\": \r\n if (filledData?.fields) {\r\n // Map AI response back to original schema structure\r\n filledData.fields.forEach((field: any) => {\r\n const originalField = updatedSchema.Children.find((child: any) => \r\n child.System_Name === field.name || child.Settings?.Label === field.name\r\n );\r\n \r\n if (originalField && field.value !== undefined && field.value !== null && field.value !== '') {\r\n if (!originalField.Settings) originalField.Settings = {};\r\n originalField.Settings.Default_Value = field.value;\r\n }\r\n });\r\n }\r\n \r\n break;\r\n case \"ecoll-veto\":\r\n // console.log(\"TODO extractFilledData\", filledData, updatedSchema);\r\n if (filledData?.fields) {\r\n // Map AI response back to original schema structure\r\n filledData.fields.forEach((field: any) => {\r\n let originalField = updatedSchema[0].items.find((child: any) => \r\n child.label === field.name\r\n );\r\n if (!originalField)\r\n originalField = updatedSchema[1].items.find((child: any) =>\r\n child.label === field.name\r\n );\r\n \r\n if (originalField && field.value !== undefined && field.value !== null && field.value !== '') {\r\n updatedSchema[2][originalField.name] = field.value;\r\n }\r\n });\r\n }\r\n break;\r\n case \"track\":\r\n default:\r\n const data: FilledFormData = {};\r\n \r\n Object.entries(filledData.fields).forEach(([fieldID, field]: [string, any]) => {\r\n if (field.default !== undefined && field.default !== null && field.default !== '') {\r\n updatedSchema[fieldID] = field.default;\r\n }\r\n if (field.value !== undefined && field.value !== null && field.value !== '') {\r\n for (const key in updatedSchema.fields) {\r\n const schemaField = updatedSchema.fields[key];\r\n if (schemaField.title === field.name) {\r\n schemaField.value = field.value || field.default;\r\n schemaField.default = field.value || field.default;\r\n break; // stop after finding the first match\r\n }\r\n }\r\n }\r\n });\r\n\r\n break;\r\n }\r\n \r\n // console.log(\"extractFilledData result\", updatedSchema);\r\n return updatedSchema;\r\n }\r\n\r\n private async trimSchemaForAI(schema: any): Promise<any> {\r\n // console.log(\"trimSchemaForAI\", schema);\r\n switch(this.context){\r\n case \"ecoteka\":\r\n // console.log(\"TODO trimSchemaForAI\", schema)\r\n case \"ng\":\r\n const trimmed = { fields: [] };\r\n schema.Children.forEach((child: any) => {\r\n if (!child.System_Name || !child.Type) return;\r\n \r\n const fieldData: any = {\r\n name: child.Label || child.Settings?.Label || child.System_Name,\r\n type: this.mapFieldType(child.Type)\r\n };\r\n \r\n // Add options for classification/select/multiselect fields\r\n const selectTypes = ['InputClassification', 'select', 'multiselect', 'InputMultiSelect']\r\n if (selectTypes.includes(child.Type) && child.Children && child.Children.length > 0) {\r\n fieldData.options = child.Children.map((option: any) => \r\n option.System_Name || option.Label || option.toString()\r\n );\r\n }\r\n\r\n console.log(\"fieldData\", fieldData);\r\n \r\n trimmed.fields.push(fieldData);\r\n });\r\n \r\n // console.log(\"Schema apres transformation, contexte NG:\", trimmed);\r\n return trimmed;\r\n case \"ecoll-veto\":\r\n // console.log(\"TODO trimSchemaForAI\", schema)\r\n const mergedItemsSchema = (this.parsedSchema[0].items).concat(this.parsedSchema[1].items);\r\n\r\n if (mergedItemsSchema) {\r\n const trimmedSchema: FormSchema = {\r\n title: 'Form Name',\r\n description: 'Form Description',\r\n schema: {}\r\n };\r\n\r\n Object.entries(mergedItemsSchema).forEach(async ([key, field]: [string, any]) => {\r\n const fieldName = field.name;\r\n const fieldType = this.mapFieldType(field.type) as any;\r\n const fieldLabel = field.label || fieldName;\r\n const isRequired = field.required || false;\r\n const fieldValue = ''; //TODO\r\n\r\n if (['position', 'thesaurus'].includes(fieldType)) {\r\n try {\r\n const response = await fetch(`${this.classificationRootUrl}/ng/api/v1/classification/getList/${fieldType.toLowerCase() == 'position' ? \"Position\" : \"Thesaurus\"}/?StartNodeID=${field.config.options.options.startNode}`);\r\n if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n const data = await response.json();\r\n if (Array.isArray(data)) {\r\n const options = data.map(item => ({\r\n value: item.ID,\r\n label: item.System_Name\r\n }));\r\n if (options.length > 0) {\r\n field.pickerOptions = options;\r\n // TODO on degage les quotes simples temporairement, a corriger\r\n field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n }\r\n } else {\r\n console.error(\"Unexpected API response format:\", data);\r\n }\r\n } catch (error) {\r\n console.error(\"Error fetching classification data:\", error);\r\n }\r\n }\r\n \r\n trimmedSchema.schema[fieldName] = {\r\n type: fieldType,\r\n title: fieldLabel,\r\n options: field.options,\r\n readonly: field.readonly === true,\r\n default: '',\r\n };\r\n });\r\n\r\n // console.log(\"Schema apres transformation, contexte Track:\", trimmedSchema);\r\n return trimmedSchema;\r\n }\r\n case \"track\":\r\n default:\r\n // Handle simple schema format (backward compatibility)\r\n if (schema?.schema ?? schema?.fields) {\r\n const trimmedSchema: FormSchema = {\r\n title: schema.title,\r\n description: schema.description,\r\n schema: {}\r\n };\r\n\r\n const finalSchema = schema?.schema ?? schema?.fields;\r\n\r\n Object.entries(finalSchema).forEach(([fieldName, field]: [string, any]) => {\r\n trimmedSchema.schema[fieldName] = {\r\n type: field.type,\r\n title: field.title,\r\n options: field.options,\r\n readonly: field.Enabled === false,\r\n default: field.DefaultValue,\r\n pattern: field.Mask,\r\n min: field.ValidationMin,\r\n max: field.ValidationMax\r\n };\r\n });\r\n\r\n \r\n // console.log(\"Schema apres transformation, contexte Track:\", trimmedSchema);\r\n return trimmedSchema;\r\n }\r\n break;\r\n }\r\n \r\n return schema;\r\n }\r\n\r\n private mapFieldType(type: string): string {\r\n const typeMapping = {\r\n 'InputAutocomplete': 'string',\r\n 'InputInteger': 'number',\r\n 'InputTextArea': 'string',\r\n 'InputDateTimePicker': 'datetime',\r\n 'InputDecimal': 'number',\r\n 'InputClassification': 'classification',\r\n 'InputCheckbox': 'boolean',\r\n 'InputTextTranslation': 'string',\r\n 'InputMultiSelect': 'multiselect',\r\n 'thesaurus': 'thesaurus',\r\n 'position': 'position',\r\n 'text': 'string',\r\n 'textarea': 'string',\r\n 'number': 'number',\r\n 'date': 'date',\r\n 'datetime': 'datetime',\r\n 'select': 'select',\r\n 'multiselect': 'multiselect',\r\n 'checkbox': 'checkbox'\r\n };\r\n \r\n return typeMapping[type] || 'string';\r\n }\r\n\r\n // Utility methods exposed as public API\r\n @Method() public async convertXmlToJson(xmlForm: string): Promise<FormSchemaFieldsOnly> {\r\n return SchemaConverter.convertXmlToJson(xmlForm, this.classificationRootUrl, this.language);\r\n }\r\n\r\n @Method() public async convertJsonToXml(jsonForm: FormSchemaFieldsOnlyExtended): Promise<string> {\r\n return SchemaConverter.convertJsonToXml(jsonForm);\r\n }\r\n\r\n // Utility methods exposed as public API\r\n @Method() public async convertXmlToJsonLegacy(xmlForm: string): Promise<FormSchema> {\r\n return SchemaConverter.convertXmlToJsonLegacy(xmlForm);\r\n }\r\n\r\n @Method() public async convertJsonToXmlLegacy(jsonForm: FormSchema): Promise<string> {\r\n return SchemaConverter.convertJsonToXmlLegacy(jsonForm);\r\n }\r\n\r\n private renderUploadButton() {\r\n if (!this.parsedInputTypes.includes('ocr'))\r\n return;\r\n return(\r\n <ocr-file-uploader\r\n batch={false}\r\n json-schema={this.convertSchemaToOcrFormat(this.parsedSchema)}\r\n callback={(data) => {this.processJsonForm(data);}}\r\n >\r\n </ocr-file-uploader>\r\n );\r\n }\r\n\r\n private convertSchemaToOcrFormat(schema: any): string {\r\n const ocrSchema = {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {\r\n meta: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {\r\n page: { type: \"integer\" },\r\n confiance_global: { type: \"number\" }\r\n },\r\n required: [\"page\", \"confiance_global\"]\r\n },\r\n content: {\r\n type: \"object\",\r\n additionalProperties: false,\r\n properties: {},\r\n required: []\r\n }\r\n },\r\n required: [\"meta\", \"content\"]\r\n };\r\n\r\n if (schema?.Children) {\r\n schema.Children.forEach((child: any) => {\r\n if (child.System_Name && child.Type) {\r\n const fieldLabel = child.Settings?.Label || child.System_Name;\r\n const fieldType = this.mapOcrFieldType(child.Type);\r\n ocrSchema.properties.content.properties[fieldLabel] = {\r\n anyOf: [{ type: fieldType }, { type: \"null\" }]\r\n };\r\n }\r\n });\r\n }\r\n\r\n return JSON.stringify(ocrSchema);\r\n }\r\n\r\n private mapOcrFieldType(type: string): string {\r\n const typeMapping = {\r\n 'InputInteger': 'number',\r\n 'InputDecimal': 'number',\r\n 'InputDateTimePicker': 'string',\r\n 'InputCheckbox': 'boolean'\r\n };\r\n return typeMapping[type] || 'string';\r\n }\r\n\r\n private fileInputAudioRecord!: HTMLInputElement;\r\n\r\n private triggerAudioRecordUpload = () => {\r\n this.fileInputAudioRecord.click();\r\n };\r\n\r\n private handleAudioRecordChange = async (event: Event) => {\r\n const input = event.target as HTMLInputElement;\r\n if (!input.files || input.files.length === 0) return;\r\n\r\n const file = input.files[0];\r\n\r\n // Here you can handle the file upload to your API\r\n console.log('Selected file:', file);\r\n\r\n this.processAudioContent(file);\r\n };\r\n\r\n private renderUploadRecordButton() {\r\n if (!this.parsedInputTypes.includes('audio'))\r\n return;\r\n \r\n return (\r\n <div class=\"upload-record-container\" onClick={this.triggerAudioRecordUpload}>\r\n <input\r\n type=\"file\"\r\n ref={el => (this.fileInputAudioRecord = el!)}\r\n onChange={this.handleAudioRecordChange}\r\n style={{ display: 'none' }}\r\n />\r\n <div class='upload-record-button'>\r\n <svg width=\"800px\" height=\"800px\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2.75C6.89137 2.75 2.75 6.89137 2.75 12C2.75 17.1086 6.89137 21.25 12 21.25C12.6345 21.25 13.2534 21.1862 13.8508 21.065C14.2567 20.9826 14.6526 21.2448 14.735 21.6508C14.8174 22.0567 14.5551 22.4526 14.1492 22.535C13.4541 22.6761 12.7353 22.75 12 22.75C6.06294 22.75 1.25 17.9371 1.25 12C1.25 6.06294 6.06294 1.25 12 1.25C17.9371 1.25 22.75 6.06294 22.75 12C22.75 12.7353 22.6761 13.4541 22.535 14.1492C22.4526 14.5551 22.0567 14.8174 21.6508 14.735C21.2448 14.6526 20.9826 14.2567 21.065 13.8508C21.1862 13.2534 21.25 12.6345 21.25 12C21.25 6.89137 17.1086 2.75 12 2.75ZM12.7676 8.52584C12.7661 8.53409 12.7604 8.56729 12.7564 8.64336C12.7502 8.76101 12.75 8.91982 12.75 9.17082C12.75 9.27795 12.7501 9.33904 12.7518 9.38529C12.7528 9.41425 12.7542 9.42649 12.7546 9.42955C12.7662 9.48945 12.7993 9.54303 12.8477 9.58021C12.8502 9.58194 12.8606 9.58864 12.886 9.60252C12.9266 9.62468 12.9812 9.65209 13.0771 9.7L14.3938 10.3584C14.6183 10.4706 14.7604 10.5414 14.8684 10.5885C14.9382 10.6189 14.9705 10.6287 14.9785 10.631C15.0885 10.6405 15.1917 10.5767 15.2324 10.4742C15.2339 10.4659 15.2396 10.4327 15.2436 10.3566C15.2498 10.239 15.25 10.0802 15.25 9.82918C15.25 9.72205 15.2499 9.66096 15.2482 9.61471C15.2472 9.58575 15.2458 9.57351 15.2454 9.57045C15.2338 9.51055 15.2007 9.45697 15.1523 9.41979C15.1498 9.41805 15.1394 9.41136 15.114 9.39748C15.0734 9.37533 15.0188 9.34791 14.9229 9.3L13.6062 8.64164C13.3817 8.52939 13.2396 8.45859 13.1316 8.41151C13.0617 8.38107 13.0295 8.37131 13.0215 8.36896C12.9115 8.35945 12.8083 8.42327 12.7676 8.52584ZM12.75 11.2135L13.7396 11.7083C13.9425 11.8098 14.1204 11.8987 14.269 11.9635C14.4199 12.0293 14.5988 12.097 14.7972 12.1202C15.6037 12.2142 16.3689 11.7413 16.6454 10.978C16.7134 10.7901 16.7328 10.5998 16.7415 10.4355C16.75 10.2735 16.75 10.0747 16.75 9.8479V9.82918C16.75 9.81565 16.75 9.80205 16.75 9.78837C16.7503 9.62647 16.7505 9.45474 16.7188 9.28904C16.638 8.86674 16.4045 8.48898 16.0629 8.22783C15.9289 8.12535 15.7752 8.04877 15.6303 7.97658C15.618 7.97048 15.6059 7.96441 15.5938 7.95836L14.2603 7.29164C14.0575 7.19022 13.8796 7.10128 13.731 7.03647C13.5801 6.97071 13.4012 6.90297 13.2028 6.87982C12.3963 6.78575 11.6311 7.25868 11.3546 8.02203C11.2866 8.20986 11.2672 8.40019 11.2585 8.56454C11.2519 8.68919 11.2504 8.83571 11.2501 9L11.25 9.11944C11.25 9.13026 11.25 9.14115 11.25 9.1521V9.17082C11.25 9.18435 11.25 9.19795 11.25 9.21163C11.2499 9.23918 11.2499 9.26701 11.25 9.29505V12.5499C10.875 12.3581 10.4501 12.25 10 12.25C8.48122 12.25 7.25 13.4812 7.25 15C7.25 16.5188 8.48122 17.75 10 17.75C11.5188 17.75 12.75 16.5188 12.75 15V11.2135ZM11.25 15C11.25 14.3096 10.6904 13.75 10 13.75C9.30964 13.75 8.75 14.3096 8.75 15C8.75 15.6904 9.30964 16.25 10 16.25C10.6904 16.25 11.25 15.6904 11.25 15ZM17.4697 14.4697C17.7626 14.1768 18.2374 14.1768 18.5303 14.4697L21.0303 16.9697C21.3232 17.2626 21.3232 17.7374 21.0303 18.0303C20.7374 18.3232 20.2626 18.3232 19.9697 18.0303L18.75 16.8107V22C18.75 22.4142 18.4142 22.75 18 22.75C17.5858 22.75 17.25 22.4142 17.25 22V16.8107L16.0303 18.0303C15.7374 18.3232 15.2626 18.3232 14.9697 18.0303C14.6768 17.7374 14.6768 17.2626 14.9697 16.9697L17.4697 14.4697Z\" />\r\n </svg>\r\n </div>\r\n </div>\r\n )\r\n }\r\n\r\n private renderRecordButton() {\r\n if (!this.parsedInputTypes.includes('voice'))\r\n return;\r\n\r\n const buttonClass = [\r\n 'record-button',\r\n this.isRecording && 'recording',\r\n this.isProcessing && 'processing'\r\n ].filter(Boolean).join(' ');\r\n\r\n const isDisabled = this.isProcessing || this.hasError;\r\n\r\n return (\r\n <button \r\n class={buttonClass}\r\n onClick={() => this.handleRecordClick()}\r\n disabled={isDisabled}\r\n aria-label={this.isRecording ? 'Stop recording' : 'Start recording'}\r\n >\r\n {this.isProcessing ? (\r\n <svg class=\"record-icon\" viewBox=\"0 0 24 24\">\r\n <circle cx=\"12\" cy=\"12\" r=\"3\">\r\n <animate attributeName=\"r\" values=\"3;6;3\" dur=\"1s\" repeatCount=\"indefinite\" />\r\n <animate attributeName=\"opacity\" values=\"1;0.3;1\" dur=\"1s\" repeatCount=\"indefinite\" />\r\n </circle>\r\n </svg>\r\n ) : this.isRecording ? (\r\n <svg class=\"record-icon\" viewBox=\"0 0 24 24\">\r\n <rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\" />\r\n </svg>\r\n ) : (\r\n <svg class=\"record-icon\" viewBox=\"0 0 24 24\">\r\n <circle cx=\"12\" cy=\"12\" r=\"8\" />\r\n </svg>\r\n )}\r\n </button>\r\n );\r\n }\r\n\r\n private renderStatusMessage() {\r\n const statusClass = [\r\n 'status-text',\r\n this.hasError && 'error',\r\n this.filledData && !this.hasError && 'success'\r\n ].filter(Boolean).join(' ');\r\n\r\n return <div class={statusClass}>{this.statusMessage}</div>;\r\n }\r\n\r\n private renderFormPreview() {\r\n if (!this.parsedSchema) return null;\r\n\r\n const isPreview = this.isReadonlyMode && !this.filledData;\r\n const title = isPreview ? 'Form Preview (Voice input to fill)' : 'Voice-Filled Form:';\r\n \r\n return (\r\n <div class=\"form-preview\">\r\n <div class=\"form-preview-title\">{title}</div>\r\n <form class=\"voice-filled-form\">\r\n {this.renderFormFields()}\r\n </form>\r\n </div>\r\n );\r\n }\r\n\r\n private renderFormFields() {\r\n // console.log(\"renderFormFields\", this.parsedSchema);\r\n if (!this.parsedSchema) return null;\r\n \r\n switch(this.context){\r\n case \"ecoteka\":\r\n // console.log(\"TODO renderFormFields\", this.parsedSchema);\r\n case \"ng\":\r\n return this.parsedSchema.Children.map((child: any) => {\r\n if (!child.System_Name || !child.Type) return null;\r\n \r\n const fieldName = child.System_Name;\r\n const fieldType = this.mapFieldType(child.Type);\r\n const fieldLabel = child.Settings?.Label || child.System_Name;\r\n const isRequired = child.Required || false;\r\n const fieldValue = child.Settings?.Default_Value;\r\n \r\n return (\r\n <div class=\"form-group\" key={fieldName}>\r\n <label htmlFor={fieldName} class=\"form-label\">\r\n {fieldLabel}\r\n {isRequired && <span class=\"required\">*</span>}\r\n </label>\r\n {this.renderFormField(fieldName, {\r\n type: fieldType,\r\n title: fieldLabel,\r\n required: isRequired,\r\n options: child.Children?.map((option: any) => \r\n option.System_Name || option.Label || option.toString()\r\n )\r\n }, fieldValue)}\r\n </div>\r\n );\r\n }).filter(Boolean);\r\n case \"ecoll-veto\":\r\n // NOTE STEP 2\r\n // console.log(\"TODO renderFormFields\", this.parsedSchema);\r\n const mergedItemsSchema = (this.parsedSchema[0].items).concat(this.parsedSchema[1].items);\r\n return Object.entries(mergedItemsSchema).map(([key, field]: [string, any]) => {\r\n \r\n const fieldName = field.name;\r\n field.type = this.mapFieldType(field.type);\r\n const fieldLabel = field.label || fieldName;\r\n const isRequired = field.required || false;\r\n const fieldValue = this.parsedSchema[2][fieldName];\r\n\r\n // if (['position', 'thesaurus'].includes(field.type)) {\r\n // try {\r\n // const response = await fetch(`${this.classificationRootUrl}/ng/api/v1/classification/getList/${fieldType.toLowerCase() == 'position' ? \"Position\" : \"Thesaurus\"}/?StartNodeID=${field.config.options.options.startNode}`);\r\n // if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\r\n\r\n // const data = await response.json();\r\n // if (Array.isArray(data)) {\r\n // const options = data.map(item => ({\r\n // value: item.ID,\r\n // label: item.System_Name\r\n // }));\r\n // if (options.length > 0) {\r\n // field.pickerOptions = options;\r\n // // TODO on degage les quotes simples temporairement, a corriger\r\n // field.options = options.map(option => option.label.replace(\"'\", \"\"));\r\n // }\r\n // } else {\r\n // console.error(\"Unexpected API response format:\", data);\r\n // }\r\n // } catch (error) {\r\n // console.error(\"Error fetching classification data:\", error);\r\n // }\r\n // }\r\n\r\n console.log(\"filling with\", field);\r\n\r\n return (\r\n <div class=\"form-group\" key={fieldName}>\r\n <label htmlFor={fieldName} class=\"form-label\">\r\n { fieldLabel }\r\n {isRequired && <span class=\"required\">*</span>}\r\n </label>\r\n {this.renderFormField(fieldName, field, (this.filledData?.[fieldName] ?? fieldValue))}\r\n </div>\r\n );\r\n });\r\n case \"track\":\r\n default:\r\n return Object.entries(this.parsedSchema.fields).map(([fieldName, field]: [string, any]) => (\r\n <div class=\"form-group\" key={fieldName}>\r\n <label htmlFor={fieldName} class=\"form-label\">\r\n {field.title || fieldName}\r\n {field.required && <span class=\"required\">*</span>}\r\n </label>\r\n {this.renderFormField(fieldName, field, (this.filledData?.[fieldName] ?? field.value))}\r\n </div>\r\n ));\r\n }\r\n }\r\n\r\n private renderFormField(fieldName: string, field: any, value: any) {\r\n const isReadonly = this.isReadonlyMode && !this.filledData;\r\n const commonProps = {\r\n id: fieldName,\r\n name: fieldName,\r\n class: 'form-input',\r\n required: field.required,\r\n disabled: isReadonly\r\n };\r\n\r\n switch (field.type) {\r\n case 'multiselect':\r\n if (isReadonly) {\r\n return (\r\n <div class=\"readonly-select\">\r\n <div class=\"select-placeholder\">Available options:</div>\r\n <ul class=\"select-options-list\">\r\n {field.options?.map(option => (\r\n <li class=\"select-option\">{option}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n const selectedValues = Array.isArray(value) ? value : (value ? [value] : []);\r\n return (\r\n <div class=\"multiselect-container\">\r\n {field.options?.map(option => {\r\n const isChecked = selectedValues.some(v => \r\n v?.toString().toLowerCase() === option?.toString().toLowerCase()\r\n );\r\n return (\r\n <label class=\"multiselect-option\">\r\n <input \r\n type=\"checkbox\" \r\n name={fieldName}\r\n value={option}\r\n checked={isChecked}\r\n disabled={isReadonly}\r\n />\r\n <span class=\"multiselect-label\">{option}</span>\r\n </label>\r\n );\r\n })}\r\n </div>\r\n );\r\n \r\n case 'select':\r\n if (isReadonly) {\r\n // In readonly mode, show all options as a list instead of dropdown\r\n return (\r\n <div class=\"readonly-select\">\r\n <div class=\"select-placeholder\">Available options:</div>\r\n <ul class=\"select-options-list\">\r\n {field.options?.map(option => (\r\n <li class=\"select-option\">{option}</li>\r\n ))}\r\n </ul>\r\n </div>\r\n );\r\n }\r\n return (\r\n <select id={fieldName} name={fieldName} class=\"form-input\" required={field.required}>\r\n <option value=\"\">-- Select --</option>\r\n {field.options?.map(option => (\r\n <option value={option} selected={value === option}>\r\n {option}\r\n </option>\r\n ))}\r\n </select>\r\n );\r\n \r\n case 'boolean':\r\n return (\r\n <input \r\n {...commonProps}\r\n type=\"checkbox\" \r\n class=\"form-checkbox\"\r\n checked={value === true || value === 'true'}\r\n />\r\n );\r\n \r\n case 'number':\r\n return (\r\n <input \r\n {...commonProps}\r\n type=\"number\" \r\n min={field.min}\r\n max={field.max}\r\n step=\"any\"\r\n value={value || ''}\r\n />\r\n );\r\n \r\n case 'date':\r\n return (\r\n <input \r\n {...commonProps}\r\n type='date'\r\n value={value ? (([d, m, y]) => `${y}-${m}-${d}`)(value.split(\"/\")) : ''}\r\n />\r\n );\r\n\r\n case 'datetime':\r\n return (\r\n <input \r\n {...commonProps}\r\n type='datetime-local'\r\n value={value || ''}\r\n />\r\n );\r\n \r\n default: // string\r\n return (\r\n <input \r\n {...commonProps}\r\n type=\"text\" \r\n pattern={field.pattern}\r\n placeholder={field.description}\r\n value={value || ''}\r\n />\r\n );\r\n }\r\n }\r\n\r\n private renderDebugPanel() {\r\n if (!this.debug) return null;\r\n\r\n return (\r\n <div class=\"debug-panel\">\r\n <div class=\"debug-title\">Debug Information:</div>\r\n <div class=\"debug-content\">\r\n {JSON.stringify(this.debugInfo, null, 2)}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <div>\r\n <div class={\"voice-recorder-container\" + (this.debug || this.renderForm ? \"-debug\" : \"\")}>\r\n <div class=\"row-audio-area\">\r\n {this.renderRecordButton()}\r\n {this.renderUploadRecordButton()}\r\n </div>\r\n {this.displayStatus ? this.renderStatusMessage() : \"\"}\r\n {this.renderUploadButton()}\r\n {this.renderForm ? this.renderFormPreview() : \"\"}\r\n {this.debug ? this.renderDebugPanel() : \"\"}\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"],"names":["h"],"mappings":"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","x_google_ignoreList":[0,1,6,7,8,9]}