@f1studio/form-spec 5.0.0-alpha.106 → 5.0.0-alpha.108

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 (493) hide show
  1. package/FormSpec.FS/Components/HelloComponent.d.ts.map +1 -0
  2. package/FormSpec.FS/Designer.d.ts.map +1 -0
  3. package/FormSpec.FS/FormSpec.d.ts.map +1 -0
  4. package/FormSpec.FS/FormSpecHelpers.d.ts.map +1 -0
  5. package/FormSpec.FS/FormSpecValues.d.ts.map +1 -0
  6. package/FormSpec.FS/Helpers.d.ts.map +1 -0
  7. package/FormSpec.FS/Interfaces.d.ts.map +1 -0
  8. package/{Interop → FormSpec.FS/Interop}/FormSpec.Api.Helpers.d.ts +8 -0
  9. package/FormSpec.FS/Interop/FormSpec.Api.Helpers.d.ts.map +1 -0
  10. package/FormSpec.FS/Interop/FormSpec.Api.Option.d.ts.map +1 -0
  11. package/FormSpec.FS/Interop/FormSpec.Values.Api.Option.d.ts.map +1 -0
  12. package/FormSpec.FS/Logging/LogTypes.d.ts.map +1 -0
  13. package/FormSpec.FS/Migrator.d.ts.map +1 -0
  14. package/FormSpec.FS/PathwayDataExtractor.d.ts.map +1 -0
  15. package/FormSpec.FS/PathwayExecutor.d.ts.map +1 -0
  16. package/FormSpec.FS/PathwayValidator.d.ts.map +1 -0
  17. package/FormSpec.FS/PluginInterface.d.ts.map +1 -0
  18. package/FormSpec.FS/Prelude.d.ts.map +1 -0
  19. package/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.d.ts.map +1 -0
  20. package/FormSpec.FS/Renderers/MermaidRenderer.d.ts.map +1 -0
  21. package/FormSpec.FS/Renderers/PathwayRenderers.d.ts.map +1 -0
  22. package/FormSpec.TS/FormSpec.FS/Components/HelloComponent.js.map +1 -0
  23. package/FormSpec.TS/FormSpec.FS/Components/HelloComponent.ts.map +1 -0
  24. package/FormSpec.TS/FormSpec.FS/Designer.js.map +1 -0
  25. package/FormSpec.TS/FormSpec.FS/Designer.ts.map +1 -0
  26. package/FormSpec.TS/{FormSpec.js.map → FormSpec.FS/FormSpec.js.map} +1 -1
  27. package/FormSpec.TS/{FormSpec.ts.map → FormSpec.FS/FormSpec.ts.map} +1 -1
  28. package/FormSpec.TS/{FormSpecHelpers.js → FormSpec.FS/FormSpecHelpers.js} +1 -1
  29. package/FormSpec.TS/FormSpec.FS/FormSpecHelpers.js.map +1 -0
  30. package/FormSpec.TS/FormSpec.FS/FormSpecHelpers.ts.map +1 -0
  31. package/FormSpec.TS/FormSpec.FS/FormSpecValues.js.map +1 -0
  32. package/FormSpec.TS/FormSpec.FS/FormSpecValues.ts.map +1 -0
  33. package/FormSpec.TS/FormSpec.FS/Helpers.js.map +1 -0
  34. package/FormSpec.TS/FormSpec.FS/Helpers.ts.map +1 -0
  35. package/FormSpec.TS/FormSpec.FS/Interfaces.js.map +1 -0
  36. package/FormSpec.TS/FormSpec.FS/Interfaces.ts.map +1 -0
  37. package/FormSpec.TS/{Interop → FormSpec.FS/Interop}/FormSpec.Api.Helpers.js +15 -2
  38. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Helpers.js.map +1 -0
  39. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Helpers.ts.map +1 -0
  40. package/FormSpec.TS/{Interop → FormSpec.FS/Interop}/FormSpec.Api.Option.js +2 -2
  41. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Option.js.map +1 -0
  42. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Api.Option.ts.map +1 -0
  43. package/FormSpec.TS/{Interop → FormSpec.FS/Interop}/FormSpec.Values.Api.Option.js +2 -2
  44. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Values.Api.Option.js.map +1 -0
  45. package/FormSpec.TS/FormSpec.FS/Interop/FormSpec.Values.Api.Option.ts.map +1 -0
  46. package/FormSpec.TS/FormSpec.FS/Logging/LogTypes.js.map +1 -0
  47. package/FormSpec.TS/FormSpec.FS/Logging/LogTypes.ts.map +1 -0
  48. package/FormSpec.TS/{Migrator.js → FormSpec.FS/Migrator.js} +1 -1
  49. package/FormSpec.TS/FormSpec.FS/Migrator.js.map +1 -0
  50. package/FormSpec.TS/FormSpec.FS/Migrator.ts.map +1 -0
  51. package/FormSpec.TS/FormSpec.FS/PathwayDataExtractor.js.map +1 -0
  52. package/FormSpec.TS/FormSpec.FS/PathwayDataExtractor.ts.map +1 -0
  53. package/FormSpec.TS/{PathwayExecutor.js → FormSpec.FS/PathwayExecutor.js} +1 -1
  54. package/FormSpec.TS/FormSpec.FS/PathwayExecutor.js.map +1 -0
  55. package/FormSpec.TS/FormSpec.FS/PathwayExecutor.ts.map +1 -0
  56. package/FormSpec.TS/FormSpec.FS/PathwayValidator.js.map +1 -0
  57. package/FormSpec.TS/FormSpec.FS/PathwayValidator.ts.map +1 -0
  58. package/FormSpec.TS/FormSpec.FS/PluginInterface.js.map +1 -0
  59. package/FormSpec.TS/FormSpec.FS/PluginInterface.ts.map +1 -0
  60. package/FormSpec.TS/FormSpec.FS/Prelude.js.map +1 -0
  61. package/FormSpec.TS/FormSpec.FS/Prelude.ts.map +1 -0
  62. package/FormSpec.TS/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.js.map +1 -0
  63. package/FormSpec.TS/FormSpec.FS/Renderers/FormSpecMarkdownRenderer.ts.map +1 -0
  64. package/FormSpec.TS/FormSpec.FS/Renderers/MermaidRenderer.js.map +1 -0
  65. package/FormSpec.TS/FormSpec.FS/Renderers/MermaidRenderer.ts.map +1 -0
  66. package/FormSpec.TS/FormSpec.FS/Renderers/PathwayRenderers.js.map +1 -0
  67. package/FormSpec.TS/FormSpec.FS/Renderers/PathwayRenderers.ts.map +1 -0
  68. package/FormSpec.TS/PathwayExecutor.withPlugins.js +28 -0
  69. package/FormSpec.TS/PathwayExecutor.withPlugins.js.map +1 -0
  70. package/FormSpec.TS/PluginRegistration.js +18 -0
  71. package/FormSpec.TS/PluginRegistration.js.map +1 -0
  72. package/FormSpec.TS/PluginRegistration.ts.map +1 -0
  73. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/CheckboxField.fs +47 -0
  74. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/CheckboxField.fs.js +93 -0
  75. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/CheckboxField.fs.js.map +1 -0
  76. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/CheckboxField.fs.ts.map +1 -0
  77. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/ColorField.fs +49 -0
  78. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/ColorField.fs.js +127 -0
  79. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/ColorField.fs.js.map +1 -0
  80. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/ColorField.fs.ts.map +1 -0
  81. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateField.fs +52 -0
  82. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateField.fs.js +105 -0
  83. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateField.fs.js.map +1 -0
  84. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateField.fs.ts.map +1 -0
  85. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateTimeLocalField.fs +54 -0
  86. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateTimeLocalField.fs.js +105 -0
  87. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateTimeLocalField.fs.js.map +1 -0
  88. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/DateTimeLocalField.fs.ts.map +1 -0
  89. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/EmailField.fs +48 -0
  90. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/EmailField.fs.js +83 -0
  91. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/EmailField.fs.js.map +1 -0
  92. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/EmailField.fs.ts.map +1 -0
  93. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Fable.Form.Simple.Bulma.fableproj +53 -0
  94. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FileField.fs +132 -0
  95. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FileField.fs.js +276 -0
  96. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FileField.fs.js.map +1 -0
  97. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FileField.fs.ts.map +1 -0
  98. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Form.fs +537 -0
  99. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Form.fs.js +263 -0
  100. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Form.fs.js.map +1 -0
  101. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Form.fs.ts.map +1 -0
  102. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FormList.fs +361 -0
  103. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FormList.fs.js +576 -0
  104. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FormList.fs.js.map +1 -0
  105. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/FormList.fs.ts.map +1 -0
  106. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Group.fs +52 -0
  107. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Group.fs.js +73 -0
  108. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Group.fs.js.map +1 -0
  109. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Group.fs.ts.map +1 -0
  110. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs +246 -0
  111. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.js +226 -0
  112. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.js.map +1 -0
  113. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.ts.map +1 -0
  114. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/InputField.fs +52 -0
  115. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/InputField.fs.js +116 -0
  116. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/InputField.fs.js.map +1 -0
  117. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/InputField.fs.ts.map +1 -0
  118. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/NumberField.fs +56 -0
  119. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/NumberField.fs.js +95 -0
  120. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/NumberField.fs.js.map +1 -0
  121. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/NumberField.fs.ts.map +1 -0
  122. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/PasswordField.fs +46 -0
  123. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/PasswordField.fs.js +77 -0
  124. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/PasswordField.fs.js.map +1 -0
  125. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/PasswordField.fs.ts.map +1 -0
  126. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/RadioField.fs +51 -0
  127. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/RadioField.fs.js +103 -0
  128. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/RadioField.fs.js.map +1 -0
  129. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/RadioField.fs.ts.map +1 -0
  130. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SearchField.fs +49 -0
  131. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SearchField.fs.js +87 -0
  132. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SearchField.fs.js.map +1 -0
  133. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SearchField.fs.ts.map +1 -0
  134. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Section.fs +60 -0
  135. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Section.fs.js +69 -0
  136. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Section.fs.js.map +1 -0
  137. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Section.fs.ts.map +1 -0
  138. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SelectField.fs +79 -0
  139. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SelectField.fs.js +134 -0
  140. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SelectField.fs.js.map +1 -0
  141. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/SelectField.fs.ts.map +1 -0
  142. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TelField.fs +44 -0
  143. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TelField.fs.js +77 -0
  144. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TelField.fs.js.map +1 -0
  145. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TelField.fs.ts.map +1 -0
  146. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextField.fs +49 -0
  147. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextField.fs.js +87 -0
  148. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextField.fs.js.map +1 -0
  149. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextField.fs.ts.map +1 -0
  150. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextareaField.fs +59 -0
  151. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextareaField.fs.js +87 -0
  152. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextareaField.fs.js.map +1 -0
  153. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TextareaField.fs.ts.map +1 -0
  154. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TimeField.fs +44 -0
  155. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TimeField.fs.js +77 -0
  156. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TimeField.fs.js.map +1 -0
  157. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/TimeField.fs.ts.map +1 -0
  158. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs +143 -0
  159. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.js +154 -0
  160. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.js.map +1 -0
  161. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.ts.map +1 -0
  162. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/CheckboxField.fs +36 -0
  163. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/CheckboxField.fs.js +76 -0
  164. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/CheckboxField.fs.js.map +1 -0
  165. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/CheckboxField.fs.ts.map +1 -0
  166. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/ColorField.fs +49 -0
  167. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/ColorField.fs.js +88 -0
  168. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/ColorField.fs.js.map +1 -0
  169. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/ColorField.fs.ts.map +1 -0
  170. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateField.fs +67 -0
  171. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateField.fs.js +121 -0
  172. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateField.fs.js.map +1 -0
  173. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateField.fs.ts.map +1 -0
  174. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateTimeLocalField.fs +70 -0
  175. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateTimeLocalField.fs.js +121 -0
  176. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateTimeLocalField.fs.js.map +1 -0
  177. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/DateTimeLocalField.fs.ts.map +1 -0
  178. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/EmailField.fs +76 -0
  179. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/EmailField.fs.js +91 -0
  180. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/EmailField.fs.js.map +1 -0
  181. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/EmailField.fs.ts.map +1 -0
  182. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/Fable.Form.Simple.Fields.Html.fableproj +45 -0
  183. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/NumberField.fs +105 -0
  184. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/NumberField.fs.js +161 -0
  185. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/NumberField.fs.js.map +1 -0
  186. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/NumberField.fs.ts.map +1 -0
  187. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/PasswordField.fs +66 -0
  188. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/PasswordField.fs.js +110 -0
  189. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/PasswordField.fs.js.map +1 -0
  190. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/PasswordField.fs.ts.map +1 -0
  191. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RadioField.fs +72 -0
  192. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RadioField.fs.js +108 -0
  193. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RadioField.fs.js.map +1 -0
  194. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RadioField.fs.ts.map +1 -0
  195. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RangeField.fs +102 -0
  196. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RangeField.fs.js +157 -0
  197. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RangeField.fs.js.map +1 -0
  198. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/RangeField.fs.ts.map +1 -0
  199. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SearchField.fs +83 -0
  200. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SearchField.fs.js +164 -0
  201. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SearchField.fs.js.map +1 -0
  202. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SearchField.fs.ts.map +1 -0
  203. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SelectField.fs +83 -0
  204. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SelectField.fs.js +119 -0
  205. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SelectField.fs.js.map +1 -0
  206. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/SelectField.fs.ts.map +1 -0
  207. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TelField.fs +63 -0
  208. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TelField.fs.js +110 -0
  209. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TelField.fs.js.map +1 -0
  210. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TelField.fs.ts.map +1 -0
  211. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextField.fs +83 -0
  212. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextField.fs.js +164 -0
  213. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextField.fs.js.map +1 -0
  214. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextField.fs.ts.map +1 -0
  215. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextareaField.fs +92 -0
  216. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextareaField.fs.js +149 -0
  217. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextareaField.fs.js.map +1 -0
  218. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TextareaField.fs.ts.map +1 -0
  219. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TimeField.fs +108 -0
  220. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TimeField.fs.js +161 -0
  221. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TimeField.fs.js.map +1 -0
  222. package/FormSpec.TS/fable_modules/Fable.Form.Simple.Fields.Html.1.0.1/TimeField.fs.ts.map +1 -0
  223. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Colors.fs.js.map +1 -1
  224. package/FormSpec.TS/fable_modules/Feliz.2.8.0/DateParsing.fs +52 -0
  225. package/FormSpec.TS/fable_modules/{Feliz.2.7.0/Interop.fs.js → Feliz.2.8.0/DateParsing.fs.js} +27 -37
  226. package/FormSpec.TS/fable_modules/Feliz.2.8.0/DateParsing.fs.js.map +1 -0
  227. package/FormSpec.TS/fable_modules/Feliz.2.8.0/DateParsing.fs.ts.map +1 -0
  228. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Feliz.fableproj +14 -3
  229. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Helpers.fs +11 -0
  230. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Helpers.fs.js +25 -0
  231. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Helpers.fs.js.map +1 -0
  232. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Helpers.fs.ts.map +1 -0
  233. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Internal.fs +176 -0
  234. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Internal.fs.js +179 -0
  235. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Internal.fs.js.map +1 -0
  236. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Internal.fs.ts.map +1 -0
  237. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Interop.fs +29 -0
  238. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Interop.fs.js +19 -0
  239. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Interop.fs.js.map +1 -0
  240. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Key.fs.js.map +1 -1
  241. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Length.fs +55 -1
  242. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Properties.fs +5 -0
  243. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Properties.fs.js.map +1 -1
  244. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/React.fs +77 -239
  245. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactDOM.fs.js.map +1 -1
  246. package/FormSpec.TS/fable_modules/Feliz.2.8.0/ReactInterop.fs +20 -0
  247. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactInterop.js.map +1 -1
  248. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactTypes.fs +3 -2
  249. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactTypes.fs.js.map +1 -1
  250. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/StyleTypes.fs +4 -0
  251. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/StyleTypes.fs.js.map +1 -1
  252. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Styles.fs +646 -8
  253. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Svg.fs.js.map +1 -1
  254. package/FormSpec.TS/fable_modules/Feliz.2.8.0/TransitionTimingFunction.fs +62 -0
  255. package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Types.fs.js.map +1 -1
  256. package/FormSpec.TS/fable_modules/Feliz.2.8.0/Types.fs.ts.map +1 -0
  257. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Bulma.fs +990 -0
  258. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs +179 -0
  259. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.js +51 -0
  260. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.js.map +1 -0
  261. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.ts.map +1 -0
  262. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Feliz.Bulma.fableproj +32 -0
  263. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Modifiers.fs +1986 -0
  264. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Modifiers.fs.js +27 -0
  265. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Modifiers.fs.js.map +1 -0
  266. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Modifiers.fs.ts.map +1 -0
  267. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Operators.fs +7 -0
  268. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Operators.fs.js +31 -0
  269. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Operators.fs.js.map +1 -0
  270. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/Operators.fs.ts.map +1 -0
  271. package/FormSpec.TS/fable_modules/Feliz.Bulma.3.0.0/PropertyBuilders.fs +8 -0
  272. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Exports.fs +14 -0
  273. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Glutinum.Feliz.ReactSignaturePadWrapper.fableproj +18 -0
  274. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Interop.fs +6 -0
  275. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/ReactSignaturePadWrapper.fs +32 -0
  276. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs +3 -0
  277. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.js +7 -0
  278. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.js.map +1 -0
  279. package/FormSpec.TS/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.ts.map +1 -0
  280. package/FormSpec.TS/fable_modules/Thoth.Json.10.4.1/Encode.fs.js.map +1 -1
  281. package/FormSpec.TS/fable_modules/Thoth.Json.10.4.1/Encode.fs.ts.map +1 -1
  282. package/FormSpec.TS/fable_modules/project_cracked.json +1 -1
  283. package/FormSpec.TS/plugins/bmi/src/BMIField.js +823 -0
  284. package/FormSpec.TS/plugins/bmi/src/BMIField.js.map +1 -0
  285. package/FormSpec.TS/plugins/bmi/src/BMIField.ts.map +1 -0
  286. package/FormSpec.TS/plugins/likert/src/LikertField.js +638 -0
  287. package/FormSpec.TS/plugins/likert/src/LikertField.js.map +1 -0
  288. package/FormSpec.TS/plugins/likert/src/LikertField.ts.map +1 -0
  289. package/FormSpec.TS/plugins/signature/src/SignatureField.js +294 -0
  290. package/FormSpec.TS/plugins/signature/src/SignatureField.js.map +1 -0
  291. package/FormSpec.TS/plugins/signature/src/SignatureField.ts.map +1 -0
  292. package/FormSpec.TS/plugins/vitals/src/VitalsField.js +1150 -0
  293. package/FormSpec.TS/plugins/vitals/src/VitalsField.js.map +1 -0
  294. package/FormSpec.TS/plugins/vitals/src/VitalsField.ts.map +1 -0
  295. package/PathwayExecutor.withPlugins.d.ts +11 -0
  296. package/PathwayExecutor.withPlugins.d.ts.map +1 -0
  297. package/PluginRegistration.d.ts +2 -0
  298. package/PluginRegistration.d.ts.map +1 -0
  299. package/README.md +7 -7
  300. package/fable_modules/Fable.Form.3.0.0/Base.fs.d.ts +147 -0
  301. package/fable_modules/Fable.Form.3.0.0/Base.fs.d.ts.map +1 -0
  302. package/fable_modules/Fable.Form.3.0.0/Error.fs.d.ts +19 -0
  303. package/fable_modules/Fable.Form.3.0.0/Error.fs.d.ts.map +1 -0
  304. package/fable_modules/Fable.Form.3.0.0/Extensions.fs.d.ts +14 -0
  305. package/fable_modules/Fable.Form.3.0.0/Extensions.fs.d.ts.map +1 -0
  306. package/fable_modules/Fable.Form.3.0.0/Field.fs.d.ts +14 -0
  307. package/fable_modules/Fable.Form.3.0.0/Field.fs.d.ts.map +1 -0
  308. package/fable_modules/Fable.Form.Simple.5.0.1/Form.fs.d.ts +113 -0
  309. package/fable_modules/Fable.Form.Simple.5.0.1/Form.fs.d.ts.map +1 -0
  310. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.d.ts +17 -0
  311. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.d.ts.map +1 -0
  312. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.d.ts +41 -0
  313. package/fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.d.ts.map +1 -0
  314. package/fable_modules/Fable.React.Types.18.3.0/Fable.React.fs.d.ts +73 -0
  315. package/fable_modules/Fable.React.Types.18.3.0/Fable.React.fs.d.ts.map +1 -0
  316. package/fable_modules/Feliz.2.8.0/Colors.fs.d.ts +9 -0
  317. package/fable_modules/Feliz.2.8.0/Colors.fs.d.ts.map +1 -0
  318. package/fable_modules/Feliz.2.8.0/Interop.fs.d.ts +3 -0
  319. package/fable_modules/Feliz.2.8.0/Interop.fs.d.ts.map +1 -0
  320. package/fable_modules/Feliz.2.8.0/ReactInterop.d.ts +6 -0
  321. package/fable_modules/Feliz.2.8.0/ReactInterop.d.ts.map +1 -0
  322. package/fable_modules/Feliz.2.8.0/ReactTypes.fs.d.ts +36 -0
  323. package/fable_modules/Feliz.2.8.0/ReactTypes.fs.d.ts.map +1 -0
  324. package/fable_modules/Feliz.2.8.0/Types.fs.d.ts +7 -0
  325. package/fable_modules/Feliz.2.8.0/Types.fs.d.ts.map +1 -0
  326. package/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.d.ts +5 -0
  327. package/fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.d.ts.map +1 -0
  328. package/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.d.ts +3 -0
  329. package/fable_modules/Glutinum.Feliz.ReactSignaturePadWrapper.1.0.2/Types.fs.d.ts.map +1 -0
  330. package/package.json +15 -15
  331. package/plugins/bmi/src/BMIField.d.ts +52 -0
  332. package/plugins/bmi/src/BMIField.d.ts.map +1 -0
  333. package/plugins/likert/src/LikertField.d.ts +60 -0
  334. package/plugins/likert/src/LikertField.d.ts.map +1 -0
  335. package/plugins/signature/src/SignatureField.d.ts +34 -0
  336. package/plugins/signature/src/SignatureField.d.ts.map +1 -0
  337. package/plugins/vitals/src/VitalsField.d.ts +82 -0
  338. package/plugins/vitals/src/VitalsField.d.ts.map +1 -0
  339. package/src/{FormSpecHelpers.ts → FormSpec.FS/FormSpecHelpers.ts} +1 -1
  340. package/src/{Interop → FormSpec.FS/Interop}/FormSpec.Api.Helpers.ts +21 -4
  341. package/src/{Interop → FormSpec.FS/Interop}/FormSpec.Api.Option.ts +2 -2
  342. package/src/{Interop → FormSpec.FS/Interop}/FormSpec.Values.Api.Option.ts +2 -2
  343. package/src/{Migrator.ts → FormSpec.FS/Migrator.ts} +1 -1
  344. package/src/{PathwayExecutor.ts → FormSpec.FS/PathwayExecutor.ts} +1 -1
  345. package/src/PathwayExecutor.withPlugins.ts +10 -0
  346. package/src/PluginRegistration.ts +16 -0
  347. package/src/plugins/bmi/src/BMIField.ts +494 -0
  348. package/src/plugins/likert/src/LikertField.ts +420 -0
  349. package/src/plugins/signature/src/SignatureField.ts +185 -0
  350. package/src/plugins/vitals/src/VitalsField.ts +665 -0
  351. package/Components/HelloComponent.d.ts.map +0 -1
  352. package/Designer.d.ts.map +0 -1
  353. package/FormSpec.TS/Components/HelloComponent.js.map +0 -1
  354. package/FormSpec.TS/Components/HelloComponent.ts.map +0 -1
  355. package/FormSpec.TS/Designer.js.map +0 -1
  356. package/FormSpec.TS/Designer.ts.map +0 -1
  357. package/FormSpec.TS/FormSpecHelpers.js.map +0 -1
  358. package/FormSpec.TS/FormSpecHelpers.ts.map +0 -1
  359. package/FormSpec.TS/FormSpecValues.js.map +0 -1
  360. package/FormSpec.TS/FormSpecValues.ts.map +0 -1
  361. package/FormSpec.TS/Helpers.js.map +0 -1
  362. package/FormSpec.TS/Helpers.ts.map +0 -1
  363. package/FormSpec.TS/Interfaces.js.map +0 -1
  364. package/FormSpec.TS/Interfaces.ts.map +0 -1
  365. package/FormSpec.TS/Interop/FormSpec.Api.Helpers.js.map +0 -1
  366. package/FormSpec.TS/Interop/FormSpec.Api.Helpers.ts.map +0 -1
  367. package/FormSpec.TS/Interop/FormSpec.Api.Option.js.map +0 -1
  368. package/FormSpec.TS/Interop/FormSpec.Api.Option.ts.map +0 -1
  369. package/FormSpec.TS/Interop/FormSpec.Values.Api.Option.js.map +0 -1
  370. package/FormSpec.TS/Interop/FormSpec.Values.Api.Option.ts.map +0 -1
  371. package/FormSpec.TS/Logging/LogTypes.js.map +0 -1
  372. package/FormSpec.TS/Logging/LogTypes.ts.map +0 -1
  373. package/FormSpec.TS/Migrator.js.map +0 -1
  374. package/FormSpec.TS/Migrator.ts.map +0 -1
  375. package/FormSpec.TS/PathwayDataExtractor.js.map +0 -1
  376. package/FormSpec.TS/PathwayDataExtractor.ts.map +0 -1
  377. package/FormSpec.TS/PathwayExecutor.js.map +0 -1
  378. package/FormSpec.TS/PathwayExecutor.ts.map +0 -1
  379. package/FormSpec.TS/PathwayValidator.js.map +0 -1
  380. package/FormSpec.TS/PathwayValidator.ts.map +0 -1
  381. package/FormSpec.TS/PluginInterface.js.map +0 -1
  382. package/FormSpec.TS/PluginInterface.ts.map +0 -1
  383. package/FormSpec.TS/Prelude.js.map +0 -1
  384. package/FormSpec.TS/Prelude.ts.map +0 -1
  385. package/FormSpec.TS/Renderers/FormSpecMarkdownRenderer.js.map +0 -1
  386. package/FormSpec.TS/Renderers/FormSpecMarkdownRenderer.ts.map +0 -1
  387. package/FormSpec.TS/Renderers/MermaidRenderer.js.map +0 -1
  388. package/FormSpec.TS/Renderers/MermaidRenderer.ts.map +0 -1
  389. package/FormSpec.TS/Renderers/PathwayRenderers.js.map +0 -1
  390. package/FormSpec.TS/Renderers/PathwayRenderers.ts.map +0 -1
  391. package/FormSpec.TS/fable_modules/Feliz.2.7.0/Interop.fs +0 -83
  392. package/FormSpec.TS/fable_modules/Feliz.2.7.0/Interop.fs.js.map +0 -1
  393. package/FormSpec.TS/fable_modules/Feliz.2.7.0/Interop.fs.ts.map +0 -1
  394. package/FormSpec.TS/fable_modules/Feliz.2.7.0/React.fs.js +0 -561
  395. package/FormSpec.TS/fable_modules/Feliz.2.7.0/React.fs.js.map +0 -1
  396. package/FormSpec.TS/fable_modules/Feliz.2.7.0/React.fs.ts.map +0 -1
  397. package/FormSpec.d.ts.map +0 -1
  398. package/FormSpecHelpers.d.ts.map +0 -1
  399. package/FormSpecValues.d.ts.map +0 -1
  400. package/Helpers.d.ts.map +0 -1
  401. package/Interfaces.d.ts.map +0 -1
  402. package/Interop/FormSpec.Api.Helpers.d.ts.map +0 -1
  403. package/Interop/FormSpec.Api.Option.d.ts.map +0 -1
  404. package/Interop/FormSpec.Values.Api.Option.d.ts.map +0 -1
  405. package/Logging/LogTypes.d.ts.map +0 -1
  406. package/Migrator.d.ts.map +0 -1
  407. package/PathwayDataExtractor.d.ts.map +0 -1
  408. package/PathwayExecutor.d.ts.map +0 -1
  409. package/PathwayValidator.d.ts.map +0 -1
  410. package/PluginInterface.d.ts.map +0 -1
  411. package/Prelude.d.ts.map +0 -1
  412. package/Renderers/FormSpecMarkdownRenderer.d.ts.map +0 -1
  413. package/Renderers/MermaidRenderer.d.ts.map +0 -1
  414. package/Renderers/PathwayRenderers.d.ts.map +0 -1
  415. /package/{Components → FormSpec.FS/Components}/HelloComponent.d.ts +0 -0
  416. /package/{Designer.d.ts → FormSpec.FS/Designer.d.ts} +0 -0
  417. /package/{FormSpec.d.ts → FormSpec.FS/FormSpec.d.ts} +0 -0
  418. /package/{FormSpecHelpers.d.ts → FormSpec.FS/FormSpecHelpers.d.ts} +0 -0
  419. /package/{FormSpecValues.d.ts → FormSpec.FS/FormSpecValues.d.ts} +0 -0
  420. /package/{Helpers.d.ts → FormSpec.FS/Helpers.d.ts} +0 -0
  421. /package/{Interfaces.d.ts → FormSpec.FS/Interfaces.d.ts} +0 -0
  422. /package/{Interop → FormSpec.FS/Interop}/FormSpec.Api.Option.d.ts +0 -0
  423. /package/{Interop → FormSpec.FS/Interop}/FormSpec.Values.Api.Option.d.ts +0 -0
  424. /package/{Logging → FormSpec.FS/Logging}/LogTypes.d.ts +0 -0
  425. /package/{Migrator.d.ts → FormSpec.FS/Migrator.d.ts} +0 -0
  426. /package/{PathwayDataExtractor.d.ts → FormSpec.FS/PathwayDataExtractor.d.ts} +0 -0
  427. /package/{PathwayExecutor.d.ts → FormSpec.FS/PathwayExecutor.d.ts} +0 -0
  428. /package/{PathwayValidator.d.ts → FormSpec.FS/PathwayValidator.d.ts} +0 -0
  429. /package/{PluginInterface.d.ts → FormSpec.FS/PluginInterface.d.ts} +0 -0
  430. /package/{Prelude.d.ts → FormSpec.FS/Prelude.d.ts} +0 -0
  431. /package/{Renderers → FormSpec.FS/Renderers}/FormSpecMarkdownRenderer.d.ts +0 -0
  432. /package/{Renderers → FormSpec.FS/Renderers}/MermaidRenderer.d.ts +0 -0
  433. /package/{Renderers → FormSpec.FS/Renderers}/PathwayRenderers.d.ts +0 -0
  434. /package/FormSpec.TS/{Components → FormSpec.FS/Components}/HelloComponent.js +0 -0
  435. /package/FormSpec.TS/{Designer.js → FormSpec.FS/Designer.js} +0 -0
  436. /package/FormSpec.TS/{FormSpec.js → FormSpec.FS/FormSpec.js} +0 -0
  437. /package/FormSpec.TS/{FormSpecValues.js → FormSpec.FS/FormSpecValues.js} +0 -0
  438. /package/FormSpec.TS/{Helpers.js → FormSpec.FS/Helpers.js} +0 -0
  439. /package/FormSpec.TS/{Interfaces.js → FormSpec.FS/Interfaces.js} +0 -0
  440. /package/FormSpec.TS/{Logging → FormSpec.FS/Logging}/LogTypes.js +0 -0
  441. /package/FormSpec.TS/{PathwayDataExtractor.js → FormSpec.FS/PathwayDataExtractor.js} +0 -0
  442. /package/FormSpec.TS/{PathwayValidator.js → FormSpec.FS/PathwayValidator.js} +0 -0
  443. /package/FormSpec.TS/{PluginInterface.js → FormSpec.FS/PluginInterface.js} +0 -0
  444. /package/FormSpec.TS/{Prelude.js → FormSpec.FS/Prelude.js} +0 -0
  445. /package/FormSpec.TS/{Renderers → FormSpec.FS/Renderers}/FormSpecMarkdownRenderer.js +0 -0
  446. /package/FormSpec.TS/{Renderers → FormSpec.FS/Renderers}/MermaidRenderer.js +0 -0
  447. /package/FormSpec.TS/{Renderers → FormSpec.FS/Renderers}/PathwayRenderers.js +0 -0
  448. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/BorderStyle.fs +0 -0
  449. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Colors.fs +0 -0
  450. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Colors.fs.js +0 -0
  451. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Colors.fs.ts.map +0 -0
  452. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Fonts.fs +0 -0
  453. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/GridTypes.fs +0 -0
  454. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Html.fs +0 -0
  455. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0/ReactTypes.fs.ts.map → Feliz.2.8.0/Interop.fs.ts.map} +0 -0
  456. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Key.fs +0 -0
  457. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Key.fs.js +0 -0
  458. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Key.fs.ts.map +0 -0
  459. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Locale.fs +0 -0
  460. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Properties.fs.js +0 -0
  461. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Properties.fs.ts.map +0 -0
  462. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactDOM.fs +0 -0
  463. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactDOM.fs.js +0 -0
  464. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactDOM.fs.ts.map +0 -0
  465. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactInterop.js +0 -0
  466. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/ReactTypes.fs.js +0 -0
  467. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0/StyleTypes.fs.ts.map → Feliz.2.8.0/ReactTypes.fs.ts.map} +0 -0
  468. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/StyleTypes.fs.js +0 -0
  469. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0/Svg.fs.ts.map → Feliz.2.8.0/StyleTypes.fs.ts.map} +0 -0
  470. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Svg.fs +0 -0
  471. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Svg.fs.js +0 -0
  472. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0/Types.fs.ts.map → Feliz.2.8.0/Svg.fs.ts.map} +0 -0
  473. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/TextDecorationLine.fs +0 -0
  474. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/TextDecorationStyle.fs +0 -0
  475. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Transform.fs +0 -0
  476. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/TransformOrigin.fs +0 -0
  477. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/TransitionProperty.fs +0 -0
  478. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Types.fs +0 -0
  479. /package/FormSpec.TS/fable_modules/{Feliz.2.7.0 → Feliz.2.8.0}/Types.fs.js +0 -0
  480. /package/src/{Components → FormSpec.FS/Components}/HelloComponent.ts +0 -0
  481. /package/src/{Designer.ts → FormSpec.FS/Designer.ts} +0 -0
  482. /package/src/{FormSpec.ts → FormSpec.FS/FormSpec.ts} +0 -0
  483. /package/src/{FormSpecValues.ts → FormSpec.FS/FormSpecValues.ts} +0 -0
  484. /package/src/{Helpers.ts → FormSpec.FS/Helpers.ts} +0 -0
  485. /package/src/{Interfaces.ts → FormSpec.FS/Interfaces.ts} +0 -0
  486. /package/src/{Logging → FormSpec.FS/Logging}/LogTypes.ts +0 -0
  487. /package/src/{PathwayDataExtractor.ts → FormSpec.FS/PathwayDataExtractor.ts} +0 -0
  488. /package/src/{PathwayValidator.ts → FormSpec.FS/PathwayValidator.ts} +0 -0
  489. /package/src/{PluginInterface.ts → FormSpec.FS/PluginInterface.ts} +0 -0
  490. /package/src/{Prelude.ts → FormSpec.FS/Prelude.ts} +0 -0
  491. /package/src/{Renderers → FormSpec.FS/Renderers}/FormSpecMarkdownRenderer.ts +0 -0
  492. /package/src/{Renderers → FormSpec.FS/Renderers}/MermaidRenderer.ts +0 -0
  493. /package/src/{Renderers → FormSpec.FS/Renderers}/PathwayRenderers.ts +0 -0
@@ -0,0 +1,665 @@
1
+ import { FSharpRef, Record } from "@fable-org/fable-library-js/Types.js";
2
+ import { some, bind, value as value_140, map, defaultArg, Option } from "@fable-org/fable-library-js/Option.js";
3
+ import { float64 } from "@fable-org/fable-library-js/Int32.js";
4
+ import { equals, createObj, IComparable, IEquatable } from "@fable-org/fable-library-js/Util.js";
5
+ import { class_type, string_type, bool_type, record_type, option_type, float64_type, TypeInfo } from "@fable-org/fable-library-js/Reflection.js";
6
+ import { mapValues, Field$3, IAttributes } from "../../../fable_modules/Fable.Form.3.0.0/Field.fs.js";
7
+ import { Form$3, FieldConfig$4, field as field_1 } from "../../../fable_modules/Fable.Form.3.0.0/Base.fs.js";
8
+ import { printf, toText, join, split, isNullOrWhiteSpace, isNullOrEmpty } from "@fable-org/fable-library-js/String.js";
9
+ import { item } from "@fable-org/fable-library-js/Array.js";
10
+ import { tryParse, parse } from "@fable-org/fable-library-js/Double.js";
11
+ import { createElement } from "react";
12
+ import React from "react";
13
+ import { reactApi } from "../../../fable_modules/Feliz.2.8.0/Interop.fs.js";
14
+ import { ReactElement } from "../../../fable_modules/Fable.React.Types.18.3.0/Fable.React.fs.js";
15
+ import { append as append_1, cons, empty as empty_1, tryFind, FSharpList, exists, singleton as singleton_1, ofArray } from "@fable-org/fable-library-js/List.js";
16
+ import { withLabelAndError } from "../../../fable_modules/Fable.Form.Simple.Bulma.5.0.1/Html.View.fs.js";
17
+ import { empty, singleton, append, delay, toList } from "@fable-org/fable-library-js/Seq.js";
18
+ import { IStandardField$3_$reflection, IStandardField$3, IField$1, StandardRenderFieldConfig$2 } from "../../../fable_modules/Fable.Form.Simple.Bulma.5.0.1/Types.fs.js";
19
+ import { Spec_FormField$1, Spec_FieldType_$union, Shared_FieldOption, Shared_FieldValue_$union, Shared_FieldKey, Shared_FieldValue_PluginData, Shared_PluginDataProperty, Shared_PluginPropertyKey, Spec_PluginFieldConfig } from "../../../FormSpec.FS/FormSpec.js";
20
+ import { FSharpResult$2_$union, FSharpResult$2_Error, FSharpResult$2_Ok } from "@fable-org/fable-library-js/Result.js";
21
+ import { IPluginValueConverter } from "../../../FormSpec.FS/PluginInterface.js";
22
+ import { Helpers_combineClasses } from "../../../fable_modules/Feliz.Bulma.3.0.0/ElementBuilders.fs.js";
23
+ import { RenderPreviewProps$1 } from "../../../FormSpec.FS/Interfaces.js";
24
+ import { FieldDetails } from "../../../FormSpec.FS/Designer.js";
25
+
26
+ export class VitalsField_VitalsData extends Record implements IEquatable<VitalsField_VitalsData>, IComparable<VitalsField_VitalsData> {
27
+ readonly Temperature: Option<float64>;
28
+ readonly SystolicBP: Option<float64>;
29
+ readonly DiastolicBP: Option<float64>;
30
+ readonly Pulse: Option<float64>;
31
+ readonly Respiration: Option<float64>;
32
+ readonly OxygenSaturation: Option<float64>;
33
+ readonly PainScale: Option<float64>;
34
+ constructor(Temperature: Option<float64>, SystolicBP: Option<float64>, DiastolicBP: Option<float64>, Pulse: Option<float64>, Respiration: Option<float64>, OxygenSaturation: Option<float64>, PainScale: Option<float64>) {
35
+ super();
36
+ this.Temperature = Temperature;
37
+ this.SystolicBP = SystolicBP;
38
+ this.DiastolicBP = DiastolicBP;
39
+ this.Pulse = Pulse;
40
+ this.Respiration = Respiration;
41
+ this.OxygenSaturation = OxygenSaturation;
42
+ this.PainScale = PainScale;
43
+ }
44
+ }
45
+
46
+ export function VitalsField_VitalsData_$reflection(): TypeInfo {
47
+ return record_type("Fable.Form.Simple.Bulma.Fields.VitalsField.VitalsField.VitalsData", [], VitalsField_VitalsData, () => [["Temperature", option_type(float64_type)], ["SystolicBP", option_type(float64_type)], ["DiastolicBP", option_type(float64_type)], ["Pulse", option_type(float64_type)], ["Respiration", option_type(float64_type)], ["OxygenSaturation", option_type(float64_type)], ["PainScale", option_type(float64_type)]]);
48
+ }
49
+
50
+ export class VitalsField_VitalsConfig extends Record implements IEquatable<VitalsField_VitalsConfig>, IComparable<VitalsField_VitalsConfig> {
51
+ readonly IncludeTemperature: boolean;
52
+ readonly IncludeBP: boolean;
53
+ readonly IncludePulse: boolean;
54
+ readonly IncludeRespiration: boolean;
55
+ readonly IncludeOxygenSat: boolean;
56
+ readonly IncludePainScale: boolean;
57
+ constructor(IncludeTemperature: boolean, IncludeBP: boolean, IncludePulse: boolean, IncludeRespiration: boolean, IncludeOxygenSat: boolean, IncludePainScale: boolean) {
58
+ super();
59
+ this.IncludeTemperature = IncludeTemperature;
60
+ this.IncludeBP = IncludeBP;
61
+ this.IncludePulse = IncludePulse;
62
+ this.IncludeRespiration = IncludeRespiration;
63
+ this.IncludeOxygenSat = IncludeOxygenSat;
64
+ this.IncludePainScale = IncludePainScale;
65
+ }
66
+ }
67
+
68
+ export function VitalsField_VitalsConfig_$reflection(): TypeInfo {
69
+ return record_type("Fable.Form.Simple.Bulma.Fields.VitalsField.VitalsField.VitalsConfig", [], VitalsField_VitalsConfig, () => [["IncludeTemperature", bool_type], ["IncludeBP", bool_type], ["IncludePulse", bool_type], ["IncludeRespiration", bool_type], ["IncludeOxygenSat", bool_type], ["IncludePainScale", bool_type]]);
70
+ }
71
+
72
+ export class VitalsField_Attributes extends Record implements IEquatable<VitalsField_Attributes>, IComparable<VitalsField_Attributes>, IAttributes {
73
+ readonly FieldId: string;
74
+ readonly Label: string;
75
+ readonly Config: VitalsField_VitalsConfig;
76
+ constructor(FieldId: string, Label: string, Config: VitalsField_VitalsConfig) {
77
+ super();
78
+ this.FieldId = FieldId;
79
+ this.Label = Label;
80
+ this.Config = Config;
81
+ }
82
+ GetFieldId(): string {
83
+ const this$: VitalsField_Attributes = this;
84
+ return this$.FieldId;
85
+ }
86
+ }
87
+
88
+ export function VitalsField_Attributes_$reflection(): TypeInfo {
89
+ return record_type("Fable.Form.Simple.Bulma.Fields.VitalsField.VitalsField.Attributes", [], VitalsField_Attributes, () => [["FieldId", string_type], ["Label", string_type], ["Config", VitalsField_VitalsConfig_$reflection()]]);
90
+ }
91
+
92
+ export function VitalsField_form<Values, Field, Output>(): ((arg0: ((arg0: Field$3<VitalsField_Attributes, string, Values>) => Field)) => ((arg0: FieldConfig$4<VitalsField_Attributes, string, Values, Output>) => Form$3<Values, Output, Field>)) {
93
+ return (build: ((arg0: Field$3<VitalsField_Attributes, string, Values>) => Field)): ((arg0: FieldConfig$4<VitalsField_Attributes, string, Values, Output>) => Form$3<Values, Output, Field>) => ((config: FieldConfig$4<VitalsField_Attributes, string, Values, Output>): Form$3<Values, Output, Field> => field_1<string, VitalsField_Attributes, Values, Field, Output>(isNullOrEmpty, build, config));
94
+ }
95
+
96
+ export function VitalsField_isValidTemperature(temp: float64): boolean {
97
+ if (temp >= 95) {
98
+ return temp <= 108;
99
+ }
100
+ else {
101
+ return false;
102
+ }
103
+ }
104
+
105
+ export function VitalsField_isValidSystolicBP(sys: float64): boolean {
106
+ if (sys >= 60) {
107
+ return sys <= 200;
108
+ }
109
+ else {
110
+ return false;
111
+ }
112
+ }
113
+
114
+ export function VitalsField_isValidDiastolicBP(dia: float64): boolean {
115
+ if (dia >= 40) {
116
+ return dia <= 120;
117
+ }
118
+ else {
119
+ return false;
120
+ }
121
+ }
122
+
123
+ export function VitalsField_isValidPulse(pulse: float64): boolean {
124
+ if (pulse >= 40) {
125
+ return pulse <= 180;
126
+ }
127
+ else {
128
+ return false;
129
+ }
130
+ }
131
+
132
+ export function VitalsField_isValidRespiration(resp: float64): boolean {
133
+ if (resp >= 8) {
134
+ return resp <= 35;
135
+ }
136
+ else {
137
+ return false;
138
+ }
139
+ }
140
+
141
+ export function VitalsField_isValidOxygenSat(sat: float64): boolean {
142
+ if (sat >= 70) {
143
+ return sat <= 100;
144
+ }
145
+ else {
146
+ return false;
147
+ }
148
+ }
149
+
150
+ export function VitalsField_isValidPainScale(pain: float64): boolean {
151
+ if (pain >= 0) {
152
+ return pain <= 10;
153
+ }
154
+ else {
155
+ return false;
156
+ }
157
+ }
158
+
159
+ export function VitalsField_isCriticalTemperature(temp: float64): boolean {
160
+ if (temp < 96) {
161
+ return true;
162
+ }
163
+ else {
164
+ return temp > 104;
165
+ }
166
+ }
167
+
168
+ export function VitalsField_isNormalTemperature(temp: float64): boolean {
169
+ if (temp >= 97) {
170
+ return temp <= 99;
171
+ }
172
+ else {
173
+ return false;
174
+ }
175
+ }
176
+
177
+ export function VitalsField_isCriticalSystolicBP(sys: float64): boolean {
178
+ if (sys < 90) {
179
+ return true;
180
+ }
181
+ else {
182
+ return sys > 180;
183
+ }
184
+ }
185
+
186
+ export function VitalsField_isCriticalDiastolicBP(dia: float64): boolean {
187
+ if (dia < 60) {
188
+ return true;
189
+ }
190
+ else {
191
+ return dia > 110;
192
+ }
193
+ }
194
+
195
+ export function VitalsField_isCriticalPulse(pulse: float64): boolean {
196
+ if (pulse < 50) {
197
+ return true;
198
+ }
199
+ else {
200
+ return pulse > 120;
201
+ }
202
+ }
203
+
204
+ export function VitalsField_isCriticalRespiration(resp: float64): boolean {
205
+ if (resp < 12) {
206
+ return true;
207
+ }
208
+ else {
209
+ return resp > 25;
210
+ }
211
+ }
212
+
213
+ export function VitalsField_isCriticalOxygenSat(sat: float64): boolean {
214
+ return sat < 95;
215
+ }
216
+
217
+ export function VitalsField_parseVitalsData(value: string): VitalsField_VitalsData {
218
+ try {
219
+ if (isNullOrWhiteSpace(value)) {
220
+ return new VitalsField_VitalsData(undefined, undefined, undefined, undefined, undefined, undefined, undefined);
221
+ }
222
+ else {
223
+ const parts: string[] = split(value, ["|"], undefined, 0);
224
+ return new VitalsField_VitalsData(((parts.length > 0) && !isNullOrWhiteSpace(item(0, parts))) ? parse(item(0, parts)) : undefined, ((parts.length > 1) && !isNullOrWhiteSpace(item(1, parts))) ? parse(item(1, parts)) : undefined, ((parts.length > 2) && !isNullOrWhiteSpace(item(2, parts))) ? parse(item(2, parts)) : undefined, ((parts.length > 3) && !isNullOrWhiteSpace(item(3, parts))) ? parse(item(3, parts)) : undefined, ((parts.length > 4) && !isNullOrWhiteSpace(item(4, parts))) ? parse(item(4, parts)) : undefined, ((parts.length > 5) && !isNullOrWhiteSpace(item(5, parts))) ? parse(item(5, parts)) : undefined, ((parts.length > 6) && !isNullOrWhiteSpace(item(6, parts))) ? parse(item(6, parts)) : undefined);
225
+ }
226
+ }
227
+ catch (matchValue: any) {
228
+ return new VitalsField_VitalsData(undefined, undefined, undefined, undefined, undefined, undefined, undefined);
229
+ }
230
+ }
231
+
232
+ export function VitalsField_serializeVitalsData(vitalsData: VitalsField_VitalsData): string {
233
+ const optToString = (opt: Option<float64>): string => defaultArg(map<float64, string>((value: float64): string => value.toString(), opt), "");
234
+ return join("|", [optToString(vitalsData.Temperature), optToString(vitalsData.SystolicBP), optToString(vitalsData.DiastolicBP), optToString(vitalsData.Pulse), optToString(vitalsData.Respiration), optToString(vitalsData.OxygenSaturation), optToString(vitalsData.PainScale)]);
235
+ }
236
+
237
+ export function VitalsField_getVitalStatus(value: Option<float64>, isValid: ((arg0: float64) => boolean), isCritical: ((arg0: float64) => boolean), isNormal: Option<((arg0: float64) => boolean)>): string {
238
+ let v_2: float64;
239
+ if (value == null) {
240
+ return "empty";
241
+ }
242
+ else if (isCritical(value_140(value))) {
243
+ const v_3: float64 = value_140(value);
244
+ return "critical";
245
+ }
246
+ else if (!isValid(value_140(value))) {
247
+ const v_4: float64 = value_140(value);
248
+ return "abnormal";
249
+ }
250
+ else if ((v_2 = value_140(value), (isNormal != null) && !value_140(isNormal)(v_2))) {
251
+ const v_5: float64 = value_140(value);
252
+ return "abnormal";
253
+ }
254
+ else {
255
+ return "normal";
256
+ }
257
+ }
258
+
259
+ export function VitalsField_VitalsFieldComponent(config: StandardRenderFieldConfig$2<string, VitalsField_Attributes>): ReactElement {
260
+ let elems_12: Iterable<ReactElement>;
261
+ const vitalsData: VitalsField_VitalsData = VitalsField_parseVitalsData(config.Value);
262
+ const vitalsConfig: VitalsField_VitalsConfig = config.Attributes.Config;
263
+ let patternInput: [string, ((arg0: string) => void)];
264
+ const initial: string = defaultArg(map<float64, string>((value: float64): string => value.toString(), vitalsData.Temperature), "");
265
+ patternInput = reactApi.useState<string, string>(initial);
266
+ const temperature: string = patternInput[0];
267
+ let patternInput_1: [string, ((arg0: string) => void)];
268
+ const initial_1: string = defaultArg(map<float64, string>((value_2: float64): string => value_2.toString(), vitalsData.SystolicBP), "");
269
+ patternInput_1 = reactApi.useState<string, string>(initial_1);
270
+ const systolicBP: string = patternInput_1[0];
271
+ let patternInput_2: [string, ((arg0: string) => void)];
272
+ const initial_2: string = defaultArg(map<float64, string>((value_4: float64): string => value_4.toString(), vitalsData.DiastolicBP), "");
273
+ patternInput_2 = reactApi.useState<string, string>(initial_2);
274
+ const diastolicBP: string = patternInput_2[0];
275
+ let patternInput_3: [string, ((arg0: string) => void)];
276
+ const initial_3: string = defaultArg(map<float64, string>((value_6: float64): string => value_6.toString(), vitalsData.Pulse), "");
277
+ patternInput_3 = reactApi.useState<string, string>(initial_3);
278
+ const pulse: string = patternInput_3[0];
279
+ let patternInput_4: [string, ((arg0: string) => void)];
280
+ const initial_4: string = defaultArg(map<float64, string>((value_8: float64): string => value_8.toString(), vitalsData.Respiration), "");
281
+ patternInput_4 = reactApi.useState<string, string>(initial_4);
282
+ const respiration: string = patternInput_4[0];
283
+ let patternInput_5: [string, ((arg0: string) => void)];
284
+ const initial_5: string = defaultArg(map<float64, string>((value_10: float64): string => value_10.toString(), vitalsData.OxygenSaturation), "");
285
+ patternInput_5 = reactApi.useState<string, string>(initial_5);
286
+ const oxygenSat: string = patternInput_5[0];
287
+ let patternInput_6: [string, ((arg0: string) => void)];
288
+ const initial_6: string = defaultArg(map<float64, string>((value_12: float64): string => value_12.toString(), vitalsData.PainScale), "");
289
+ patternInput_6 = reactApi.useState<string, string>(initial_6);
290
+ const painScale: string = patternInput_6[0];
291
+ const dependencies: any[] = [temperature, systolicBP, diastolicBP, pulse, respiration, oxygenSat, painScale];
292
+ reactApi.useEffect((): void => {
293
+ const parseOpt = (s: string): Option<float64> => {
294
+ if (isNullOrWhiteSpace(s)) {
295
+ return undefined;
296
+ }
297
+ else {
298
+ let matchValue: [boolean, float64];
299
+ let outArg = 0;
300
+ matchValue = ([tryParse(s, new FSharpRef<float64>((): float64 => outArg, (v: float64): void => {
301
+ outArg = v;
302
+ })), outArg] as [boolean, float64]);
303
+ if (matchValue[0]) {
304
+ return matchValue[1];
305
+ }
306
+ else {
307
+ return undefined;
308
+ }
309
+ }
310
+ };
311
+ config.OnChange(VitalsField_serializeVitalsData(new VitalsField_VitalsData(parseOpt(temperature), parseOpt(systolicBP), parseOpt(diastolicBP), parseOpt(pulse), parseOpt(respiration), parseOpt(oxygenSat), parseOpt(painScale))));
312
+ }, dependencies);
313
+ const parseNumeric = (raw: string): Option<float64> => {
314
+ if (isNullOrWhiteSpace(raw)) {
315
+ return undefined;
316
+ }
317
+ else {
318
+ let matchValue_1: [boolean, float64];
319
+ let outArg_1 = 0;
320
+ matchValue_1 = ([tryParse(raw, new FSharpRef<float64>((): float64 => outArg_1, (v_2: float64): void => {
321
+ outArg_1 = v_2;
322
+ })), outArg_1] as [boolean, float64]);
323
+ if (matchValue_1[0]) {
324
+ return matchValue_1[1];
325
+ }
326
+ else {
327
+ return undefined;
328
+ }
329
+ }
330
+ };
331
+ const statusBadge = (status: string): ReactElement => createElement<any>("span", {
332
+ className: `inline-flex items-center rounded-full px-2 py-0.5 text-xs font-medium ${(status === "critical") ? "bg-red-100 text-red-700 border border-red-200" : ((status === "abnormal") ? "bg-amber-100 text-amber-700 border border-amber-200" : ((status === "normal") ? "bg-emerald-100 text-emerald-700 border border-emerald-200" : "bg-slate-100 text-slate-600 border border-slate-200"))}`,
333
+ children: (status === "critical") ? "Critical" : ((status === "abnormal") ? "Abnormal" : ((status === "normal") ? "Normal" : "Pending")),
334
+ });
335
+ const createVitalInput = (label_1: string, value_18: string, setValue: ((arg0: string) => void), unitText: string, placeholder: string, isValid: ((arg0: float64) => boolean), isCritical: ((arg0: float64) => boolean), isNormal: Option<((arg0: float64) => boolean)>): ReactElement => {
336
+ let elems_1: Iterable<ReactElement>, elems: Iterable<ReactElement>;
337
+ const vitalStatus: string = VitalsField_getVitalStatus(parseNumeric(value_18), isValid, isCritical, isNormal);
338
+ let inputClass: string;
339
+ const baseClass = "mt-1 block w-full rounded-md border bg-white px-2.5 py-1.5 text-sm text-slate-900 shadow-sm transition placeholder:text-slate-400 focus:outline-none focus:ring-2 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500";
340
+ inputClass = ((config.ShowError && (config.Error != null)) ? (`${baseClass} border-red-400 focus:border-red-500 focus:ring-red-500/30`) : (`${baseClass} ${(vitalStatus === "critical") ? "border-red-300 focus:border-red-500 focus:ring-red-500/30" : ((vitalStatus === "abnormal") ? "border-amber-300 focus:border-amber-500 focus:ring-amber-500/30" : "border-slate-300 focus:border-sky-500 focus:ring-sky-500/30")}`));
341
+ return createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-slate-200 bg-white p-2.5 shadow-sm"] as [string, any], (elems_1 = [createElement<any>("div", createObj(ofArray([["className", "flex items-center justify-between gap-3"] as [string, any], (elems = [createElement<any>("label", {
342
+ className: "text-xs font-semibold uppercase tracking-wide text-slate-700",
343
+ children: label_1,
344
+ }), statusBadge(vitalStatus)], ["children", reactApi.Children.toArray(Array.from(elems))] as [string, any])]))), createElement<any>("input", {
345
+ type: "number",
346
+ className: inputClass,
347
+ value: value_18,
348
+ placeholder: placeholder,
349
+ disabled: config.Disabled ? true : config.IsReadOnly,
350
+ onChange: (ev: Event): void => {
351
+ setValue(ev.target.value);
352
+ },
353
+ }), createElement<any>("p", {
354
+ className: "mt-1 text-[11px] text-slate-500",
355
+ children: unitText,
356
+ })], ["children", reactApi.Children.toArray(Array.from(elems_1))] as [string, any])])));
357
+ };
358
+ return withLabelAndError(config.Attributes.Label, config.ShowError, config.Error, createElement<any>("div", createObj(ofArray([["className", "space-y-2.5"] as [string, any], (elems_12 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => {
359
+ let elems_8: Iterable<ReactElement>;
360
+ return append<ReactElement>(singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "grid grid-cols-1 auto-rows-min content-start items-start gap-2 md:grid-cols-2 lg:grid-cols-3"] as [string, any], (elems_8 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeTemperature ? singleton<ReactElement>(createVitalInput("Temperature", temperature, patternInput[1], "Normal: 97-99°F", "98.6", VitalsField_isValidTemperature, VitalsField_isCriticalTemperature, VitalsField_isNormalTemperature)) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => {
361
+ let systolicStatus: string, diastolicStatus: string, elems_7: Iterable<ReactElement>, elems_3: Iterable<ReactElement>, elems_2: Iterable<ReactElement>, elems_6: Iterable<ReactElement>, elems_4: Iterable<ReactElement>, value_66: string, elems_5: Iterable<ReactElement>, value_85: string;
362
+ return append<ReactElement>(vitalsConfig.IncludeBP ? ((systolicStatus = VitalsField_getVitalStatus(parseNumeric(systolicBP), VitalsField_isValidSystolicBP, VitalsField_isCriticalSystolicBP, undefined), (diastolicStatus = VitalsField_getVitalStatus(parseNumeric(diastolicBP), VitalsField_isValidDiastolicBP, VitalsField_isCriticalDiastolicBP, undefined), singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-slate-200 bg-white p-2.5 shadow-sm"] as [string, any], (elems_7 = [createElement<any>("div", createObj(ofArray([["className", "flex items-center justify-between gap-3"] as [string, any], (elems_3 = [createElement<any>("label", {
363
+ className: "text-xs font-semibold uppercase tracking-wide text-slate-700",
364
+ children: "Blood Pressure",
365
+ }), createElement<any>("div", createObj(ofArray([["className", "inline-flex gap-2"] as [string, any], (elems_2 = [statusBadge(systolicStatus), statusBadge(diastolicStatus)], ["children", reactApi.Children.toArray(Array.from(elems_2))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_3))] as [string, any])]))), createElement<any>("div", createObj(ofArray([["className", "mt-1 grid grid-cols-[1fr_auto_1fr] items-center gap-1.5"] as [string, any], (elems_6 = [createElement<any>("div", createObj(singleton_1((elems_4 = [createElement<any>("label", {
366
+ className: "text-[11px] font-medium text-slate-600",
367
+ children: "Systolic",
368
+ }), createElement<any>("input", createObj(ofArray([["type", "number"] as [string, any], (value_66 = "mt-1 block w-full rounded-md border border-slate-300 bg-white px-2.5 py-1.5 text-sm shadow-sm placeholder:text-slate-400 focus:border-sky-500 focus:outline-none focus:ring-2 focus:ring-sky-500/30 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500", ["className", value_66] as [string, any]), ["value", systolicBP] as [string, any], ["placeholder", "120"] as [string, any], ["disabled", config.Disabled ? true : config.IsReadOnly] as [string, any], ["onChange", (ev_1: Event): void => {
369
+ patternInput_1[1](ev_1.target.value);
370
+ }] as [string, any]])))], ["children", reactApi.Children.toArray(Array.from(elems_4))] as [string, any])))), createElement<any>("div", {
371
+ className: "pt-4 text-base font-semibold text-slate-500",
372
+ children: "/",
373
+ }), createElement<any>("div", createObj(singleton_1((elems_5 = [createElement<any>("label", {
374
+ className: "text-[11px] font-medium text-slate-600",
375
+ children: "Diastolic",
376
+ }), createElement<any>("input", createObj(ofArray([["type", "number"] as [string, any], (value_85 = "mt-1 block w-full rounded-md border border-slate-300 bg-white px-2.5 py-1.5 text-sm shadow-sm placeholder:text-slate-400 focus:border-sky-500 focus:outline-none focus:ring-2 focus:ring-sky-500/30 disabled:cursor-not-allowed disabled:bg-slate-100 disabled:text-slate-500", ["className", value_85] as [string, any]), ["value", diastolicBP] as [string, any], ["placeholder", "80"] as [string, any], ["disabled", config.Disabled ? true : config.IsReadOnly] as [string, any], ["onChange", (ev_2: Event): void => {
377
+ patternInput_2[1](ev_2.target.value);
378
+ }] as [string, any]])))], ["children", reactApi.Children.toArray(Array.from(elems_5))] as [string, any]))))], ["children", reactApi.Children.toArray(Array.from(elems_6))] as [string, any])]))), createElement<any>("p", {
379
+ className: "mt-1 text-[11px] text-slate-500",
380
+ children: "mmHg",
381
+ })], ["children", reactApi.Children.toArray(Array.from(elems_7))] as [string, any])]))))))) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludePulse ? singleton<ReactElement>(createVitalInput("Pulse Rate", pulse, patternInput_3[1], "BPM", "72", VitalsField_isValidPulse, VitalsField_isCriticalPulse, undefined)) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeRespiration ? singleton<ReactElement>(createVitalInput("Respiration Rate", respiration, patternInput_4[1], "per minute", "16", VitalsField_isValidRespiration, VitalsField_isCriticalRespiration, undefined)) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>(vitalsConfig.IncludeOxygenSat ? singleton<ReactElement>(createVitalInput("Oxygen Saturation", oxygenSat, patternInput_5[1], "%", "98", VitalsField_isValidOxygenSat, VitalsField_isCriticalOxygenSat, undefined)) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => (vitalsConfig.IncludePainScale ? singleton<ReactElement>(createVitalInput("Pain Scale", painScale, patternInput_6[1], "0-10 scale", "0", VitalsField_isValidPainScale, (_arg: float64): boolean => false, undefined)) : empty<ReactElement>())))))))));
382
+ })))), ["children", reactApi.Children.toArray(Array.from(elems_8))] as [string, any])])))), delay<ReactElement>((): Iterable<ReactElement> => {
383
+ let elems_11: Iterable<ReactElement>, elems_10: Iterable<ReactElement>, elems_9: Iterable<ReactElement>;
384
+ return exists<string>((s_1: string): boolean => !isNullOrWhiteSpace(s_1), ofArray([temperature, systolicBP, diastolicBP, pulse, respiration, oxygenSat, painScale])) ? singleton<ReactElement>(createElement<any>("div", createObj(ofArray([["className", "rounded-lg border border-sky-200 bg-sky-50/60 p-2.5 shadow-sm"] as [string, any], (elems_11 = [createElement<any>("h6", {
385
+ className: "text-xs font-semibold uppercase tracking-wide text-sky-900",
386
+ children: "📋 Vital Signs Summary",
387
+ }), createElement<any>("div", createObj(ofArray([["className", "mt-1.5 text-xs text-slate-700"] as [string, any], (elems_10 = [createElement<any>("div", createObj(ofArray([["className", "flex flex-wrap gap-1.5"] as [string, any], (elems_9 = toList<ReactElement>(delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeTemperature && !isNullOrWhiteSpace(temperature)) ? singleton<ReactElement>(createElement<any>("span", {
388
+ className: "rounded-md bg-white/80 px-2 py-0.5",
389
+ children: ("🌡️ Temp " + temperature) + "°F",
390
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeBP && (!isNullOrWhiteSpace(systolicBP) ? true : !isNullOrWhiteSpace(diastolicBP))) ? singleton<ReactElement>(createElement<any>("span", {
391
+ className: "rounded-md bg-white/80 px-2 py-0.5",
392
+ children: ((("💓 BP " + systolicBP) + "/") + diastolicBP) + " mmHg",
393
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludePulse && !isNullOrWhiteSpace(pulse)) ? singleton<ReactElement>(createElement<any>("span", {
394
+ className: "rounded-md bg-white/80 px-2 py-0.5",
395
+ children: ("💗 Pulse " + pulse) + " BPM",
396
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeRespiration && !isNullOrWhiteSpace(respiration)) ? singleton<ReactElement>(createElement<any>("span", {
397
+ className: "rounded-md bg-white/80 px-2 py-0.5",
398
+ children: ("🫁 Resp " + respiration) + " RPM",
399
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => append<ReactElement>((vitalsConfig.IncludeOxygenSat && !isNullOrWhiteSpace(oxygenSat)) ? singleton<ReactElement>(createElement<any>("span", {
400
+ className: "rounded-md bg-white/80 px-2 py-0.5",
401
+ children: ("🩸 O2 " + oxygenSat) + "%",
402
+ })) : empty<ReactElement>(), delay<ReactElement>((): Iterable<ReactElement> => ((vitalsConfig.IncludePainScale && !isNullOrWhiteSpace(painScale)) ? singleton<ReactElement>(createElement<any>("span", {
403
+ className: "rounded-md bg-white/80 px-2 py-0.5",
404
+ children: ("😖 Pain " + painScale) + "/10",
405
+ })) : empty<ReactElement>()))))))))))))), ["children", reactApi.Children.toArray(Array.from(elems_9))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_10))] as [string, any])])))], ["children", reactApi.Children.toArray(Array.from(elems_11))] as [string, any])])))) : empty<ReactElement>();
406
+ }));
407
+ })), ["children", reactApi.Children.toArray(Array.from(elems_12))] as [string, any])]))));
408
+ }
409
+
410
+ export class VitalsField_Field$1<Values> extends IStandardField$3<Values, string, VitalsField_Attributes> implements IField$1<Values> {
411
+ readonly innerField_1: Field$3<VitalsField_Attributes, string, Values>;
412
+ constructor(innerField: Field$3<VitalsField_Attributes, string, Values>) {
413
+ super(innerField);
414
+ this.innerField_1 = innerField;
415
+ }
416
+ "Fable.Form.Simple.Bulma.IStandardField`3.RenderFieldZ43FEF6DC"(config: StandardRenderFieldConfig$2<string, VitalsField_Attributes>): ReactElement {
417
+ return createElement(VitalsField_VitalsFieldComponent, config);
418
+ }
419
+ MapFieldValues<NewValues>(update: ((arg0: Values) => $a)): IField$1<$a> {
420
+ const _: VitalsField_Field$1<Values> = this;
421
+ return VitalsField_Field$1_$ctor_Z521739C7<$a>(mapValues<Values, $a, VitalsField_Attributes, string>(update, _.innerField_1));
422
+ }
423
+ }
424
+
425
+ export function VitalsField_Field$1_$reflection(gen0: TypeInfo): TypeInfo {
426
+ return class_type("Fable.Form.Simple.Bulma.Fields.VitalsField.VitalsField.Field`1", [gen0], VitalsField_Field$1, IStandardField$3_$reflection(gen0, string_type, VitalsField_Attributes_$reflection()));
427
+ }
428
+
429
+ export function VitalsField_Field$1_$ctor_Z521739C7<Values>(innerField: Field$3<VitalsField_Attributes, string, Values>): VitalsField_Field$1<Values> {
430
+ return new VitalsField_Field$1(innerField);
431
+ }
432
+
433
+ export function Form_vitalsField<Values, Output>(config: FieldConfig$4<VitalsField_Attributes, string, Values, Output>): Form$3<Values, Output, IField$1<Values>> {
434
+ return VitalsField_form<Values, IField$1<Values>, Output>()(VitalsField_Field$1_$ctor_Z521739C7)(config);
435
+ }
436
+
437
+ export const Form_pluginConfig: Spec_PluginFieldConfig = new Spec_PluginFieldConfig("Fable.Form.Simple.Bulma.Fields.VitalsField");
438
+
439
+ export const Form_PropertyKeys_Temperature: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("a1b2c3d4-5e6f-7890-abcd-ef1234567890");
440
+
441
+ export const Form_PropertyKeys_SystolicBP: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("b2c3d4e5-6f78-90ab-cdef-123456789012");
442
+
443
+ export const Form_PropertyKeys_DiastolicBP: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("c3d4e5f6-7890-abcd-ef12-345678901234");
444
+
445
+ export const Form_PropertyKeys_Pulse: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("d4e5f678-90ab-cdef-1234-56789012345a");
446
+
447
+ export const Form_PropertyKeys_Respiration: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("e5f67890-abcd-ef12-3456-789012345abc");
448
+
449
+ export const Form_PropertyKeys_OxygenSaturation: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("f6789012-3456-789a-bcde-f012345678de");
450
+
451
+ export const Form_PropertyKeys_PainScale: Shared_PluginPropertyKey = new Shared_PluginPropertyKey("67890123-4567-89ab-cdef-0123456789ef");
452
+
453
+ export const Form_enhancedVitalsConverter: IPluginValueConverter = new IPluginValueConverter((fieldKey: Shared_FieldKey, pluginValue: any): Option<Shared_FieldValue_$union> => {
454
+ const vitalsData: VitalsField_VitalsData = pluginValue;
455
+ return Shared_FieldValue_PluginData(toList<Shared_PluginDataProperty>(delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Temperature != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", value_140(vitalsData.Temperature).toString(), "Temperature", "°F", "Body temperature in Fahrenheit")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.SystolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", value_140(vitalsData.SystolicBP).toString(), "Systolic BP", "mmHg", "Systolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.DiastolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", value_140(vitalsData.DiastolicBP).toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Pulse != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", value_140(vitalsData.Pulse).toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.Respiration != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", value_140(vitalsData.Respiration).toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData.OxygenSaturation != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", value_140(vitalsData.OxygenSaturation).toString(), "O2 Saturation", "%", "Oxygen saturation percentage")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => ((vitalsData.PainScale != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", value_140(vitalsData.PainScale).toString(), "Pain Level", "/10", "Pain scale from 0 to 10")) : empty<Shared_PluginDataProperty>()))))))))))))))));
456
+ }, (fieldValue: Shared_FieldValue_$union): Option<any> => {
457
+ switch (fieldValue.tag) {
458
+ case /* PluginData */ 3: {
459
+ const properties: FSharpList<Shared_PluginDataProperty> = fieldValue.fields[0];
460
+ const getPropertyValue = (name: string): Option<float64> => bind<Shared_PluginDataProperty, float64>((p_1: Shared_PluginDataProperty): Option<float64> => {
461
+ let matchValue: [boolean, float64];
462
+ let outArg = 0;
463
+ matchValue = ([tryParse(p_1.Value, new FSharpRef<float64>((): float64 => outArg, (v: float64): void => {
464
+ outArg = v;
465
+ })), outArg] as [boolean, float64]);
466
+ if (matchValue[0]) {
467
+ return matchValue[1];
468
+ }
469
+ else {
470
+ return undefined;
471
+ }
472
+ }, tryFind<Shared_PluginDataProperty>((p: Shared_PluginDataProperty): boolean => (p.Name === name), properties));
473
+ return some(new VitalsField_VitalsData(getPropertyValue("temperature"), getPropertyValue("systolic_bp"), getPropertyValue("diastolic_bp"), getPropertyValue("pulse"), getPropertyValue("respiration"), getPropertyValue("oxygen_saturation"), getPropertyValue("pain_scale")));
474
+ }
475
+ case /* Single */ 0:
476
+ return some(VitalsField_parseVitalsData(fieldValue.fields[0].Value));
477
+ default:
478
+ return undefined;
479
+ }
480
+ }, (): Option<FSharpList<Shared_FieldOption>> => undefined, (): FSharpList<string> => ofArray(["temperature", "systolic_bp", "diastolic_bp", "pulse", "respiration", "oxygen_saturation", "pain_scale"]), (propertyName: string): Option<Shared_PluginDataProperty> => ((propertyName === "temperature") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", "", "Temperature", "°F", "Body temperature in Fahrenheit")) : ((propertyName === "systolic_bp") ? (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", "", "Systolic BP", "mmHg", "Systolic blood pressure")) : ((propertyName === "diastolic_bp") ? (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", "", "Diastolic BP", "mmHg", "Diastolic blood pressure")) : ((propertyName === "pulse") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", "", "Pulse Rate", "BPM", "Heart rate in beats per minute")) : ((propertyName === "respiration") ? (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", "", "Respiration Rate", "RPM", "Respiratory rate per minute")) : ((propertyName === "oxygen_saturation") ? (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", "", "O2 Saturation", "%", "Oxygen saturation percentage")) : ((propertyName === "pain_scale") ? (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", "", "Pain Level", "/10", "Pain scale from 0 to 10")) : undefined))))))), (propertyKey: Shared_PluginPropertyKey): Option<Shared_PluginDataProperty> => (equals(propertyKey, Form_PropertyKeys_Temperature) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", "", "Temperature", "°F", "Body temperature in Fahrenheit")) : (equals(propertyKey, Form_PropertyKeys_SystolicBP) ? (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", "", "Systolic BP", "mmHg", "Systolic blood pressure")) : (equals(propertyKey, Form_PropertyKeys_DiastolicBP) ? (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", "", "Diastolic BP", "mmHg", "Diastolic blood pressure")) : (equals(propertyKey, Form_PropertyKeys_Pulse) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", "", "Pulse Rate", "BPM", "Heart rate in beats per minute")) : (equals(propertyKey, Form_PropertyKeys_Respiration) ? (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", "", "Respiration Rate", "RPM", "Respiratory rate per minute")) : (equals(propertyKey, Form_PropertyKeys_OxygenSaturation) ? (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", "", "O2 Saturation", "%", "Oxygen saturation percentage")) : (equals(propertyKey, Form_PropertyKeys_PainScale) ? (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", "", "Pain Level", "/10", "Pain scale from 0 to 10")) : undefined))))))), (propertyName_1: string, fieldValue_1: Shared_FieldValue_$union): Option<Shared_PluginDataProperty> => {
481
+ switch (fieldValue_1.tag) {
482
+ case /* PluginData */ 3:
483
+ return tryFind<Shared_PluginDataProperty>((p_2: Shared_PluginDataProperty): boolean => (p_2.Name === propertyName_1), fieldValue_1.fields[0]);
484
+ case /* Single */ 0: {
485
+ const vitalsData_1: VitalsField_VitalsData = VitalsField_parseVitalsData(fieldValue_1.fields[0].Value);
486
+ return (propertyName_1 === "temperature") ? map<float64, Shared_PluginDataProperty>((v_1: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", v_1.toString(), "Temperature", "°F", "Body temperature in Fahrenheit")), vitalsData_1.Temperature) : ((propertyName_1 === "systolic_bp") ? map<float64, Shared_PluginDataProperty>((v_2: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", v_2.toString(), "Systolic BP", "mmHg", "Systolic blood pressure")), vitalsData_1.SystolicBP) : ((propertyName_1 === "diastolic_bp") ? map<float64, Shared_PluginDataProperty>((v_3: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", v_3.toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")), vitalsData_1.DiastolicBP) : ((propertyName_1 === "pulse") ? map<float64, Shared_PluginDataProperty>((v_4: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", v_4.toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")), vitalsData_1.Pulse) : ((propertyName_1 === "respiration") ? map<float64, Shared_PluginDataProperty>((v_5: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", v_5.toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")), vitalsData_1.Respiration) : ((propertyName_1 === "oxygen_saturation") ? map<float64, Shared_PluginDataProperty>((v_6: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", v_6.toString(), "O2 Saturation", "%", "Oxygen saturation percentage")), vitalsData_1.OxygenSaturation) : ((propertyName_1 === "pain_scale") ? map<float64, Shared_PluginDataProperty>((v_7: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", v_7.toString(), "Pain Level", "/10", "Pain scale from 0 to 10")), vitalsData_1.PainScale) : undefined))))));
487
+ }
488
+ default:
489
+ return undefined;
490
+ }
491
+ }, (propertyKey_1: Shared_PluginPropertyKey, fieldValue_2: Shared_FieldValue_$union): Option<Shared_PluginDataProperty> => {
492
+ switch (fieldValue_2.tag) {
493
+ case /* PluginData */ 3:
494
+ return tryFind<Shared_PluginDataProperty>((p_3: Shared_PluginDataProperty): boolean => equals(p_3.PropertyKey, propertyKey_1), fieldValue_2.fields[0]);
495
+ case /* Single */ 0: {
496
+ const vitalsData_2: VitalsField_VitalsData = VitalsField_parseVitalsData(fieldValue_2.fields[0].Value);
497
+ return equals(propertyKey_1, Form_PropertyKeys_Temperature) ? map<float64, Shared_PluginDataProperty>((v_8: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", v_8.toString(), "Temperature", "°F", "Body temperature in Fahrenheit")), vitalsData_2.Temperature) : (equals(propertyKey_1, Form_PropertyKeys_SystolicBP) ? map<float64, Shared_PluginDataProperty>((v_9: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", v_9.toString(), "Systolic BP", "mmHg", "Systolic blood pressure")), vitalsData_2.SystolicBP) : (equals(propertyKey_1, Form_PropertyKeys_DiastolicBP) ? map<float64, Shared_PluginDataProperty>((v_10: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", v_10.toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")), vitalsData_2.DiastolicBP) : (equals(propertyKey_1, Form_PropertyKeys_Pulse) ? map<float64, Shared_PluginDataProperty>((v_11: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", v_11.toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")), vitalsData_2.Pulse) : (equals(propertyKey_1, Form_PropertyKeys_Respiration) ? map<float64, Shared_PluginDataProperty>((v_12: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", v_12.toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")), vitalsData_2.Respiration) : (equals(propertyKey_1, Form_PropertyKeys_OxygenSaturation) ? map<float64, Shared_PluginDataProperty>((v_13: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", v_13.toString(), "O2 Saturation", "%", "Oxygen saturation percentage")), vitalsData_2.OxygenSaturation) : (equals(propertyKey_1, Form_PropertyKeys_PainScale) ? map<float64, Shared_PluginDataProperty>((v_14: float64): Shared_PluginDataProperty => (new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", v_14.toString(), "Pain Level", "/10", "Pain scale from 0 to 10")), vitalsData_2.PainScale) : undefined))))));
498
+ }
499
+ default:
500
+ return undefined;
501
+ }
502
+ }, (propertyName_2: string, value_1: string): FSharpResult$2_$union<void, string> => {
503
+ switch (propertyName_2) {
504
+ case "temperature": {
505
+ let matchValue_1: [boolean, float64];
506
+ let outArg_1 = 0;
507
+ matchValue_1 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_1, (v_15: float64): void => {
508
+ outArg_1 = v_15;
509
+ })), outArg_1] as [boolean, float64]);
510
+ return matchValue_1[0] ? (VitalsField_isValidTemperature(matchValue_1[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>(("Temperature must be between 95-108°F, got " + matchValue_1[1].toString()) + "°F")) : FSharpResult$2_Error<void, string>("Temperature must be a valid number");
511
+ }
512
+ case "systolic_bp": {
513
+ let matchValue_2: [boolean, float64];
514
+ let outArg_2 = 0;
515
+ matchValue_2 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_2, (v_19: float64): void => {
516
+ outArg_2 = v_19;
517
+ })), outArg_2] as [boolean, float64]);
518
+ return matchValue_2[0] ? (VitalsField_isValidSystolicBP(matchValue_2[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Systolic BP must be between 60-200 mmHg, got " + matchValue_2[1].toString())) : FSharpResult$2_Error<void, string>("Systolic BP must be a valid number");
519
+ }
520
+ case "diastolic_bp": {
521
+ let matchValue_3: [boolean, float64];
522
+ let outArg_3 = 0;
523
+ matchValue_3 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_3, (v_23: float64): void => {
524
+ outArg_3 = v_23;
525
+ })), outArg_3] as [boolean, float64]);
526
+ return matchValue_3[0] ? (VitalsField_isValidDiastolicBP(matchValue_3[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Diastolic BP must be between 40-120 mmHg, got " + matchValue_3[1].toString())) : FSharpResult$2_Error<void, string>("Diastolic BP must be a valid number");
527
+ }
528
+ case "pulse": {
529
+ let matchValue_4: [boolean, float64];
530
+ let outArg_4 = 0;
531
+ matchValue_4 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_4, (v_27: float64): void => {
532
+ outArg_4 = v_27;
533
+ })), outArg_4] as [boolean, float64]);
534
+ return matchValue_4[0] ? (VitalsField_isValidPulse(matchValue_4[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Pulse must be between 40-180 BPM, got " + matchValue_4[1].toString())) : FSharpResult$2_Error<void, string>("Pulse must be a valid number");
535
+ }
536
+ case "respiration": {
537
+ let matchValue_5: [boolean, float64];
538
+ let outArg_5 = 0;
539
+ matchValue_5 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_5, (v_31: float64): void => {
540
+ outArg_5 = v_31;
541
+ })), outArg_5] as [boolean, float64]);
542
+ return matchValue_5[0] ? (VitalsField_isValidRespiration(matchValue_5[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Respiration rate must be between 8-35 RPM, got " + matchValue_5[1].toString())) : FSharpResult$2_Error<void, string>("Respiration rate must be a valid number");
543
+ }
544
+ case "oxygen_saturation": {
545
+ let matchValue_6: [boolean, float64];
546
+ let outArg_6 = 0;
547
+ matchValue_6 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_6, (v_35: float64): void => {
548
+ outArg_6 = v_35;
549
+ })), outArg_6] as [boolean, float64]);
550
+ return matchValue_6[0] ? (VitalsField_isValidOxygenSat(matchValue_6[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>(("Oxygen saturation must be between 70-100%, got " + matchValue_6[1].toString()) + "%")) : FSharpResult$2_Error<void, string>("Oxygen saturation must be a valid number");
551
+ }
552
+ case "pain_scale": {
553
+ let matchValue_7: [boolean, float64];
554
+ let outArg_7 = 0;
555
+ matchValue_7 = ([tryParse(value_1, new FSharpRef<float64>((): float64 => outArg_7, (v_39: float64): void => {
556
+ outArg_7 = v_39;
557
+ })), outArg_7] as [boolean, float64]);
558
+ return matchValue_7[0] ? (VitalsField_isValidPainScale(matchValue_7[1]) ? FSharpResult$2_Ok<void, string>(undefined) : FSharpResult$2_Error<void, string>("Pain scale must be between 0-10, got " + matchValue_7[1].toString())) : FSharpResult$2_Error<void, string>("Pain scale must be a valid number");
559
+ }
560
+ default:
561
+ return FSharpResult$2_Error<void, string>("Unknown property: " + propertyName_2);
562
+ }
563
+ }, (fieldValue_3: Shared_FieldValue_$union): FSharpList<Shared_PluginDataProperty> => {
564
+ switch (fieldValue_3.tag) {
565
+ case /* PluginData */ 3:
566
+ return fieldValue_3.fields[0];
567
+ case /* Single */ 0: {
568
+ const vitalsData_3: VitalsField_VitalsData = VitalsField_parseVitalsData(fieldValue_3.fields[0].Value);
569
+ return toList<Shared_PluginDataProperty>(delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Temperature != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Temperature, "temperature", "float", value_140(vitalsData_3.Temperature).toString(), "Temperature", "°F", "Body temperature in Fahrenheit")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.SystolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_SystolicBP, "systolic_bp", "float", value_140(vitalsData_3.SystolicBP).toString(), "Systolic BP", "mmHg", "Systolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.DiastolicBP != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_DiastolicBP, "diastolic_bp", "float", value_140(vitalsData_3.DiastolicBP).toString(), "Diastolic BP", "mmHg", "Diastolic blood pressure")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Pulse != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Pulse, "pulse", "float", value_140(vitalsData_3.Pulse).toString(), "Pulse Rate", "BPM", "Heart rate in beats per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.Respiration != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_Respiration, "respiration", "float", value_140(vitalsData_3.Respiration).toString(), "Respiration Rate", "RPM", "Respiratory rate per minute")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => append<Shared_PluginDataProperty>((vitalsData_3.OxygenSaturation != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_OxygenSaturation, "oxygen_saturation", "float", value_140(vitalsData_3.OxygenSaturation).toString(), "O2 Saturation", "%", "Oxygen saturation percentage")) : empty<Shared_PluginDataProperty>(), delay<Shared_PluginDataProperty>((): Iterable<Shared_PluginDataProperty> => ((vitalsData_3.PainScale != null) ? singleton<Shared_PluginDataProperty>(new Shared_PluginDataProperty(Form_PropertyKeys_PainScale, "pain_scale", "float", value_140(vitalsData_3.PainScale).toString(), "Pain Level", "/10", "Pain scale from 0 to 10")) : empty<Shared_PluginDataProperty>())))))))))))))));
570
+ }
571
+ default:
572
+ return empty_1<Shared_PluginDataProperty>();
573
+ }
574
+ });
575
+
576
+ export function Form_designerPreview(props: RenderPreviewProps$1<Spec_FieldType_$union>): ReactElement {
577
+ let elems_4: Iterable<ReactElement>, elems_3: Iterable<ReactElement>, elems: Iterable<ReactElement>, elems_1: Iterable<ReactElement>, elems_2: Iterable<ReactElement>;
578
+ const children: Iterable<ReactElement> = [createElement<any>("div", createObj(Helpers_combineClasses("box", ofArray([["style", {
579
+ border: (((1 + "px ") + "dashed") + " ") + "hsl(0, 0%, 86%)",
580
+ backgroundColor: "hsl(0, 0%, 98%)",
581
+ textAlign: "center",
582
+ padding: 20,
583
+ }] as [string, any], (elems_4 = [createElement<any>("div", {
584
+ className: "has-text-weight-bold",
585
+ children: "🩺 Vital Signs",
586
+ style: {
587
+ marginBottom: 10,
588
+ },
589
+ }), createElement<any>("div", createObj(Helpers_combineClasses("columns", ofArray([["className", "is-gapless"] as [string, any], ["className", "is-mobile"] as [string, any], (elems_3 = [createElement<any>("div", createObj(Helpers_combineClasses("column", singleton_1((elems = [createElement<any>("input", createObj(cons(["type", "text"] as [string, any], Helpers_combineClasses("input", ofArray([["readOnly", true] as [string, any], ["placeholder", "Temp °F"] as [string, any], ["style", {
590
+ fontSize: 10 + "px",
591
+ }] as [string, any]])))))], ["children", reactApi.Children.toArray(Array.from(elems))] as [string, any]))))), createElement<any>("div", createObj(Helpers_combineClasses("column", singleton_1((elems_1 = [createElement<any>("input", createObj(cons(["type", "text"] as [string, any], Helpers_combineClasses("input", ofArray([["readOnly", true] as [string, any], ["placeholder", "BP"] as [string, any], ["style", {
592
+ fontSize: 10 + "px",
593
+ }] as [string, any]])))))], ["children", reactApi.Children.toArray(Array.from(elems_1))] as [string, any]))))), createElement<any>("div", createObj(Helpers_combineClasses("column", singleton_1((elems_2 = [createElement<any>("input", createObj(cons(["type", "text"] as [string, any], Helpers_combineClasses("input", ofArray([["readOnly", true] as [string, any], ["placeholder", "Pulse"] as [string, any], ["style", {
594
+ fontSize: 10 + "px",
595
+ }] as [string, any]])))))], ["children", reactApi.Children.toArray(Array.from(elems_2))] as [string, any])))))], ["children", reactApi.Children.toArray(Array.from(elems_3))] as [string, any])])))), createElement<any>("div", {
596
+ style: {
597
+ fontSize: 10 + "px",
598
+ color: "hsl(0, 0%, 60%)",
599
+ marginTop: 5,
600
+ },
601
+ children: "Clinical-grade vital signs capture with validation",
602
+ })], ["children", reactApi.Children.toArray(Array.from(elems_4))] as [string, any])]))))];
603
+ return createElement<any>("div", {
604
+ className: "control",
605
+ children: reactApi.Children.toArray(Array.from(children)),
606
+ });
607
+ }
608
+
609
+ export function Form_markdownRenderer(field: Spec_FormField$1<Spec_FieldType_$union>, fieldDetails: FieldDetails): string {
610
+ let value: string;
611
+ const matchValue: Shared_FieldValue_$union = fieldDetails.FieldValue;
612
+ value = ((matchValue.tag === /* Single */ 0) ? matchValue.fields[0].Value : "");
613
+ if (isNullOrWhiteSpace(value)) {
614
+ return `**${field.Label}:** *[No vital signs recorded]*`;
615
+ }
616
+ else {
617
+ try {
618
+ const vitalsData: VitalsField_VitalsData = VitalsField_parseVitalsData(value);
619
+ if (exists<Option<float64>>((option: Option<float64>): boolean => (option != null), ofArray([vitalsData.Temperature, vitalsData.SystolicBP, vitalsData.DiastolicBP, vitalsData.Pulse, vitalsData.Respiration, vitalsData.OxygenSaturation, vitalsData.PainScale]))) {
620
+ let rows: FSharpList<string> = ofArray([("**" + field.Label) + "** 🩺", "", "| Vital Sign | Value | Status |", "|------------|-------|--------|"]);
621
+ if (vitalsData.Temperature != null) {
622
+ const temp: float64 = value_140(vitalsData.Temperature);
623
+ const status: string = VitalsField_isCriticalTemperature(temp) ? "🚨 CRITICAL" : (!VitalsField_isValidTemperature(temp) ? "⚠️ ABNORMAL" : (!VitalsField_isNormalTemperature(temp) ? "⚠️ ABNORMAL" : "✅ Normal"));
624
+ rows = append_1(rows, singleton_1(((("| **Temperature** | " + toText(printf("%.1f"))(temp)) + "°F | ") + status) + " |"));
625
+ }
626
+ if ((vitalsData.SystolicBP != null) && (vitalsData.DiastolicBP != null)) {
627
+ const sys: float64 = value_140(vitalsData.SystolicBP);
628
+ const dia: float64 = value_140(vitalsData.DiastolicBP);
629
+ const status_1: string = (VitalsField_isCriticalSystolicBP(sys) ? true : VitalsField_isCriticalDiastolicBP(dia)) ? "🚨 CRITICAL" : ((!VitalsField_isValidSystolicBP(sys) ? true : !VitalsField_isValidDiastolicBP(dia)) ? "⚠️ ABNORMAL" : "✅ Normal");
630
+ rows = append_1(rows, singleton_1(((((("| **Blood Pressure** | " + toText(printf("%.0f"))(sys)) + "/") + toText(printf("%.0f"))(dia)) + " mmHg | ") + status_1) + " |"));
631
+ }
632
+ if (vitalsData.Pulse != null) {
633
+ const pulse: float64 = value_140(vitalsData.Pulse);
634
+ const status_2: string = VitalsField_isCriticalPulse(pulse) ? "🚨 CRITICAL" : (!VitalsField_isValidPulse(pulse) ? "⚠️ ABNORMAL" : "✅ Normal");
635
+ rows = append_1(rows, singleton_1(((("| **Pulse Rate** | " + toText(printf("%.0f"))(pulse)) + " BPM | ") + status_2) + " |"));
636
+ }
637
+ if (vitalsData.Respiration != null) {
638
+ const resp: float64 = value_140(vitalsData.Respiration);
639
+ const status_3: string = VitalsField_isCriticalRespiration(resp) ? "🚨 CRITICAL" : (!VitalsField_isValidRespiration(resp) ? "⚠️ ABNORMAL" : "✅ Normal");
640
+ rows = append_1(rows, singleton_1(((("| **Respiration** | " + toText(printf("%.0f"))(resp)) + " RPM | ") + status_3) + " |"));
641
+ }
642
+ if (vitalsData.OxygenSaturation != null) {
643
+ const sat: float64 = value_140(vitalsData.OxygenSaturation);
644
+ const status_4: string = VitalsField_isCriticalOxygenSat(sat) ? "🚨 CRITICAL" : (!VitalsField_isValidOxygenSat(sat) ? "⚠️ ABNORMAL" : "✅ Normal");
645
+ rows = append_1(rows, singleton_1(((("| **O2 Saturation** | " + toText(printf("%.0f"))(sat)) + "% | ") + status_4) + " |"));
646
+ }
647
+ if (vitalsData.PainScale != null) {
648
+ const pain: float64 = value_140(vitalsData.PainScale);
649
+ const status_5: string = (pain >= 7) ? "🔴 Severe" : ((pain >= 4) ? "🟡 Moderate" : "🟢 Mild");
650
+ rows = append_1(rows, singleton_1(((("| **Pain Scale** | " + toText(printf("%.0f"))(pain)) + "/10 | ") + status_5) + " |"));
651
+ }
652
+ rows = append_1(rows, ofArray(["", "> 📋 *Vital signs recorded with clinical validation and alerts*"]));
653
+ return join("\n", rows);
654
+ }
655
+ else {
656
+ return ("**" + field.Label) + ":** *[No complete vital signs recorded]*";
657
+ }
658
+ }
659
+ catch (ex: any) {
660
+ return ((("**" + field.Label) + ":** *[Error processing vital signs data: ") + ex.message) + "]*";
661
+ }
662
+ }
663
+ }
664
+
665
+ //# sourceMappingURL=VitalsField.ts.map