@getodk/xforms-engine 0.4.0 → 0.6.0

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 (392) hide show
  1. package/README.md +1 -1
  2. package/dist/client/BaseNode.d.ts +18 -3
  3. package/dist/client/BaseValueNode.d.ts +32 -0
  4. package/dist/client/EngineConfig.d.ts +49 -48
  5. package/dist/client/GroupNode.d.ts +1 -0
  6. package/dist/client/InputNode.d.ts +82 -0
  7. package/dist/client/ModelValueNode.d.ts +13 -7
  8. package/dist/client/NoteNode.d.ts +26 -9
  9. package/dist/client/RangeNode.d.ts +36 -0
  10. package/dist/client/RankNode.d.ts +46 -0
  11. package/dist/client/RootNode.d.ts +37 -7
  12. package/dist/client/SelectNode.d.ts +47 -25
  13. package/dist/client/SubtreeNode.d.ts +1 -0
  14. package/dist/client/TriggerNode.d.ts +10 -6
  15. package/dist/client/ValueType.d.ts +3 -0
  16. package/dist/client/constants.d.ts +50 -0
  17. package/dist/client/hierarchy.d.ts +8 -8
  18. package/dist/client/identity.d.ts +14 -0
  19. package/dist/client/node-types.d.ts +3 -2
  20. package/dist/client/resources.d.ts +93 -0
  21. package/dist/client/submission/SubmissionData.d.ts +7 -0
  22. package/dist/client/submission/SubmissionDefinition.d.ts +14 -0
  23. package/dist/client/submission/SubmissionInstanceFile.d.ts +6 -0
  24. package/dist/client/submission/SubmissionOptions.d.ts +23 -0
  25. package/dist/client/submission/SubmissionResult.d.ts +91 -0
  26. package/dist/client/submission/SubmissionState.d.ts +12 -0
  27. package/dist/client/unsupported/UnsupportedControlNode.d.ts +1 -3
  28. package/dist/client/validation.d.ts +2 -2
  29. package/dist/error/ErrorProductionDesignPendingError.d.ts +7 -0
  30. package/dist/error/RankMissingValueError.d.ts +3 -0
  31. package/dist/error/RankValueTypeError.d.ts +6 -0
  32. package/dist/error/SelectValueTypeError.d.ts +15 -0
  33. package/dist/error/ValueTypeInvariantError.d.ts +17 -0
  34. package/dist/error/XFormsSpecViolationError.d.ts +2 -0
  35. package/dist/error/XPathFunctionalityError.d.ts +14 -0
  36. package/dist/error/XPathFunctionalityNotSupportedError.d.ts +7 -0
  37. package/dist/error/XPathFunctionalityPendingError.d.ts +7 -0
  38. package/dist/index.d.ts +12 -4
  39. package/dist/index.js +17864 -14655
  40. package/dist/index.js.map +1 -1
  41. package/dist/instance/Group.d.ts +10 -4
  42. package/dist/instance/InputControl.d.ts +38 -0
  43. package/dist/instance/ModelValue.d.ts +17 -25
  44. package/dist/instance/Note.d.ts +16 -21
  45. package/dist/instance/PrimaryInstance.d.ts +85 -0
  46. package/dist/instance/RangeControl.d.ts +34 -0
  47. package/dist/instance/RankControl.d.ts +40 -0
  48. package/dist/instance/Root.d.ts +30 -25
  49. package/dist/instance/SelectControl.d.ts +66 -0
  50. package/dist/instance/Subtree.d.ts +11 -5
  51. package/dist/instance/TriggerControl.d.ts +13 -19
  52. package/dist/instance/abstract/DescendantNode.d.ts +32 -25
  53. package/dist/instance/abstract/InstanceNode.d.ts +52 -30
  54. package/dist/instance/abstract/UnsupportedControl.d.ts +11 -3
  55. package/dist/instance/abstract/ValueNode.d.ts +47 -0
  56. package/dist/instance/hierarchy.d.ts +13 -12
  57. package/dist/instance/identity.d.ts +2 -7
  58. package/dist/instance/internal-api/EvaluationContext.d.ts +53 -12
  59. package/dist/instance/internal-api/InstanceConfig.d.ts +8 -2
  60. package/dist/instance/internal-api/InstanceValueContext.d.ts +22 -0
  61. package/dist/instance/internal-api/PrimaryInstanceDocument.d.ts +36 -0
  62. package/dist/instance/internal-api/TranslationContext.d.ts +3 -2
  63. package/dist/instance/internal-api/ValidationContext.d.ts +3 -4
  64. package/dist/instance/internal-api/ValueContext.d.ts +2 -1
  65. package/dist/instance/internal-api/submission/ClientReactiveSubmittableInstance.d.ts +14 -0
  66. package/dist/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.d.ts +32 -0
  67. package/dist/instance/internal-api/submission/ClientReactiveSubmittableParentNode.d.ts +19 -0
  68. package/dist/instance/internal-api/submission/ClientReactiveSubmittableValueNode.d.ts +18 -0
  69. package/dist/instance/repeat/BaseRepeatRange.d.ts +40 -83
  70. package/dist/instance/repeat/RepeatInstance.d.ts +12 -29
  71. package/dist/instance/repeat/RepeatRangeControlled.d.ts +2 -2
  72. package/dist/instance/repeat/RepeatRangeUncontrolled.d.ts +2 -2
  73. package/dist/instance/resource.d.ts +1 -1
  74. package/dist/instance/text/TextRange.d.ts +1 -1
  75. package/dist/instance/unsupported/UploadControl.d.ts +3 -1
  76. package/dist/integration/xpath/EngineXPathEvaluator.d.ts +14 -0
  77. package/dist/integration/xpath/adapter/XFormsXPathNode.d.ts +71 -0
  78. package/dist/integration/xpath/adapter/engineDOMAdapter.d.ts +5 -0
  79. package/dist/integration/xpath/adapter/kind.d.ts +32 -0
  80. package/dist/integration/xpath/adapter/names.d.ts +6 -0
  81. package/dist/integration/xpath/adapter/traversal.d.ts +26 -0
  82. package/dist/integration/xpath/adapter/values.d.ts +2 -0
  83. package/dist/integration/xpath/static-dom/StaticAttribute.d.ts +26 -0
  84. package/dist/integration/xpath/static-dom/StaticDocument.d.ts +15 -0
  85. package/dist/integration/xpath/static-dom/StaticElement.d.ts +48 -0
  86. package/dist/integration/xpath/static-dom/StaticNode.d.ts +33 -0
  87. package/dist/integration/xpath/static-dom/StaticText.d.ts +16 -0
  88. package/dist/lib/client-reactivity/submission/createInstanceSubmissionState.d.ts +3 -0
  89. package/dist/lib/client-reactivity/submission/createLeafNodeSubmissionState.d.ts +3 -0
  90. package/dist/lib/client-reactivity/submission/createNodeRangeSubmissionState.d.ts +4 -0
  91. package/dist/lib/client-reactivity/submission/createParentNodeSubmissionState.d.ts +4 -0
  92. package/dist/lib/client-reactivity/submission/createRootSubmissionState.d.ts +3 -0
  93. package/dist/lib/client-reactivity/submission/createValueNodeSubmissionState.d.ts +3 -0
  94. package/dist/lib/client-reactivity/submission/prepareSubmission.d.ts +8 -0
  95. package/dist/lib/codecs/DecimalValueCodec.d.ts +6 -0
  96. package/dist/lib/codecs/Geopoint/Geopoint.d.ts +48 -0
  97. package/dist/lib/codecs/Geopoint/GeopointValueCodec.d.ts +5 -0
  98. package/dist/lib/codecs/IntValueCodec.d.ts +6 -0
  99. package/dist/lib/codecs/NoteCodec.d.ts +8 -0
  100. package/dist/lib/codecs/RangeCodec.d.ts +8 -0
  101. package/dist/lib/codecs/StringValueCodec.d.ts +4 -0
  102. package/dist/lib/codecs/TriggerCodec.d.ts +7 -0
  103. package/dist/lib/codecs/ValueArrayCodec.d.ts +11 -0
  104. package/dist/lib/codecs/ValueCodec.d.ts +30 -0
  105. package/dist/lib/codecs/ValueTypePlaceholderCodec.d.ts +12 -0
  106. package/dist/lib/codecs/getNoteCodec.d.ts +3 -0
  107. package/dist/lib/codecs/getSelectCodec.d.ts +5 -0
  108. package/dist/lib/codecs/getSharedValueCodec.d.ts +48 -0
  109. package/dist/lib/codecs/items/BaseItemCodec.d.ts +9 -0
  110. package/dist/lib/codecs/items/MultipleValueItemCodec.d.ts +14 -0
  111. package/dist/lib/codecs/items/SingleValueItemCodec.d.ts +24 -0
  112. package/dist/lib/dom/query.d.ts +4 -2
  113. package/dist/lib/names/NamespaceDeclaration.d.ts +45 -0
  114. package/dist/lib/names/NamespaceDeclarationMap.d.ts +137 -0
  115. package/dist/lib/names/NamespaceURL.d.ts +30 -0
  116. package/dist/lib/names/QualifiedName.d.ts +113 -0
  117. package/dist/lib/number-parsers.d.ts +2 -0
  118. package/dist/lib/reactivity/createChildrenState.d.ts +7 -5
  119. package/dist/lib/reactivity/createComputedExpression.d.ts +18 -5
  120. package/dist/lib/reactivity/createInstanceValueState.d.ts +40 -0
  121. package/dist/lib/reactivity/createItemCollection.d.ts +21 -0
  122. package/dist/lib/reactivity/createNoteReadonlyThunk.d.ts +2 -2
  123. package/dist/lib/reactivity/createTranslationState.d.ts +19 -0
  124. package/dist/lib/reactivity/createValueState.d.ts +6 -10
  125. package/dist/lib/reactivity/materializeCurrentStateChildren.d.ts +4 -4
  126. package/dist/lib/xml-serialization.d.ts +50 -0
  127. package/dist/parse/XFormDOM.d.ts +18 -7
  128. package/dist/parse/XFormDefinition.d.ts +1 -2
  129. package/dist/parse/attachments/FormAttachmentResource.d.ts +27 -0
  130. package/dist/parse/body/BodyDefinition.d.ts +4 -4
  131. package/dist/parse/body/RepeatElementDefinition.d.ts +1 -1
  132. package/dist/parse/body/appearance/inputAppearanceParser.d.ts +1 -1
  133. package/dist/parse/body/appearance/rangeAppearanceParser.d.ts +3 -0
  134. package/dist/parse/body/control/{InputDefinition.d.ts → InputControlDefinition.d.ts} +4 -1
  135. package/dist/parse/body/control/ItemDefinition.d.ts +14 -0
  136. package/dist/parse/body/control/ItemsetDefinition.d.ts +18 -0
  137. package/dist/parse/body/control/RangeControlDefinition.d.ts +31 -2
  138. package/dist/parse/body/control/RankControlDefinition.d.ts +7 -3
  139. package/dist/parse/body/control/{select/SelectDefinition.d.ts → SelectControlDefinition.d.ts} +9 -9
  140. package/dist/parse/expression/ItemsetNodesetExpression.d.ts +1 -1
  141. package/dist/parse/expression/ItemsetValueExpression.d.ts +1 -1
  142. package/dist/parse/expression/abstract/DependencyContext.d.ts +0 -5
  143. package/dist/parse/expression/abstract/DependentExpression.d.ts +2 -3
  144. package/dist/parse/model/BindDefinition.d.ts +6 -5
  145. package/dist/parse/model/BindPreloadDefinition.d.ts +42 -0
  146. package/dist/parse/model/BindTypeDefinition.d.ts +20 -0
  147. package/dist/parse/model/DescendentNodeDefinition.d.ts +4 -14
  148. package/dist/parse/model/FormSubmissionDefinition.d.ts +8 -0
  149. package/dist/parse/model/ItextTranslation/ItextTranslationDefinition.d.ts +4 -0
  150. package/dist/parse/model/ItextTranslation/ItextTranslationRootDefinition.d.ts +9 -0
  151. package/dist/parse/model/ItextTranslation/ItextTranslationsDefinition.d.ts +8 -0
  152. package/dist/parse/model/LeafNodeDefinition.d.ts +9 -4
  153. package/dist/parse/model/ModelBindMap.d.ts +1 -1
  154. package/dist/parse/model/ModelDefinition.d.ts +2 -0
  155. package/dist/parse/model/NodeDefinition.d.ts +16 -20
  156. package/dist/parse/model/NoteNodeDefinition.d.ts +9 -8
  157. package/dist/parse/model/RangeNodeDefinition.d.ts +41 -0
  158. package/dist/parse/model/RepeatInstanceDefinition.d.ts +7 -4
  159. package/dist/parse/model/RepeatRangeDefinition.d.ts +7 -4
  160. package/dist/parse/model/RepeatTemplateDefinition.d.ts +7 -4
  161. package/dist/parse/model/RootAttributeDefinition.d.ts +24 -0
  162. package/dist/parse/model/RootAttributeMap.d.ts +23 -0
  163. package/dist/parse/model/RootDefinition.d.ts +12 -9
  164. package/dist/parse/model/SecondaryInstance/SecondaryInstanceDefinition.d.ts +4 -0
  165. package/dist/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.d.ts +7 -0
  166. package/dist/parse/model/SecondaryInstance/SecondaryInstancesDefinition.d.ts +13 -0
  167. package/dist/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.d.ts +14 -0
  168. package/dist/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.d.ts +22 -0
  169. package/dist/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceResource.d.ts +23 -0
  170. package/dist/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceSource.d.ts +9 -0
  171. package/dist/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.d.ts +5 -0
  172. package/dist/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.d.ts +7 -0
  173. package/dist/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.d.ts +13 -0
  174. package/dist/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.d.ts +12 -0
  175. package/dist/parse/model/SubtreeDefinition.d.ts +7 -4
  176. package/dist/parse/shared/parseStaticDocumentFromDOMSubtree.d.ts +23 -0
  177. package/dist/parse/text/ItemLabelDefinition.d.ts +1 -1
  178. package/dist/parse/text/ItemsetLabelDefinition.d.ts +2 -2
  179. package/dist/parse/text/abstract/TextElementDefinition.d.ts +1 -1
  180. package/dist/parse/text/abstract/TextRangeDefinition.d.ts +0 -2
  181. package/dist/parse/xpath/semantic-analysis.d.ts +6 -3
  182. package/dist/solid.js +15437 -12246
  183. package/dist/solid.js.map +1 -1
  184. package/package.json +18 -13
  185. package/src/client/BaseNode.ts +21 -6
  186. package/src/client/BaseValueNode.ts +35 -0
  187. package/src/client/EngineConfig.ts +52 -51
  188. package/src/client/GroupNode.ts +1 -0
  189. package/src/client/InputNode.ts +113 -0
  190. package/src/client/ModelValueNode.ts +31 -7
  191. package/src/client/NoteNode.ts +45 -9
  192. package/src/client/RangeNode.ts +51 -0
  193. package/src/client/RankNode.ts +54 -0
  194. package/src/client/RootNode.ts +43 -7
  195. package/src/client/SelectNode.ts +53 -26
  196. package/src/client/SubtreeNode.ts +1 -0
  197. package/src/client/TriggerNode.ts +12 -6
  198. package/src/client/ValueType.ts +4 -0
  199. package/src/client/constants.ts +67 -0
  200. package/src/client/hierarchy.ts +12 -13
  201. package/src/client/identity.ts +16 -0
  202. package/src/client/node-types.ts +13 -7
  203. package/src/client/resources.ts +118 -0
  204. package/src/client/submission/SubmissionData.ts +12 -0
  205. package/src/client/submission/SubmissionDefinition.ts +16 -0
  206. package/src/client/submission/SubmissionInstanceFile.ts +9 -0
  207. package/src/client/submission/SubmissionOptions.ts +28 -0
  208. package/src/client/submission/SubmissionResult.ts +124 -0
  209. package/src/client/submission/SubmissionState.ts +14 -0
  210. package/src/client/unsupported/UnsupportedControlNode.ts +2 -6
  211. package/src/client/validation.ts +2 -2
  212. package/src/error/ErrorProductionDesignPendingError.ts +6 -0
  213. package/src/error/RankMissingValueError.ts +5 -0
  214. package/src/error/RankValueTypeError.ts +13 -0
  215. package/src/error/SelectValueTypeError.ts +22 -0
  216. package/src/error/ValueTypeInvariantError.ts +22 -0
  217. package/src/error/XFormsSpecViolationError.ts +1 -0
  218. package/src/error/XPathFunctionalityError.ts +26 -0
  219. package/src/error/XPathFunctionalityNotSupportedError.ts +18 -0
  220. package/src/error/XPathFunctionalityPendingError.ts +18 -0
  221. package/src/index.ts +12 -13
  222. package/src/instance/Group.ts +18 -5
  223. package/src/instance/InputControl.ts +159 -0
  224. package/src/instance/ModelValue.ts +48 -53
  225. package/src/instance/Note.ts +40 -49
  226. package/src/instance/PrimaryInstance.ts +245 -0
  227. package/src/instance/RangeControl.ts +113 -0
  228. package/src/instance/RankControl.ts +199 -0
  229. package/src/instance/Root.ts +63 -134
  230. package/src/instance/SelectControl.ts +219 -0
  231. package/src/instance/Subtree.ts +20 -7
  232. package/src/instance/TriggerControl.ts +44 -66
  233. package/src/instance/abstract/DescendantNode.ts +91 -51
  234. package/src/instance/abstract/InstanceNode.ts +113 -107
  235. package/src/instance/abstract/UnsupportedControl.ts +29 -5
  236. package/src/instance/abstract/ValueNode.ts +128 -0
  237. package/src/instance/children.ts +80 -40
  238. package/src/instance/hierarchy.ts +39 -30
  239. package/src/instance/identity.ts +3 -9
  240. package/src/instance/index.ts +25 -7
  241. package/src/instance/internal-api/EvaluationContext.ts +60 -13
  242. package/src/instance/internal-api/InstanceConfig.ts +9 -2
  243. package/src/instance/internal-api/InstanceValueContext.ts +26 -0
  244. package/src/instance/internal-api/PrimaryInstanceDocument.ts +53 -0
  245. package/src/instance/internal-api/TranslationContext.ts +3 -2
  246. package/src/instance/internal-api/ValidationContext.ts +3 -4
  247. package/src/instance/internal-api/ValueContext.ts +2 -1
  248. package/src/instance/internal-api/submission/ClientReactiveSubmittableInstance.ts +20 -0
  249. package/src/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.ts +43 -0
  250. package/src/instance/internal-api/submission/ClientReactiveSubmittableParentNode.ts +26 -0
  251. package/src/instance/internal-api/submission/ClientReactiveSubmittableValueNode.ts +24 -0
  252. package/src/instance/repeat/BaseRepeatRange.ts +52 -131
  253. package/src/instance/repeat/RepeatInstance.ts +21 -46
  254. package/src/instance/repeat/RepeatRangeControlled.ts +5 -5
  255. package/src/instance/repeat/RepeatRangeUncontrolled.ts +2 -4
  256. package/src/instance/resource.ts +5 -2
  257. package/src/instance/text/TextChunk.ts +1 -1
  258. package/src/instance/unsupported/UploadControl.ts +5 -1
  259. package/src/integration/xpath/EngineXPathEvaluator.ts +22 -0
  260. package/src/integration/xpath/adapter/XFormsXPathNode.ts +126 -0
  261. package/src/integration/xpath/adapter/engineDOMAdapter.ts +57 -0
  262. package/src/integration/xpath/adapter/kind.ts +114 -0
  263. package/src/integration/xpath/adapter/names.ts +148 -0
  264. package/src/integration/xpath/adapter/traversal.ts +229 -0
  265. package/src/integration/xpath/adapter/values.ts +5 -0
  266. package/src/integration/xpath/static-dom/StaticAttribute.ts +41 -0
  267. package/src/integration/xpath/static-dom/StaticDocument.ts +36 -0
  268. package/src/integration/xpath/static-dom/StaticElement.ts +119 -0
  269. package/src/integration/xpath/static-dom/StaticNode.ts +68 -0
  270. package/src/integration/xpath/static-dom/StaticText.ts +28 -0
  271. package/src/lib/client-reactivity/README.md +0 -0
  272. package/src/lib/client-reactivity/submission/createInstanceSubmissionState.ts +12 -0
  273. package/src/lib/client-reactivity/submission/createLeafNodeSubmissionState.ts +20 -0
  274. package/src/lib/client-reactivity/submission/createNodeRangeSubmissionState.ts +17 -0
  275. package/src/lib/client-reactivity/submission/createParentNodeSubmissionState.ts +22 -0
  276. package/src/lib/client-reactivity/submission/createRootSubmissionState.ts +19 -0
  277. package/src/lib/client-reactivity/submission/createValueNodeSubmissionState.ts +21 -0
  278. package/src/lib/client-reactivity/submission/prepareSubmission.ts +172 -0
  279. package/src/lib/codecs/DecimalValueCodec.ts +46 -0
  280. package/src/lib/codecs/Geopoint/Geopoint.ts +150 -0
  281. package/src/lib/codecs/Geopoint/GeopointValueCodec.ts +20 -0
  282. package/src/lib/codecs/IntValueCodec.ts +100 -0
  283. package/src/lib/codecs/NoteCodec.ts +32 -0
  284. package/src/lib/codecs/RangeCodec.ts +65 -0
  285. package/src/lib/codecs/StringValueCodec.ts +11 -0
  286. package/src/lib/codecs/TriggerCodec.ts +64 -0
  287. package/src/lib/codecs/ValueArrayCodec.ts +42 -0
  288. package/src/lib/codecs/ValueCodec.ts +106 -0
  289. package/src/lib/codecs/ValueTypePlaceholderCodec.ts +19 -0
  290. package/src/lib/codecs/getNoteCodec.ts +27 -0
  291. package/src/lib/codecs/getSelectCodec.ts +27 -0
  292. package/src/lib/codecs/getSharedValueCodec.ts +79 -0
  293. package/src/lib/codecs/items/BaseItemCodec.ts +20 -0
  294. package/src/lib/codecs/items/MultipleValueItemCodec.ts +28 -0
  295. package/src/lib/codecs/items/SingleValueItemCodec.ts +67 -0
  296. package/src/lib/dom/query.ts +8 -2
  297. package/src/lib/names/NamespaceDeclaration.ts +106 -0
  298. package/src/lib/names/NamespaceDeclarationMap.ts +228 -0
  299. package/src/lib/names/NamespaceURL.ts +44 -0
  300. package/src/lib/names/QualifiedName.ts +170 -0
  301. package/src/lib/number-parsers.ts +25 -0
  302. package/src/lib/reactivity/createChildrenState.ts +8 -6
  303. package/src/lib/reactivity/createComputedExpression.ts +57 -34
  304. package/src/lib/reactivity/createInstanceValueState.ts +216 -0
  305. package/src/lib/reactivity/createItemCollection.ts +173 -0
  306. package/src/lib/reactivity/createNoteReadonlyThunk.ts +12 -7
  307. package/src/lib/reactivity/createTranslationState.ts +61 -0
  308. package/src/lib/reactivity/createValueState.ts +62 -120
  309. package/src/lib/reactivity/materializeCurrentStateChildren.ts +7 -7
  310. package/src/lib/reactivity/text/createTextRange.ts +4 -3
  311. package/src/lib/reactivity/validation/createAggregatedViolations.ts +1 -1
  312. package/src/lib/reactivity/validation/createValidation.ts +2 -3
  313. package/src/lib/xml-serialization.ts +163 -0
  314. package/src/parse/XFormDOM.ts +231 -76
  315. package/src/parse/XFormDefinition.ts +2 -10
  316. package/src/parse/attachments/FormAttachmentResource.ts +40 -0
  317. package/src/parse/body/BodyDefinition.ts +7 -7
  318. package/src/parse/body/appearance/inputAppearanceParser.ts +1 -1
  319. package/src/parse/body/appearance/rangeAppearanceParser.ts +11 -0
  320. package/src/parse/body/control/InputControlDefinition.ts +29 -0
  321. package/src/parse/body/control/{select/ItemDefinition.ts → ItemDefinition.ts} +8 -6
  322. package/src/parse/body/control/{select/ItemsetDefinition.ts → ItemsetDefinition.ts} +11 -9
  323. package/src/parse/body/control/RangeControlDefinition.ts +91 -6
  324. package/src/parse/body/control/RankControlDefinition.ts +25 -7
  325. package/src/parse/body/control/{select/SelectDefinition.ts → SelectControlDefinition.ts} +9 -9
  326. package/src/parse/expression/ItemsetNodesetExpression.ts +1 -1
  327. package/src/parse/expression/ItemsetValueExpression.ts +1 -1
  328. package/src/parse/expression/abstract/DependencyContext.ts +0 -26
  329. package/src/parse/expression/abstract/DependentExpression.ts +2 -13
  330. package/src/parse/model/BindDefinition.ts +9 -8
  331. package/src/parse/model/BindPreloadDefinition.ts +100 -0
  332. package/src/parse/model/BindTypeDefinition.ts +175 -0
  333. package/src/parse/model/DescendentNodeDefinition.ts +7 -31
  334. package/src/parse/model/FormSubmissionDefinition.ts +44 -0
  335. package/src/parse/model/ItextTranslation/ItextTranslationDefinition.ts +4 -0
  336. package/src/parse/model/ItextTranslation/ItextTranslationRootDefinition.ts +42 -0
  337. package/src/parse/model/ItextTranslation/ItextTranslationsDefinition.ts +31 -0
  338. package/src/parse/model/LeafNodeDefinition.ts +15 -5
  339. package/src/parse/model/ModelBindMap.ts +6 -8
  340. package/src/parse/model/ModelDefinition.ts +6 -1
  341. package/src/parse/model/NodeDefinition.ts +24 -48
  342. package/src/parse/model/NoteNodeDefinition.ts +11 -10
  343. package/src/parse/model/RangeNodeDefinition.ts +118 -0
  344. package/src/parse/model/RepeatInstanceDefinition.ts +11 -7
  345. package/src/parse/model/RepeatRangeDefinition.ts +11 -7
  346. package/src/parse/model/RepeatTemplateDefinition.ts +11 -7
  347. package/src/parse/model/RootAttributeDefinition.ts +45 -0
  348. package/src/parse/model/RootAttributeMap.ts +44 -0
  349. package/src/parse/model/RootDefinition.ts +31 -29
  350. package/src/parse/model/SecondaryInstance/SecondaryInstanceDefinition.ts +4 -0
  351. package/src/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.ts +12 -0
  352. package/src/parse/model/SecondaryInstance/SecondaryInstancesDefinition.ts +102 -0
  353. package/src/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.ts +40 -0
  354. package/src/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.ts +288 -0
  355. package/src/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceResource.ts +222 -0
  356. package/src/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceSource.ts +22 -0
  357. package/src/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.ts +415 -0
  358. package/src/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.ts +19 -0
  359. package/src/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.ts +29 -0
  360. package/src/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.ts +32 -0
  361. package/src/parse/model/SubtreeDefinition.ts +12 -12
  362. package/src/parse/shared/parseStaticDocumentFromDOMSubtree.ts +149 -0
  363. package/src/parse/text/ItemLabelDefinition.ts +1 -1
  364. package/src/parse/text/ItemsetLabelDefinition.ts +2 -2
  365. package/src/parse/text/abstract/TextElementDefinition.ts +1 -1
  366. package/src/parse/text/abstract/TextRangeDefinition.ts +0 -6
  367. package/src/parse/xpath/semantic-analysis.ts +33 -3
  368. package/dist/client/StringNode.d.ts +0 -46
  369. package/dist/client/unsupported/RangeNode.d.ts +0 -9
  370. package/dist/client/unsupported/RankNode.d.ts +0 -9
  371. package/dist/instance/SelectField.d.ts +0 -50
  372. package/dist/instance/StringField.d.ts +0 -44
  373. package/dist/instance/internal-api/SubscribableDependency.d.ts +0 -59
  374. package/dist/instance/unsupported/RangeControl.d.ts +0 -4
  375. package/dist/instance/unsupported/RankControl.d.ts +0 -4
  376. package/dist/lib/reactivity/createSelectItems.d.ts +0 -16
  377. package/dist/parse/XFormDataType.d.ts +0 -25
  378. package/dist/parse/body/control/select/ItemDefinition.d.ts +0 -13
  379. package/dist/parse/body/control/select/ItemsetDefinition.d.ts +0 -17
  380. package/dist/parse/body/control/select/ItemsetNodesetContext.d.ts +0 -11
  381. package/src/client/StringNode.ts +0 -52
  382. package/src/client/unsupported/RangeNode.ts +0 -14
  383. package/src/client/unsupported/RankNode.ts +0 -14
  384. package/src/instance/SelectField.ts +0 -226
  385. package/src/instance/StringField.ts +0 -120
  386. package/src/instance/internal-api/SubscribableDependency.ts +0 -61
  387. package/src/instance/unsupported/RangeControl.ts +0 -5
  388. package/src/instance/unsupported/RankControl.ts +0 -5
  389. package/src/lib/reactivity/createSelectItems.ts +0 -168
  390. package/src/parse/XFormDataType.ts +0 -62
  391. package/src/parse/body/control/InputDefinition.ts +0 -22
  392. package/src/parse/body/control/select/ItemsetNodesetContext.ts +0 -26
@@ -1,8 +1,8 @@
1
1
  import type { LocalNamedElement } from '@getodk/common/types/dom.ts';
2
2
  import { getLabelElement } from '../../lib/dom/query.ts';
3
3
  import type { XFormDefinition } from '../../parse/XFormDefinition.ts';
4
- import type { ItemDefinition } from '../body/control/select/ItemDefinition.ts';
5
- import type { ItemsetDefinition } from '../body/control/select/ItemsetDefinition.ts';
4
+ import type { ItemDefinition } from '../body/control/ItemDefinition.ts';
5
+ import type { ItemsetDefinition } from '../body/control/ItemsetDefinition.ts';
6
6
  import { TextReferenceExpression } from '../expression/TextReferenceExpression.ts';
7
7
  import { TextTranslationExpression } from '../expression/TextTranslationExpression.ts';
8
8
  import type { RefAttributeChunk } from './abstract/TextElementDefinition.ts';
@@ -1,7 +1,7 @@
1
1
  import { isElementNode, isTextNode } from '@getodk/common/lib/dom/predicates.ts';
2
2
  import type { ElementTextRole } from '../../../client/TextRange.ts';
3
3
  import type { XFormDefinition } from '../../../parse/XFormDefinition.ts';
4
- import type { ItemDefinition } from '../../body/control/select/ItemDefinition.ts';
4
+ import type { ItemDefinition } from '../../body/control/ItemDefinition.ts';
5
5
  import { TextLiteralExpression } from '../../expression/TextLiteralExpression.ts';
6
6
  import { TextOutputExpression } from '../../expression/TextOutputExpression.ts';
7
7
  import { TextReferenceExpression } from '../../expression/TextReferenceExpression.ts';
@@ -2,7 +2,6 @@ import type { LocalNamedElement } from '@getodk/common/types/dom.ts';
2
2
  import type { TextRole } from '../../../client/TextRange.ts';
3
3
  import type { XFormDefinition } from '../../../parse/XFormDefinition.ts';
4
4
  import { DependencyContext } from '../../expression/abstract/DependencyContext.ts';
5
- import type { AnyDependentExpression } from '../../expression/abstract/DependentExpression.ts';
6
5
  import type { AnyTextChunkExpression } from '../../expression/abstract/TextChunkExpression.ts';
7
6
  import type { AnyMessageDefinition } from '../MessageDefinition.ts';
8
7
  import type { AnyTextElementDefinition } from './TextElementDefinition.ts';
@@ -52,11 +51,6 @@ export abstract class TextRangeDefinition<Role extends TextRole> extends Depende
52
51
  this.parentReference = ownerContext.parentReference;
53
52
  }
54
53
 
55
- override registerDependentExpression(expression: AnyDependentExpression): void {
56
- this.ownerContext.registerDependentExpression(expression);
57
- super.registerDependentExpression(expression);
58
- }
59
-
60
54
  toJSON(): object {
61
55
  const { form, ownerContext, ...rest } = this;
62
56
 
@@ -9,7 +9,9 @@ import type {
9
9
  FilterPathExprNode,
10
10
  FunctionCallNode,
11
11
  FunctionNameNode,
12
+ LocalPartNode,
12
13
  NumberNode,
14
+ PrefixNode,
13
15
  RelativeLocationPathNode,
14
16
  StringLiteralNode,
15
17
  } from '@getodk/xpath/static/grammar/SyntaxNode.js';
@@ -394,9 +396,10 @@ const findConstantExpressionNode = (expression: string): ConstantExpressionSynta
394
396
  }
395
397
  };
396
398
 
397
- type BrandedExpression<Expression extends string, Brand extends symbol> = Expression & {
398
- readonly [K in Brand]: true;
399
- };
399
+ // prettier-ignore
400
+ type BrandedExpression<Expression extends string, Brand extends symbol> =
401
+ & Expression
402
+ & Readonly<Record<Brand, true>>;
400
403
 
401
404
  const CONSTANT_EXPRESSION = Symbol('CONSTANT_EXPRESSION');
402
405
  type CONSTANT_EXPRESSION = typeof CONSTANT_EXPRESSION;
@@ -464,3 +467,30 @@ export const isConstantTruthyExpression = (
464
467
  throw new UnreachableError(syntaxNode);
465
468
  }
466
469
  };
470
+
471
+ interface QualifiedNameExpression {
472
+ readonly prefix: string;
473
+ readonly localPart: string;
474
+ }
475
+
476
+ export const parseQualifiedNameExpression = (
477
+ expression: string
478
+ ): QualifiedNameExpression | null => {
479
+ const { rootNode } = expressionParser.parse(expression);
480
+ const syntaxNode = findTypedPrincipalExpressionNode(['prefixed_name'], rootNode);
481
+
482
+ if (syntaxNode == null) {
483
+ return null;
484
+ }
485
+
486
+ const [prefixNode, localPartNode, ...rest] = syntaxNode.children;
487
+
488
+ prefixNode satisfies PrefixNode;
489
+ localPartNode satisfies LocalPartNode;
490
+ rest satisfies readonly [];
491
+
492
+ return {
493
+ prefix: prefixNode.text,
494
+ localPart: localPartNode.text,
495
+ };
496
+ };
@@ -1,46 +0,0 @@
1
- import { InputDefinition } from '../parse/body/control/InputDefinition.ts';
2
- import { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
3
- import { BaseNode, BaseNodeState } from './BaseNode.ts';
4
- import { NodeAppearances } from './NodeAppearances.ts';
5
- import { RootNode } from './RootNode.ts';
6
- import { GeneralParentNode } from './hierarchy.ts';
7
- import { LeafNodeValidationState } from './validation.ts';
8
- export interface StringNodeState extends BaseNodeState {
9
- get children(): null;
10
- get valueOptions(): null;
11
- /**
12
- * Reflects the current value of a {@link StringNode}. This value may be
13
- * populated when a form is loaded, and it may be updated by certain
14
- * computations defined by the form. It may also be updated by a client, using
15
- * the {@link StringNode.setValue} method.
16
- */
17
- get value(): string;
18
- }
19
- export interface StringDefinition extends LeafNodeDefinition {
20
- readonly bodyElement: InputDefinition;
21
- }
22
- export type StringNodeAppearances = NodeAppearances<StringDefinition>;
23
- /**
24
- * A node which can be assigned a string/text value. A string node **MAY**
25
- * correspond to form field defined as an XForms `<input>`, which a user-facing
26
- * client would likely present for a user to fill. It may not correspond to an
27
- * `<input>`, or necessarily have any presentational implications for a client
28
- * (for instance if the node is bound to an XForms `calculate` expression).
29
- */
30
- export interface StringNode extends BaseNode {
31
- readonly nodeType: 'string';
32
- readonly appearances: StringNodeAppearances;
33
- readonly definition: StringDefinition;
34
- readonly root: RootNode;
35
- readonly parent: GeneralParentNode;
36
- readonly currentState: StringNodeState;
37
- readonly validationState: LeafNodeValidationState;
38
- /**
39
- * For use by a client to update the value of a string node.
40
- *
41
- * @todo [how] should we express write restrictions to a client? E.g. what
42
- * happens when a string node is readonly, and a client attempts to call this
43
- * method?
44
- */
45
- setValue(value: string): RootNode;
46
- }
@@ -1,9 +0,0 @@
1
- import { RangeControlDefinition } from '../../parse/body/control/RangeControlDefinition.ts';
2
- import { UnsupportedControlDefinition, UnsupportedControlNode } from './UnsupportedControlNode.ts';
3
- export interface RangeNodeDefinition extends UnsupportedControlDefinition {
4
- readonly bodyElement: RangeControlDefinition;
5
- }
6
- export interface RangeNode extends UnsupportedControlNode {
7
- readonly nodeType: 'range';
8
- readonly definition: RangeNodeDefinition;
9
- }
@@ -1,9 +0,0 @@
1
- import { RankControlDefinition } from '../../parse/body/control/RankControlDefinition.ts';
2
- import { UnsupportedControlDefinition, UnsupportedControlNode } from './UnsupportedControlNode.ts';
3
- export interface RankNodeDefinition extends UnsupportedControlDefinition {
4
- readonly bodyElement: RankControlDefinition;
5
- }
6
- export interface RankNode extends UnsupportedControlNode {
7
- readonly nodeType: 'rank';
8
- readonly definition: RankNodeDefinition;
9
- }
@@ -1,50 +0,0 @@
1
- import { Accessor } from 'solid-js';
2
- import { SelectItem, SelectNode, SelectNodeAppearances } from '../client/SelectNode.ts';
3
- import { TextRange } from '../client/TextRange.ts';
4
- import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
5
- import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
6
- import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
7
- import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
8
- import { SimpleAtomicState } from '../lib/reactivity/types.ts';
9
- import { AnySelectDefinition } from '../parse/body/control/select/SelectDefinition.ts';
10
- import { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
11
- import { Root } from './Root.ts';
12
- import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
13
- import { GeneralParentNode } from './hierarchy.ts';
14
- import { EvaluationContext } from './internal-api/EvaluationContext.ts';
15
- import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
16
- import { ValidationContext } from './internal-api/ValidationContext.ts';
17
- import { ValueContext } from './internal-api/ValueContext.ts';
18
- export interface SelectFieldDefinition extends LeafNodeDefinition {
19
- readonly bodyElement: AnySelectDefinition;
20
- }
21
- interface SelectFieldStateSpec extends DescendantNodeStateSpec<readonly SelectItem[]> {
22
- readonly label: Accessor<TextRange<'label'> | null>;
23
- readonly hint: Accessor<TextRange<'hint'> | null>;
24
- readonly children: null;
25
- readonly value: SimpleAtomicState<readonly SelectItem[]>;
26
- readonly valueOptions: Accessor<readonly SelectItem[]>;
27
- }
28
- export declare class SelectField extends DescendantNode<SelectFieldDefinition, SelectFieldStateSpec, null> implements SelectNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<readonly SelectItem[]> {
29
- private readonly selectExclusive;
30
- private readonly validation;
31
- protected readonly state: SharedNodeState<SelectFieldStateSpec>;
32
- protected engineState: EngineState<SelectFieldStateSpec>;
33
- readonly nodeType = "select";
34
- readonly appearances: SelectNodeAppearances;
35
- readonly currentState: CurrentState<SelectFieldStateSpec>;
36
- get validationState(): LeafNodeValidationState;
37
- readonly encodeValue: (runtimeValue: readonly SelectItem[]) => string;
38
- readonly decodeValue: (instanceValue: string) => readonly SelectItem[];
39
- protected readonly getValueOptions: Accessor<readonly SelectItem[]>;
40
- constructor(parent: GeneralParentNode, definition: SelectFieldDefinition);
41
- protected getSelectItemsByValue(valueOptions?: readonly SelectItem[]): ReadonlyMap<string, SelectItem>;
42
- protected updateSelectedItemValues(values: readonly string[]): void;
43
- protected setSelectedItemValue(value: string | null): void;
44
- select(selectedItem: SelectItem): Root;
45
- deselect(deselectedItem: SelectItem): Root;
46
- getChildren(): readonly [];
47
- getViolation(): AnyViolation | null;
48
- isBlank(): boolean;
49
- }
50
- export {};
@@ -1,44 +0,0 @@
1
- import { Accessor } from 'solid-js';
2
- import { StringNode, StringNodeAppearances } from '../client/StringNode.ts';
3
- import { TextRange } from '../client/TextRange.ts';
4
- import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
5
- import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
6
- import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
7
- import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
8
- import { SimpleAtomicState } from '../lib/reactivity/types.ts';
9
- import { InputDefinition } from '../parse/body/control/InputDefinition.ts';
10
- import { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
11
- import { Root } from './Root.ts';
12
- import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
13
- import { GeneralParentNode } from './hierarchy.ts';
14
- import { EvaluationContext } from './internal-api/EvaluationContext.ts';
15
- import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
16
- import { ValidationContext } from './internal-api/ValidationContext.ts';
17
- import { ValueContext } from './internal-api/ValueContext.ts';
18
- export interface StringFieldDefinition extends LeafNodeDefinition {
19
- readonly bodyElement: InputDefinition;
20
- }
21
- interface StringFieldStateSpec extends DescendantNodeStateSpec<string> {
22
- readonly label: Accessor<TextRange<'label'> | null>;
23
- readonly hint: Accessor<TextRange<'hint'> | null>;
24
- readonly children: null;
25
- readonly value: SimpleAtomicState<string>;
26
- readonly valueOptions: null;
27
- }
28
- export declare class StringField extends DescendantNode<StringFieldDefinition, StringFieldStateSpec, null> implements StringNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<string> {
29
- private readonly validation;
30
- protected readonly state: SharedNodeState<StringFieldStateSpec>;
31
- protected engineState: EngineState<StringFieldStateSpec>;
32
- readonly nodeType = "string";
33
- readonly appearances: StringNodeAppearances;
34
- readonly currentState: CurrentState<StringFieldStateSpec>;
35
- get validationState(): LeafNodeValidationState;
36
- readonly encodeValue: (value: string) => string;
37
- readonly decodeValue: (value: string) => string;
38
- constructor(parent: GeneralParentNode, definition: StringFieldDefinition);
39
- getViolation(): AnyViolation | null;
40
- isBlank(): boolean;
41
- getChildren(): readonly [];
42
- setValue(value: string): Root;
43
- }
44
- export {};
@@ -1,59 +0,0 @@
1
- import { ReactiveScope } from '../../lib/reactivity/scope.ts';
2
- /**
3
- * Provides a common interface to explicitly establish a reactive subscription
4
- * to a form node, regardless of which node-specific details might trigger
5
- * reactive updates. This is primarily intended for use in coordination with a
6
- * node's {@link EvaluationContext} interface, so that computed expression
7
- * evaluations can be re-executed when their dependencies update, without
8
- * requiring a given evaluation to handle node-specific logic to determine
9
- * when/whether updates have occurred.
10
- *
11
- * @example Given a form with these bindings:
12
- *
13
- * ```xml
14
- * <bind nodeset="/data/field-1" />
15
- * <bind nodeset="/data/field-2" type="int" />
16
- * <bind nodeset="/data/group-a" relevant="/data/field-1 != ''" />
17
- * <bind nodeset="/data/group-a/field-a-1" calculate="/data/field-2 * 2" />
18
- * ```
19
- *
20
- * The field `/data/group-a/field-a-1`'s calculate has two dependencies:
21
- *
22
- * - `/data-field-2` (explicit)
23
- * - `/data/group-a` (implicit: non-relevance is inherited)
24
- *
25
- * (This is an oversimplification, but it helps to illustrate the concept.)
26
- *
27
- * The first dependency's subscription is clearly concerned with that leaf
28
- * node's value. In which case, that node's `subscribe` method should react to
29
- * updates to its value (e.g. its `currentState.value` or the internal reactive
30
- * representation thereof).
31
- *
32
- * Whereas the second dependency has no value (no parent nodes do); instead, the
33
- * subscription would be concerned with that node's relevance. In which case,
34
- * that node's `subscribe` method should react to updates to its relevance state
35
- * (e.g. its `currentState.relevant` or the internal reactive represeentation
36
- * thereof).
37
- *
38
- * @example Given a form with:
39
- *
40
- * ```xml
41
- * <!-- model -->
42
- * <bind nodeset="/data/repeat-a/field-a-1" calculate="position(..)" />
43
- * <!-- body -->
44
- * <repeat nodeset="/data/repeat-a" />
45
- * ```
46
- *
47
- * The field `/data/repeat-a/field-a-1` has a dependency on its containing
48
- * repeat instance. That node also doesn't have a value, and here the dynamic
49
- * aspect of the dependency is the node's current position. Here the node's
50
- * `subscribe` method should react to changes in its position (likely indirectly
51
- * by reading its `contextReference`).
52
- *
53
- * @see {@link EvaluationContext}
54
- * @see {@link EvaluationContext.contextReference}
55
- */
56
- export interface SubscribableDependency {
57
- readonly scope: ReactiveScope;
58
- readonly subscribe: VoidFunction;
59
- }
@@ -1,4 +0,0 @@
1
- import { UnsupportedControl } from '../abstract/UnsupportedControl.ts';
2
- export declare class RangeControl extends UnsupportedControl<'range'> {
3
- readonly nodeType = "range";
4
- }
@@ -1,4 +0,0 @@
1
- import { UnsupportedControl } from '../abstract/UnsupportedControl.ts';
2
- export declare class RankControl extends UnsupportedControl<'rank'> {
3
- readonly nodeType = "rank";
4
- }
@@ -1,16 +0,0 @@
1
- import { Accessor } from 'solid-js';
2
- import { SelectItem } from '../../index.ts';
3
- import { SelectField } from '../../instance/SelectField.ts';
4
- /**
5
- * Creates a reactive computation of a {@link SelectField}'s
6
- * {@link SelectItem}s, in support of the field's `valueOptions`.
7
- *
8
- * - Selects defined with static `<item>`s will compute to an corresponding
9
- * static list of items.
10
- * - Selects defined with a computed `<itemset>` will compute to a reactive list
11
- * of items.
12
- * - Items of both will produce {@link SelectItem.label | labels} reactive to
13
- * their appropriate dependencies (whether relative to the itemset item node,
14
- * referencing a form's `itext` translations, etc).
15
- */
16
- export declare const createSelectItems: (selectField: SelectField) => Accessor<readonly SelectItem[]>;
@@ -1,25 +0,0 @@
1
- import { CollectionValues } from '../../../common/types/collections/CollectionValues.ts';
2
- /**
3
- * Like JavaRosa. Presumably for explicit types which aren't impelemnted?
4
- */
5
- declare const UNSUPPORTED_DATA_TYPE = "UNSUPPORTED";
6
- export type UnsupportedDataType = typeof UNSUPPORTED_DATA_TYPE;
7
- /**
8
- * Like JavaRosa. Presumably for e.g. groups with explicit binds (`relevant` etc)?
9
- */
10
- export type NullDataType = 'NULL';
11
- /**
12
- * As in ODK XForms Spec.
13
- *
14
- * TODO: it's unclear why JavaRosa's `DataType` hews closely to the spec, but
15
- * has certain differences (e.g. string -> TEXT, int -> INTEGER). It's also
16
- * not immediately clear how additive types like CHOICE and MULTIPLE_ITEMS
17
- * square with the underlying spec types.
18
- */
19
- export declare const XFORM_SPEC_DATA_TYPES: readonly ["string", "int", "boolean", "decimal", "date", "time", "dateTime", "geopoint", "geotrace", "geoshape", "binary", "barcode", "intent"];
20
- export type XFormSpecDataType = CollectionValues<typeof XFORM_SPEC_DATA_TYPES>;
21
- export type XFormDataType = NullDataType | UnsupportedDataType | XFormSpecDataType;
22
- declare const DEFAULT_XFORM_DATA_TYPE = "string";
23
- export type DefaultXFormDataType = typeof DEFAULT_XFORM_DATA_TYPE;
24
- export declare const bindDataType: (bindType: string | null) => XFormDataType;
25
- export {};
@@ -1,13 +0,0 @@
1
- import { ItemElement } from '../../../../lib/dom/query.ts';
2
- import { ItemLabelDefinition } from '../../../text/ItemLabelDefinition.ts';
3
- import { XFormDefinition } from '../../../XFormDefinition.ts';
4
- import { BodyElementDefinition } from '../../BodyElementDefinition.ts';
5
- import { AnySelectDefinition } from './SelectDefinition.ts';
6
- export declare class ItemDefinition extends BodyElementDefinition<'item'> {
7
- readonly parent: AnySelectDefinition;
8
- readonly category = "support";
9
- readonly type = "item";
10
- readonly label: ItemLabelDefinition | null;
11
- readonly value: string;
12
- constructor(form: XFormDefinition, parent: AnySelectDefinition, element: ItemElement);
13
- }
@@ -1,17 +0,0 @@
1
- import { ItemsetElement } from '../../../../lib/dom/query.ts';
2
- import { ItemsetNodesetExpression } from '../../../expression/ItemsetNodesetExpression.ts';
3
- import { ItemsetValueExpression } from '../../../expression/ItemsetValueExpression.ts';
4
- import { ItemsetLabelDefinition } from '../../../text/ItemsetLabelDefinition.ts';
5
- import { XFormDefinition } from '../../../XFormDefinition.ts';
6
- import { BodyElementDefinition } from '../../BodyElementDefinition.ts';
7
- import { AnySelectDefinition } from './SelectDefinition.ts';
8
- export declare class ItemsetDefinition extends BodyElementDefinition<'itemset'> {
9
- readonly parent: AnySelectDefinition;
10
- readonly category = "support";
11
- readonly type = "itemset";
12
- readonly reference: string;
13
- readonly label: ItemsetLabelDefinition | null;
14
- readonly nodes: ItemsetNodesetExpression;
15
- readonly value: ItemsetValueExpression;
16
- constructor(form: XFormDefinition, parent: AnySelectDefinition, element: ItemsetElement);
17
- }
@@ -1,11 +0,0 @@
1
- import { DependencyContext } from '../../../expression/abstract/DependencyContext.ts';
2
- import { AnyDependentExpression } from '../../../expression/abstract/DependentExpression.ts';
3
- import { ItemsetDefinition } from './ItemsetDefinition.ts';
4
- export declare class ItemsetNodesetContext extends DependencyContext {
5
- protected readonly itemset: ItemsetDefinition;
6
- readonly parentReference: null;
7
- readonly reference: string;
8
- constructor(itemset: ItemsetDefinition, nodesetExpression: string);
9
- set isTranslated(value: true);
10
- registerDependentExpression(expression: AnyDependentExpression): void;
11
- }
@@ -1,52 +0,0 @@
1
- import type { InputDefinition } from '../parse/body/control/InputDefinition.ts';
2
- import type { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
3
- import type { BaseNode, BaseNodeState } from './BaseNode.ts';
4
- import type { NodeAppearances } from './NodeAppearances.ts';
5
- import type { RootNode } from './RootNode.ts';
6
- import type { GeneralParentNode } from './hierarchy.ts';
7
- import type { LeafNodeValidationState } from './validation.ts';
8
-
9
- export interface StringNodeState extends BaseNodeState {
10
- get children(): null;
11
- get valueOptions(): null;
12
-
13
- /**
14
- * Reflects the current value of a {@link StringNode}. This value may be
15
- * populated when a form is loaded, and it may be updated by certain
16
- * computations defined by the form. It may also be updated by a client, using
17
- * the {@link StringNode.setValue} method.
18
- */
19
- get value(): string;
20
- }
21
-
22
- export interface StringDefinition extends LeafNodeDefinition {
23
- readonly bodyElement: InputDefinition;
24
- }
25
-
26
- export type StringNodeAppearances = NodeAppearances<StringDefinition>;
27
-
28
- /**
29
- * A node which can be assigned a string/text value. A string node **MAY**
30
- * correspond to form field defined as an XForms `<input>`, which a user-facing
31
- * client would likely present for a user to fill. It may not correspond to an
32
- * `<input>`, or necessarily have any presentational implications for a client
33
- * (for instance if the node is bound to an XForms `calculate` expression).
34
- */
35
- export interface StringNode extends BaseNode {
36
- readonly nodeType: 'string';
37
- readonly appearances: StringNodeAppearances;
38
- readonly definition: StringDefinition;
39
- readonly root: RootNode;
40
- readonly parent: GeneralParentNode;
41
- readonly currentState: StringNodeState;
42
- readonly validationState: LeafNodeValidationState;
43
-
44
- /**
45
- * For use by a client to update the value of a string node.
46
- *
47
- * @todo [how] should we express write restrictions to a client? E.g. what
48
- * happens when a string node is readonly, and a client attempts to call this
49
- * method?
50
- */
51
- setValue(value: string): RootNode;
52
- }
@@ -1,14 +0,0 @@
1
- import type { RangeControlDefinition } from '../../parse/body/control/RangeControlDefinition.ts';
2
- import type {
3
- UnsupportedControlDefinition,
4
- UnsupportedControlNode,
5
- } from './UnsupportedControlNode.ts';
6
-
7
- export interface RangeNodeDefinition extends UnsupportedControlDefinition {
8
- readonly bodyElement: RangeControlDefinition;
9
- }
10
-
11
- export interface RangeNode extends UnsupportedControlNode {
12
- readonly nodeType: 'range';
13
- readonly definition: RangeNodeDefinition;
14
- }
@@ -1,14 +0,0 @@
1
- import type { RankControlDefinition } from '../../parse/body/control/RankControlDefinition.ts';
2
- import type {
3
- UnsupportedControlDefinition,
4
- UnsupportedControlNode,
5
- } from './UnsupportedControlNode.ts';
6
-
7
- export interface RankNodeDefinition extends UnsupportedControlDefinition {
8
- readonly bodyElement: RankControlDefinition;
9
- }
10
-
11
- export interface RankNode extends UnsupportedControlNode {
12
- readonly nodeType: 'rank';
13
- readonly definition: RankNodeDefinition;
14
- }