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/src/index.html DELETED
@@ -1,663 +0,0 @@
1
- <!DOCTYPE html>
2
- <html dir="ltr" lang="en">
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=5.0" />
6
- <title>Voice Input Module Demo</title>
7
- <script type="module" src="/build/voice-input-module.esm.js"></script>
8
- <script nomodule src="/build/voice-input-module.js"></script>
9
- <style>
10
- body {
11
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
12
- margin: 0;
13
- padding: 2rem;
14
- background: #f8fafc;
15
- line-height: 1.6;
16
- }
17
- .container {
18
- max-width: 1000px;
19
- margin: 0 auto;
20
- background: white;
21
- padding: 2rem;
22
- border-radius: 1rem;
23
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
24
- }
25
- h1 {
26
- color: #1e293b;
27
- margin-bottom: 1rem;
28
- }
29
- textarea {
30
- width:800px;
31
- height:300px;
32
- }
33
- .description {
34
- color: #64748b;
35
- margin-bottom: 2rem;
36
- }
37
- .demo-section {
38
- margin: 2rem 0;
39
- padding: 1.5rem;
40
- background: #f8fafc;
41
- border-radius: 0.5rem;
42
- border: 1px solid #e2e8f0;
43
- }
44
- .demo-title {
45
- font-weight: 600;
46
- color: #374151;
47
- margin-bottom: 1rem;
48
- }
49
- .schema-example {
50
- background: #1e293b;
51
- color: #e2e8f0;
52
- padding: 1rem;
53
- border-radius: 0.375rem;
54
- font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
55
- font-size: 0.875rem;
56
- overflow-x: auto;
57
- margin: 1rem 0;
58
- }
59
- .result-display {
60
- margin-top: 1rem;
61
- padding: 1rem;
62
- background: #f0f9ff;
63
- border: 1px solid #0ea5e9;
64
- border-radius: 0.375rem;
65
- }
66
- .setup-note {
67
- background: #fef3c7;
68
- border: 1px solid #f59e0b;
69
- border-radius: 0.375rem;
70
- padding: 1rem;
71
- margin-bottom: 2rem;
72
- color: #92400e;
73
- }
74
-
75
- .toggle-section {
76
- margin: 1rem 0;
77
- }
78
-
79
- .toggle-button {
80
- background: #3b82f6;
81
- color: white;
82
- border: none;
83
- padding: 0.5rem 1rem;
84
- border-radius: 0.375rem;
85
- cursor: pointer;
86
- font-size: 0.875rem;
87
- display: flex;
88
- align-items: center;
89
- gap: 0.5rem;
90
- margin-bottom: 0.5rem;
91
- }
92
-
93
- .toggle-button:hover {
94
- background: #2563eb;
95
- }
96
-
97
- .toggle-content {
98
- display: none;
99
- padding: 1rem;
100
- background: white;
101
- border: 1px solid #e5e7eb;
102
- border-radius: 0.375rem;
103
- }
104
-
105
- .toggle-content.visible {
106
- display: block;
107
- }
108
-
109
- .editable-schema {
110
- min-height: 200px;
111
- padding: 1rem;
112
- border: 1px solid #d1d5db;
113
- border-radius: 0.375rem;
114
- font-family: 'Monaco', 'Menlo', monospace;
115
- font-size: 0.875rem;
116
- white-space: pre-wrap;
117
- background: #f9fafb;
118
- width: 100%;
119
- box-sizing: border-box;
120
- resize: vertical;
121
- }
122
-
123
- .editable-schema:focus {
124
- outline: none;
125
- border-color: #3b82f6;
126
- box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
127
- }
128
-
129
- .debug-title {
130
- font-weight: 600;
131
- color: #374151;
132
- margin-bottom: 0.5rem;
133
- }
134
-
135
- .debug-content {
136
- background: #1e293b;
137
- color: #e2e8f0;
138
- padding: 1rem;
139
- border-radius: 0.375rem;
140
- font-family: 'Monaco', 'Menlo', monospace;
141
- font-size: 0.875rem;
142
- overflow-x: auto;
143
- white-space: pre-wrap;
144
- }
145
- </style>
146
- </head>
147
- <body>
148
- <div class="container">
149
- <h1>Voice Input Module Component</h1>
150
- <div class="setup-note">
151
- <strong>Setup Required:</strong> This component requires OpenAI API key to be passed in options.
152
- </div>
153
-
154
- <div class="demo-section">
155
- <div class="demo-title">NG component</div>
156
- <voice-input-module
157
- id="demo3"
158
- form-json='{"ID":1003,"System_Name":"Adoption_End","Type":"Container","Settings":{"ID":1003,"Flex_Direction":"row","Flex_Wrap":"wrap","Align_Items":"flex-start","Field_Width":8,"Label_Translation_ID":{"fr":"Adoption_End","en":"Adoption_End"},"Description_Translation_ID":{"fr":"Adoption_End","en":"Adoption_End"},"Label":"Root"},"Children":[{"ID":2016,"System_Name":"Individual_ID","Type":"InputAutocomplete","Settings":{"Autocomplete_Start":0,"Operator":"contains","Field_Width":4,"Source_View":"Individuals","Source_Field":["Adult_ID","Egg_ID"],"Trigger_Min_Length":3,"Label_Translation_ID":{"fr":"Individual_ID","en":"Individual_ID"},"Description_Translation_ID":{"fr":"Individual_ID","en":"Individual_ID"},"Label":"Individual_ID"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2017,"System_Name":"ID","Type":"InputInteger","Settings":{"ID":1005,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Label_Translation_ID":{"fr":"ID","en":"ID"},"Description_Translation_ID":{"fr":"ID","en":"ID"},"Label":"ID"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2018,"System_Name":"End_Of_Adoption_Cause","Type":"InputInteger","Settings":{"ID":1006,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Label_Translation_ID":{"fr":"End_Of_Adoption_Cause","en":"End_Of_Adoption_Cause"},"Description_Translation_ID":{"fr":"End_Of_Adoption_Cause","en":"End_Of_Adoption_Cause"},"Label":"End_Of_Adoption_Cause"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2019,"System_Name":"New_Position","Type":"InputInteger","Settings":{"ID":1007,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Label_Translation_ID":{"fr":"New_Position","en":"New_Position"},"Description_Translation_ID":{"fr":"New_Position","en":"New_Position"},"Label":"New_Position"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2020,"System_Name":"Comment","Type":"InputTextArea","Settings":{"ID":1005,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Comment","en":"Comment"},"Description_Translation_ID":{"fr":"Comment","en":"Comment"},"Label":"Comment"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2021,"System_Name":"Former_Adoptive_Father","Type":"InputTextArea","Settings":{"ID":1006,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Former Adoptive Father","en":"Former_Adoptive_Father"},"Description_Translation_ID":{"fr":"Former_Adoptive_Father","en":"Former_Adoptive_Father"},"Label":"Former_Adoptive_Father"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2022,"System_Name":"Former_Adoptive_Mother","Type":"InputTextArea","Settings":{"ID":1007,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Former_Adoptive_Mother","en":"Former_Adoptive_Mother"},"Description_Translation_ID":{"fr":"Former_Adoptive_Mother","en":"Former_Adoptive_Mother"},"Label":"Former_Adoptive_Mother"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2023,"System_Name":"Start_Date","Type":"InputDateTimePicker","Settings":{"ID":1003,"Format":null,"Default_Value":null,"Field_Width":4,"Is_Default_Value_Now":null,"Has_Future_Date":null,"Label_Translation_ID":{"fr":"Start Date","en":"Start Date"},"Description_Translation_ID":{"fr":"Start Date","en":"Start Date"},"Label":"Start_Date"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2024,"System_Name":"Test_Decimal","Type":"InputDecimal","Settings":{"ID":1003,"Min":null,"Max":null,"Default_Value":null,"Unit":null,"Field_Width":4,"Number_Of_Decimal":3,"Label_Translation_ID":{"fr":"Test_Decimal","en":"Test_Decimal"},"Description_Translation_ID":{"fr":"Test_Decimal","en":"Test_Decimal"},"Label":"Test_Decimal"},"Children":[],"Is_Virtual":false,"Required":false},{"ID":2025,"System_Name":"Test_Classap","Type":"InputClassification","Settings":{"ID":1003,"Start_Node_ID":222957,"Default_Value":null,"Is_Fullpath_Used":null,"Is_Multiple":null,"Field_Width":4,"Type":"thesaurus","Label_Translation_ID":{"fr":"Test_Classap","en":"Test_Classap"},"Description_Translation_ID":{"fr":"Test_Classap","en":"Test_Classap"},"Label":"Test_Classap"},"Children":["hello","world"],"Is_Virtual":false,"Required":false},{"ID":2026,"System_Name":"Test_Checkbox","Type":"InputCheckbox","Settings":{"ID":2,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Test_Checkbox","en":"Test_Checkbox"},"Description_Translation_ID":{"fr":"Test_Checkbox","en":"Test_Checkbox"},"Label":"Test_Checkbox"},"Children":[],"Is_Virtual":false,"Required":true},{"ID":2027,"System_Name":"Test_Translation_ID","Type":"InputTextTranslation","Settings":{"ID":2,"Min_Length":null,"Max_Length":null,"Default_Value":null,"Field_Width":4,"Label_Translation_ID":{"fr":"Test_Translation_ID","en":"Test_Translation_ID"},"Description_Translation_ID":{"fr":"Test_Translation_ID","en":"Test_Translation_ID"},"Label":"Test_Translation_ID"},"Children":[],"Is_Virtual":false,"Required":false}],"Is_Virtual":false,"Required":false,"Meta":{"ID":3,"System_Name":"Protocol"},"Object_Type":{"ID":81,"System_Name":"Adoption_End"}}'
159
- api-key="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"
160
- render-form="true"
161
- display-status="true"
162
- debug="true"
163
- context="ng"
164
- classification-root-url="http://localhost:8888"
165
- voice-or-ocr="both"
166
- >
167
- </voice-input-module>
168
- </div>
169
-
170
- <!-- NOTE STEP 1 -->
171
- <div class="demo-section">
172
- <div class="demo-title">Ecoll component</div>
173
- <voice-input-module
174
- id="demo2"
175
- form-json='[{"name":"general informations","label":"Informations générales de l&apos;événement","role":"main","class":"general-infos","items":[{"type":"number","name":"Event_ID","label":"ID","readonly":true,"disabled":false},{"type":"text","name":"Subject","label":"Sujet","readonly":true,"tooltip_value":"M19N08550","disabled":false},{"type":"date","name":"Start_Date","label":"Date de l&apos;événement","required":true,"disabled":false},{"type":"text","name":"TUse_Login","label":"Opérateur","readonly":true,"disabled":false}]},{"name":"eventdetails","label":"Détails de l&apos;événement","role":"event-details","class":"event-details","items":[{"name":"Sample_Status","label":"Statut","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":2014257,"StartNodeID":2014257,"lng":"fr","Reach":[2014257]},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":true,"defaultValue":["2014257"]}},"dynprop":{"ID":1792,"Name":"Sample_Status","Label_EN":"Status","Label_FR":"Statut","Type":"thesaurus","Is_Required":true,"Is_Readonly":true,"Min_Value":0,"Default_Value":"2014257","External_Info":2014257,"Linked_Entity":"Sample","Linked_Field":"Sample_Status","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":true,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Sample_Type","label":"Type d&apos;échantillon","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"2014261","StartNodeID":"2014261","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1793,"Name":"Sample_Type","Label_EN":"Sample type","Label_FR":"Type d&apos;échantillon","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"2014261","Linked_Entity":"Sample","Linked_Field":"Sample_Type","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Context","label":"Contexte","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"2014303","StartNodeID":"2014303","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1794,"Name":"Context","Label_EN":"Context","Label_FR":"Contexte","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"2014303","Linked_Entity":"Sample","Linked_Field":"Context","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Purpose","label":"But","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"168027","StartNodeID":"168027","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1795,"Name":"Purpose","Label_EN":"Purpose","Label_FR":"But","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"168027","Linked_Entity":"Sample","Linked_Field":"Purpose","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Position","label":"Position","icon":"reneco-localtion","type":"position","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Position","language":"fr","options":{"IsDeprecated":false,"startNode":213847,"StartNodeID":213847,"lng":"fr","Reach":[213847]},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":true,"defaultValue":["213847"]}},"dynprop":{"ID":1796,"Name":"Position","Label_EN":"Location","Label_FR":"Position","Type":"position","Is_Required":true,"Is_Readonly":true,"Min_Value":0,"Default_Value":"213847","External_Info":213847,"Linked_Entity":"Sample","Linked_Field":"Position","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":true,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Analysis_Request","label":"Demande d&apos;analyse","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"81768","StartNodeID":"81768","lng":"fr"},"multiple":true,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1797,"Name":"Analysis_Request","Label_EN":"Analysis request","Label_FR":"Demande d&apos;analyse","Type":"thesaurus","Is_Required":true,"Is_Readonly":false,"Min_Value":0,"External_Info":"start_node_id=81768|multiple=true","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":true,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Targeted_Pathogen","label":"Pathogène ciblé","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"87227","StartNodeID":"87227","lng":"fr"},"multiple":true,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1798,"Name":"Targeted_Pathogen","Label_EN":"Targeted pathogen","Label_FR":"Pathogène ciblé","Type":"thesaurus","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"External_Info":"start_node_id=87227|multiple=true","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false},{"name":"Anatomy","label":"Anatomie","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"78255","StartNodeID":"78255","lng":"fr"},"multiple":true,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1799,"Name":"Anatomy","Label_EN":"Anatomy","Label_FR":"Anatomie","Type":"thesaurus","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"External_Info":"start_node_id=78255|multiple=true","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}","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}","Disabled_When":"{input:Sample_Type|op:like|value:Faeces}|{input:Sample_Type|op:like|value:Blood}","Default_Value_When":"{input:Sample_Type|op:like|value:Faeces|default_value:81126}|{input:Sample_Type|op:like|value:Blood|default_value:2017986}","Linked_Entity":"Sample","Linked_Field":"Anatomy","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"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"}],"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"}],"disabled_when":[{"input":"Sample_Type","op":"like","value":"Faeces"},{"input":"Sample_Type","op":"like","value":"Blood"}],"default_value_when":[{"input":"Sample_Type","op":"like","value":"Faeces","default_value":"81126"},{"input":"Sample_Type","op":"like","value":"Blood","default_value":"2017986"}],"hide":true,"disabled":false},{"name":"FTA_Card_Code","label":"Code de carte FTA","icon":"","type":"text","dynprop":{"ID":1800,"Name":"FTA_Card_Code","Label_EN":"FTA card code","Label_FR":"Code de carte FTA","Type":"string","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"Required_When":"{input:Sample_Type|op:like|value:FTA}","Hide_When":"{input:Sample_Type|op:notlike|value:FTA}","Linked_Entity":"Sample","Linked_Field":"FTA_Card_Code","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"required_when":[{"input":"Sample_Type","op":"like","value":"FTA"}],"hide_when":[{"input":"Sample_Type","op":"notlike","value":"FTA"}],"hide":true,"disabled":false},{"name":"FTA_Card_Position","label":"Emplacement sur la carte","icon":"reneco-logo-thesaurus","type":"thesaurus","config":{"options":{"source":"webservice","origin":"classification","token":"eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzUxMiJ9.eyJpc3MiOiJOU3BvcnRhbCIsInN1YiI6IjE4NzUiLCJ1c2VybmFtZSI6Iktvc3Rob3dhIEx1ZG92aWMiLCJ1c2VybGFuZ3VhZ2UiOiJlbiIsImV4cCI6MTc2NDA2NDk1Nywicm9sZXMiOnsiREVWIFRSQUNLIjoiQWRtaW5pc3RyYXRldXIiLCJQb3J0YWwiOiJBZG1pbmlzdHJhdGV1ciIsIlBhcmFtZXRlcnMiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBQYXJhbWV0ZXJzIjoiQWRtaW5pc3RyYXRldXIiLCJOUyBUaFx1MDBlOXNhdXJ1cyAocmVhZCBvbmx5KSI6IkFkbWluaXN0cmF0ZXVyIiwiUG9zaXRpb24gKHJlYWQgb25seSkiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIEVudG9tb2xvZ3kiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBEYXRhIEVudHJ5IFVuZHVsYXRhIjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gTWFuYWdlbWVudCBVbmR1bGF0YSI6IkFkbWluaXN0cmF0ZXVyIiwiU2VjdXJpdGUiOiJBZG1pbmlzdHJhdGV1ciIsImVDb2xsZWN0aW9uIFZldGVyaW5hcnkiOiJBZG1pbmlzdHJhdGV1ciIsIkRFViBlQ29sbGVjdGlvbiBWZXRlcmluYXJ5IjoiQWRtaW5pc3RyYXRldXIiLCJSZXByb2R1Y3Rpb24gRGF0YSBFbnRyeSBVbmR1bGF0YSBERVYiOiJBZG1pbmlzdHJhdGV1ciIsIlJlcHJvZHVjdGlvbiBNYW5hZ2VtZW50IFVuZHVsYXRhIERFViI6IkFkbWluaXN0cmF0ZXVyIiwiREVWIGVDb2xsZWN0aW9uIEJvdGEiOiJBZG1pbmlzdHJhdGV1ciJ9fQ.qNQfo8hqzyyrEOJSi_32wvxCsd2K2jX3FxzJe-CSpXNU1ABvc7pCyqXVqpTIB2VA2xUioNlGnvTTCNzb4fuYjYv46QaTeCzcTcsjc3Mf-1coeBkufov7CGF2mCcA-MaE4Zpzgz01qP1Ud9JMJ9glldwkNRPXt9rjOLjoEsq88ITgC8i0cpFArCzzRdqx5PbQMcaQXcnVjU2y4k1qASLm6UxvO5W6TnDyuRAKfcGeN7iMEP8wvdI-UrwvCLyNb6mKk3VtHfuvc--TO9HrCyTtxxWnXLltWsEu4ne1wGx7PogUFY-wST_mqjEg2SnJ8GzdR0My4LW8lAWJlSzVCI2pNA","url":"https://nsdev01.int/ng/api/v1/classification/getTree/Thesaurus","language":"fr","options":{"IsDeprecated":false,"startNode":"2014322","StartNodeID":"2014322","lng":"fr"},"multiple":false,"searchPlaceholder":"Search","mode":"input","loading":"display","displayTree":true,"isFullpath":false,"displayRootNode":false}},"dynprop":{"ID":1801,"Name":"FTA_Card_Position","Label_EN":"Position in card","Label_FR":"Emplacement sur la carte","Type":"thesaurus","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"External_Info":"2014322","Required_When":"{input:Sample_Type|op:like|value:FTA}","Hide_When":"{input:Sample_Type|op:notlike|value:FTA}","Linked_Entity":"Sample","Linked_Field":"FTA_Card_Position","Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"required_when":[{"input":"Sample_Type","op":"like","value":"FTA"}],"hide_when":[{"input":"Sample_Type","op":"notlike","value":"FTA"}],"hide":true,"disabled":false},{"name":"Comment","label":"Notes","icon":"","type":"textarea","dynprop":{"ID":1802,"Name":"Comment","Label_EN":"Comment","Label_FR":"Notes","Type":"textarea","Is_Required":false,"Is_Readonly":false,"Min_Value":0,"Event_Type_ID":1,"Is_Hidden":false,"Extraction_Field":false},"required":false,"readonly":false,"editable":true,"extraction_field":false,"hide":false,"disabled":false}]},{"Event_ID": null}]'
176
- api-key="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"
177
- render-form="true"
178
- display-status="true"
179
- debug="true"
180
- context="ecoll-veto"
181
- language="fr"
182
- classification-root-url="http://localhost:8888"
183
- >
184
- </voice-input-module>
185
- </div>
186
-
187
- <div id="result2" class="result-display" style="display: none;">
188
- <strong>Form Filled Result:</strong>
189
- <pre id="result2-content"></pre>
190
- </div>
191
-
192
- <div class="demo-section">
193
- <div class="demo-title">Demo XML Conversion Utilities</div>
194
- <p>The component also provides XML ⟷ JSON conversion utilities:</p>
195
- <button onclick="testXmlConversion()">Test XML Conversion</button>
196
- <div id="xml-result" style="display: none; margin-top: 1rem;">
197
- <div class="schema-example" id="xml-content"></div>
198
- </div>
199
- </div>
200
-
201
-
202
- <div class="demo-section">
203
- <div class="demo-title">TRACK Legacy XML demo</div>
204
- <button onclick="testTrackXmlConversion()">Test TRACK Legacy XML Conversion</button>
205
- <div id="track-xml-result" style="display: none; margin-top: 1rem;">
206
- <div class="schema-example" id="track-xml-content"></div>
207
- </div>
208
- </div>
209
-
210
- </div>
211
-
212
- <script>
213
-
214
- // Handle form filled events
215
- document.getElementById('demo2').addEventListener('formFilled', (event) => {
216
- const result = event.detail;
217
- const resultDiv = document.getElementById('result2');
218
- const resultContent = document.getElementById('result2-content');
219
-
220
- resultContent.textContent = JSON.stringify(result, null, 2);
221
- resultDiv.style.display = 'block';
222
- console.log('Demo 2 Form Filled:', result);
223
-
224
- // Update debug information if available
225
- if (result.debugInfo) {
226
- const debugContent = document.getElementById('debug2');
227
- debugContent.innerHTML = `
228
- <div class="debug-title">Debug Information:</div>
229
- <pre class="debug-content">${JSON.stringify(result.debugInfo, null, 2)}</pre>
230
- `;
231
- }
232
- });
233
-
234
- document.getElementById('demo3').addEventListener('formFilled', (event) => {
235
- const result = event.detail;
236
- console.log('Raw Component Demo Form Filled:', result);
237
- });
238
-
239
- //-----------------------------------
240
- // Test XML conversion
241
- function testXmlConversion() {
242
- console.log("testXmlConversion");
243
- const xmlForm = `
244
- <form title="Sample Form">
245
- <input name="name" type="text" title="Full Name" required="true" />
246
- <input name="age" type="number" title="Age" min="18" max="100" />
247
- <input name="subscribe" type="checkbox" title="Subscribe to Newsletter" />
248
- <select name="country" title="Country">
249
- <option value="us">United States</option>
250
- <option value="ca">Canada</option>
251
- <option value="uk">United Kingdom</option>
252
- </select>
253
- </form>
254
- `;
255
-
256
- const component = document.getElementById('demo2');
257
- try {
258
- component.convertXmlToJsonLegacy(xmlForm).then((jsonresult) => {
259
- const backToXml = component.convertJsonToXmlLegacy(jsonresult).then((xmlresult) => {
260
- const resultDiv = document.getElementById('xml-result');
261
- const xmlContent = document.getElementById('xml-content');
262
-
263
- xmlContent.innerHTML = `
264
- <strong>Original XML:</strong>
265
- ${xmlForm}
266
- <br />
267
-
268
- <strong>Converted to JSON:</strong>
269
- ${JSON.stringify(jsonresult, null, 2)}
270
- <br />
271
- <br />
272
-
273
- <strong>Back to XML:</strong>
274
- ${xmlresult}
275
- <br />
276
-
277
- <div>To Component Result:</div>
278
- <voice-input-module
279
- id="fromxml"
280
- form-json='${JSON.stringify(jsonresult, null, 2)}'
281
- api-key="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"
282
- render-form="true"
283
- display-status="true"
284
- debug="true"
285
- context="track"
286
- classification-root-url="http://localhost:8888"
287
- >
288
- </voice-input-module>
289
-
290
- <div id='toxmlaftervoice'></div>
291
- `;
292
-
293
- resultDiv.style.display = 'block';
294
-
295
- document.getElementById('fromxml').addEventListener('formFilled', (event) => {
296
- const result = event.detail;
297
- console.log('fromxml Demo Form Filled:', result);
298
-
299
- component.convertJsonToXmlLegacy(result.data).then((finalxmlresult) => {
300
- const finalxmlContent = document.getElementById('toxmlaftervoice');
301
- console.log("finalxmlContent", finalxmlContent);
302
-
303
- finalxmlContent.innerHTML = `
304
- ${finalxmlresult}
305
- `
306
- });
307
- });
308
- });
309
- });
310
-
311
- } catch (error) {
312
- alert('Conversion error: ' + error.message);
313
- }
314
- }
315
-
316
- // Handle recording state changes
317
- document.addEventListener('recordingStateChanged', (event) => {
318
- console.log('Recording state changed:', event.detail);
319
- });
320
-
321
- //-----------------------------------
322
- // TRACK Legacy XML conversion
323
-
324
- function testTrackXmlConversion() {
325
- // const xmlForm = `
326
- // <Xforms>
327
- // <Fields>
328
- // <ID>input_10802764</ID>
329
- // <TFie_PK_ID>1865032</TFie_PK_ID>
330
- // <TVal_PK_ID>10802764</TVal_PK_ID>
331
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
332
- // <isForm>Form</isForm>
333
- // <LabelText>Poids</LabelText>
334
- // <SystemName>Weight</SystemName>
335
- // <CssStyle>cssHeader</CssStyle>
336
- // <ControlType>Header</ControlType>
337
- // <TFie_Fullpath> Poids</TFie_Fullpath>
338
- // <TVal_FK_Parent_ID>0</TVal_FK_Parent_ID>
339
- // </Fields>
340
- // <Fields>
341
- // <ID>input_10802765</ID>
342
- // <TFie_PK_ID>1865032</TFie_PK_ID>
343
- // <TVal_PK_ID>10802765</TVal_PK_ID>
344
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
345
- // <isForm>Form Item</isForm>
346
- // <LabelText>Poids</LabelText>
347
- // <SystemName>Weight</SystemName>
348
- // <CssStyle>cssHeader</CssStyle>
349
- // <ControlType>Header</ControlType>
350
- // <TFie_Fullpath> Poids Poids</TFie_Fullpath>
351
- // <TVal_FK_Parent_ID>10802764</TVal_FK_Parent_ID>
352
- // </Fields>
353
- // <Fields>
354
- // <ID>input_10802766</ID>
355
- // <TFie_PK_ID>1865033</TFie_PK_ID>
356
- // <TVal_PK_ID>10802766</TVal_PK_ID>
357
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
358
- // <Enabled>True</Enabled>
359
- // <isForm>Field</isForm>
360
- // <LabelText>Poids</LabelText>
361
- // <SystemName>Weight</SystemName>
362
- // <HelpText/>
363
- // <CssStyle>cssNormal</CssStyle>
364
- // <Value/>
365
- // <ControlType>RealPicker</ControlType>
366
- // <ValidationRequired>Required</ValidationRequired>
367
- // <ValidationMin>10</ValidationMin>
368
- // <ValidationMax>3500</ValidationMax>
369
- // <Mask/>
370
- // <TypeId>5519</TypeId>
371
- // <Unit>gramme(s)</Unit>
372
- // <TFie_Fullpath> Poids Poids</TFie_Fullpath>
373
- // <TVal_FK_Parent_ID>10802765</TVal_FK_Parent_ID>
374
- // <DefaultValue/>
375
- // </Fields>
376
- // <Fields>
377
- // <ID>input_10802767</ID>
378
- // <TFie_PK_ID>1865034</TFie_PK_ID>
379
- // <TVal_PK_ID>10802767</TVal_PK_ID>
380
- // <TFIn_PK_ID>645682</TFIn_PK_ID>
381
- // <Enabled>True</Enabled>
382
- // <isForm>Field</isForm>
383
- // <LabelText>Notes</LabelText>
384
- // <SystemName>Comment</SystemName>
385
- // <HelpText/>
386
- // <CssStyle>cssNormal</CssStyle>
387
- // <Value/>
388
- // <ControlType>Multiline</ControlType>
389
- // <ValidationRequired>Not Required</ValidationRequired>
390
- // <ValidationMin/>
391
- // <ValidationMax/>
392
- // <Mask/>
393
- // <TypeId>4231</TypeId>
394
- // <Unit/>
395
- // <TFie_Fullpath> Poids Notes</TFie_Fullpath>
396
- // <TVal_FK_Parent_ID>10802765</TVal_FK_Parent_ID>
397
- // <DefaultValue/>
398
- // </Fields>
399
- // </Xforms>`;
400
- const xmlForm = `
401
- <Xforms>
402
- <Fields>
403
- <ID>input_10804074</ID>
404
- <TFie_PK_ID>1892825</TFie_PK_ID>
405
- <TVal_PK_ID>10804074</TVal_PK_ID>
406
- <TFIn_PK_ID>645940</TFIn_PK_ID>
407
- <isForm>Form</isForm>
408
- <LabelText>Mort</LabelText>
409
- <SystemName>Death</SystemName>
410
- <CssStyle>cssHeader</CssStyle>
411
- <ControlType>Header</ControlType>
412
- <TFie_Fullpath> Mort</TFie_Fullpath>
413
- <TVal_FK_Parent_ID>0</TVal_FK_Parent_ID>
414
- </Fields>
415
- <Fields>
416
- <ID>input_10804075</ID>
417
- <TFie_PK_ID>1892825</TFie_PK_ID>
418
- <TVal_PK_ID>10804075</TVal_PK_ID>
419
- <TFIn_PK_ID>645940</TFIn_PK_ID>
420
- <isForm>Form Item</isForm>
421
- <LabelText>Mort</LabelText>
422
- <SystemName>Death</SystemName>
423
- <CssStyle>cssHeader</CssStyle>
424
- <ControlType>Header</ControlType>
425
- <TFie_Fullpath> Mort Mort</TFie_Fullpath>
426
- <TVal_FK_Parent_ID>10804074</TVal_FK_Parent_ID>
427
- </Fields>
428
- <Fields>
429
- <ID>input_10804076</ID>
430
- <TFie_PK_ID>1892826</TFie_PK_ID>
431
- <TVal_PK_ID>10804076</TVal_PK_ID>
432
- <TFIn_PK_ID>645940</TFIn_PK_ID>
433
- <Enabled>True</Enabled>
434
- <isForm>Field</isForm>
435
- <LabelText>Statut de sortie</LabelText>
436
- <SystemName>Exit status</SystemName>
437
- <HelpText></HelpText>
438
- <CssStyle>cssNormal</CssStyle>
439
- <Value>Death status>Dead</Value>
440
- <ControlType>ThesaurusPicker</ControlType>
441
- <ValidationRequired>Required</ValidationRequired>
442
- <ValidationMin></ValidationMin>
443
- <ValidationMax></ValidationMax>
444
- <Mask></Mask>
445
- <TypeId>2013199</TypeId>
446
- <Unit></Unit>
447
- <TFie_Fullpath> Mort Statut de sortie</TFie_Fullpath>
448
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
449
- <DefaultValue>Death status>Dead</DefaultValue>
450
- </Fields>
451
- <Fields>
452
- <ID>input_10804077</ID>
453
- <TFie_PK_ID>1892827</TFie_PK_ID>
454
- <TVal_PK_ID>10804077</TVal_PK_ID>
455
- <TFIn_PK_ID>645940</TFIn_PK_ID>
456
- <Enabled>True</Enabled>
457
- <isForm>Field</isForm>
458
- <LabelText>Date de sortie</LabelText>
459
- <SystemName>Exit date</SystemName>
460
- <HelpText></HelpText>
461
- <CssStyle>cssNormal</CssStyle>
462
- <Value></Value>
463
- <ControlType>DatePicker</ControlType>
464
- <ValidationRequired>Required</ValidationRequired>
465
- <ValidationMin></ValidationMin>
466
- <ValidationMax></ValidationMax>
467
- <Mask></Mask>
468
- <TypeId>4383</TypeId>
469
- <Unit></Unit>
470
- <TFie_Fullpath> Mort Date de sortie</TFie_Fullpath>
471
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
472
- <DefaultValue></DefaultValue>
473
- </Fields>
474
- <Fields>
475
- <ID>input_10804078</ID>
476
- <TFie_PK_ID>1892828</TFie_PK_ID>
477
- <TVal_PK_ID>10804078</TVal_PK_ID>
478
- <TFIn_PK_ID>645940</TFIn_PK_ID>
479
- <Enabled>False</Enabled>
480
- <isForm>Field</isForm>
481
- <LabelText>Position</LabelText>
482
- <SystemName>Location</SystemName>
483
- <HelpText></HelpText>
484
- <CssStyle>cssNormal</CssStyle>
485
- <Value></Value>
486
- <ControlType>TermPicker</ControlType>
487
- <ValidationRequired>Required</ValidationRequired>
488
- <ValidationMin></ValidationMin>
489
- <ValidationMax></ValidationMax>
490
- <Mask></Mask>
491
- <TypeId>80713</TypeId>
492
- <Unit></Unit>
493
- <TFie_Fullpath> Mort Position</TFie_Fullpath>
494
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
495
- <DefaultValue></DefaultValue>
496
- </Fields>
497
- <Fields>
498
- <ID>input_10804079</ID>
499
- <TFie_PK_ID>1892829</TFie_PK_ID>
500
- <TVal_PK_ID>10804079</TVal_PK_ID>
501
- <TFIn_PK_ID>645940</TFIn_PK_ID>
502
- <Enabled>True</Enabled>
503
- <isForm>Field</isForm>
504
- <LabelText>Type de mort</LabelText>
505
- <SystemName>Death type</SystemName>
506
- <HelpText></HelpText>
507
- <CssStyle>cssNormal</CssStyle>
508
- <Value></Value>
509
- <ControlType>ThesaurusPicker</ControlType>
510
- <ValidationRequired>Required</ValidationRequired>
511
- <ValidationMin></ValidationMin>
512
- <ValidationMax></ValidationMax>
513
- <Mask></Mask>
514
- <TypeId>167303</TypeId>
515
- <Unit></Unit>
516
- <TFie_Fullpath> Mort Type de mort</TFie_Fullpath>
517
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
518
- <DefaultValue></DefaultValue>
519
- </Fields>
520
- <Fields>
521
- <ID>input_10804080</ID>
522
- <TFie_PK_ID>1892830</TFie_PK_ID>
523
- <TVal_PK_ID>10804080</TVal_PK_ID>
524
- <TFIn_PK_ID>645940</TFIn_PK_ID>
525
- <Enabled>True</Enabled>
526
- <isForm>Field</isForm>
527
- <LabelText>Poids</LabelText>
528
- <SystemName>Weight</SystemName>
529
- <HelpText></HelpText>
530
- <CssStyle>cssNormal</CssStyle>
531
- <Value></Value>
532
- <ControlType>RealPicker</ControlType>
533
- <ValidationRequired>Not Required</ValidationRequired>
534
- <ValidationMin>10</ValidationMin>
535
- <ValidationMax>3500</ValidationMax>
536
- <Mask></Mask>
537
- <TypeId>5519</TypeId>
538
- <Unit>gramme(s)</Unit>
539
- <TFie_Fullpath> Mort Poids</TFie_Fullpath>
540
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
541
- <DefaultValue></DefaultValue>
542
- </Fields>
543
- <Fields>
544
- <ID>input_10804081</ID>
545
- <TFie_PK_ID>1892831</TFie_PK_ID>
546
- <TVal_PK_ID>10804081</TVal_PK_ID>
547
- <TFIn_PK_ID>645940</TFIn_PK_ID>
548
- <Enabled>False</Enabled>
549
- <isForm>Field</isForm>
550
- <LabelText>Sentinelle</LabelText>
551
- <SystemName>Sentinel</SystemName>
552
- <HelpText></HelpText>
553
- <CssStyle>cssNormal</CssStyle>
554
- <Value>Yes/No>No</Value>
555
- <ControlType>ThesaurusPicker</ControlType>
556
- <ValidationRequired>Required</ValidationRequired>
557
- <ValidationMin></ValidationMin>
558
- <ValidationMax></ValidationMax>
559
- <Mask></Mask>
560
- <TypeId>167278</TypeId>
561
- <Unit></Unit>
562
- <TFie_Fullpath> Mort Sentinelle</TFie_Fullpath>
563
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
564
- <DefaultValue>Yes/No>No</DefaultValue>
565
- </Fields>
566
- <Fields>
567
- <ID>input_10804082</ID>
568
- <TFie_PK_ID>1892832</TFie_PK_ID>
569
- <TVal_PK_ID>10804082</TVal_PK_ID>
570
- <TFIn_PK_ID>645940</TFIn_PK_ID>
571
- <Enabled>True</Enabled>
572
- <isForm>Field</isForm>
573
- <LabelText>Notes</LabelText>
574
- <SystemName>Comment</SystemName>
575
- <HelpText></HelpText>
576
- <CssStyle>cssNormal</CssStyle>
577
- <Value></Value>
578
- <ControlType>Multiline</ControlType>
579
- <ValidationRequired>Not Required</ValidationRequired>
580
- <ValidationMin></ValidationMin>
581
- <ValidationMax></ValidationMax>
582
- <Mask></Mask>
583
- <TypeId>4231</TypeId>
584
- <Unit></Unit>
585
- <TFie_Fullpath> Mort Notes</TFie_Fullpath>
586
- <TVal_FK_Parent_ID>10804075</TVal_FK_Parent_ID>
587
- <DefaultValue></DefaultValue>
588
- </Fields>
589
- </Xforms>
590
- `;
591
-
592
- const component = document.getElementById('demo2');
593
- try {
594
- component.convertXmlToJson(xmlForm).then((jsonresult) => {
595
- const jsonresultsaved = JSON.parse(JSON.stringify(jsonresult));
596
- const jsonresultSTR = JSON.stringify(jsonresult, null, 2).replace("'", "");
597
- const backToXml = component.convertJsonToXml(jsonresult).then((xmlresult) => {
598
- const resultDiv = document.getElementById('track-xml-result');
599
- const xmlContent = document.getElementById('track-xml-content');
600
-
601
- xmlContent.innerHTML = `
602
- <strong>Original XML:</strong>
603
- <br />
604
- <textarea>
605
- ${xmlForm}
606
- </textarea>
607
- <br />
608
-
609
- <strong>Converted to JSON:</strong>
610
- ${jsonresultSTR}
611
- <br />
612
- <br />
613
-
614
- <strong>Back to XML:</strong>
615
- <br />
616
- <textarea>
617
- ${xmlresult}
618
- </textarea>
619
- <br />
620
-
621
- <div>To Component Result:</div>
622
- <voice-input-module
623
- id="fromxml"
624
- form-json='${jsonresultSTR}'
625
- api-key="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"
626
- render-form="true"
627
- display-status="true"
628
- debug="true"
629
- context="track"
630
- language="fr"
631
- classification-root-url="http://localhost:8888"
632
- >
633
- </voice-input-module>
634
- <br/><br/>
635
- <textarea id='toxmlaftervoice'></textarea>
636
- `;
637
-
638
- resultDiv.style.display = 'block';
639
-
640
- document.getElementById('fromxml').addEventListener('formFilled', (event) => {
641
- const result = event.detail;
642
- console.log('fromxml Demo Form Filled:', result);
643
-
644
- component.convertJsonToXml(result.data).then((finalxmlresult) => {
645
- const finalxmlContent = document.getElementById('toxmlaftervoice');
646
- console.log("finalxmlContent", finalxmlContent);
647
-
648
- finalxmlContent.innerHTML = `
649
- ${finalxmlresult}
650
- `
651
- });
652
- });
653
- });
654
- });
655
-
656
- } catch (error) {
657
- alert('Conversion error: ' + error.message);
658
- }
659
- }
660
-
661
- </script>
662
- </body>
663
- </html>