reneco-advanced-input-module 0.0.23 → 0.0.25
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.
- package/dist/cjs/{index-BTSzTkSZ.js → index-BtdDZbi5.js} +11 -4
- package/dist/cjs/index-BtdDZbi5.js.map +1 -0
- package/dist/cjs/loader.cjs.js +3 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/ocr-file-uploader.cjs.entry.js +1 -1
- package/dist/cjs/voice-input-module.cjs.entry.js +43 -7
- package/dist/cjs/voice-input-module.cjs.entry.js.map +1 -1
- package/dist/cjs/voice-input-module.cjs.js +3 -4
- package/dist/cjs/voice-input-module.cjs.js.map +1 -1
- package/dist/cjs/voice-input-module.entry.cjs.js.map +1 -1
- package/dist/collection/components/voice-input-module/voice-input-module.css +34 -0
- package/dist/collection/components/voice-input-module/voice-input-module.js +43 -6
- package/dist/collection/components/voice-input-module/voice-input-module.js.map +1 -1
- package/dist/components/voice-input-module.js +43 -6
- package/dist/components/voice-input-module.js.map +1 -1
- package/dist/esm/{index-jmc2yzBp.js → index-a7QWC-5I.js} +11 -5
- package/dist/esm/index-a7QWC-5I.js.map +1 -0
- package/dist/esm/loader.js +3 -4
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/ocr-file-uploader.entry.js +1 -1
- package/dist/esm/voice-input-module.entry.js +43 -7
- package/dist/esm/voice-input-module.entry.js.map +1 -1
- package/dist/esm/voice-input-module.js +3 -4
- package/dist/esm/voice-input-module.js.map +1 -1
- package/dist/types/components/voice-input-module/voice-input-module.d.ts +3 -0
- package/dist/voice-input-module/loader.esm.js.map +1 -1
- package/dist/voice-input-module/{p-920964b2.entry.js → p-334644ec.entry.js} +3 -3
- package/dist/voice-input-module/p-334644ec.entry.js.map +1 -0
- package/dist/voice-input-module/p-a7QWC-5I.js +3 -0
- package/dist/voice-input-module/p-a7QWC-5I.js.map +1 -0
- package/dist/voice-input-module/{p-a5eeaf1c.entry.js → p-ba3d83d1.entry.js} +2 -2
- package/dist/voice-input-module/voice-input-module.css +6 -0
- package/dist/voice-input-module/voice-input-module.entry.esm.js.map +1 -1
- package/dist/voice-input-module/voice-input-module.esm.js +1 -1
- package/dist/voice-input-module/voice-input-module.esm.js.map +1 -1
- package/package.json +1 -1
- package/www/build/loader.esm.js.map +1 -1
- package/www/build/{p-920964b2.entry.js → p-334644ec.entry.js} +3 -3
- package/www/build/p-334644ec.entry.js.map +1 -0
- package/www/build/p-6cd2a3a1.css +6 -0
- package/www/build/p-a7QWC-5I.js +3 -0
- package/www/build/p-a7QWC-5I.js.map +1 -0
- package/www/build/{p-a5eeaf1c.entry.js → p-ba3d83d1.entry.js} +2 -2
- package/www/build/p-dfdcd9a6.js +2 -0
- package/www/build/voice-input-module.css +6 -0
- package/www/build/voice-input-module.entry.esm.js.map +1 -1
- package/www/build/voice-input-module.esm.js +1 -1
- package/www/build/voice-input-module.esm.js.map +1 -1
- package/www/index.html +1 -1
- package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -8
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
- package/dist/cjs/index-BTSzTkSZ.js.map +0 -1
- package/dist/esm/app-globals-DQuL1Twl.js +0 -6
- package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
- package/dist/esm/index-jmc2yzBp.js.map +0 -1
- package/dist/voice-input-module/p-920964b2.entry.js.map +0 -1
- package/dist/voice-input-module/p-DQuL1Twl.js +0 -2
- package/dist/voice-input-module/p-DQuL1Twl.js.map +0 -1
- package/dist/voice-input-module/p-jmc2yzBp.js +0 -3
- package/dist/voice-input-module/p-jmc2yzBp.js.map +0 -1
- package/www/build/p-920964b2.entry.js.map +0 -1
- package/www/build/p-DQuL1Twl.js +0 -2
- package/www/build/p-DQuL1Twl.js.map +0 -1
- package/www/build/p-cbf8974a.js +0 -2
- package/www/build/p-jmc2yzBp.js +0 -3
- package/www/build/p-jmc2yzBp.js.map +0 -1
- /package/dist/voice-input-module/{p-a5eeaf1c.entry.js.map → p-ba3d83d1.entry.js.map} +0 -0
- /package/www/build/{p-a5eeaf1c.entry.js.map → p-ba3d83d1.entry.js.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, h } from './index-
|
|
1
|
+
import { r as registerInstance, h } from './index-a7QWC-5I.js';
|
|
2
2
|
|
|
3
3
|
const ocrFileUploaderCss = ".upload-container{display:inline-block;cursor:pointer}.upload-button{display:flex;align-items:center;justify-content:center;transition:transform 0.2s ease;user-select:none;width:var(--button-size, 50px);height:var(--button-size, 50px)}.upload-button svg{width:100%;height:100%;stroke:var(--button-bg, #10b981);transition:stroke 0.2s ease, transform 0.2s ease}.upload-button:hover svg{transform:scale(1.05);stroke:var(--button-hover, #059669)}";
|
|
4
4
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, h as h$1 } from './index-
|
|
1
|
+
import { r as registerInstance, c as createEvent, h as h$1 } from './index-a7QWC-5I.js';
|
|
2
2
|
|
|
3
3
|
const TRANSCRIPTION_MODELS = {
|
|
4
4
|
openai: ['gpt-4o-transcribe', 'gpt-4o-mini-transcribe', 'whisper-1'],
|
|
@@ -4325,7 +4325,7 @@ const defineCustomElements = async (win, options) => {
|
|
|
4325
4325
|
|
|
4326
4326
|
(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);}})();
|
|
4327
4327
|
|
|
4328
|
-
const voiceInputModuleCss = ":host{display:block;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif}.row-audio-area{display:flex;flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.voice-recorder-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;border:1px solid #e5e7eb;border-radius:0.5rem;background:#ffffff;margin:0 auto}.voice-recorder-container-debug{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;border:1px solid #e5e7eb;border-radius:0.5rem;background:#ffffff;margin:0 auto}.upload-record-container{display:inline-flex;cursor:pointer}.upload-record-button{display:flex;align-items:center;justify-content:center;transition:transform 0.2s ease, box-shadow 0.2s ease;user-select:none}.upload-record-button svg{width:100%;height:100%;transition:transform 0.2s ease}.upload-record-container:hover .upload-record-button svg{transform:scale(1.05)}.upload-record-button svg path{}.record-button{display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#ee4444;color:white;cursor:pointer;transition:all 0.2s ease;position:relative;overflow:hidden;flex-shrink:0}.record-button:hover:not(:disabled){background:#dd3333;transform:scale(1.05)}.record-button:disabled{opacity:0.6;cursor:not-allowed}.record-button.recording{background:#dd3333;animation:pulse 1.5s infinite}.record-button.processing{background:#3b82f6}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(239, 68, 68, 0.7)}70%{box-shadow:0 0 0 10px rgba(239, 68, 68, 0)}100%{box-shadow:0 0 0 0 rgba(239, 68, 68, 0)}}.record-icon{width:24px;height:24px;fill:currentColor}.status-text{font-size:0.875rem;color:#6b7280;text-align:center;min-height:1.25rem}.status-text.error{color:#ee4444}.status-text.success{color:#10b981}.debug-panel{width:100%;margin-top:1rem;padding:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:0.375rem;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace;font-size:0.75rem}.debug-title{font-weight:600;margin-bottom:0.5rem;color:#374151}.debug-content{white-space:pre-wrap;word-break:break-word;color:#6b7280;max-height:200px;overflow-y:auto}.permissions-warning{padding:0.75rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:0.375rem;color:#92400e;font-size:0.875rem;text-align:center}.form-preview{width:100%;margin-top:1rem;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:0.375rem}.form-preview-title{font-weight:600;margin-bottom:0.5rem;color:#1e293b}.form-field{margin-bottom:0.5rem;font-size:0.875rem}.field-name{font-weight:500;color:#475569}.field-value{color:#64748b;margin-left:0.5rem}.field-value.filled{color:#059669;font-weight:500}.voice-filled-form{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:0.5rem;margin-top:1rem}.form-group{display:flex;flex-direction:column;gap:0.15rem}.form-group.full-width{grid-column:1 / -1}.form-header{grid-column:1 / -1;font-weight:600;font-size:1rem;color:#1e293b;margin-top:0.75rem;margin-bottom:0.25rem;padding-bottom:0.25rem;border-bottom:2px solid #e2e8f0}.form-label{font-weight:500;color:#374151;font-size:0.8rem}.required{color:#ee4444;margin-left:0.125rem}.form-input{padding:0.4rem;border:1px solid #d1d5db;border-radius:0.375rem;font-size:0.8rem;transition:border-color 0.2s ease}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.form-checkbox{width:auto;padding:0;margin:0}select.form-input{background-color:white;cursor:pointer}input[type=\"date\"].form-input{cursor:pointer}.readonly-select{background:#f9fafb;border:1px solid #d1d5db;border-radius:0.375rem;padding:0.5rem}.select-placeholder{font-size:0.875rem;color:#6b7280;margin-bottom:0.5rem}.select-options-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0.25rem;max-height:150px;overflow-y:auto}.select-option{background:#e5e7eb;padding:0.25rem 0.5rem;border-radius:0.25rem;font-size:0.875rem;color:#374151}.multiselect-container{display:grid;grid-template-columns:repeat(2, 1fr);gap:0.25rem;padding:0.5rem;border:1px solid #d1d5db;border-radius:0.375rem;background:white}.multiselect-option{display:flex;align-items:center;gap:0.5rem;padding:0.5rem;border-radius:0.25rem;cursor:pointer;transition:background 0.2s ease}.multiselect-option:hover{background:#f3f4f6}.multiselect-option input[type=\"checkbox\"]{width:18px;height:18px;cursor:pointer}.multiselect-option input[type=\"checkbox\"]:checked+.multiselect-label{font-weight:600;color:#059669}.multiselect-label{font-size:0.875rem;color:#374151;user-select:none}ocr-file-uploader{display:block;width:100% !important;height:100% !important;max-width:100% !important;max-height:100% !important}ocr-file-uploader *{max-width:100% !important;max-height:100% !important}";
|
|
4328
|
+
const voiceInputModuleCss = ":host{display:block;font-family:-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif}.row-audio-area{display:flex;flex-direction:row;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center}.voice-recorder-container{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;border:1px solid #e5e7eb;border-radius:0.5rem;background:#ffffff;margin:0 auto}.voice-recorder-container-debug{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem;border:1px solid #e5e7eb;border-radius:0.5rem;background:#ffffff;margin:0 auto}.upload-record-container{display:inline-flex;cursor:pointer}.upload-record-button{display:flex;align-items:center;justify-content:center;transition:transform 0.2s ease, box-shadow 0.2s ease;user-select:none}.upload-record-button svg{width:100%;height:100%;transition:transform 0.2s ease}.upload-record-container:hover .upload-record-button svg{transform:scale(1.05)}.upload-record-button svg path{}.record-button{display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;background:#ee4444;color:white;cursor:pointer;transition:all 0.2s ease;position:relative;overflow:hidden;flex-shrink:0}.record-button:hover:not(:disabled){background:#dd3333;transform:scale(1.05)}.record-button:disabled{opacity:0.6;cursor:not-allowed}.record-button.recording{background:#dd3333;animation:pulse 1.5s infinite}.record-button.processing{background:#3b82f6}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(239, 68, 68, 0.7)}70%{box-shadow:0 0 0 10px rgba(239, 68, 68, 0)}100%{box-shadow:0 0 0 0 rgba(239, 68, 68, 0)}}.record-icon{width:24px;height:24px;fill:currentColor}.status-text{font-size:0.875rem;color:#6b7280;text-align:center;min-height:1.25rem}.status-text.error{color:#ee4444}.status-text.success{color:#10b981}.debug-panel{width:100%;margin-top:1rem;padding:1rem;background:#f9fafb;border:1px solid #e5e7eb;border-radius:0.375rem;font-family:'Monaco', 'Menlo', 'Ubuntu Mono', monospace;font-size:0.75rem}.debug-title{font-weight:600;margin-bottom:0.5rem;color:#374151}.debug-content{white-space:pre-wrap;word-break:break-word;color:#6b7280;max-height:200px;overflow-y:auto}.permissions-warning{padding:0.75rem;background:#fef3c7;border:1px solid #f59e0b;border-radius:0.375rem;color:#92400e;font-size:0.875rem;text-align:center}.form-preview{width:100%;margin-top:1rem;padding:1rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:0.375rem}.form-preview-title{font-weight:600;margin-bottom:0.5rem;color:#1e293b}.form-field{margin-bottom:0.5rem;font-size:0.875rem}.field-name{font-weight:500;color:#475569}.field-value{color:#64748b;margin-left:0.5rem}.field-value.filled{color:#059669;font-weight:500}.voice-filled-form{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px, 1fr));gap:0.5rem;margin-top:1rem}.form-group{display:flex;flex-direction:column;gap:0.15rem}.form-group.full-width{grid-column:1 / -1}.form-header{grid-column:1 / -1;font-weight:600;font-size:1rem;color:#1e293b;margin-top:0.75rem;margin-bottom:0.25rem;padding-bottom:0.25rem;border-bottom:2px solid #e2e8f0}.form-label{font-weight:500;color:#374151;font-size:0.8rem}.required{color:#ee4444;margin-left:0.125rem}.form-input{padding:0.4rem;border:1px solid #d1d5db;border-radius:0.375rem;font-size:0.8rem;transition:border-color 0.2s ease}.form-input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px rgba(59, 130, 246, 0.1)}.form-checkbox{width:auto;padding:0;margin:0}select.form-input{background-color:white;cursor:pointer}input[type=\"date\"].form-input{cursor:pointer}.readonly-select{background:#f9fafb;border:1px solid #d1d5db;border-radius:0.375rem;padding:0.5rem}.select-placeholder{font-size:0.875rem;color:#6b7280;margin-bottom:0.5rem}.select-options-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:0.25rem;max-height:150px;overflow-y:auto}.select-option{background:#e5e7eb;padding:0.25rem 0.5rem;border-radius:0.25rem;font-size:0.875rem;color:#374151}.multiselect-container{display:grid;grid-template-columns:repeat(2, 1fr);gap:0.25rem;padding:0.5rem;border:1px solid #d1d5db;border-radius:0.375rem;background:white}.multiselect-option{display:flex;align-items:center;gap:0.5rem;padding:0.5rem;border-radius:0.25rem;cursor:pointer;transition:background 0.2s ease}.multiselect-option:hover{background:#f3f4f6}.multiselect-option input[type=\"checkbox\"]{width:18px;height:18px;cursor:pointer}.multiselect-option input[type=\"checkbox\"]:checked+.multiselect-label{font-weight:600;color:#059669}.multiselect-label{font-size:0.875rem;color:#374151;user-select:none}@keyframes skeleton-shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}.skeleton-circle{border-radius:50%;flex-shrink:0;background:linear-gradient(\r\n 90deg,\r\n #e2e8f0 25%,\r\n #f8fafc 50%,\r\n #e2e8f0 75%\r\n );background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite}.skeleton-status{height:14px;border-radius:7px;width:140px;background:linear-gradient(\r\n 90deg,\r\n #e2e8f0 25%,\r\n #f8fafc 50%,\r\n #e2e8f0 75%\r\n );background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;animation-delay:0.15s}ocr-file-uploader{display:block;width:100% !important;height:100% !important;max-width:100% !important;max-height:100% !important}ocr-file-uploader *{max-width:100% !important;max-height:100% !important}";
|
|
4329
4329
|
|
|
4330
4330
|
// Initialize OCR
|
|
4331
4331
|
defineCustomElements();
|
|
@@ -4367,6 +4367,7 @@ const VoiceFormRecorder = class {
|
|
|
4367
4367
|
this.filledData = null;
|
|
4368
4368
|
this.debugInfo = {};
|
|
4369
4369
|
this.isReadonlyMode = true; // Start in readonly preview mode
|
|
4370
|
+
this.isInitializing = true;
|
|
4370
4371
|
this.triggerAudioRecordUpload = () => {
|
|
4371
4372
|
this.fileInputAudioRecord.click();
|
|
4372
4373
|
};
|
|
@@ -4374,6 +4375,10 @@ const VoiceFormRecorder = class {
|
|
|
4374
4375
|
const input = event.target;
|
|
4375
4376
|
if (!input.files || input.files.length === 0)
|
|
4376
4377
|
return;
|
|
4378
|
+
if (this.isProcessing || this.isRecording) {
|
|
4379
|
+
input.value = '';
|
|
4380
|
+
return;
|
|
4381
|
+
}
|
|
4377
4382
|
const file = input.files[0];
|
|
4378
4383
|
const isEn = this.language === 'en';
|
|
4379
4384
|
// Validate file type
|
|
@@ -4394,7 +4399,18 @@ const VoiceFormRecorder = class {
|
|
|
4394
4399
|
this.audioRecorder = new AudioRecorderService();
|
|
4395
4400
|
}
|
|
4396
4401
|
componentWillLoad() {
|
|
4402
|
+
// Parse theme only so the skeleton can be styled correctly on first render.
|
|
4403
|
+
// Full initialization runs in componentDidLoad() to give the skeleton time to paint.
|
|
4404
|
+
try {
|
|
4405
|
+
this.parsedTheme = this.theme ? JSON.parse(this.theme) : this.getDefaultTheme();
|
|
4406
|
+
}
|
|
4407
|
+
catch (_a) {
|
|
4408
|
+
this.parsedTheme = this.getDefaultTheme();
|
|
4409
|
+
}
|
|
4410
|
+
}
|
|
4411
|
+
componentDidLoad() {
|
|
4397
4412
|
this.initializeServices();
|
|
4413
|
+
this.isInitializing = false;
|
|
4398
4414
|
}
|
|
4399
4415
|
initializeServices() {
|
|
4400
4416
|
var _a;
|
|
@@ -4592,6 +4608,8 @@ const VoiceFormRecorder = class {
|
|
|
4592
4608
|
}
|
|
4593
4609
|
async processJsonForm(ocrData) {
|
|
4594
4610
|
var _a, _b, _c;
|
|
4611
|
+
if (this.isProcessing || this.isRecording)
|
|
4612
|
+
return;
|
|
4595
4613
|
this.isProcessing = true;
|
|
4596
4614
|
this.hasTransientError = false;
|
|
4597
4615
|
this.statusMessage = ((_a = this.parsedTheme.texts) === null || _a === void 0 ? void 0 : _a.processing) || (this.language == 'en' ? 'Processing document...' : 'Traitement du document ...');
|
|
@@ -4629,6 +4647,8 @@ const VoiceFormRecorder = class {
|
|
|
4629
4647
|
}
|
|
4630
4648
|
async processAudioContent(audioFile) {
|
|
4631
4649
|
var _a, _b, _c;
|
|
4650
|
+
if (this.isProcessing || this.isRecording)
|
|
4651
|
+
return;
|
|
4632
4652
|
this.isProcessing = true;
|
|
4633
4653
|
this.hasTransientError = false;
|
|
4634
4654
|
this.updateDebugInfo('Audio Captured', { size: audioFile.size, type: audioFile.type });
|
|
@@ -4945,7 +4965,7 @@ const VoiceFormRecorder = class {
|
|
|
4945
4965
|
textColor: ocrStyle.textColor || '#ffffff'
|
|
4946
4966
|
}
|
|
4947
4967
|
};
|
|
4948
|
-
const isDisabled = this.isProcessing || this.hasError;
|
|
4968
|
+
const isDisabled = this.isProcessing || this.hasError || this.isRecording;
|
|
4949
4969
|
return (h$1("div", { style: { width: size, height: size, flexShrink: '0', opacity: isDisabled ? '0.6' : '1', pointerEvents: isDisabled ? 'none' : 'auto' } }, h$1("ocr-file-uploader", { batch: false, "json-schema": this.convertSchemaToOcrFormat(this.parsedSchema), callback: (data) => { this.processJsonForm(data); }, theme: JSON.stringify(ocrTheme), style: { width: '100%', height: '100%' } })));
|
|
4950
4970
|
}
|
|
4951
4971
|
convertSchemaToOcrFormat(schema) {
|
|
@@ -5000,7 +5020,7 @@ const VoiceFormRecorder = class {
|
|
|
5000
5020
|
return;
|
|
5001
5021
|
const audioStyle = ((_a = this.parsedTheme.buttons) === null || _a === void 0 ? void 0 : _a.audio) || {};
|
|
5002
5022
|
const size = audioStyle.size || '50px';
|
|
5003
|
-
const isDisabled = this.isProcessing || this.hasError;
|
|
5023
|
+
const isDisabled = this.isProcessing || this.hasError || this.isRecording;
|
|
5004
5024
|
const buttonStyle = {
|
|
5005
5025
|
stroke: audioStyle.backgroundColor || '#3b82f6',
|
|
5006
5026
|
fill: audioStyle.backgroundColor || '#3b82f6',
|
|
@@ -5029,6 +5049,17 @@ const VoiceFormRecorder = class {
|
|
|
5029
5049
|
};
|
|
5030
5050
|
return (h$1("button", { class: buttonClass, style: buttonStyle, onClick: () => this.handleRecordClick(), disabled: isDisabled, "aria-label": this.isRecording ? 'Stop recording' : 'Start recording' }, this.isProcessing ? (h$1("svg", { class: "record-icon", viewBox: "0 0 24 24" }, h$1("circle", { cx: "12", cy: "12", r: "3" }, h$1("animate", { attributeName: "r", values: "3;6;3", dur: "1s", repeatCount: "indefinite" }), h$1("animate", { attributeName: "opacity", values: "1;0.3;1", dur: "1s", repeatCount: "indefinite" })))) : this.isRecording ? (h$1("svg", { class: "record-icon", viewBox: "0 0 24 24" }, h$1("rect", { x: "6", y: "6", width: "12", height: "12", rx: "2" }))) : (h$1("svg", { class: "record-icon", viewBox: "0 0 24 24" }, h$1("circle", { cx: "12", cy: "12", r: "8" })))));
|
|
5031
5051
|
}
|
|
5052
|
+
renderLoadingSkeleton() {
|
|
5053
|
+
var _a;
|
|
5054
|
+
const types = this.parsedInputTypes.length > 0 ? this.parsedInputTypes : ['voice'];
|
|
5055
|
+
const containerStyle = this.getContainerStyle();
|
|
5056
|
+
const buttons = (((_a = this.parsedTheme) === null || _a === void 0 ? void 0 : _a.buttons) || {});
|
|
5057
|
+
const getSize = (type) => { var _a, _b; return ((_a = buttons[type]) === null || _a === void 0 ? void 0 : _a.size) || ((_b = buttons.voice) === null || _b === void 0 ? void 0 : _b.size) || '50px'; };
|
|
5058
|
+
return (h$1("div", null, h$1("div", { class: "voice-recorder-container" + (this.debug || this.renderForm ? "-debug" : ""), style: containerStyle }, h$1("div", { class: "row-audio-area" }, types.map(type => {
|
|
5059
|
+
const size = getSize(type);
|
|
5060
|
+
return h$1("div", { class: "skeleton-circle", style: { width: size, height: size } });
|
|
5061
|
+
})), this.displayStatus && h$1("div", { class: "skeleton-status" }))));
|
|
5062
|
+
}
|
|
5032
5063
|
renderStatusMessage() {
|
|
5033
5064
|
const hasAnyError = this.hasError || this.hasTransientError;
|
|
5034
5065
|
const statusClass = [
|
|
@@ -5190,7 +5221,8 @@ const VoiceFormRecorder = class {
|
|
|
5190
5221
|
};
|
|
5191
5222
|
}
|
|
5192
5223
|
getContainerStyle() {
|
|
5193
|
-
|
|
5224
|
+
var _a;
|
|
5225
|
+
const c = ((_a = this.parsedTheme) === null || _a === void 0 ? void 0 : _a.container) || {};
|
|
5194
5226
|
return {
|
|
5195
5227
|
width: c.width || 'auto',
|
|
5196
5228
|
height: c.height || 'auto',
|
|
@@ -5202,15 +5234,19 @@ const VoiceFormRecorder = class {
|
|
|
5202
5234
|
};
|
|
5203
5235
|
}
|
|
5204
5236
|
getStatusStyle() {
|
|
5205
|
-
|
|
5237
|
+
var _a;
|
|
5238
|
+
const s = ((_a = this.parsedTheme) === null || _a === void 0 ? void 0 : _a.statusText) || {};
|
|
5206
5239
|
return {
|
|
5207
5240
|
color: s.color || '#1e293b',
|
|
5208
5241
|
fontSize: s.fontSize || '14px'
|
|
5209
5242
|
};
|
|
5210
5243
|
}
|
|
5211
5244
|
render() {
|
|
5245
|
+
if (this.isInitializing) {
|
|
5246
|
+
return this.renderLoadingSkeleton();
|
|
5247
|
+
}
|
|
5212
5248
|
const containerStyle = this.getContainerStyle();
|
|
5213
|
-
return (h$1("div",
|
|
5249
|
+
return (h$1("div", null, h$1("div", { class: "voice-recorder-container" + (this.debug || this.renderForm ? "-debug" : ""), style: containerStyle }, h$1("div", { class: "row-audio-area" }, this.renderRecordButton(), this.renderUploadRecordButton(), this.renderUploadButton()), this.displayStatus ? this.renderStatusMessage() : "", this.renderForm ? this.renderFormPreview() : "", this.debug ? this.renderDebugPanel() : "")));
|
|
5214
5250
|
}
|
|
5215
5251
|
static get watchers() { return {
|
|
5216
5252
|
"formJson": ["initializeServices"],
|