reneco-advanced-input-module 0.0.1 → 0.0.3

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 (94) hide show
  1. package/dist/cjs/loader.cjs.js +1 -1
  2. package/dist/cjs/ocr-file-uploader.voice-input-module.entry.cjs.js.map +1 -0
  3. package/dist/cjs/ocr-file-uploader_2.cjs.entry.js +4486 -0
  4. package/dist/cjs/ocr-file-uploader_2.cjs.entry.js.map +1 -0
  5. package/dist/cjs/voice-input-module.cjs.js +1 -1
  6. package/dist/collection/collection-manifest.json +8 -2
  7. package/dist/collection/components/voice-input-module/voice-input-module.css +76 -0
  8. package/dist/collection/components/voice-input-module/voice-input-module.js +218 -72
  9. package/dist/collection/components/voice-input-module/voice-input-module.js.map +1 -1
  10. package/dist/collection/services/llm.service.js +2 -2
  11. package/dist/collection/services/llm.service.js.map +1 -1
  12. package/dist/collection/services/speech-to-text.service.js +2 -4
  13. package/dist/collection/services/speech-to-text.service.js.map +1 -1
  14. package/dist/collection/utils/schema-converter.js +1 -1
  15. package/dist/collection/utils/schema-converter.js.map +1 -1
  16. package/dist/components/ocr-file-uploader.js +9 -0
  17. package/dist/components/ocr-file-uploader.js.map +1 -0
  18. package/dist/components/{file-uploader2.js → ocr-file-uploader2.js} +16 -12
  19. package/dist/components/ocr-file-uploader2.js.map +1 -0
  20. package/dist/components/voice-input-module.js +3257 -93
  21. package/dist/components/voice-input-module.js.map +1 -1
  22. package/dist/esm/loader.js +1 -1
  23. package/dist/esm/ocr-file-uploader.voice-input-module.entry.js.map +1 -0
  24. package/dist/esm/ocr-file-uploader_2.entry.js +4483 -0
  25. package/dist/esm/ocr-file-uploader_2.entry.js.map +1 -0
  26. package/dist/esm/voice-input-module.js +1 -1
  27. package/dist/types/components/voice-input-module/voice-input-module.d.ts +9 -1
  28. package/dist/types/components.d.ts +8 -31
  29. package/dist/types/services/speech-to-text.service.d.ts +1 -1
  30. package/dist/voice-input-module/ocr-file-uploader.voice-input-module.entry.esm.js.map +1 -0
  31. package/dist/voice-input-module/p-37de1da2.entry.js +3 -0
  32. package/dist/voice-input-module/p-37de1da2.entry.js.map +1 -0
  33. package/dist/voice-input-module/voice-input-module.esm.js +1 -1
  34. package/loader/cdn.js +1 -0
  35. package/loader/index.cjs.js +1 -0
  36. package/loader/index.d.ts +24 -0
  37. package/loader/index.es2017.js +1 -0
  38. package/loader/index.js +2 -0
  39. package/package.json +7 -3
  40. package/www/build/index.esm.js +2 -0
  41. package/www/build/index.esm.js.map +1 -0
  42. package/www/build/loader.esm.js.map +1 -0
  43. package/www/build/ocr-file-uploader.voice-input-module.entry.esm.js.map +1 -0
  44. package/www/build/p-37de1da2.entry.js +3 -0
  45. package/www/build/p-37de1da2.entry.js.map +1 -0
  46. package/www/build/p-6438474d.js +2 -0
  47. package/www/build/p-DQuL1Twl.js +2 -0
  48. package/www/build/p-DQuL1Twl.js.map +1 -0
  49. package/www/build/p-jmc2yzBp.js +3 -0
  50. package/www/build/p-jmc2yzBp.js.map +1 -0
  51. package/www/build/voice-input-module.esm.js +2 -0
  52. package/www/build/voice-input-module.esm.js.map +1 -0
  53. package/www/build/voice-input-module.js +33 -0
  54. package/www/host.config.json +15 -0
  55. package/www/index.html +1662 -0
  56. package/.editorconfig +0 -15
  57. package/.prettierrc.json +0 -13
  58. package/api-key-inject.js +0 -46
  59. package/dist/cjs/file-uploader.voice-input-module.entry.cjs.js.map +0 -1
  60. package/dist/cjs/file-uploader_2.cjs.entry.js +0 -1319
  61. package/dist/cjs/file-uploader_2.cjs.entry.js.map +0 -1
  62. package/dist/collection/components/file-uploader/file-uploader.css +0 -26
  63. package/dist/collection/components/file-uploader/file-uploader.js +0 -130
  64. package/dist/collection/components/file-uploader/file-uploader.js.map +0 -1
  65. package/dist/components/file-uploader.d.ts +0 -11
  66. package/dist/components/file-uploader.js +0 -9
  67. package/dist/components/file-uploader.js.map +0 -1
  68. package/dist/components/file-uploader2.js.map +0 -1
  69. package/dist/esm/file-uploader.voice-input-module.entry.js.map +0 -1
  70. package/dist/esm/file-uploader_2.entry.js +0 -1316
  71. package/dist/esm/file-uploader_2.entry.js.map +0 -1
  72. package/dist/types/components/file-uploader/file-uploader.d.ts +0 -8
  73. package/dist/voice-input-module/file-uploader.voice-input-module.entry.esm.js.map +0 -1
  74. package/dist/voice-input-module/p-7b4f33ba.entry.js +0 -2
  75. package/dist/voice-input-module/p-7b4f33ba.entry.js.map +0 -1
  76. package/env-config.js +0 -4
  77. package/inject-env.js +0 -20
  78. package/src/components/file-uploader/file-uploader.css +0 -26
  79. package/src/components/file-uploader/file-uploader.tsx +0 -100
  80. package/src/components/file-uploader/readme.md +0 -31
  81. package/src/components/voice-input-module/readme.md +0 -114
  82. package/src/components/voice-input-module/voice-input-module.css +0 -251
  83. package/src/components/voice-input-module/voice-input-module.tsx +0 -731
  84. package/src/components.d.ts +0 -158
  85. package/src/index.html +0 -663
  86. package/src/index.ts +0 -12
  87. package/src/services/audio-recorder.service.ts +0 -74
  88. package/src/services/llm.service.ts +0 -221
  89. package/src/services/speech-to-text.service.ts +0 -72
  90. package/src/types/form-schema.types.ts +0 -78
  91. package/src/types/service-providers.types.ts +0 -22
  92. package/src/utils/schema-converter.ts +0 -494
  93. package/stencil.config.ts +0 -24
  94. package/tsconfig.json +0 -30
package/www/index.html ADDED
@@ -0,0 +1,1662 @@
1
+ <!doctype html><html dir="ltr" lang="en"><head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0"> <title>Voice Input Module Demo</title> <link rel="modulepreload" href="/build/p-6438474d.js"><link rel="modulepreload" href="/build/p-jmc2yzBp.js"><script type="module" src="/build/p-6438474d.js" data-stencil data-resources-url="/build/" data-stencil-namespace="voice-input-module"></script> <script nomodule="" src="/build/voice-input-module.js" data-stencil></script> <style>body {
2
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
3
+ margin: 0;
4
+ padding: 2rem;
5
+ background: #f8fafc;
6
+ line-height: 1.6;
7
+ }
8
+ .container {
9
+ max-width: 1000px;
10
+ margin: 0 auto;
11
+ background: white;
12
+ padding: 2rem;
13
+ border-radius: 1rem;
14
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
15
+ }
16
+ h1 {
17
+ color: #1e293b;
18
+ margin-bottom: 1rem;
19
+ }
20
+ textarea {
21
+ width:800px;
22
+ height:300px;
23
+ }
24
+ .description {
25
+ color: #64748b;
26
+ margin-bottom: 2rem;
27
+ }
28
+ .demo-section {
29
+ margin: 2rem 0;
30
+ padding: 1.5rem;
31
+ background: #f8fafc;
32
+ border-radius: 0.5rem;
33
+ border: 1px solid #e2e8f0;
34
+ }
35
+ .demo-title {
36
+ font-weight: 600;
37
+ color: #374151;
38
+ margin-bottom: 1rem;
39
+ }
40
+ .schema-example {
41
+ background: #1e293b;
42
+ color: #e2e8f0;
43
+ padding: 1rem;
44
+ border-radius: 0.375rem;
45
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
46
+ font-size: 0.875rem;
47
+ overflow-x: auto;
48
+ margin: 1rem 0;
49
+ }
50
+ .result-display {
51
+ margin-top: 1rem;
52
+ padding: 1rem;
53
+ background: #f0f9ff;
54
+ border: 1px solid #0ea5e9;
55
+ border-radius: 0.375rem;
56
+ }
57
+ .setup-note {
58
+ background: #fef3c7;
59
+ border: 1px solid #f59e0b;
60
+ border-radius: 0.375rem;
61
+ padding: 1rem;
62
+ margin-bottom: 2rem;
63
+ color: #92400e;
64
+ }
65
+
66
+ .toggle-section {
67
+ margin: 1rem 0;
68
+ }
69
+
70
+ .toggle-button {
71
+ background: #3b82f6;
72
+ color: white;
73
+ border: none;
74
+ padding: 0.5rem 1rem;
75
+ border-radius: 0.375rem;
76
+ cursor: pointer;
77
+ font-size: 0.875rem;
78
+ display: flex;
79
+ align-items: center;
80
+ gap: 0.5rem;
81
+ margin-bottom: 0.5rem;
82
+ }
83
+
84
+ .toggle-button:hover {
85
+ background: #2563eb;
86
+ }
87
+
88
+ .toggle-content {
89
+ display: none;
90
+ padding: 1rem;
91
+ background: white;
92
+ border: 1px solid #e5e7eb;
93
+ border-radius: 0.375rem;
94
+ }
95
+
96
+ .toggle-content.visible {
97
+ display: block;
98
+ }
99
+
100
+ .editable-schema {
101
+ min-height: 200px;
102
+ padding: 1rem;
103
+ border: 1px solid #d1d5db;
104
+ border-radius: 0.375rem;
105
+ font-family: 'Monaco', 'Menlo', monospace;
106
+ font-size: 0.875rem;
107
+ white-space: pre-wrap;
108
+ background: #f9fafb;
109
+ width: 100%;
110
+ box-sizing: border-box;
111
+ resize: vertical;
112
+ }
113
+
114
+ .editable-schema:focus {
115
+ outline: none;
116
+ border-color: #3b82f6;
117
+ box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
118
+ }
119
+
120
+ .debug-title {
121
+ font-weight: 600;
122
+ color: #374151;
123
+ margin-bottom: 0.5rem;
124
+ }
125
+
126
+ .debug-content {
127
+ background: #1e293b;
128
+ color: #e2e8f0;
129
+ padding: 1rem;
130
+ border-radius: 0.375rem;
131
+ font-family: 'Monaco', 'Menlo', monospace;
132
+ font-size: 0.875rem;
133
+ overflow-x: auto;
134
+ white-space: pre-wrap;
135
+ }</style> </head> <body> <div class="container"> <h1>Voice Input Module Component</h1> <div class="setup-note"> <strong>Setup Required:</strong> This component requires OpenAI API key to be passed in options. </div> <div class="demo-section"> <div class="demo-title">NG component</div> <voice-input-module id="demo3" form-json="{&quot;ID&quot;:1003,&quot;System_Name&quot;:&quot;Adoption_End&quot;,&quot;Type&quot;:&quot;Container&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1003,&quot;Flex_Direction&quot;:&quot;row&quot;,&quot;Flex_Wrap&quot;:&quot;wrap&quot;,&quot;Align_Items&quot;:&quot;flex-start&quot;,&quot;Field_Width&quot;:8,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Adoption_End&quot;,&quot;en&quot;:&quot;Adoption_End&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Adoption_End&quot;,&quot;en&quot;:&quot;Adoption_End&quot;},&quot;Label&quot;:&quot;Root&quot;},&quot;Children&quot;:[{&quot;ID&quot;:2016,&quot;System_Name&quot;:&quot;Individual_ID&quot;,&quot;Type&quot;:&quot;InputAutocomplete&quot;,&quot;Settings&quot;:{&quot;Autocomplete_Start&quot;:0,&quot;Operator&quot;:&quot;contains&quot;,&quot;Field_Width&quot;:4,&quot;Source_View&quot;:&quot;Individuals&quot;,&quot;Source_Field&quot;:[&quot;Adult_ID&quot;,&quot;Egg_ID&quot;],&quot;Trigger_Min_Length&quot;:3,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Individual_ID&quot;,&quot;en&quot;:&quot;Individual_ID&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Individual_ID&quot;,&quot;en&quot;:&quot;Individual_ID&quot;},&quot;Label&quot;:&quot;Individual_ID&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:true},{&quot;ID&quot;:2017,&quot;System_Name&quot;:&quot;ID&quot;,&quot;Type&quot;:&quot;InputInteger&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1005,&quot;Min&quot;:null,&quot;Max&quot;:null,&quot;Default_Value&quot;:null,&quot;Unit&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;ID&quot;,&quot;en&quot;:&quot;ID&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;ID&quot;,&quot;en&quot;:&quot;ID&quot;},&quot;Label&quot;:&quot;ID&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:true},{&quot;ID&quot;:2018,&quot;System_Name&quot;:&quot;End_Of_Adoption_Cause&quot;,&quot;Type&quot;:&quot;InputInteger&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1006,&quot;Min&quot;:null,&quot;Max&quot;:null,&quot;Default_Value&quot;:null,&quot;Unit&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;End_Of_Adoption_Cause&quot;,&quot;en&quot;:&quot;End_Of_Adoption_Cause&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;End_Of_Adoption_Cause&quot;,&quot;en&quot;:&quot;End_Of_Adoption_Cause&quot;},&quot;Label&quot;:&quot;End_Of_Adoption_Cause&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false},{&quot;ID&quot;:2019,&quot;System_Name&quot;:&quot;New_Position&quot;,&quot;Type&quot;:&quot;InputInteger&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1007,&quot;Min&quot;:null,&quot;Max&quot;:null,&quot;Default_Value&quot;:null,&quot;Unit&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;New_Position&quot;,&quot;en&quot;:&quot;New_Position&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;New_Position&quot;,&quot;en&quot;:&quot;New_Position&quot;},&quot;Label&quot;:&quot;New_Position&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:true},{&quot;ID&quot;:2020,&quot;System_Name&quot;:&quot;Comment&quot;,&quot;Type&quot;:&quot;InputTextArea&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1005,&quot;Min_Length&quot;:null,&quot;Max_Length&quot;:null,&quot;Default_Value&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Comment&quot;,&quot;en&quot;:&quot;Comment&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Comment&quot;,&quot;en&quot;:&quot;Comment&quot;},&quot;Label&quot;:&quot;Comment&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false},{&quot;ID&quot;:2021,&quot;System_Name&quot;:&quot;Former_Adoptive_Father&quot;,&quot;Type&quot;:&quot;InputTextArea&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1006,&quot;Min_Length&quot;:null,&quot;Max_Length&quot;:null,&quot;Default_Value&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Former Adoptive Father&quot;,&quot;en&quot;:&quot;Former_Adoptive_Father&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Former_Adoptive_Father&quot;,&quot;en&quot;:&quot;Former_Adoptive_Father&quot;},&quot;Label&quot;:&quot;Former_Adoptive_Father&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false},{&quot;ID&quot;:2022,&quot;System_Name&quot;:&quot;Former_Adoptive_Mother&quot;,&quot;Type&quot;:&quot;InputTextArea&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1007,&quot;Min_Length&quot;:null,&quot;Max_Length&quot;:null,&quot;Default_Value&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Former_Adoptive_Mother&quot;,&quot;en&quot;:&quot;Former_Adoptive_Mother&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Former_Adoptive_Mother&quot;,&quot;en&quot;:&quot;Former_Adoptive_Mother&quot;},&quot;Label&quot;:&quot;Former_Adoptive_Mother&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false},{&quot;ID&quot;:2023,&quot;System_Name&quot;:&quot;Start_Date&quot;,&quot;Type&quot;:&quot;InputDateTimePicker&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1003,&quot;Format&quot;:null,&quot;Default_Value&quot;:null,&quot;Field_Width&quot;:4,&quot;Is_Default_Value_Now&quot;:null,&quot;Has_Future_Date&quot;:null,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Start Date&quot;,&quot;en&quot;:&quot;Start Date&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Start Date&quot;,&quot;en&quot;:&quot;Start Date&quot;},&quot;Label&quot;:&quot;Start_Date&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:true},{&quot;ID&quot;:2024,&quot;System_Name&quot;:&quot;Test_Decimal&quot;,&quot;Type&quot;:&quot;InputDecimal&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1003,&quot;Min&quot;:null,&quot;Max&quot;:null,&quot;Default_Value&quot;:null,&quot;Unit&quot;:null,&quot;Field_Width&quot;:4,&quot;Number_Of_Decimal&quot;:3,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Decimal&quot;,&quot;en&quot;:&quot;Test_Decimal&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Decimal&quot;,&quot;en&quot;:&quot;Test_Decimal&quot;},&quot;Label&quot;:&quot;Test_Decimal&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false},{&quot;ID&quot;:2025,&quot;System_Name&quot;:&quot;Test_Classap&quot;,&quot;Type&quot;:&quot;InputClassification&quot;,&quot;Settings&quot;:{&quot;ID&quot;:1003,&quot;Start_Node_ID&quot;:222957,&quot;Default_Value&quot;:null,&quot;Is_Fullpath_Used&quot;:null,&quot;Is_Multiple&quot;:null,&quot;Field_Width&quot;:4,&quot;Type&quot;:&quot;thesaurus&quot;,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Classap&quot;,&quot;en&quot;:&quot;Test_Classap&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Classap&quot;,&quot;en&quot;:&quot;Test_Classap&quot;},&quot;Label&quot;:&quot;Test_Classap&quot;},&quot;Children&quot;:[&quot;hello&quot;,&quot;world&quot;],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false},{&quot;ID&quot;:2026,&quot;System_Name&quot;:&quot;Test_Checkbox&quot;,&quot;Type&quot;:&quot;InputCheckbox&quot;,&quot;Settings&quot;:{&quot;ID&quot;:2,&quot;Default_Value&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Checkbox&quot;,&quot;en&quot;:&quot;Test_Checkbox&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Checkbox&quot;,&quot;en&quot;:&quot;Test_Checkbox&quot;},&quot;Label&quot;:&quot;Test_Checkbox&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:true},{&quot;ID&quot;:2027,&quot;System_Name&quot;:&quot;Test_Translation_ID&quot;,&quot;Type&quot;:&quot;InputTextTranslation&quot;,&quot;Settings&quot;:{&quot;ID&quot;:2,&quot;Min_Length&quot;:null,&quot;Max_Length&quot;:null,&quot;Default_Value&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Translation_ID&quot;,&quot;en&quot;:&quot;Test_Translation_ID&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_Translation_ID&quot;,&quot;en&quot;:&quot;Test_Translation_ID&quot;},&quot;Label&quot;:&quot;Test_Translation_ID&quot;},&quot;Children&quot;:[],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false},{&quot;ID&quot;:2028,&quot;System_Name&quot;:&quot;Test_MultiSelect&quot;,&quot;Type&quot;:&quot;InputMultiSelect&quot;,&quot;Settings&quot;:{&quot;ID&quot;:3,&quot;Default_Value&quot;:null,&quot;Field_Width&quot;:4,&quot;Label_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_MultiSelect&quot;,&quot;en&quot;:&quot;Test_MultiSelect&quot;},&quot;Description_Translation_ID&quot;:{&quot;fr&quot;:&quot;Test_MultiSelect&quot;,&quot;en&quot;:&quot;Test_MultiSelect&quot;},&quot;Label&quot;:&quot;Test_MultiSelect&quot;},&quot;Children&quot;:[&quot;Option A&quot;,&quot;Option B&quot;,&quot;Option C&quot;,&quot;Option D&quot;],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false}],&quot;Is_Virtual&quot;:false,&quot;Required&quot;:false,&quot;Meta&quot;:{&quot;ID&quot;:3,&quot;System_Name&quot;:&quot;Protocol&quot;},&quot;Object_Type&quot;:{&quot;ID&quot;:81,&quot;System_Name&quot;:&quot;Adoption_End&quot;}}" api-key="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" render-form="true" display-status="true" debug="true" context="ng" classification-root-url="http://localhost:8888" input-types="['voice', 'ocr', 'audio']"></voice-input-module> </div> <!-- <div class="demo-section">
136
+ <div class="demo-title">Ecoll component</div>
137
+ <voice-input-module
138
+ id="demo2"
139
+ form-json='[
140
+ {
141
+ "name": "general informations",
142
+ "label": "General event information",
143
+ "role": "main",
144
+ "class": "general-infos",
145
+ "items": [
146
+ {
147
+ "type": "number",
148
+ "name": "Event_ID",
149
+ "label": "ID",
150
+ "readonly": true,
151
+ "disabled": false
152
+ },
153
+ {
154
+ "type": "text",
155
+ "name": "Subject",
156
+ "label": "Subject",
157
+ "readonly": true,
158
+ "tooltip_value": "SPool24/00003",
159
+ "disabled": false
160
+ },
161
+ {
162
+ "type": "date",
163
+ "name": "Start_Date",
164
+ "label": "Event date",
165
+ "required": true,
166
+ "disabled": false
167
+ },
168
+ {
169
+ "type": "text",
170
+ "name": "TUse_Login",
171
+ "label": "Operator",
172
+ "readonly": true,
173
+ "disabled": false
174
+ },
175
+ {
176
+ "type": "voice",
177
+ "name": "toto",
178
+ "label": "Voice Input",
179
+ "readonly": false,
180
+ "disabled": false
181
+ }
182
+ ]
183
+ },
184
+ {
185
+ "name": "eventdetails",
186
+ "label": "Event details",
187
+ "role": "event-details",
188
+ "class": "event-details",
189
+ "items": [
190
+ {
191
+ "name": "Sample_Status",
192
+ "label": "Status",
193
+ "icon": "reneco-logo-thesaurus",
194
+ "type": "thesaurus",
195
+ "config": {
196
+ "options": {
197
+ "source": "webservice",
198
+ "origin": "classification",
199
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
200
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
201
+ "language": "en",
202
+ "options": {
203
+ "IsDeprecated": false,
204
+ "startNode": 2014257,
205
+ "StartNodeID": 2014257,
206
+ "lng": "en",
207
+ "Reach": [
208
+ 2014257
209
+ ]
210
+ },
211
+ "multiple": false,
212
+ "searchPlaceholder": "Search",
213
+ "mode": "input",
214
+ "loading": "display",
215
+ "displayTree": true,
216
+ "isFullpath": false,
217
+ "displayRootNode": true,
218
+ "defaultValue": [
219
+ "2014257"
220
+ ]
221
+ }
222
+ },
223
+ "dynprop": {
224
+ "ID": 1792,
225
+ "Name": "Sample_Status",
226
+ "Label_EN": "Status",
227
+ "Label_FR": "Statut",
228
+ "Type": "thesaurus",
229
+ "Is_Required": true,
230
+ "Is_Readonly": true,
231
+ "Min_Value": 0,
232
+ "Default_Value": "2014257",
233
+ "External_Info": 2014257,
234
+ "Linked_Entity": "Sample",
235
+ "Linked_Field": "Sample_Status",
236
+ "Event_Type_ID": 1,
237
+ "Is_Hidden": false,
238
+ "Extraction_Field": false
239
+ },
240
+ "required": true,
241
+ "readonly": true,
242
+ "editable": true,
243
+ "extraction_field": false,
244
+ "hide": false,
245
+ "disabled": false
246
+ },
247
+ {
248
+ "name": "Sample_Type",
249
+ "label": "Sample type",
250
+ "icon": "reneco-logo-thesaurus",
251
+ "type": "thesaurus",
252
+ "config": {
253
+ "options": {
254
+ "source": "webservice",
255
+ "origin": "classification",
256
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
257
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
258
+ "language": "en",
259
+ "options": {
260
+ "IsDeprecated": false,
261
+ "startNode": "2014261",
262
+ "StartNodeID": "2014261",
263
+ "lng": "en"
264
+ },
265
+ "multiple": false,
266
+ "searchPlaceholder": "Search",
267
+ "mode": "input",
268
+ "loading": "display",
269
+ "displayTree": true,
270
+ "isFullpath": false,
271
+ "displayRootNode": true
272
+ }
273
+ },
274
+ "dynprop": {
275
+ "ID": 1793,
276
+ "Name": "Sample_Type",
277
+ "Label_EN": "Sample type",
278
+ "Label_FR": "Type d échantillon",
279
+ "Type": "thesaurus",
280
+ "Is_Required": true,
281
+ "Is_Readonly": false,
282
+ "Min_Value": 0,
283
+ "External_Info": "2014261",
284
+ "Linked_Entity": "Sample",
285
+ "Linked_Field": "Sample_Type",
286
+ "Event_Type_ID": 1,
287
+ "Is_Hidden": false,
288
+ "Extraction_Field": false
289
+ },
290
+ "required": true,
291
+ "readonly": false,
292
+ "editable": true,
293
+ "extraction_field": false,
294
+ "hide": false,
295
+ "disabled": false
296
+ },
297
+ {
298
+ "name": "Context",
299
+ "label": "Context",
300
+ "icon": "reneco-logo-thesaurus",
301
+ "type": "thesaurus",
302
+ "config": {
303
+ "options": {
304
+ "source": "webservice",
305
+ "origin": "classification",
306
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
307
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
308
+ "language": "en",
309
+ "options": {
310
+ "IsDeprecated": false,
311
+ "startNode": "2014303",
312
+ "StartNodeID": "2014303",
313
+ "lng": "en"
314
+ },
315
+ "multiple": false,
316
+ "searchPlaceholder": "Search",
317
+ "mode": "input",
318
+ "loading": "display",
319
+ "displayTree": true,
320
+ "isFullpath": false,
321
+ "displayRootNode": true
322
+ }
323
+ },
324
+ "dynprop": {
325
+ "ID": 1794,
326
+ "Name": "Context",
327
+ "Label_EN": "Context",
328
+ "Label_FR": "Contexte",
329
+ "Type": "thesaurus",
330
+ "Is_Required": true,
331
+ "Is_Readonly": false,
332
+ "Min_Value": 0,
333
+ "External_Info": "2014303",
334
+ "Linked_Entity": "Sample",
335
+ "Linked_Field": "Context",
336
+ "Event_Type_ID": 1,
337
+ "Is_Hidden": false,
338
+ "Extraction_Field": false
339
+ },
340
+ "required": true,
341
+ "readonly": false,
342
+ "editable": true,
343
+ "extraction_field": false,
344
+ "hide": false,
345
+ "disabled": false
346
+ },
347
+ {
348
+ "name": "Purpose",
349
+ "label": "Purpose",
350
+ "icon": "reneco-logo-thesaurus",
351
+ "type": "thesaurus",
352
+ "config": {
353
+ "options": {
354
+ "source": "webservice",
355
+ "origin": "classification",
356
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
357
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
358
+ "language": "en",
359
+ "options": {
360
+ "IsDeprecated": false,
361
+ "startNode": "168027",
362
+ "StartNodeID": "168027",
363
+ "lng": "en"
364
+ },
365
+ "multiple": false,
366
+ "searchPlaceholder": "Search",
367
+ "mode": "input",
368
+ "loading": "display",
369
+ "displayTree": true,
370
+ "isFullpath": false,
371
+ "displayRootNode": true
372
+ }
373
+ },
374
+ "dynprop": {
375
+ "ID": 1795,
376
+ "Name": "Purpose",
377
+ "Label_EN": "Purpose",
378
+ "Label_FR": "But",
379
+ "Type": "thesaurus",
380
+ "Is_Required": true,
381
+ "Is_Readonly": false,
382
+ "Min_Value": 0,
383
+ "External_Info": "168027",
384
+ "Linked_Entity": "Sample",
385
+ "Linked_Field": "Purpose",
386
+ "Event_Type_ID": 1,
387
+ "Is_Hidden": false,
388
+ "Extraction_Field": false
389
+ },
390
+ "required": true,
391
+ "readonly": false,
392
+ "editable": true,
393
+ "extraction_field": false,
394
+ "hide": false,
395
+ "disabled": false
396
+ },
397
+ {
398
+ "name": "Position",
399
+ "label": "Location",
400
+ "icon": "reneco-localtion",
401
+ "type": "position",
402
+ "config": {
403
+ "options": {
404
+ "source": "webservice",
405
+ "origin": "classification",
406
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
407
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Position",
408
+ "language": "en",
409
+ "options": {
410
+ "IsDeprecated": false,
411
+ "startNode": 213847,
412
+ "StartNodeID": 213847,
413
+ "lng": "en",
414
+ "Reach": [
415
+ 213847
416
+ ]
417
+ },
418
+ "multiple": false,
419
+ "searchPlaceholder": "Search",
420
+ "mode": "input",
421
+ "loading": "display",
422
+ "displayTree": true,
423
+ "isFullpath": false,
424
+ "displayRootNode": true,
425
+ "defaultValue": [
426
+ "213847"
427
+ ]
428
+ }
429
+ },
430
+ "dynprop": {
431
+ "ID": 1796,
432
+ "Name": "Position",
433
+ "Label_EN": "Location",
434
+ "Label_FR": "Position",
435
+ "Type": "position",
436
+ "Is_Required": true,
437
+ "Is_Readonly": true,
438
+ "Min_Value": 0,
439
+ "Default_Value": "213847",
440
+ "External_Info": 213847,
441
+ "Linked_Entity": "Sample",
442
+ "Linked_Field": "Position",
443
+ "Event_Type_ID": 1,
444
+ "Is_Hidden": false,
445
+ "Extraction_Field": false
446
+ },
447
+ "required": true,
448
+ "readonly": true,
449
+ "editable": true,
450
+ "extraction_field": false,
451
+ "hide": false,
452
+ "disabled": false
453
+ },
454
+ {
455
+ "name": "Analysis_Request",
456
+ "label": "Analysis request",
457
+ "icon": "reneco-logo-thesaurus",
458
+ "type": "thesaurus",
459
+ "config": {
460
+ "options": {
461
+ "source": "webservice",
462
+ "origin": "classification",
463
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
464
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
465
+ "language": "en",
466
+ "options": {
467
+ "IsDeprecated": false,
468
+ "startNode": "81768",
469
+ "StartNodeID": "81768",
470
+ "lng": "en"
471
+ },
472
+ "multiple": true,
473
+ "searchPlaceholder": "Search",
474
+ "mode": "input",
475
+ "loading": "display",
476
+ "displayTree": true,
477
+ "isFullpath": false,
478
+ "displayRootNode": true
479
+ }
480
+ },
481
+ "dynprop": {
482
+ "ID": 1797,
483
+ "Name": "Analysis_Request",
484
+ "Label_EN": "Analysis request",
485
+ "Label_FR": "Demande d analyse",
486
+ "Type": "thesaurus",
487
+ "Is_Required": true,
488
+ "Is_Readonly": false,
489
+ "Min_Value": 0,
490
+ "External_Info": "start_node_id=81768|multiple=true",
491
+ "Event_Type_ID": 1,
492
+ "Is_Hidden": false,
493
+ "Extraction_Field": false
494
+ },
495
+ "required": true,
496
+ "readonly": false,
497
+ "editable": true,
498
+ "extraction_field": false,
499
+ "hide": false,
500
+ "disabled": false
501
+ },
502
+ {
503
+ "name": "Targeted_Pathogen",
504
+ "label": "Targeted pathogen",
505
+ "icon": "reneco-logo-thesaurus",
506
+ "type": "thesaurus",
507
+ "config": {
508
+ "options": {
509
+ "source": "webservice",
510
+ "origin": "classification",
511
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
512
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
513
+ "language": "en",
514
+ "options": {
515
+ "IsDeprecated": false,
516
+ "startNode": "87227",
517
+ "StartNodeID": "87227",
518
+ "lng": "en"
519
+ },
520
+ "multiple": true,
521
+ "searchPlaceholder": "Search",
522
+ "mode": "input",
523
+ "loading": "display",
524
+ "displayTree": true,
525
+ "isFullpath": false,
526
+ "displayRootNode": true
527
+ }
528
+ },
529
+ "dynprop": {
530
+ "ID": 1798,
531
+ "Name": "Targeted_Pathogen",
532
+ "Label_EN": "Targeted pathogen",
533
+ "Label_FR": "Pathogène ciblé",
534
+ "Type": "thesaurus",
535
+ "Is_Required": false,
536
+ "Is_Readonly": false,
537
+ "Min_Value": 0,
538
+ "External_Info": "start_node_id=87227|multiple=true",
539
+ "Event_Type_ID": 1,
540
+ "Is_Hidden": false,
541
+ "Extraction_Field": false
542
+ },
543
+ "required": false,
544
+ "readonly": false,
545
+ "editable": true,
546
+ "extraction_field": false,
547
+ "hide": false,
548
+ "disabled": false
549
+ },
550
+ {
551
+ "name": "Anatomy",
552
+ "label": "Anatomy",
553
+ "icon": "reneco-logo-thesaurus",
554
+ "type": "thesaurus",
555
+ "config": {
556
+ "options": {
557
+ "source": "webservice",
558
+ "origin": "classification",
559
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
560
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
561
+ "language": "en",
562
+ "options": {
563
+ "IsDeprecated": false,
564
+ "startNode": "78255",
565
+ "StartNodeID": "78255",
566
+ "lng": "en"
567
+ },
568
+ "multiple": true,
569
+ "searchPlaceholder": "Search",
570
+ "mode": "input",
571
+ "loading": "display",
572
+ "displayTree": true,
573
+ "isFullpath": false,
574
+ "displayRootNode": true
575
+ }
576
+ },
577
+ "dynprop": {
578
+ "ID": 1799,
579
+ "Name": "Anatomy",
580
+ "Label_EN": "Anatomy",
581
+ "Label_FR": "Anatomie",
582
+ "Type": "thesaurus",
583
+ "Is_Required": false,
584
+ "Is_Readonly": false,
585
+ "Min_Value": 0,
586
+ "External_Info": "start_node_id=78255|multiple=true",
587
+ "Required_When": "{input:Sample_Type|op:like|value:Organ}|{input:Sample_Type|op:like|value:FTA}|{input:Sample_Type|op:like|value:Swab}|{input:Sample_Type|op:like|value:Prepared slide}|{input:Sample_Type|op:=|value:DNA}|{input:Sample_Type|op:like|value:RNA}",
588
+ "Hide_When": "{input:Sample_Type|op:notlike|value:Organ}|{input:Sample_Type|op:notlike|value:FTA}|{input:Sample_Type|op:notlike|value:Swab}|{input:Sample_Type|op:notlike|value:Prepared slide}|{input:Sample_Type|op:notlike|value:Faeces}|{input:Sample_Type|op:!=|value:DNA}|{input:Sample_Type|op:notlike|value:RNA}|{input:Sample_Type|op:notlike|value:Blood}",
589
+ "Disabled_When": "{input:Sample_Type|op:like|value:Faeces}|{input:Sample_Type|op:like|value:Blood}",
590
+ "Default_Value_When": "{input:Sample_Type|op:like|value:Faeces|default_value:81126}|{input:Sample_Type|op:like|value:Blood|default_value:2017986}",
591
+ "Linked_Entity": "Sample",
592
+ "Linked_Field": "Anatomy",
593
+ "Event_Type_ID": 1,
594
+ "Is_Hidden": false,
595
+ "Extraction_Field": false
596
+ },
597
+ "required": false,
598
+ "readonly": false,
599
+ "editable": true,
600
+ "extraction_field": false,
601
+ "required_when": [
602
+ {
603
+ "input": "Sample_Type",
604
+ "op": "like",
605
+ "value": "Organ"
606
+ },
607
+ {
608
+ "input": "Sample_Type",
609
+ "op": "like",
610
+ "value": "FTA"
611
+ },
612
+ {
613
+ "input": "Sample_Type",
614
+ "op": "like",
615
+ "value": "Swab"
616
+ },
617
+ {
618
+ "input": "Sample_Type",
619
+ "op": "like",
620
+ "value": "Prepared slide"
621
+ },
622
+ {
623
+ "input": "Sample_Type",
624
+ "op": "=",
625
+ "value": "DNA"
626
+ },
627
+ {
628
+ "input": "Sample_Type",
629
+ "op": "like",
630
+ "value": "RNA"
631
+ }
632
+ ],
633
+ "hide_when": [
634
+ {
635
+ "input": "Sample_Type",
636
+ "op": "notlike",
637
+ "value": "Organ"
638
+ },
639
+ {
640
+ "input": "Sample_Type",
641
+ "op": "notlike",
642
+ "value": "FTA"
643
+ },
644
+ {
645
+ "input": "Sample_Type",
646
+ "op": "notlike",
647
+ "value": "Swab"
648
+ },
649
+ {
650
+ "input": "Sample_Type",
651
+ "op": "notlike",
652
+ "value": "Prepared slide"
653
+ },
654
+ {
655
+ "input": "Sample_Type",
656
+ "op": "notlike",
657
+ "value": "Faeces"
658
+ },
659
+ {
660
+ "input": "Sample_Type",
661
+ "op": "!=",
662
+ "value": "DNA"
663
+ },
664
+ {
665
+ "input": "Sample_Type",
666
+ "op": "notlike",
667
+ "value": "RNA"
668
+ },
669
+ {
670
+ "input": "Sample_Type",
671
+ "op": "notlike",
672
+ "value": "Blood"
673
+ }
674
+ ],
675
+ "disabled_when": [
676
+ {
677
+ "input": "Sample_Type",
678
+ "op": "like",
679
+ "value": "Faeces"
680
+ },
681
+ {
682
+ "input": "Sample_Type",
683
+ "op": "like",
684
+ "value": "Blood"
685
+ }
686
+ ],
687
+ "default_value_when": [
688
+ {
689
+ "input": "Sample_Type",
690
+ "op": "like",
691
+ "value": "Faeces",
692
+ "default_value": "81126"
693
+ },
694
+ {
695
+ "input": "Sample_Type",
696
+ "op": "like",
697
+ "value": "Blood",
698
+ "default_value": "2017986"
699
+ }
700
+ ],
701
+ "hide": true,
702
+ "disabled": false
703
+ },
704
+ {
705
+ "name": "FTA_Card_Code",
706
+ "label": "FTA card code",
707
+ "icon": "",
708
+ "type": "text",
709
+ "dynprop": {
710
+ "ID": 1800,
711
+ "Name": "FTA_Card_Code",
712
+ "Label_EN": "FTA card code",
713
+ "Label_FR": "Code de carte FTA",
714
+ "Type": "string",
715
+ "Is_Required": false,
716
+ "Is_Readonly": false,
717
+ "Min_Value": 0,
718
+ "Required_When": "{input:Sample_Type|op:like|value:FTA}",
719
+ "Hide_When": "{input:Sample_Type|op:notlike|value:FTA}",
720
+ "Linked_Entity": "Sample",
721
+ "Linked_Field": "FTA_Card_Code",
722
+ "Event_Type_ID": 1,
723
+ "Is_Hidden": false,
724
+ "Extraction_Field": false
725
+ },
726
+ "required": false,
727
+ "readonly": false,
728
+ "editable": true,
729
+ "extraction_field": false,
730
+ "required_when": [
731
+ {
732
+ "input": "Sample_Type",
733
+ "op": "like",
734
+ "value": "FTA"
735
+ }
736
+ ],
737
+ "hide_when": [
738
+ {
739
+ "input": "Sample_Type",
740
+ "op": "notlike",
741
+ "value": "FTA"
742
+ }
743
+ ],
744
+ "hide": true,
745
+ "disabled": false
746
+ },
747
+ {
748
+ "name": "FTA_Card_Position",
749
+ "label": "Position in card",
750
+ "icon": "reneco-logo-thesaurus",
751
+ "type": "thesaurus",
752
+ "config": {
753
+ "options": {
754
+ "source": "webservice",
755
+ "origin": "classification",
756
+ "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NTI4NzYyOSwicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.V2osgyI37gtjB1lUtcVx15tCBywoZs-k_wJDOGSrd-EEDI4khMFIKGfTHGBWxw4S77Y-Mz31Hq7iwhYr4c6zyUZmYyiE-HIJr5IpEohgHT3eOp2spUZJFwba6lti5p1qJa4dMIoReIRzx4PYSLrC5PE0UUevAAfdWhxGwigqlvM2SzN3DzAc4FbURSrdSfZ_e0ZnmUCXMwz1TlGBb-afS-IXsJgSIw9iIpVPpLP-lOjY8pnjnYYo7EcVtuc0lU7-yBSrqtn5OmxCm8Ge2ym6sjtFIET8BLEUh-H8tZ7C-A2bz4K-RSBB-uvd4apvR42vHirnodK-JO7Qzgl5u5Uepg",
757
+ "url": "http://renecong.local:8888/ng/api/v1/classification/getTree/Thesaurus",
758
+ "language": "en",
759
+ "options": {
760
+ "IsDeprecated": false,
761
+ "startNode": "2014322",
762
+ "StartNodeID": "2014322",
763
+ "lng": "en"
764
+ },
765
+ "multiple": false,
766
+ "searchPlaceholder": "Search",
767
+ "mode": "input",
768
+ "loading": "display",
769
+ "displayTree": true,
770
+ "isFullpath": false,
771
+ "displayRootNode": true
772
+ }
773
+ },
774
+ "dynprop": {
775
+ "ID": 1801,
776
+ "Name": "FTA_Card_Position",
777
+ "Label_EN": "Position in card",
778
+ "Label_FR": "Emplacement sur la carte",
779
+ "Type": "thesaurus",
780
+ "Is_Required": false,
781
+ "Is_Readonly": false,
782
+ "Min_Value": 0,
783
+ "External_Info": "2014322",
784
+ "Required_When": "{input:Sample_Type|op:like|value:FTA}",
785
+ "Hide_When": "{input:Sample_Type|op:notlike|value:FTA}",
786
+ "Linked_Entity": "Sample",
787
+ "Linked_Field": "FTA_Card_Position",
788
+ "Event_Type_ID": 1,
789
+ "Is_Hidden": false,
790
+ "Extraction_Field": false
791
+ },
792
+ "required": false,
793
+ "readonly": false,
794
+ "editable": true,
795
+ "extraction_field": false,
796
+ "required_when": [
797
+ {
798
+ "input": "Sample_Type",
799
+ "op": "like",
800
+ "value": "FTA"
801
+ }
802
+ ],
803
+ "hide_when": [
804
+ {
805
+ "input": "Sample_Type",
806
+ "op": "notlike",
807
+ "value": "FTA"
808
+ }
809
+ ],
810
+ "hide": true,
811
+ "disabled": false
812
+ },
813
+ {
814
+ "name": "Comment",
815
+ "label": "Comment",
816
+ "icon": "",
817
+ "type": "textarea",
818
+ "dynprop": {
819
+ "ID": 1802,
820
+ "Name": "Comment",
821
+ "Label_EN": "Comment",
822
+ "Label_FR": "Notes",
823
+ "Type": "textarea",
824
+ "Is_Required": false,
825
+ "Is_Readonly": false,
826
+ "Min_Value": 0,
827
+ "Event_Type_ID": 1,
828
+ "Is_Hidden": false,
829
+ "Extraction_Field": false
830
+ },
831
+ "required": false,
832
+ "readonly": false,
833
+ "editable": true,
834
+ "extraction_field": false,
835
+ "hide": false,
836
+ "disabled": false
837
+ }
838
+ ]
839
+ },
840
+ {
841
+ "Subject_IDS": "",
842
+ "TUse_Login": "",
843
+ "Sample_Status": "",
844
+ "Position": "",
845
+ "Subject": "",
846
+ "Start_Date": "",
847
+ "Sample_Type": "",
848
+ "Context": "",
849
+ "Anatomy": "",
850
+ "FTA_Card_Code": ""
851
+ }
852
+ ]'
853
+ api-key="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"
854
+ render-form="true"
855
+ display-status="true"
856
+ debug="true"
857
+ context="ecoll-veto"
858
+ language="en"
859
+ classification-root-url="http://localhost:8888"
860
+ >
861
+ </voice-input-module>
862
+ </div>
863
+
864
+ <div class="demo-section">
865
+ <div class="demo-title">Ecoteka component</div>
866
+ <voice-input-module
867
+ id="demo4"
868
+ form-json='
869
+ {
870
+ "Children":[
871
+ {
872
+ "System_Name": "Diagnosis date",
873
+ "Type": "date",
874
+ "Required": "true",
875
+ "Settings": {
876
+ "Label": "Date de passage",
877
+ "Default_Value": null
878
+ }
879
+ },
880
+ {
881
+ "System_Name": "Diagnosis type",
882
+ "Type": "text",
883
+ "Required": "true",
884
+ "Settings": {
885
+ "Label": "Type de diagnostic",
886
+ "Default_Value": null
887
+ }
888
+ },
889
+ {
890
+ "System_Name": "Tree condition",
891
+ "Type": "select",
892
+ "Required": "true",
893
+ "Settings": {
894
+ "Label": "Etat physiologique",
895
+ "Default_Value": null
896
+ },
897
+ "Children": [{
898
+ "Label": "Bonne"
899
+ },{
900
+ "Label": "Moyenne"
901
+ },{
902
+ "Label": "Faible"
903
+ }]
904
+ },
905
+ {
906
+ "System_Name": "Tree vigor",
907
+ "Type": "select",
908
+ "Required": "false",
909
+ "Settings": {
910
+ "Label": "Vigueur du sujet",
911
+ "Default_Value": null
912
+ },
913
+ "Children": [{
914
+ "Label": "Sain"
915
+ },{
916
+ "Label": "Stressé"
917
+ },{
918
+ "Label": "Résilient"
919
+ },{
920
+ "Label": "En dépérissement irréversible"
921
+ },{
922
+ "Label": "En descente de cime"
923
+ },{
924
+ "Label": "En repli"
925
+ },{
926
+ "Label": "Non lisible"
927
+ }]
928
+ },
929
+ {
930
+ "System_Name": "Root condition",
931
+ "Type": "select",
932
+ "Required": "false",
933
+ "Settings": {
934
+ "Label": "Etat des racines",
935
+ "Default_Value": null
936
+ },
937
+ "Children": [{
938
+ "Label": "Racines saines"
939
+ },{
940
+ "Label": "Racines sectionnées (travaux)"
941
+ },{
942
+ "Label": "Pollution"
943
+ },{
944
+ "Label": "Dépôt de matériaux"
945
+ },{
946
+ "Label": "Tassement du sol"
947
+ },{
948
+ "Label": "Racines de surface dégradées"
949
+ },{
950
+ "Label": "Mauvais état non défini"
951
+ }]
952
+ },
953
+ {
954
+ "System_Name": "Collar condition",
955
+ "Type": "select",
956
+ "Required": "false",
957
+ "Settings": {
958
+ "Label": "Etat du collet",
959
+ "Default_Value": null
960
+ },
961
+ "Children": [{
962
+ "Label": "Arrachement"
963
+ },{
964
+ "Label": "Plaie légère"
965
+ },{
966
+ "Label": "Carpophore"
967
+ },{
968
+ "Label": "Cavité interne"
969
+ },{
970
+ "Label": "Cavité ouverte"
971
+ },{
972
+ "Label": "Chancre"
973
+ },{
974
+ "Label": "Corps étranger"
975
+ }]
976
+ },
977
+ {
978
+ "System_Name": "Trunk condition",
979
+ "Type": "select",
980
+ "Required": "false",
981
+ "Settings": {
982
+ "Label": "Etat du tronc",
983
+ "Default_Value": null
984
+ },
985
+ "Children": [{
986
+ "Label": "Fissure longitudinale"
987
+ },{
988
+ "Label": "Fissure tangentielle"
989
+ },{
990
+ "Label": "Blessure profonde (creux)"
991
+ },{
992
+ "Label": "Plaie de taille"
993
+ },{
994
+ "Label": "Bois mort en quantité anormale"
995
+ },{
996
+ "Label": "Brin à écorce incluse"
997
+ }]
998
+ },
999
+ {
1000
+ "System_Name": "Crown condition",
1001
+ "Type": "select",
1002
+ "Required": "false",
1003
+ "Settings": {
1004
+ "Label": "Etat du houppier",
1005
+ "Default_Value": null
1006
+ },
1007
+ "Children": [{
1008
+ "Label": "Flambage"
1009
+ },{
1010
+ "Label": "Fil torse"
1011
+ },{
1012
+ "Label": "Foudroyé"
1013
+ },{
1014
+ "Label": "Fourche à écorce incluse"
1015
+ },{
1016
+ "Label": "Fourche ou axe à écorce incluse"
1017
+ },{
1018
+ "Label": "Instabilité"
1019
+ }]
1020
+ },
1021
+ {
1022
+ "System_Name": "Tree is dangerous",
1023
+ "Type": "checkbox",
1024
+ "Required": "false",
1025
+ "Settings": {
1026
+ "Label": "Arbre dangereux",
1027
+ "Default_Value": null
1028
+ }
1029
+ },
1030
+ {
1031
+ "System_Name": "Maintenance expectancy",
1032
+ "Type": "select",
1033
+ "Required": "false",
1034
+ "Settings": {
1035
+ "Label": "Esperance de maintient",
1036
+ "Default_Value": null
1037
+ },
1038
+ "Children": [{
1039
+ "Label": "Normale"
1040
+ },{
1041
+ "Label": "Acceptable"
1042
+ },{
1043
+ "Label": "Faible"
1044
+ },{
1045
+ "Label": "Très faible"
1046
+ },{
1047
+ "Label": "Aucune"
1048
+ },{
1049
+ "Label": "À définir"
1050
+ }]
1051
+ },
1052
+ {
1053
+ "System_Name": "Detailed diagnosis is recommended",
1054
+ "Type": "checkbox",
1055
+ "Required": "false",
1056
+ "Settings": {
1057
+ "Label": "Diagnostic approfondi recommande",
1058
+ "Default_Value": null
1059
+ }
1060
+ },
1061
+ {
1062
+ "System_Name": "Next diagnosis date recommendation",
1063
+ "Type": "select",
1064
+ "Required": "false",
1065
+ "Settings": {
1066
+ "Label": "Date recommandee pour le prochain diagnostic",
1067
+ "Default_Value": null
1068
+ },
1069
+ "Children": [{
1070
+ "Label": "Cette année"
1071
+ },{
1072
+ "Label": "Dans 2 ans"
1073
+ },{
1074
+ "Label": "Dans 3 ans"
1075
+ },{
1076
+ "Label": "Dans 5 ans"
1077
+ },{
1078
+ "Label": "Dans 10 ans"
1079
+ },{
1080
+ "Label": "Dans 15 ans"
1081
+ },{
1082
+ "Label": "Dans 20 ans"
1083
+ }]
1084
+ },
1085
+ {
1086
+ "System_Name": "Collar pathogen",
1087
+ "Type": "select",
1088
+ "Required": "false",
1089
+ "Settings": {
1090
+ "Label": "Pathogene collet",
1091
+ "Default_Value": null
1092
+ },
1093
+ "Children": [{
1094
+ "Label": "Maladie fongique non définie"
1095
+ },{
1096
+ "Label": "Criblure du laurier"
1097
+ },{
1098
+ "Label": "Armillaria mellea"
1099
+ },{
1100
+ "Label": "Armillaria ostoyae"
1101
+ },{
1102
+ "Label": "Armillaria tabescens"
1103
+ }]
1104
+ },
1105
+ {
1106
+ "System_Name": "Trunk pathogen",
1107
+ "Type": "select",
1108
+ "Required": "false",
1109
+ "Settings": {
1110
+ "Label": "Pathogene tronc",
1111
+ "Default_Value": null
1112
+ },
1113
+ "Children": [{
1114
+ "Label": "Maladie fongique non définie"
1115
+ },{
1116
+ "Label": "Criblure du laurier"
1117
+ },{
1118
+ "Label": "Armillaria mellea"
1119
+ },{
1120
+ "Label": "Armillaria ostoyae"
1121
+ },{
1122
+ "Label": "Armillaria tabescens"
1123
+ }]
1124
+ },
1125
+ {
1126
+ "System_Name": "Crown pathogen",
1127
+ "Type": "select",
1128
+ "Required": "false",
1129
+ "Settings": {
1130
+ "Label": "Pathogene houppier",
1131
+ "Default_Value": null
1132
+ },
1133
+ "Children": [{
1134
+ "Label": "Maladie fongique non définie"
1135
+ },{
1136
+ "Label": "Criblure du laurier"
1137
+ },{
1138
+ "Label": "Armillaria mellea"
1139
+ },{
1140
+ "Label": "Armillaria ostoyae"
1141
+ },{
1142
+ "Label": "Armillaria tabescens"
1143
+ }]
1144
+ },
1145
+ {
1146
+ "System_Name": "Undefined organ pathogen",
1147
+ "Type": "select",
1148
+ "Required": "false",
1149
+ "Settings": {
1150
+ "Label": "Pathogene organe non defini",
1151
+ "Default_Value": null
1152
+ },
1153
+ "Children": [{
1154
+ "Label": "Maladie fongique non définie"
1155
+ },{
1156
+ "Label": "Criblure du laurier"
1157
+ },{
1158
+ "Label": "Armillaria mellea"
1159
+ },{
1160
+ "Label": "Armillaria ostoyae"
1161
+ },{
1162
+ "Label": "Armillaria tabescens"
1163
+ }]
1164
+ },
1165
+ {
1166
+ "System_Name": "Note",
1167
+ "Type": "text",
1168
+ "Required": "false",
1169
+ "Settings": {
1170
+ "Label": "Remarque",
1171
+ "Default_Value": null
1172
+ }
1173
+ },
1174
+ {
1175
+ "System_Name": "Recommandation",
1176
+ "Type": "select",
1177
+ "Required": "false",
1178
+ "Settings": {
1179
+ "Label": "Recommandation",
1180
+ "Default_Value": null
1181
+ },
1182
+ "Children": [{
1183
+ "Label": "Plantation et suivi - Autres"
1184
+ },{
1185
+ "Label": "Taille d entretien"
1186
+ },{
1187
+ "Label": "Taille spécifique"
1188
+ },{
1189
+ "Label": "Taille sanitaire"
1190
+ },{
1191
+ "Label": "Taille de formation"
1192
+ },{
1193
+ "Label": "Taille - Autres"
1194
+ },{
1195
+ "Label": "Traitement - contrôle"
1196
+ }]
1197
+ }
1198
+ ]
1199
+ }'
1200
+ api-key="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"
1201
+ render-form="true"
1202
+ display-status="true"
1203
+ debug="true"
1204
+ context="ecoteka"
1205
+ language="fr"
1206
+ >
1207
+ </voice-input-module>
1208
+ </div> --> <div id="result2" class="result-display" style="display: none;"> <strong>Form Filled Result:</strong> <pre id="result2-content"></pre> </div> <div class="demo-section"> <div class="demo-title">Demo XML Conversion Utilities</div> <p>The component also provides XML ⟷ JSON conversion utilities:</p> <button onclick="testXmlConversion()">Test XML Conversion</button> <div id="xml-result" style="display: none; margin-top: 1rem;"> <div class="schema-example" id="xml-content"></div> </div> </div> <div class="demo-section"> <div class="demo-title">TRACK Legacy XML demo</div> <button onclick="testTrackXmlConversion()">Test TRACK Legacy XML Conversion</button> <div id="track-xml-result" style="display: none; margin-top: 1rem;"> <div class="schema-example" id="track-xml-content"></div> </div> </div> </div> <script>
1209
+
1210
+ // // Handle form filled events
1211
+ // document.getElementById('demo2').addEventListener('formFilled', (event) => {
1212
+ // const result = event.detail;
1213
+ // const resultDiv = document.getElementById('result2');
1214
+ // const resultContent = document.getElementById('result2-content');
1215
+
1216
+ // resultContent.textContent = JSON.stringify(result, null, 2);
1217
+ // resultDiv.style.display = 'block';
1218
+ // console.log('Demo 2 Form Filled:', result);
1219
+
1220
+ // // Update debug information if available
1221
+ // if (result.debugInfo) {
1222
+ // const debugContent = document.getElementById('debug2');
1223
+ // debugContent.innerHTML = `
1224
+ // <div class="debug-title">Debug Information:</div>
1225
+ // <pre class="debug-content">${JSON.stringify(result.debugInfo, null, 2)}</pre>
1226
+ // `;
1227
+ // }
1228
+ // });
1229
+
1230
+ document.getElementById('demo3').addEventListener('formFilled', (event) => {
1231
+ const result = event.detail;
1232
+ console.log('Raw Component Demo Form Filled:', result);
1233
+ });
1234
+
1235
+ // document.getElementById('demo4').addEventListener('formFilled', (event) => {
1236
+ // const result = event.detail;
1237
+ // console.log('Raw Component Demo Form Filled:', result);
1238
+ // });
1239
+
1240
+ //-----------------------------------
1241
+ // Test XML conversion
1242
+ function testXmlConversion() {
1243
+ console.log("testXmlConversion");
1244
+ const xmlForm = `
1245
+ <form title="Sample Form">
1246
+ <input name="name" type="text" title="Full Name" required="true" />
1247
+ <input name="age" type="number" title="Age" min="18" max="100" />
1248
+ <input name="subscribe" type="checkbox" title="Subscribe to Newsletter" />
1249
+ <select name="country" title="Country">
1250
+ <option value="us">United States</option>
1251
+ <option value="ca">Canada</option>
1252
+ <option value="uk">United Kingdom</option>
1253
+ </select>
1254
+ </form>
1255
+ `;
1256
+
1257
+ const component = document.getElementById('demo2');
1258
+ try {
1259
+ component.convertXmlToJsonLegacy(xmlForm).then((jsonresult) => {
1260
+ const backToXml = component.convertJsonToXmlLegacy(jsonresult).then((xmlresult) => {
1261
+ const resultDiv = document.getElementById('xml-result');
1262
+ const xmlContent = document.getElementById('xml-content');
1263
+
1264
+ xmlContent.innerHTML = `
1265
+ <strong>Original XML:</strong>
1266
+ ${xmlForm}
1267
+ <br />
1268
+
1269
+ <strong>Converted to JSON:</strong>
1270
+ ${JSON.stringify(jsonresult, null, 2)}
1271
+ <br />
1272
+ <br />
1273
+
1274
+ <strong>Back to XML:</strong>
1275
+ ${xmlresult}
1276
+ <br />
1277
+
1278
+ <div>To Component Result:</div>
1279
+ <voice-input-module
1280
+ id="fromxml"
1281
+ form-json='${JSON.stringify(jsonresult, null, 2)}'
1282
+ api-key="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"
1283
+ render-form="true"
1284
+ display-status="true"
1285
+ debug="true"
1286
+ context="track"
1287
+ classification-root-url="http://localhost:8888"
1288
+ >
1289
+ </voice-input-module>
1290
+
1291
+ <div id='toxmlaftervoice'></div>
1292
+ `;
1293
+
1294
+ resultDiv.style.display = 'block';
1295
+
1296
+ document.getElementById('fromxml').addEventListener('formFilled', (event) => {
1297
+ const result = event.detail;
1298
+ console.log('fromxml Demo Form Filled:', result);
1299
+
1300
+ component.convertJsonToXmlLegacy(result.data).then((finalxmlresult) => {
1301
+ const finalxmlContent = document.getElementById('toxmlaftervoice');
1302
+ console.log("finalxmlContent", finalxmlContent);
1303
+
1304
+ finalxmlContent.innerHTML = `
1305
+ ${finalxmlresult}
1306
+ `
1307
+ });
1308
+ });
1309
+ });
1310
+ });
1311
+
1312
+ } catch (error) {
1313
+ alert('Conversion error: ' + error.message);
1314
+ }
1315
+ }
1316
+
1317
+ // Handle recording state changes
1318
+ document.addEventListener('recordingStateChanged', (event) => {
1319
+ console.log('Recording state changed:', event.detail);
1320
+ });
1321
+
1322
+ //-----------------------------------
1323
+ // TRACK Legacy XML conversion
1324
+
1325
+ function testTrackXmlConversion() {
1326
+ // const xmlForm = `
1327
+ // <Xforms>
1328
+ // <Fields>
1329
+ // <ID>input_10802764</ID>
1330
+ // <TFie_PK_ID>1865032</TFie_PK_ID>
1331
+ // <TVal_PK_ID>10802764</TVal_PK_ID>
1332
+ // <TFIn_PK_ID>645682</TFIn_PK_ID>
1333
+ // <isForm>Form</isForm>
1334
+ // <LabelText>Poids</LabelText>
1335
+ // <SystemName>Weight</SystemName>
1336
+ // <CssStyle>cssHeader</CssStyle>
1337
+ // <ControlType>Header</ControlType>
1338
+ // <TFie_Fullpath> Poids</TFie_Fullpath>
1339
+ // <TVal_FK_Parent_ID>0</TVal_FK_Parent_ID>
1340
+ // </Fields>
1341
+ // <Fields>
1342
+ // <ID>input_10802765</ID>
1343
+ // <TFie_PK_ID>1865032</TFie_PK_ID>
1344
+ // <TVal_PK_ID>10802765</TVal_PK_ID>
1345
+ // <TFIn_PK_ID>645682</TFIn_PK_ID>
1346
+ // <isForm>Form Item</isForm>
1347
+ // <LabelText>Poids</LabelText>
1348
+ // <SystemName>Weight</SystemName>
1349
+ // <CssStyle>cssHeader</CssStyle>
1350
+ // <ControlType>Header</ControlType>
1351
+ // <TFie_Fullpath> Poids Poids</TFie_Fullpath>
1352
+ // <TVal_FK_Parent_ID>10802764</TVal_FK_Parent_ID>
1353
+ // </Fields>
1354
+ // <Fields>
1355
+ // <ID>input_10802766</ID>
1356
+ // <TFie_PK_ID>1865033</TFie_PK_ID>
1357
+ // <TVal_PK_ID>10802766</TVal_PK_ID>
1358
+ // <TFIn_PK_ID>645682</TFIn_PK_ID>
1359
+ // <Enabled>True</Enabled>
1360
+ // <isForm>Field</isForm>
1361
+ // <LabelText>Poids</LabelText>
1362
+ // <SystemName>Weight</SystemName>
1363
+ // <HelpText/>
1364
+ // <CssStyle>cssNormal</CssStyle>
1365
+ // <Value/>
1366
+ // <ControlType>RealPicker</ControlType>
1367
+ // <ValidationRequired>Required</ValidationRequired>
1368
+ // <ValidationMin>10</ValidationMin>
1369
+ // <ValidationMax>3500</ValidationMax>
1370
+ // <Mask/>
1371
+ // <TypeId>5519</TypeId>
1372
+ // <Unit>gramme(s)</Unit>
1373
+ // <TFie_Fullpath> Poids Poids</TFie_Fullpath>
1374
+ // <TVal_FK_Parent_ID>10802765</TVal_FK_Parent_ID>
1375
+ // <DefaultValue/>
1376
+ // </Fields>
1377
+ // <Fields>
1378
+ // <ID>input_10802767</ID>
1379
+ // <TFie_PK_ID>1865034</TFie_PK_ID>
1380
+ // <TVal_PK_ID>10802767</TVal_PK_ID>
1381
+ // <TFIn_PK_ID>645682</TFIn_PK_ID>
1382
+ // <Enabled>True</Enabled>
1383
+ // <isForm>Field</isForm>
1384
+ // <LabelText>Notes</LabelText>
1385
+ // <SystemName>Comment</SystemName>
1386
+ // <HelpText/>
1387
+ // <CssStyle>cssNormal</CssStyle>
1388
+ // <Value/>
1389
+ // <ControlType>Multiline</ControlType>
1390
+ // <ValidationRequired>Not Required</ValidationRequired>
1391
+ // <ValidationMin/>
1392
+ // <ValidationMax/>
1393
+ // <Mask/>
1394
+ // <TypeId>4231</TypeId>
1395
+ // <Unit/>
1396
+ // <TFie_Fullpath> Poids Notes</TFie_Fullpath>
1397
+ // <TVal_FK_Parent_ID>10802765</TVal_FK_Parent_ID>
1398
+ // <DefaultValue/>
1399
+ // </Fields>
1400
+ // </Xforms>`;
1401
+ const xmlForm = `
1402
+ <Xforms>
1403
+ <Fields>
1404
+ <ID>input_10804074</ID>
1405
+ <TFie_PK_ID>1892825</TFie_PK_ID>
1406
+ <TVal_PK_ID>10804074</TVal_PK_ID>
1407
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1408
+ <isForm>Form</isForm>
1409
+ <LabelText>Mort</LabelText>
1410
+ <SystemName>Death</SystemName>
1411
+ <CssStyle>cssHeader</CssStyle>
1412
+ <ControlType>Header</ControlType>
1413
+ <TFie_Fullpath> Mort</TFie_Fullpath>
1414
+ <TVal_FK_Parent_ID>0</TVal_FK_Parent_ID>
1415
+ </Fields>
1416
+ <Fields>
1417
+ <ID>input_10804075</ID>
1418
+ <TFie_PK_ID>1892825</TFie_PK_ID>
1419
+ <TVal_PK_ID>10804075</TVal_PK_ID>
1420
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1421
+ <isForm>Form Item</isForm>
1422
+ <LabelText>Mort</LabelText>
1423
+ <SystemName>Death</SystemName>
1424
+ <CssStyle>cssHeader</CssStyle>
1425
+ <ControlType>Header</ControlType>
1426
+ <TFie_Fullpath> Mort Mort</TFie_Fullpath>
1427
+ <TVal_FK_Parent_ID>10804074</TVal_FK_Parent_ID>
1428
+ </Fields>
1429
+ <Fields>
1430
+ <ID>input_10804076</ID>
1431
+ <TFie_PK_ID>1892826</TFie_PK_ID>
1432
+ <TVal_PK_ID>10804076</TVal_PK_ID>
1433
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1434
+ <Enabled>True</Enabled>
1435
+ <isForm>Field</isForm>
1436
+ <LabelText>Statut de sortie</LabelText>
1437
+ <SystemName>Exit status</SystemName>
1438
+ <HelpText></HelpText>
1439
+ <CssStyle>cssNormal</CssStyle>
1440
+ <Value>Death status>Dead</Value>
1441
+ <ControlType>ThesaurusPicker</ControlType>
1442
+ <ValidationRequired>Required</ValidationRequired>
1443
+ <ValidationMin></ValidationMin>
1444
+ <ValidationMax></ValidationMax>
1445
+ <Mask></Mask>
1446
+ <TypeId>2013199</TypeId>
1447
+ <Unit></Unit>
1448
+ <TFie_Fullpath> Mort Statut de sortie</TFie_Fullpath>
1449
+ <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
1450
+ <DefaultValue>Death status>Dead</DefaultValue>
1451
+ </Fields>
1452
+ <Fields>
1453
+ <ID>input_10804077</ID>
1454
+ <TFie_PK_ID>1892827</TFie_PK_ID>
1455
+ <TVal_PK_ID>10804077</TVal_PK_ID>
1456
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1457
+ <Enabled>True</Enabled>
1458
+ <isForm>Field</isForm>
1459
+ <LabelText>Date de sortie</LabelText>
1460
+ <SystemName>Exit date</SystemName>
1461
+ <HelpText></HelpText>
1462
+ <CssStyle>cssNormal</CssStyle>
1463
+ <Value></Value>
1464
+ <ControlType>DatePicker</ControlType>
1465
+ <ValidationRequired>Required</ValidationRequired>
1466
+ <ValidationMin></ValidationMin>
1467
+ <ValidationMax></ValidationMax>
1468
+ <Mask></Mask>
1469
+ <TypeId>4383</TypeId>
1470
+ <Unit></Unit>
1471
+ <TFie_Fullpath> Mort Date de sortie</TFie_Fullpath>
1472
+ <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
1473
+ <DefaultValue></DefaultValue>
1474
+ </Fields>
1475
+ <Fields>
1476
+ <ID>input_10804078</ID>
1477
+ <TFie_PK_ID>1892828</TFie_PK_ID>
1478
+ <TVal_PK_ID>10804078</TVal_PK_ID>
1479
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1480
+ <Enabled>False</Enabled>
1481
+ <isForm>Field</isForm>
1482
+ <LabelText>Position</LabelText>
1483
+ <SystemName>Location</SystemName>
1484
+ <HelpText></HelpText>
1485
+ <CssStyle>cssNormal</CssStyle>
1486
+ <Value></Value>
1487
+ <ControlType>TermPicker</ControlType>
1488
+ <ValidationRequired>Required</ValidationRequired>
1489
+ <ValidationMin></ValidationMin>
1490
+ <ValidationMax></ValidationMax>
1491
+ <Mask></Mask>
1492
+ <TypeId>80713</TypeId>
1493
+ <Unit></Unit>
1494
+ <TFie_Fullpath> Mort Position</TFie_Fullpath>
1495
+ <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
1496
+ <DefaultValue></DefaultValue>
1497
+ </Fields>
1498
+ <Fields>
1499
+ <ID>input_10804079</ID>
1500
+ <TFie_PK_ID>1892829</TFie_PK_ID>
1501
+ <TVal_PK_ID>10804079</TVal_PK_ID>
1502
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1503
+ <Enabled>True</Enabled>
1504
+ <isForm>Field</isForm>
1505
+ <LabelText>Type de mort</LabelText>
1506
+ <SystemName>Death type</SystemName>
1507
+ <HelpText></HelpText>
1508
+ <CssStyle>cssNormal</CssStyle>
1509
+ <Value></Value>
1510
+ <ControlType>ThesaurusPicker</ControlType>
1511
+ <ValidationRequired>Required</ValidationRequired>
1512
+ <ValidationMin></ValidationMin>
1513
+ <ValidationMax></ValidationMax>
1514
+ <Mask></Mask>
1515
+ <TypeId>167303</TypeId>
1516
+ <Unit></Unit>
1517
+ <TFie_Fullpath> Mort Type de mort</TFie_Fullpath>
1518
+ <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
1519
+ <DefaultValue></DefaultValue>
1520
+ </Fields>
1521
+ <Fields>
1522
+ <ID>input_10804080</ID>
1523
+ <TFie_PK_ID>1892830</TFie_PK_ID>
1524
+ <TVal_PK_ID>10804080</TVal_PK_ID>
1525
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1526
+ <Enabled>True</Enabled>
1527
+ <isForm>Field</isForm>
1528
+ <LabelText>Poids</LabelText>
1529
+ <SystemName>Weight</SystemName>
1530
+ <HelpText></HelpText>
1531
+ <CssStyle>cssNormal</CssStyle>
1532
+ <Value></Value>
1533
+ <ControlType>RealPicker</ControlType>
1534
+ <ValidationRequired>Not Required</ValidationRequired>
1535
+ <ValidationMin>10</ValidationMin>
1536
+ <ValidationMax>3500</ValidationMax>
1537
+ <Mask></Mask>
1538
+ <TypeId>5519</TypeId>
1539
+ <Unit>gramme(s)</Unit>
1540
+ <TFie_Fullpath> Mort Poids</TFie_Fullpath>
1541
+ <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
1542
+ <DefaultValue></DefaultValue>
1543
+ </Fields>
1544
+ <Fields>
1545
+ <ID>input_10804081</ID>
1546
+ <TFie_PK_ID>1892831</TFie_PK_ID>
1547
+ <TVal_PK_ID>10804081</TVal_PK_ID>
1548
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1549
+ <Enabled>False</Enabled>
1550
+ <isForm>Field</isForm>
1551
+ <LabelText>Sentinelle</LabelText>
1552
+ <SystemName>Sentinel</SystemName>
1553
+ <HelpText></HelpText>
1554
+ <CssStyle>cssNormal</CssStyle>
1555
+ <Value>Yes/No>No</Value>
1556
+ <ControlType>ThesaurusPicker</ControlType>
1557
+ <ValidationRequired>Required</ValidationRequired>
1558
+ <ValidationMin></ValidationMin>
1559
+ <ValidationMax></ValidationMax>
1560
+ <Mask></Mask>
1561
+ <TypeId>167278</TypeId>
1562
+ <Unit></Unit>
1563
+ <TFie_Fullpath> Mort Sentinelle</TFie_Fullpath>
1564
+ <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
1565
+ <DefaultValue>Yes/No>No</DefaultValue>
1566
+ </Fields>
1567
+ <Fields>
1568
+ <ID>input_10804082</ID>
1569
+ <TFie_PK_ID>1892832</TFie_PK_ID>
1570
+ <TVal_PK_ID>10804082</TVal_PK_ID>
1571
+ <TFIn_PK_ID>645940</TFIn_PK_ID>
1572
+ <Enabled>True</Enabled>
1573
+ <isForm>Field</isForm>
1574
+ <LabelText>Notes</LabelText>
1575
+ <SystemName>Comment</SystemName>
1576
+ <HelpText></HelpText>
1577
+ <CssStyle>cssNormal</CssStyle>
1578
+ <Value></Value>
1579
+ <ControlType>Multiline</ControlType>
1580
+ <ValidationRequired>Not Required</ValidationRequired>
1581
+ <ValidationMin></ValidationMin>
1582
+ <ValidationMax></ValidationMax>
1583
+ <Mask></Mask>
1584
+ <TypeId>4231</TypeId>
1585
+ <Unit></Unit>
1586
+ <TFie_Fullpath> Mort Notes</TFie_Fullpath>
1587
+ <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
1588
+ <DefaultValue></DefaultValue>
1589
+ </Fields>
1590
+ </Xforms>
1591
+ `;
1592
+
1593
+ const component = document.getElementById('demo2');
1594
+ try {
1595
+ component.convertXmlToJson(xmlForm).then((jsonresult) => {
1596
+ const jsonresultsaved = JSON.parse(JSON.stringify(jsonresult));
1597
+ const jsonresultSTR = JSON.stringify(jsonresult, null, 2).replace("'", "");
1598
+ const backToXml = component.convertJsonToXml(jsonresult).then((xmlresult) => {
1599
+ const resultDiv = document.getElementById('track-xml-result');
1600
+ const xmlContent = document.getElementById('track-xml-content');
1601
+
1602
+ xmlContent.innerHTML = `
1603
+ <strong>Original XML:</strong>
1604
+ <br />
1605
+ <textarea>
1606
+ ${xmlForm}
1607
+ </textarea>
1608
+ <br />
1609
+
1610
+ <strong>Converted to JSON:</strong>
1611
+ ${jsonresultSTR}
1612
+ <br />
1613
+ <br />
1614
+
1615
+ <strong>Back to XML:</strong>
1616
+ <br />
1617
+ <textarea>
1618
+ ${xmlresult}
1619
+ </textarea>
1620
+ <br />
1621
+
1622
+ <div>To Component Result:</div>
1623
+ <voice-input-module
1624
+ id="fromxml"
1625
+ form-json='${jsonresultSTR}'
1626
+ api-key="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"
1627
+ render-form="true"
1628
+ display-status="true"
1629
+ debug="true"
1630
+ context="track"
1631
+ language="fr"
1632
+ classification-root-url="http://localhost:8888"
1633
+ >
1634
+ </voice-input-module>
1635
+ <br/><br/>
1636
+ <textarea id='toxmlaftervoice'></textarea>
1637
+ `;
1638
+
1639
+ resultDiv.style.display = 'block';
1640
+
1641
+ document.getElementById('fromxml').addEventListener('formFilled', (event) => {
1642
+ const result = event.detail;
1643
+ console.log('fromxml Demo Form Filled:', result);
1644
+
1645
+ component.convertJsonToXml(result.data).then((finalxmlresult) => {
1646
+ const finalxmlContent = document.getElementById('toxmlaftervoice');
1647
+ console.log("finalxmlContent", finalxmlContent);
1648
+
1649
+ finalxmlContent.innerHTML = `
1650
+ ${finalxmlresult}
1651
+ `
1652
+ });
1653
+ });
1654
+ });
1655
+ });
1656
+
1657
+ } catch (error) {
1658
+ alert('Conversion error: ' + error.message);
1659
+ }
1660
+ }
1661
+
1662
+ </script> </body></html>