reneco-advanced-input-module 0.0.1 → 0.0.2

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 (121) hide show
  1. package/dist/types/components/voice-input-module/voice-input-module.d.ts +9 -1
  2. package/dist/types/components.d.ts +8 -31
  3. package/dist/types/services/speech-to-text.service.d.ts +1 -1
  4. package/dist/voice-input-module/index-Lt4F-TYq.js +4334 -0
  5. package/dist/voice-input-module/index-Lt4F-TYq.js.map +1 -0
  6. package/dist/voice-input-module/index.esm.js +12 -0
  7. package/dist/voice-input-module/index.esm.js.map +1 -1
  8. package/dist/voice-input-module/loader.esm.js.map +1 -1
  9. package/dist/voice-input-module/ocr-file-uploader.entry.esm.js.map +1 -0
  10. package/dist/{components/file-uploader2.js → voice-input-module/ocr-file-uploader.entry.js} +14 -29
  11. package/dist/voice-input-module/ocr-file-uploader.entry.js.map +1 -0
  12. package/dist/voice-input-module/voice-input-module.entry.esm.js.map +1 -0
  13. package/dist/voice-input-module/voice-input-module.entry.js +4467 -0
  14. package/dist/voice-input-module/voice-input-module.entry.js.map +1 -0
  15. package/dist/voice-input-module/voice-input-module.esm.js +49 -1
  16. package/dist/voice-input-module/voice-input-module.esm.js.map +1 -1
  17. package/loader/cdn.js +1 -0
  18. package/loader/index.cjs.js +1 -0
  19. package/loader/index.d.ts +24 -0
  20. package/loader/index.es2017.js +1 -0
  21. package/loader/index.js +2 -0
  22. package/package.json +7 -3
  23. package/www/build/index-Lt4F-TYq.js +4334 -0
  24. package/www/build/index-Lt4F-TYq.js.map +1 -0
  25. package/{src/index.ts → www/build/index.esm.js} +14 -12
  26. package/www/build/index.esm.js.map +1 -0
  27. package/{dist/cjs/loader.cjs.js.map → www/build/loader.esm.js.map} +1 -1
  28. package/www/build/ocr-file-uploader.entry.esm.js.map +1 -0
  29. package/{dist/collection/components/file-uploader/file-uploader.js → www/build/ocr-file-uploader.entry.js} +18 -65
  30. package/www/build/ocr-file-uploader.entry.js.map +1 -0
  31. package/www/build/voice-input-module.entry.esm.js.map +1 -0
  32. package/www/build/voice-input-module.entry.js +4467 -0
  33. package/www/build/voice-input-module.entry.js.map +1 -0
  34. package/www/build/voice-input-module.esm.js +50 -0
  35. package/{dist/cjs/voice-input-module.cjs.js.map → www/build/voice-input-module.esm.js.map} +1 -1
  36. package/www/build/voice-input-module.js +33 -0
  37. package/www/host.config.json +15 -0
  38. package/www/index.html +1671 -0
  39. package/.editorconfig +0 -15
  40. package/.prettierrc.json +0 -13
  41. package/api-key-inject.js +0 -46
  42. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -8
  43. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
  44. package/dist/cjs/file-uploader.voice-input-module.entry.cjs.js.map +0 -1
  45. package/dist/cjs/file-uploader_2.cjs.entry.js +0 -1319
  46. package/dist/cjs/file-uploader_2.cjs.entry.js.map +0 -1
  47. package/dist/cjs/index-BTSzTkSZ.js +0 -1494
  48. package/dist/cjs/index-BTSzTkSZ.js.map +0 -1
  49. package/dist/cjs/index.cjs.js +0 -5
  50. package/dist/cjs/index.cjs.js.map +0 -1
  51. package/dist/cjs/loader.cjs.js +0 -16
  52. package/dist/cjs/voice-input-module.cjs.js +0 -28
  53. package/dist/collection/collection-manifest.json +0 -13
  54. package/dist/collection/components/file-uploader/file-uploader.css +0 -26
  55. package/dist/collection/components/file-uploader/file-uploader.js.map +0 -1
  56. package/dist/collection/components/voice-input-module/voice-input-module.css +0 -251
  57. package/dist/collection/components/voice-input-module/voice-input-module.js +0 -875
  58. package/dist/collection/components/voice-input-module/voice-input-module.js.map +0 -1
  59. package/dist/collection/index.js +0 -12
  60. package/dist/collection/index.js.map +0 -1
  61. package/dist/collection/services/audio-recorder.service.js +0 -66
  62. package/dist/collection/services/audio-recorder.service.js.map +0 -1
  63. package/dist/collection/services/llm.service.js +0 -193
  64. package/dist/collection/services/llm.service.js.map +0 -1
  65. package/dist/collection/services/speech-to-text.service.js +0 -62
  66. package/dist/collection/services/speech-to-text.service.js.map +0 -1
  67. package/dist/collection/types/form-schema.types.js +0 -2
  68. package/dist/collection/types/form-schema.types.js.map +0 -1
  69. package/dist/collection/types/service-providers.types.js +0 -2
  70. package/dist/collection/types/service-providers.types.js.map +0 -1
  71. package/dist/collection/utils/schema-converter.js +0 -422
  72. package/dist/collection/utils/schema-converter.js.map +0 -1
  73. package/dist/components/file-uploader.d.ts +0 -11
  74. package/dist/components/file-uploader.js +0 -9
  75. package/dist/components/file-uploader.js.map +0 -1
  76. package/dist/components/file-uploader2.js.map +0 -1
  77. package/dist/components/index.js +0 -4
  78. package/dist/components/index.js.map +0 -1
  79. package/dist/components/voice-input-module.js +0 -1292
  80. package/dist/components/voice-input-module.js.map +0 -1
  81. package/dist/esm/app-globals-DQuL1Twl.js +0 -6
  82. package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
  83. package/dist/esm/file-uploader.voice-input-module.entry.js.map +0 -1
  84. package/dist/esm/file-uploader_2.entry.js +0 -1316
  85. package/dist/esm/file-uploader_2.entry.js.map +0 -1
  86. package/dist/esm/index-jmc2yzBp.js +0 -1487
  87. package/dist/esm/index-jmc2yzBp.js.map +0 -1
  88. package/dist/esm/index.js +0 -4
  89. package/dist/esm/index.js.map +0 -1
  90. package/dist/esm/loader.js +0 -14
  91. package/dist/esm/loader.js.map +0 -1
  92. package/dist/esm/voice-input-module.js +0 -24
  93. package/dist/esm/voice-input-module.js.map +0 -1
  94. package/dist/index.cjs.js +0 -1
  95. package/dist/index.js +0 -1
  96. package/dist/types/components/file-uploader/file-uploader.d.ts +0 -8
  97. package/dist/voice-input-module/file-uploader.voice-input-module.entry.esm.js.map +0 -1
  98. package/dist/voice-input-module/p-7b4f33ba.entry.js +0 -2
  99. package/dist/voice-input-module/p-7b4f33ba.entry.js.map +0 -1
  100. package/dist/voice-input-module/p-DQuL1Twl.js +0 -2
  101. package/dist/voice-input-module/p-DQuL1Twl.js.map +0 -1
  102. package/dist/voice-input-module/p-jmc2yzBp.js +0 -3
  103. package/dist/voice-input-module/p-jmc2yzBp.js.map +0 -1
  104. package/env-config.js +0 -4
  105. package/inject-env.js +0 -20
  106. package/src/components/file-uploader/file-uploader.css +0 -26
  107. package/src/components/file-uploader/file-uploader.tsx +0 -100
  108. package/src/components/file-uploader/readme.md +0 -31
  109. package/src/components/voice-input-module/readme.md +0 -114
  110. package/src/components/voice-input-module/voice-input-module.css +0 -251
  111. package/src/components/voice-input-module/voice-input-module.tsx +0 -731
  112. package/src/components.d.ts +0 -158
  113. package/src/index.html +0 -663
  114. package/src/services/audio-recorder.service.ts +0 -74
  115. package/src/services/llm.service.ts +0 -221
  116. package/src/services/speech-to-text.service.ts +0 -72
  117. package/src/types/form-schema.types.ts +0 -78
  118. package/src/types/service-providers.types.ts +0 -22
  119. package/src/utils/schema-converter.ts +0 -494
  120. package/stencil.config.ts +0 -24
  121. package/tsconfig.json +0 -30
@@ -1,28 +0,0 @@
1
- 'use strict';
2
-
3
- var index = require('./index-BTSzTkSZ.js');
4
- var appGlobals = require('./app-globals-V2Kpy_OQ.js');
5
-
6
- var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
7
- /*
8
- Stencil Client Patch Browser v4.36.2 | MIT Licensed | https://stenciljs.com
9
- */
10
-
11
- var patchBrowser = () => {
12
- const importMeta = (typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('voice-input-module.cjs.js', document.baseURI).href));
13
- const opts = {};
14
- if (importMeta !== "") {
15
- opts.resourcesUrl = new URL(".", importMeta).href;
16
- }
17
- return index.promiseResolve(opts);
18
- };
19
-
20
- patchBrowser().then(async (options) => {
21
- await appGlobals.globalScripts();
22
- return index.bootstrapLazy([["file-uploader_2.cjs",[[257,"voice-input-module",{"formJson":[1,"form-json"],"serviceConfig":[1,"service-config"],"apiKey":[1,"api-key"],"context":[1],"classificationRootUrl":[1,"classification-root-url"],"language":[1],"voiceOrOcr":[1,"voice-or-ocr"],"debug":[4],"renderForm":[4,"render-form"],"displayStatus":[4,"display-status"],"isRecording":[32],"isProcessing":[32],"statusMessage":[32],"hasError":[32],"transcription":[32],"filledData":[32],"debugInfo":[32],"isReadonlyMode":[32],"convertXmlToJson":[64],"convertJsonToXml":[64],"convertXmlToJsonLegacy":[64],"convertJsonToXmlLegacy":[64]},null,{"formJson":["initializeServices"],"serviceConfig":["initializeServices"]}],[257,"file-uploader",{"batch":[4],"callback":[16]}]]]], options);
23
- });
24
-
25
- exports.setNonce = index.setNonce;
26
- //# sourceMappingURL=voice-input-module.cjs.js.map
27
-
28
- //# sourceMappingURL=voice-input-module.cjs.js.map
@@ -1,13 +0,0 @@
1
- {
2
- "entries": [
3
- "components/file-uploader/file-uploader.js",
4
- "components/voice-input-module/voice-input-module.js"
5
- ],
6
- "compiler": {
7
- "name": "@stencil/core",
8
- "version": "4.36.2",
9
- "typescriptVersion": "5.5.4"
10
- },
11
- "collections": [],
12
- "bundles": []
13
- }
@@ -1,26 +0,0 @@
1
-
2
- .upload-container {
3
- display: inline-block;
4
- cursor: pointer;
5
- width: 50px;
6
- height: 50px;
7
- }
8
-
9
- .upload-button {
10
- display: flex;
11
- align-items: center;
12
- justify-content: center;
13
- transition: transform 0.2s ease, box-shadow 0.2s ease;
14
- user-select: none;
15
- }
16
-
17
- .upload-button svg {
18
- width: 50px;
19
- height: 50px;
20
- stroke: #44ee44;
21
- }
22
-
23
- .upload-button:hover svg{
24
- transform: scale(1.05);
25
- stroke: #33dd33;
26
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"file-uploader.js","sourceRoot":"","sources":["../../../src/components/file-uploader/file-uploader.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\r\n\r\n@Component({\r\n tag: 'file-uploader',\r\n styleUrl: 'file-uploader.css',\r\n shadow: true\r\n})\r\nexport class FileUploader {\r\n @Prop() batch: boolean = false;\r\n @Prop() callback: Function;\r\n\r\n private fileInput!: HTMLInputElement;\r\n\r\n private triggerUpload = () => {\r\n this.fileInput.click();\r\n };\r\n\r\n private handleFileChange = 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 const formData = new FormData();\r\n formData.append('file', file);\r\n\r\n if (this.batch) {\r\n try {\r\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-xml', {\r\n method: 'POST',\r\n body: formData\r\n });\r\n\r\n if (!response.ok) {\r\n console.error(\"There has been an error!:\", response);\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n // get the file as a blob\r\n const blob = await response.blob();\r\n // create a download link\r\n const url = window.URL.createObjectURL(blob);\r\n const a = document.createElement('a');\r\n a.href = url;\r\n a.download = 'result-'+Date.now().toString()+'.xlsx'; // filename\r\n document.body.appendChild(a);\r\n a.click();\r\n a.remove();\r\n window.URL.revokeObjectURL(url);\r\n } catch (err) {\r\n console.error(err);\r\n alert('Error uploading file');\r\n }\r\n }\r\n else {\r\n try {\r\n const response = await fetch('http://127.0.0.1:5001/api/convert-to-json', {\r\n method: 'POST',\r\n body: formData\r\n });\r\n\r\n if (!response.ok) {\r\n console.error(\"There has been an error!:\", response);\r\n throw new Error(`HTTP error! status: ${response.status}`);\r\n }\r\n const data = await response.json();\r\n console.log('Upload successful:', data);\r\n \r\n if (this.callback && data[0] && data[0].content){\r\n this.callback(data[0].content);\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n alert('Error uploading file');\r\n }\r\n }\r\n \r\n };\r\n\r\n render() {\r\n return (\r\n <div class=\"upload-container\" onClick={this.triggerUpload}>\r\n <input\r\n type=\"file\"\r\n ref={el => (this.fileInput = el!)}\r\n onChange={this.handleFileChange}\r\n style={{ display: 'none' }}\r\n />\r\n <div class=\"upload-button\">\r\n <svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path 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\"/>\r\n <path d=\"M17.5 21L17.5 15M17.5 15L20 17.5M17.5 15L15 17.5\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -1,251 +0,0 @@
1
- :host {
2
- display: block;
3
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
4
- }
5
-
6
- .voice-recorder-container {
7
- display: flex;
8
- flex-direction: column;
9
- align-items: center;
10
- gap: 1rem;
11
- padding: 1rem;
12
- border: 1px solid #e5e7eb;
13
- border-radius: 0.5rem;
14
- background: #ffffff;
15
- max-width: 100px;
16
- margin: 0 auto;
17
- }
18
-
19
- .voice-recorder-container-debug {
20
- display: flex;
21
- flex-direction: column;
22
- align-items: center;
23
- gap: 1rem;
24
- padding: 1rem;
25
- border: 1px solid #e5e7eb;
26
- border-radius: 0.5rem;
27
- background: #ffffff;
28
- max-width: 800px;
29
- margin: 0 auto;
30
- }
31
-
32
- .record-button {
33
- display: flex;
34
- align-items: center;
35
- justify-content: center;
36
- width: 50px;
37
- height: 50px;
38
- border: none;
39
- border-radius: 50%;
40
- background: #ee4444;
41
- color: white;
42
- cursor: pointer;
43
- transition: all 0.2s ease;
44
- position: relative;
45
- overflow: hidden;
46
- }
47
-
48
- .record-button:hover:not(:disabled) {
49
- background: #dd3333;
50
- transform: scale(1.05);
51
- }
52
-
53
- .record-button:disabled {
54
- opacity: 0.6;
55
- cursor: not-allowed;
56
- }
57
-
58
- .record-button.recording {
59
- background: #dd3333;
60
- animation: pulse 1.5s infinite;
61
- }
62
-
63
- .record-button.processing {
64
- background: #3b82f6;
65
- }
66
-
67
- @keyframes pulse {
68
- 0% {
69
- box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
70
- }
71
- 70% {
72
- box-shadow: 0 0 0 10px rgba(239, 68, 68, 0);
73
- }
74
- 100% {
75
- box-shadow: 0 0 0 0 rgba(239, 68, 68, 0);
76
- }
77
- }
78
-
79
- .record-icon {
80
- width: 24px;
81
- height: 24px;
82
- fill: currentColor;
83
- }
84
-
85
- .status-text {
86
- font-size: 0.875rem;
87
- color: #6b7280;
88
- text-align: center;
89
- min-height: 1.25rem;
90
- }
91
-
92
- .status-text.error {
93
- color: #ee4444;
94
- }
95
-
96
- .status-text.success {
97
- color: #10b981;
98
- }
99
-
100
- .debug-panel {
101
- width: 100%;
102
- margin-top: 1rem;
103
- padding: 1rem;
104
- background: #f9fafb;
105
- border: 1px solid #e5e7eb;
106
- border-radius: 0.375rem;
107
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
108
- font-size: 0.75rem;
109
- }
110
-
111
- .debug-title {
112
- font-weight: 600;
113
- margin-bottom: 0.5rem;
114
- color: #374151;
115
- }
116
-
117
- .debug-content {
118
- white-space: pre-wrap;
119
- word-break: break-word;
120
- color: #6b7280;
121
- max-height: 200px;
122
- overflow-y: auto;
123
- }
124
-
125
- .permissions-warning {
126
- padding: 0.75rem;
127
- background: #fef3c7;
128
- border: 1px solid #f59e0b;
129
- border-radius: 0.375rem;
130
- color: #92400e;
131
- font-size: 0.875rem;
132
- text-align: center;
133
- }
134
-
135
- .form-preview {
136
- width: 100%;
137
- margin-top: 1rem;
138
- padding: 1rem;
139
- background: #f8fafc;
140
- border: 1px solid #e2e8f0;
141
- border-radius: 0.375rem;
142
- }
143
-
144
- .form-preview-title {
145
- font-weight: 600;
146
- margin-bottom: 0.5rem;
147
- color: #1e293b;
148
- }
149
-
150
- .form-field {
151
- margin-bottom: 0.5rem;
152
- font-size: 0.875rem;
153
- }
154
-
155
- .field-name {
156
- font-weight: 500;
157
- color: #475569;
158
- }
159
-
160
- .field-value {
161
- color: #64748b;
162
- margin-left: 0.5rem;
163
- }
164
-
165
- .field-value.filled {
166
- color: #059669;
167
- font-weight: 500;
168
- }
169
-
170
- .voice-filled-form {
171
- display: flex;
172
- flex-direction: column;
173
- gap: 1rem;
174
- margin-top: 1rem;
175
- }
176
-
177
- .form-group {
178
- display: flex;
179
- flex-direction: column;
180
- gap: 0.25rem;
181
- }
182
-
183
- .form-label {
184
- font-weight: 500;
185
- color: #374151;
186
- font-size: 0.875rem;
187
- }
188
-
189
- .required {
190
- color: #ee4444;
191
- margin-left: 0.125rem;
192
- }
193
-
194
- .form-input {
195
- padding: 0.5rem;
196
- border: 1px solid #d1d5db;
197
- border-radius: 0.375rem;
198
- font-size: 0.875rem;
199
- transition: border-color 0.2s ease;
200
- }
201
-
202
- .form-input:focus {
203
- outline: none;
204
- border-color: #3b82f6;
205
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
206
- }
207
-
208
- .form-checkbox {
209
- width: auto;
210
- padding: 0;
211
- margin: 0;
212
- }
213
-
214
- select.form-input {
215
- background-color: white;
216
- cursor: pointer;
217
- }
218
-
219
- input[type="date"].form-input {
220
- cursor: pointer;
221
- }
222
-
223
- .readonly-select {
224
- background: #f9fafb;
225
- border: 1px solid #d1d5db;
226
- border-radius: 0.375rem;
227
- padding: 0.5rem;
228
- }
229
-
230
- .select-placeholder {
231
- font-size: 0.875rem;
232
- color: #6b7280;
233
- margin-bottom: 0.5rem;
234
- }
235
-
236
- .select-options-list {
237
- list-style: none;
238
- margin: 0;
239
- padding: 0;
240
- display: flex;
241
- flex-wrap: wrap;
242
- gap: 0.25rem;
243
- }
244
-
245
- .select-option {
246
- background: #e5e7eb;
247
- padding: 0.25rem 0.5rem;
248
- border-radius: 0.25rem;
249
- font-size: 0.875rem;
250
- color: #374151;
251
- }