@getodk/xforms-engine 0.6.0 → 0.8.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 (332) hide show
  1. package/dist/client/BaseNode.d.ts +4 -4
  2. package/dist/client/BaseValueNode.d.ts +7 -3
  3. package/dist/client/RootNode.d.ts +20 -16
  4. package/dist/client/UploadNode.d.ts +53 -0
  5. package/dist/client/attachments/InstanceAttachmentMeta.d.ts +8 -0
  6. package/dist/client/attachments/InstanceAttachmentsConfig.d.ts +8 -0
  7. package/dist/client/constants.d.ts +11 -12
  8. package/dist/client/form/CreateFormInstance.d.ts +14 -0
  9. package/dist/client/form/EditFormInstance.d.ts +62 -0
  10. package/dist/client/form/FormInstance.d.ts +104 -0
  11. package/dist/client/form/FormInstanceConfig.d.ts +19 -0
  12. package/dist/client/form/FormResource.d.ts +1 -0
  13. package/dist/client/form/LoadForm.d.ts +79 -0
  14. package/dist/client/form/LoadFormResult.d.ts +67 -0
  15. package/dist/client/form/RestoreFormInstance.d.ts +8 -0
  16. package/dist/client/hierarchy.d.ts +4 -5
  17. package/dist/client/index.d.ts +40 -11
  18. package/dist/client/node-types.d.ts +2 -3
  19. package/dist/client/repeat/BaseRepeatRangeNode.d.ts +3 -4
  20. package/dist/client/repeat/RepeatInstanceNode.d.ts +4 -5
  21. package/dist/client/repeat/RepeatRangeControlledNode.d.ts +2 -2
  22. package/dist/client/repeat/RepeatRangeUncontrolledNode.d.ts +2 -2
  23. package/dist/client/resources.d.ts +1 -1
  24. package/dist/client/serialization/InstanceData.d.ts +14 -0
  25. package/dist/client/serialization/InstanceFile.d.ts +6 -0
  26. package/dist/client/serialization/InstancePayload.d.ts +93 -0
  27. package/dist/client/serialization/InstancePayloadOptions.d.ts +24 -0
  28. package/dist/client/serialization/InstanceState.d.ts +12 -0
  29. package/dist/client/submission/{SubmissionDefinition.d.ts → SubmissionMeta.d.ts} +1 -1
  30. package/dist/entrypoints/FormInstance.d.ts +20 -0
  31. package/dist/entrypoints/FormResult/BaseFormResult.d.ts +22 -0
  32. package/dist/entrypoints/FormResult/BaseInstantiableFormResult.d.ts +25 -0
  33. package/dist/entrypoints/FormResult/FormFailureResult.d.ts +17 -0
  34. package/dist/entrypoints/FormResult/FormSuccessResult.d.ts +15 -0
  35. package/dist/entrypoints/FormResult/FormWarningResult.d.ts +15 -0
  36. package/dist/entrypoints/createInstance.d.ts +9 -0
  37. package/dist/entrypoints/editInstance.d.ts +9 -0
  38. package/dist/entrypoints/index.d.ts +4 -0
  39. package/dist/entrypoints/loadForm.d.ts +4 -0
  40. package/dist/entrypoints/restoreInstance.d.ts +9 -0
  41. package/dist/error/LoadFormFailureError.d.ts +9 -0
  42. package/dist/error/MalformedInstanceDataError.d.ts +3 -0
  43. package/dist/error/TemplatedNodeAttributeSerializationError.d.ts +22 -0
  44. package/dist/error/UploadValueTypeError.d.ts +8 -0
  45. package/dist/index.d.ts +2 -33
  46. package/dist/index.js +8280 -6779
  47. package/dist/index.js.map +1 -1
  48. package/dist/instance/Group.d.ts +6 -5
  49. package/dist/instance/InputControl.d.ts +5 -4
  50. package/dist/instance/ModelValue.d.ts +5 -4
  51. package/dist/instance/Note.d.ts +4 -3
  52. package/dist/instance/PrimaryInstance.d.ts +34 -8
  53. package/dist/instance/RangeControl.d.ts +5 -4
  54. package/dist/instance/RankControl.d.ts +6 -5
  55. package/dist/instance/Root.d.ts +7 -9
  56. package/dist/instance/SelectControl.d.ts +4 -3
  57. package/dist/instance/Subtree.d.ts +6 -5
  58. package/dist/instance/TriggerControl.d.ts +4 -3
  59. package/dist/instance/UploadControl.d.ts +58 -0
  60. package/dist/instance/abstract/DescendantNode.d.ts +10 -1
  61. package/dist/instance/abstract/InstanceNode.d.ts +7 -4
  62. package/dist/instance/abstract/ValueNode.d.ts +7 -5
  63. package/dist/instance/attachments/InstanceAttachment.d.ts +42 -0
  64. package/dist/instance/attachments/InstanceAttachmentsState.d.ts +9 -0
  65. package/dist/instance/children/DescendantNodeInitOptions.d.ts +32 -0
  66. package/dist/instance/{children.d.ts → children/buildChildren.d.ts} +1 -1
  67. package/dist/instance/children/childrenInitOptions.d.ts +9 -0
  68. package/dist/instance/children/normalizeChildInitOptions.d.ts +2 -0
  69. package/dist/instance/hierarchy.d.ts +6 -7
  70. package/dist/instance/input/InitialInstanceState.d.ts +13 -0
  71. package/dist/instance/input/InstanceAttachmentMap.d.ts +19 -0
  72. package/dist/instance/internal-api/InstanceAttachmentContext.d.ts +19 -0
  73. package/dist/instance/internal-api/InstanceConfig.d.ts +4 -9
  74. package/dist/instance/internal-api/InstanceValueContext.d.ts +8 -1
  75. package/dist/instance/internal-api/serialization/ClientReactiveSerializableInstance.d.ts +16 -0
  76. package/dist/instance/internal-api/serialization/ClientReactiveSerializableLeafNode.d.ts +32 -0
  77. package/dist/instance/internal-api/serialization/ClientReactiveSerializableParentNode.d.ts +18 -0
  78. package/dist/instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.d.ts +13 -0
  79. package/dist/instance/internal-api/serialization/ClientReactiveSerializableValueNode.d.ts +21 -0
  80. package/dist/instance/repeat/BaseRepeatRange.d.ts +10 -8
  81. package/dist/instance/repeat/RepeatInstance.d.ts +10 -7
  82. package/dist/instance/repeat/RepeatRangeControlled.d.ts +27 -3
  83. package/dist/instance/repeat/RepeatRangeUncontrolled.d.ts +4 -3
  84. package/dist/instance/resource.d.ts +5 -1
  85. package/dist/integration/xpath/EngineXPathEvaluator.d.ts +2 -2
  86. package/dist/integration/xpath/adapter/kind.d.ts +4 -10
  87. package/dist/integration/xpath/static-dom/StaticAttribute.d.ts +4 -5
  88. package/dist/integration/xpath/static-dom/StaticDocument.d.ts +13 -10
  89. package/dist/integration/xpath/static-dom/StaticElement.d.ts +21 -22
  90. package/dist/integration/xpath/static-dom/StaticNode.d.ts +1 -1
  91. package/dist/integration/xpath/static-dom/StaticParentNode.d.ts +13 -0
  92. package/dist/integration/xpath/static-dom/staticNodeName.d.ts +3 -0
  93. package/dist/lib/client-reactivity/instance-state/createNodeRangeInstanceState.d.ts +4 -0
  94. package/dist/lib/client-reactivity/instance-state/createParentNodeInstanceState.d.ts +4 -0
  95. package/dist/lib/client-reactivity/instance-state/createPrimaryInstanceState.d.ts +3 -0
  96. package/dist/lib/client-reactivity/instance-state/createRootInstanceState.d.ts +3 -0
  97. package/dist/lib/client-reactivity/instance-state/createTemplatedNodeInstanceState.d.ts +6 -0
  98. package/dist/lib/client-reactivity/instance-state/createValueNodeInstanceState.d.ts +3 -0
  99. package/dist/lib/client-reactivity/instance-state/prepareInstancePayload.d.ts +8 -0
  100. package/dist/lib/names/UnprefixedXFormsName.d.ts +4 -0
  101. package/dist/lib/reactivity/createInstanceAttachment.d.ts +8 -0
  102. package/dist/lib/reactivity/createInstanceValueState.d.ts +2 -27
  103. package/dist/lib/resource-helpers.d.ts +2 -0
  104. package/dist/parse/XFormDOM.d.ts +1 -1
  105. package/dist/parse/body/BodyDefinition.d.ts +2 -1
  106. package/dist/parse/body/control/UploadControlDefinition.d.ts +2 -0
  107. package/dist/parse/model/BindDefinition.d.ts +1 -1
  108. package/dist/parse/model/BindTypeDefinition.d.ts +2 -7
  109. package/dist/parse/model/ItextTranslationsDefinition.d.ts +18 -0
  110. package/dist/parse/model/LeafNodeDefinition.d.ts +4 -5
  111. package/dist/parse/model/ModelBindMap.d.ts +1 -1
  112. package/dist/parse/model/ModelDefinition.d.ts +9 -2
  113. package/dist/parse/model/NodeDefinition.d.ts +18 -30
  114. package/dist/parse/model/NoteNodeDefinition.d.ts +3 -2
  115. package/dist/parse/model/RangeNodeDefinition.d.ts +2 -1
  116. package/dist/parse/model/RepeatDefinition.d.ts +62 -0
  117. package/dist/parse/model/RootAttributeDefinition.d.ts +1 -4
  118. package/dist/parse/model/RootAttributeMap.d.ts +2 -1
  119. package/dist/parse/model/RootDefinition.d.ts +7 -8
  120. package/dist/parse/model/SecondaryInstance/SecondaryInstancesDefinition.d.ts +15 -2
  121. package/dist/parse/model/SecondaryInstance/assertSecondaryInstanceDefinition.d.ts +5 -0
  122. package/dist/parse/model/SecondaryInstance/defineSecondaryInstance.d.ts +5 -0
  123. package/dist/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.d.ts +1 -7
  124. package/dist/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.d.ts +1 -1
  125. package/dist/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.d.ts +1 -1
  126. package/dist/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.d.ts +1 -1
  127. package/dist/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.d.ts +1 -1
  128. package/dist/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.d.ts +1 -1
  129. package/dist/parse/model/{FormSubmissionDefinition.d.ts → SubmissionDefinition.d.ts} +2 -2
  130. package/dist/parse/model/SubtreeDefinition.d.ts +4 -5
  131. package/dist/parse/model/nodeDefinitionMap.d.ts +5 -0
  132. package/dist/parse/shared/parseInstanceXML.d.ts +21 -0
  133. package/dist/parse/shared/parseStaticDocumentFromDOMSubtree.d.ts +4 -21
  134. package/dist/solid.js +8251 -6751
  135. package/dist/solid.js.map +1 -1
  136. package/package.json +15 -14
  137. package/src/client/BaseNode.ts +4 -4
  138. package/src/client/BaseValueNode.ts +7 -3
  139. package/src/client/RootNode.ts +32 -19
  140. package/src/client/UploadNode.ts +78 -0
  141. package/src/client/attachments/InstanceAttachmentMeta.ts +10 -0
  142. package/src/client/attachments/InstanceAttachmentsConfig.ts +13 -0
  143. package/src/client/constants.ts +12 -14
  144. package/src/client/form/CreateFormInstance.ts +19 -0
  145. package/src/client/form/EditFormInstance.ts +93 -0
  146. package/src/client/form/FormInstance.ts +114 -0
  147. package/src/client/form/FormInstanceConfig.ts +21 -0
  148. package/src/client/form/FormResource.ts +1 -0
  149. package/src/client/form/LoadForm.ts +92 -0
  150. package/src/client/form/LoadFormResult.ts +103 -0
  151. package/src/client/form/RestoreFormInstance.ts +14 -0
  152. package/src/client/hierarchy.ts +5 -8
  153. package/src/client/index.ts +49 -29
  154. package/src/client/node-types.ts +3 -8
  155. package/src/client/repeat/BaseRepeatRangeNode.ts +3 -4
  156. package/src/client/repeat/RepeatInstanceNode.ts +4 -8
  157. package/src/client/repeat/RepeatRangeControlledNode.ts +2 -2
  158. package/src/client/repeat/RepeatRangeUncontrolledNode.ts +2 -2
  159. package/src/client/resources.ts +2 -2
  160. package/src/client/serialization/InstanceData.ts +24 -0
  161. package/src/client/serialization/InstanceFile.ts +9 -0
  162. package/src/client/serialization/InstancePayload.ts +126 -0
  163. package/src/client/serialization/InstancePayloadOptions.ts +29 -0
  164. package/src/client/serialization/InstanceState.ts +14 -0
  165. package/src/client/submission/{SubmissionDefinition.ts → SubmissionMeta.ts} +1 -1
  166. package/src/entrypoints/FormInstance.ts +56 -0
  167. package/src/entrypoints/FormResult/BaseFormResult.ts +40 -0
  168. package/src/entrypoints/FormResult/BaseInstantiableFormResult.ts +109 -0
  169. package/src/entrypoints/FormResult/FormFailureResult.ts +44 -0
  170. package/src/entrypoints/FormResult/FormSuccessResult.ts +25 -0
  171. package/src/entrypoints/FormResult/FormWarningResult.ts +25 -0
  172. package/src/entrypoints/createInstance.ts +23 -0
  173. package/src/entrypoints/editInstance.ts +24 -0
  174. package/src/entrypoints/index.ts +4 -0
  175. package/src/entrypoints/loadForm.ts +154 -0
  176. package/src/entrypoints/restoreInstance.ts +27 -0
  177. package/src/error/LoadFormFailureError.ts +114 -0
  178. package/src/error/MalformedInstanceDataError.ts +3 -0
  179. package/src/error/TemplatedNodeAttributeSerializationError.ts +24 -0
  180. package/src/error/UploadValueTypeError.ts +13 -0
  181. package/src/index.ts +2 -46
  182. package/src/instance/Group.ts +16 -15
  183. package/src/instance/InputControl.ts +17 -11
  184. package/src/instance/ModelValue.ts +17 -11
  185. package/src/instance/Note.ts +10 -9
  186. package/src/instance/PrimaryInstance.ts +68 -31
  187. package/src/instance/RangeControl.ts +17 -11
  188. package/src/instance/RankControl.ts +28 -19
  189. package/src/instance/Root.ts +20 -31
  190. package/src/instance/SelectControl.ts +21 -12
  191. package/src/instance/Subtree.ts +16 -15
  192. package/src/instance/TriggerControl.ts +21 -12
  193. package/src/instance/UploadControl.ts +184 -0
  194. package/src/instance/abstract/DescendantNode.ts +12 -2
  195. package/src/instance/abstract/InstanceNode.ts +9 -5
  196. package/src/instance/abstract/ValueNode.ts +11 -13
  197. package/src/instance/attachments/InstanceAttachment.ts +69 -0
  198. package/src/instance/attachments/InstanceAttachmentsState.ts +18 -0
  199. package/src/instance/children/DescendantNodeInitOptions.ts +35 -0
  200. package/src/instance/{children.ts → children/buildChildren.ts} +57 -53
  201. package/src/instance/children/childrenInitOptions.ts +117 -0
  202. package/src/instance/children/normalizeChildInitOptions.ts +332 -0
  203. package/src/instance/hierarchy.ts +6 -9
  204. package/src/instance/input/InitialInstanceState.ts +108 -0
  205. package/src/instance/input/InstanceAttachmentMap.ts +154 -0
  206. package/src/instance/internal-api/InstanceAttachmentContext.ts +20 -0
  207. package/src/instance/internal-api/InstanceConfig.ts +6 -10
  208. package/src/instance/internal-api/InstanceValueContext.ts +9 -1
  209. package/src/instance/internal-api/serialization/ClientReactiveSerializableInstance.ts +22 -0
  210. package/src/instance/internal-api/serialization/ClientReactiveSerializableLeafNode.ts +43 -0
  211. package/src/instance/internal-api/serialization/ClientReactiveSerializableParentNode.ts +26 -0
  212. package/src/instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.ts +24 -0
  213. package/src/instance/internal-api/serialization/ClientReactiveSerializableValueNode.ts +28 -0
  214. package/src/instance/repeat/BaseRepeatRange.ts +19 -24
  215. package/src/instance/repeat/RepeatInstance.ts +26 -19
  216. package/src/instance/repeat/RepeatRangeControlled.ts +90 -17
  217. package/src/instance/repeat/RepeatRangeUncontrolled.ts +10 -9
  218. package/src/instance/resource.ts +14 -1
  219. package/src/integration/xpath/EngineXPathEvaluator.ts +2 -2
  220. package/src/integration/xpath/adapter/kind.ts +1 -28
  221. package/src/integration/xpath/adapter/traversal.ts +2 -2
  222. package/src/integration/xpath/static-dom/StaticAttribute.ts +6 -5
  223. package/src/integration/xpath/static-dom/StaticDocument.ts +17 -16
  224. package/src/integration/xpath/static-dom/StaticElement.ts +196 -50
  225. package/src/integration/xpath/static-dom/StaticNode.ts +1 -1
  226. package/src/integration/xpath/static-dom/StaticParentNode.ts +22 -0
  227. package/src/integration/xpath/static-dom/staticNodeName.ts +20 -0
  228. package/src/lib/client-reactivity/instance-state/createNodeRangeInstanceState.ts +17 -0
  229. package/src/lib/client-reactivity/instance-state/createParentNodeInstanceState.ts +22 -0
  230. package/src/lib/client-reactivity/instance-state/createPrimaryInstanceState.ts +12 -0
  231. package/src/lib/client-reactivity/{submission/createRootSubmissionState.ts → instance-state/createRootInstanceState.ts} +4 -4
  232. package/src/lib/client-reactivity/instance-state/createTemplatedNodeInstanceState.ts +31 -0
  233. package/src/lib/client-reactivity/instance-state/createValueNodeInstanceState.ts +21 -0
  234. package/src/lib/client-reactivity/instance-state/prepareInstancePayload.ts +237 -0
  235. package/src/lib/names/UnprefixedXFormsName.ts +12 -0
  236. package/src/lib/reactivity/createInstanceAttachment.ts +212 -0
  237. package/src/lib/reactivity/createInstanceValueState.ts +27 -51
  238. package/src/lib/resource-helpers.ts +33 -0
  239. package/src/parse/XFormDOM.ts +1 -3
  240. package/src/parse/body/BodyDefinition.ts +4 -0
  241. package/src/parse/body/control/UploadControlDefinition.ts +42 -0
  242. package/src/parse/model/BindDefinition.ts +1 -1
  243. package/src/parse/model/BindTypeDefinition.ts +68 -26
  244. package/src/parse/model/ItextTranslationsDefinition.ts +79 -0
  245. package/src/parse/model/LeafNodeDefinition.ts +3 -5
  246. package/src/parse/model/ModelBindMap.ts +0 -5
  247. package/src/parse/model/ModelDefinition.ts +36 -3
  248. package/src/parse/model/NodeDefinition.ts +19 -45
  249. package/src/parse/model/NoteNodeDefinition.ts +4 -3
  250. package/src/parse/model/RangeNodeDefinition.ts +3 -2
  251. package/src/parse/model/RepeatDefinition.ts +382 -0
  252. package/src/parse/model/RootAttributeDefinition.ts +6 -7
  253. package/src/parse/model/RootAttributeMap.ts +15 -10
  254. package/src/parse/model/RootDefinition.ts +17 -19
  255. package/src/parse/model/SecondaryInstance/SecondaryInstancesDefinition.ts +23 -2
  256. package/src/parse/model/SecondaryInstance/assertSecondaryInstanceDefinition.ts +14 -0
  257. package/src/parse/model/SecondaryInstance/defineSecondaryInstance.ts +32 -0
  258. package/src/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.ts +3 -24
  259. package/src/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.ts +33 -86
  260. package/src/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceResource.ts +1 -30
  261. package/src/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.ts +64 -137
  262. package/src/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.ts +9 -7
  263. package/src/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.ts +1 -1
  264. package/src/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.ts +7 -7
  265. package/src/parse/model/{FormSubmissionDefinition.ts → SubmissionDefinition.ts} +2 -2
  266. package/src/parse/model/SubtreeDefinition.ts +4 -5
  267. package/src/parse/model/nodeDefinitionMap.ts +34 -0
  268. package/src/parse/shared/parseInstanceXML.ts +79 -0
  269. package/src/parse/shared/parseStaticDocumentFromDOMSubtree.ts +45 -130
  270. package/dist/client/EngineConfig.d.ts +0 -79
  271. package/dist/client/submission/SubmissionData.d.ts +0 -7
  272. package/dist/client/submission/SubmissionInstanceFile.d.ts +0 -6
  273. package/dist/client/submission/SubmissionOptions.d.ts +0 -23
  274. package/dist/client/submission/SubmissionResult.d.ts +0 -91
  275. package/dist/client/submission/SubmissionState.d.ts +0 -12
  276. package/dist/client/unsupported/UnsupportedControlNode.d.ts +0 -30
  277. package/dist/client/unsupported/UploadNode.d.ts +0 -9
  278. package/dist/instance/abstract/UnsupportedControl.d.ts +0 -54
  279. package/dist/instance/index.d.ts +0 -8
  280. package/dist/instance/internal-api/ValueContext.d.ts +0 -23
  281. package/dist/instance/internal-api/submission/ClientReactiveSubmittableInstance.d.ts +0 -14
  282. package/dist/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.d.ts +0 -32
  283. package/dist/instance/internal-api/submission/ClientReactiveSubmittableParentNode.d.ts +0 -19
  284. package/dist/instance/internal-api/submission/ClientReactiveSubmittableValueNode.d.ts +0 -18
  285. package/dist/instance/unsupported/UploadControl.d.ts +0 -6
  286. package/dist/lib/client-reactivity/submission/createInstanceSubmissionState.d.ts +0 -3
  287. package/dist/lib/client-reactivity/submission/createLeafNodeSubmissionState.d.ts +0 -3
  288. package/dist/lib/client-reactivity/submission/createNodeRangeSubmissionState.d.ts +0 -4
  289. package/dist/lib/client-reactivity/submission/createParentNodeSubmissionState.d.ts +0 -4
  290. package/dist/lib/client-reactivity/submission/createRootSubmissionState.d.ts +0 -3
  291. package/dist/lib/client-reactivity/submission/createValueNodeSubmissionState.d.ts +0 -3
  292. package/dist/lib/client-reactivity/submission/prepareSubmission.d.ts +0 -8
  293. package/dist/lib/reactivity/createValueState.d.ts +0 -40
  294. package/dist/parse/model/ItextTranslation/ItextTranslationDefinition.d.ts +0 -4
  295. package/dist/parse/model/ItextTranslation/ItextTranslationRootDefinition.d.ts +0 -9
  296. package/dist/parse/model/ItextTranslation/ItextTranslationsDefinition.d.ts +0 -8
  297. package/dist/parse/model/RepeatInstanceDefinition.d.ts +0 -17
  298. package/dist/parse/model/RepeatRangeDefinition.d.ts +0 -32
  299. package/dist/parse/model/RepeatTemplateDefinition.d.ts +0 -31
  300. package/dist/parse/model/SecondaryInstance/SecondaryInstanceDefinition.d.ts +0 -4
  301. package/dist/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.d.ts +0 -7
  302. package/src/client/EngineConfig.ts +0 -84
  303. package/src/client/submission/SubmissionData.ts +0 -12
  304. package/src/client/submission/SubmissionInstanceFile.ts +0 -9
  305. package/src/client/submission/SubmissionOptions.ts +0 -28
  306. package/src/client/submission/SubmissionResult.ts +0 -124
  307. package/src/client/submission/SubmissionState.ts +0 -14
  308. package/src/client/unsupported/UnsupportedControlNode.ts +0 -36
  309. package/src/client/unsupported/UploadNode.ts +0 -14
  310. package/src/instance/abstract/UnsupportedControl.ts +0 -175
  311. package/src/instance/index.ts +0 -55
  312. package/src/instance/internal-api/ValueContext.ts +0 -28
  313. package/src/instance/internal-api/submission/ClientReactiveSubmittableInstance.ts +0 -20
  314. package/src/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.ts +0 -43
  315. package/src/instance/internal-api/submission/ClientReactiveSubmittableParentNode.ts +0 -26
  316. package/src/instance/internal-api/submission/ClientReactiveSubmittableValueNode.ts +0 -24
  317. package/src/instance/unsupported/UploadControl.ts +0 -9
  318. package/src/lib/client-reactivity/submission/createInstanceSubmissionState.ts +0 -12
  319. package/src/lib/client-reactivity/submission/createLeafNodeSubmissionState.ts +0 -20
  320. package/src/lib/client-reactivity/submission/createNodeRangeSubmissionState.ts +0 -17
  321. package/src/lib/client-reactivity/submission/createParentNodeSubmissionState.ts +0 -22
  322. package/src/lib/client-reactivity/submission/createValueNodeSubmissionState.ts +0 -21
  323. package/src/lib/client-reactivity/submission/prepareSubmission.ts +0 -172
  324. package/src/lib/reactivity/createValueState.ts +0 -200
  325. package/src/parse/model/ItextTranslation/ItextTranslationDefinition.ts +0 -4
  326. package/src/parse/model/ItextTranslation/ItextTranslationRootDefinition.ts +0 -42
  327. package/src/parse/model/ItextTranslation/ItextTranslationsDefinition.ts +0 -31
  328. package/src/parse/model/RepeatInstanceDefinition.ts +0 -38
  329. package/src/parse/model/RepeatRangeDefinition.ts +0 -98
  330. package/src/parse/model/RepeatTemplateDefinition.ts +0 -149
  331. package/src/parse/model/SecondaryInstance/SecondaryInstanceDefinition.ts +0 -4
  332. package/src/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.ts +0 -12
@@ -2,10 +2,11 @@ import { XPathNodeKindKey } from '@getodk/xpath';
2
2
  import { Accessor } from 'solid-js';
3
3
  import { GroupDefinition, GroupNode, GroupNodeAppearances } from '../client/GroupNode.ts';
4
4
  import { FormNodeID } from '../client/identity.ts';
5
- import { SubmissionState } from '../client/submission/SubmissionState.ts';
5
+ import { InstanceState } from '../client/serialization/InstanceState.ts';
6
6
  import { TextRange } from '../client/TextRange.ts';
7
7
  import { AncestorNodeValidationState } from '../client/validation.ts';
8
8
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
9
+ import { StaticElement } from '../integration/xpath/static-dom/StaticElement.ts';
9
10
  import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
10
11
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
11
12
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
@@ -13,7 +14,7 @@ import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeSt
13
14
  import { DescendantNodeSharedStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
14
15
  import { GeneralChildNode, GeneralParentNode } from './hierarchy.ts';
15
16
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
16
- import { ClientReactiveSubmittableParentNode } from './internal-api/submission/ClientReactiveSubmittableParentNode.ts';
17
+ import { ClientReactiveSerializableParentNode } from './internal-api/serialization/ClientReactiveSerializableParentNode.ts';
17
18
  interface GroupStateSpec extends DescendantNodeSharedStateSpec {
18
19
  readonly label: Accessor<TextRange<'label'> | null>;
19
20
  readonly hint: null;
@@ -21,7 +22,7 @@ interface GroupStateSpec extends DescendantNodeSharedStateSpec {
21
22
  readonly valueOptions: null;
22
23
  readonly value: null;
23
24
  }
24
- export declare class Group extends DescendantNode<GroupDefinition, GroupStateSpec, GeneralParentNode, GeneralChildNode> implements GroupNode, XFormsXPathElement, EvaluationContext, ClientReactiveSubmittableParentNode<GeneralChildNode> {
25
+ export declare class Group extends DescendantNode<GroupDefinition, GroupStateSpec, GeneralParentNode, GeneralChildNode> implements GroupNode, XFormsXPathElement, EvaluationContext, ClientReactiveSerializableParentNode<GeneralChildNode> {
25
26
  private readonly childrenState;
26
27
  readonly [XPathNodeKindKey] = "element";
27
28
  protected readonly state: SharedNodeState<GroupStateSpec>;
@@ -31,8 +32,8 @@ export declare class Group extends DescendantNode<GroupDefinition, GroupStateSpe
31
32
  readonly nodeOptions: null;
32
33
  readonly currentState: MaterializedChildren<CurrentState<GroupStateSpec>, GeneralChildNode>;
33
34
  readonly validationState: AncestorNodeValidationState;
34
- readonly submissionState: SubmissionState;
35
- constructor(parent: GeneralParentNode, definition: GroupDefinition);
35
+ readonly instanceState: InstanceState;
36
+ constructor(parent: GeneralParentNode, instanceNode: StaticElement | null, definition: GroupDefinition);
36
37
  getChildren(): readonly GeneralChildNode[];
37
38
  }
38
39
  export {};
@@ -4,6 +4,7 @@ import { InputDefinition, InputNode, InputNodeAppearances, InputNodeInputValue,
4
4
  import { TextRange } from '../client/TextRange.ts';
5
5
  import { ValueType } from '../client/ValueType.ts';
6
6
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
7
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
7
8
  import { RuntimeInputValue, RuntimeValue } from '../lib/codecs/getSharedValueCodec.ts';
8
9
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
9
10
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
@@ -11,7 +12,7 @@ import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeSt
11
12
  import { ValueNode, ValueNodeStateSpec } from './abstract/ValueNode.ts';
12
13
  import { GeneralParentNode } from './hierarchy.ts';
13
14
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
14
- import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
15
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
15
16
  import { ValidationContext } from './internal-api/ValidationContext.ts';
16
17
  import { Root } from './Root.ts';
17
18
  export type AnyInputDefinition = {
@@ -22,8 +23,8 @@ interface InputControlStateSpec<V extends ValueType> extends ValueNodeStateSpec<
22
23
  readonly hint: Accessor<TextRange<'hint'> | null>;
23
24
  readonly valueOptions: null;
24
25
  }
25
- export declare class InputControl<V extends ValueType = ValueType> extends ValueNode<V, InputDefinition<V>, RuntimeValue<V>, RuntimeInputValue<V>> implements InputNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
26
- static from(parent: GeneralParentNode, definition: InputDefinition): AnyInputControl;
26
+ export declare class InputControl<V extends ValueType = ValueType> extends ValueNode<V, InputDefinition<V>, RuntimeValue<V>, RuntimeInputValue<V>> implements InputNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSerializableValueNode {
27
+ static from(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: InputDefinition): AnyInputControl;
27
28
  readonly [XPathNodeKindKey] = "element";
28
29
  protected readonly state: SharedNodeState<InputControlStateSpec<V>>;
29
30
  protected readonly engineState: EngineState<InputControlStateSpec<V>>;
@@ -31,7 +32,7 @@ export declare class InputControl<V extends ValueType = ValueType> extends Value
31
32
  readonly appearances: InputNodeAppearances;
32
33
  readonly nodeOptions: InputNodeOptions<V>;
33
34
  readonly currentState: CurrentState<InputControlStateSpec<V>>;
34
- constructor(parent: GeneralParentNode, definition: InputDefinition<V>);
35
+ constructor(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: InputDefinition<V>);
35
36
  setValue(value: InputNodeInputValue<V>): Root;
36
37
  }
37
38
  export type AnyInputControl = InputControl<'barcode'> | InputControl<'binary'> | InputControl<'boolean'> | InputControl<'date'> | InputControl<'dateTime'> | InputControl<'decimal'> | InputControl<'geopoint'> | InputControl<'geoshape'> | InputControl<'geotrace'> | InputControl<'int'> | InputControl<'intent'> | InputControl<'string'> | InputControl<'time'>;
@@ -2,6 +2,7 @@ import { XPathNodeKindKey } from '@getodk/xpath';
2
2
  import { ModelValueDefinition, ModelValueNode } from '../client/ModelValueNode.ts';
3
3
  import { ValueType } from '../client/ValueType.ts';
4
4
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
5
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
5
6
  import { RuntimeInputValue, RuntimeValue } from '../lib/codecs/getSharedValueCodec.ts';
6
7
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
7
8
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
@@ -10,14 +11,14 @@ import { ValueNode, ValueNodeStateSpec } from './abstract/ValueNode.ts';
10
11
  import { GeneralParentNode } from './hierarchy.ts';
11
12
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
12
13
  import { ValidationContext } from './internal-api/ValidationContext.ts';
13
- import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
14
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
14
15
  interface ModelValueStateSpec<V extends ValueType> extends ValueNodeStateSpec<RuntimeValue<V>> {
15
16
  readonly label: null;
16
17
  readonly hint: null;
17
18
  readonly valueOptions: null;
18
19
  }
19
- export declare class ModelValue<V extends ValueType = ValueType> extends ValueNode<V, ModelValueDefinition<V>, RuntimeValue<V>, RuntimeInputValue<V>> implements ModelValueNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
20
- static from(parent: GeneralParentNode, definition: ModelValueDefinition): AnyModelValue;
20
+ export declare class ModelValue<V extends ValueType = ValueType> extends ValueNode<V, ModelValueDefinition<V>, RuntimeValue<V>, RuntimeInputValue<V>> implements ModelValueNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSerializableValueNode {
21
+ static from(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: ModelValueDefinition): AnyModelValue;
21
22
  readonly [XPathNodeKindKey] = "element";
22
23
  protected readonly state: SharedNodeState<ModelValueStateSpec<V>>;
23
24
  protected readonly engineState: EngineState<ModelValueStateSpec<V>>;
@@ -25,7 +26,7 @@ export declare class ModelValue<V extends ValueType = ValueType> extends ValueNo
25
26
  readonly appearances: null;
26
27
  readonly nodeOptions: null;
27
28
  readonly currentState: CurrentState<ModelValueStateSpec<V>>;
28
- constructor(parent: GeneralParentNode, definition: ModelValueDefinition<V>);
29
+ constructor(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: ModelValueDefinition<V>);
29
30
  }
30
31
  export type AnyModelValue = ModelValue<'barcode'> | ModelValue<'binary'> | ModelValue<'boolean'> | ModelValue<'date'> | ModelValue<'dateTime'> | ModelValue<'decimal'> | ModelValue<'geopoint'> | ModelValue<'geoshape'> | ModelValue<'geotrace'> | ModelValue<'int'> | ModelValue<'intent'> | ModelValue<'string'> | ModelValue<'time'>;
31
32
  export {};
@@ -4,6 +4,7 @@ import { NoteNode, NoteNodeAppearances, NoteValue } from '../client/NoteNode.ts'
4
4
  import { TextRange } from '../client/TextRange.ts';
5
5
  import { ValueType } from '../client/ValueType.ts';
6
6
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
7
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
7
8
  import { NoteInputValue, NoteRuntimeValue } from '../lib/codecs/NoteCodec.ts';
8
9
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
9
10
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
@@ -13,7 +14,7 @@ import { NoteNodeDefinition } from '../parse/model/NoteNodeDefinition.ts';
13
14
  import { ValueNode, ValueNodeStateSpec } from './abstract/ValueNode.ts';
14
15
  import { GeneralParentNode } from './hierarchy.ts';
15
16
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
16
- import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
17
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
17
18
  import { ValidationContext } from './internal-api/ValidationContext.ts';
18
19
  interface NoteStateSpec<V extends ValueType> extends ValueNodeStateSpec<NoteValue<V>> {
19
20
  readonly readonly: Accessor<true>;
@@ -22,7 +23,7 @@ interface NoteStateSpec<V extends ValueType> extends ValueNodeStateSpec<NoteValu
22
23
  readonly hint: Accessor<TextRange<'hint', 'form'> | null>;
23
24
  readonly valueOptions: null;
24
25
  }
25
- export declare class Note<V extends ValueType = ValueType> extends ValueNode<V, NoteNodeDefinition<V>, NoteRuntimeValue<V>, NoteInputValue<V>> implements NoteNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
26
+ export declare class Note<V extends ValueType = ValueType> extends ValueNode<V, NoteNodeDefinition<V>, NoteRuntimeValue<V>, NoteInputValue<V>> implements NoteNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSerializableValueNode {
26
27
  readonly [XPathNodeKindKey] = "element";
27
28
  protected readonly state: SharedNodeState<NoteStateSpec<V>>;
28
29
  protected readonly engineState: EngineState<NoteStateSpec<V>>;
@@ -30,7 +31,7 @@ export declare class Note<V extends ValueType = ValueType> extends ValueNode<V,
30
31
  readonly appearances: NoteNodeAppearances;
31
32
  readonly nodeOptions: null;
32
33
  readonly currentState: CurrentState<NoteStateSpec<V>>;
33
- constructor(parent: GeneralParentNode, definition: NoteNodeDefinition<V>);
34
+ constructor(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: NoteNodeDefinition<V>);
34
35
  }
35
36
  export type AnyNote = Note<'barcode'> | Note<'binary'> | Note<'boolean'> | Note<'date'> | Note<'dateTime'> | Note<'decimal'> | Note<'geopoint'> | Note<'geoshape'> | Note<'geotrace'> | Note<'int'> | Note<'intent'> | Note<'string'> | Note<'time'>;
36
37
  export {};
@@ -1,13 +1,15 @@
1
1
  import { XPathNodeKindKey } from '@getodk/xpath';
2
2
  import { Accessor } from 'solid-js';
3
+ import { FormInstanceInitializationMode } from '../client/form/FormInstance.ts';
3
4
  import { ActiveLanguage, FormLanguage, FormLanguages } from '../client/FormLanguage.ts';
4
5
  import { FormNodeID } from '../client/identity.ts';
5
- import { SubmissionChunkedType, SubmissionOptions } from '../client/submission/SubmissionOptions.ts';
6
- import { SubmissionResult } from '../client/submission/SubmissionResult.ts';
7
- import { SubmissionState } from '../client/submission/SubmissionState.ts';
6
+ import { InstancePayload } from '../client/serialization/InstancePayload.ts';
7
+ import { InstancePayloadOptions, InstancePayloadType } from '../client/serialization/InstancePayloadOptions.ts';
8
+ import { InstanceState } from '../client/serialization/InstanceState.ts';
8
9
  import { AncestorNodeValidationState } from '../client/validation.ts';
9
10
  import { XFormsXPathDocument } from '../integration/xpath/adapter/XFormsXPathNode.ts';
10
11
  import { EngineXPathEvaluator } from '../integration/xpath/EngineXPathEvaluator.ts';
12
+ import { StaticDocument } from '../integration/xpath/static-dom/StaticDocument.ts';
11
13
  import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
12
14
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
13
15
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
@@ -18,10 +20,12 @@ import { ModelDefinition } from '../parse/model/ModelDefinition.ts';
18
20
  import { RootDefinition } from '../parse/model/RootDefinition.ts';
19
21
  import { SecondaryInstancesDefinition } from '../parse/model/SecondaryInstance/SecondaryInstancesDefinition.ts';
20
22
  import { InstanceNode } from './abstract/InstanceNode.ts';
23
+ import { InstanceAttachmentsState } from './attachments/InstanceAttachmentsState.ts';
24
+ import { InitialInstanceState } from './input/InitialInstanceState.ts';
21
25
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
22
26
  import { InstanceConfig } from './internal-api/InstanceConfig.ts';
23
27
  import { PrimaryInstanceDocument } from './internal-api/PrimaryInstanceDocument.ts';
24
- import { ClientReactiveSubmittableInstance } from './internal-api/submission/ClientReactiveSubmittableInstance.ts';
28
+ import { ClientReactiveSerializableInstance } from './internal-api/serialization/ClientReactiveSerializableInstance.ts';
25
29
  import { TranslationContext } from './internal-api/TranslationContext.ts';
26
30
  import { Root } from './Root.ts';
27
31
  interface PrimaryInstanceStateSpec {
@@ -36,9 +40,31 @@ interface PrimaryInstanceStateSpec {
36
40
  readonly value: null;
37
41
  readonly activeLanguage: Accessor<ActiveLanguage>;
38
42
  }
39
- export declare class PrimaryInstance extends InstanceNode<RootDefinition, PrimaryInstanceStateSpec, null, Root> implements PrimaryInstanceDocument, XFormsXPathDocument, TranslationContext, EvaluationContext, ClientReactiveSubmittableInstance {
43
+ interface PrimaryInstanceStateInputByMode {
44
+ readonly create: null;
45
+ readonly edit: InitialInstanceState;
46
+ readonly restore: InitialInstanceState;
47
+ }
48
+ export type PrimaryInstanceInitialState<Mode extends FormInstanceInitializationMode> = PrimaryInstanceStateInputByMode[Mode];
49
+ export interface BasePrimaryInstanceOptions {
50
+ readonly scope: ReactiveScope;
51
+ readonly model: ModelDefinition;
52
+ readonly secondaryInstances: SecondaryInstancesDefinition;
53
+ }
54
+ export interface ModelessPrimaryInstanceOptions extends BasePrimaryInstanceOptions {
55
+ readonly config: InstanceConfig;
56
+ }
57
+ export interface PrimaryInstanceOptions<Mode extends FormInstanceInitializationMode> extends ModelessPrimaryInstanceOptions {
58
+ readonly mode: Mode;
59
+ readonly initialState: PrimaryInstanceInitialState<Mode>;
60
+ }
61
+ export declare class PrimaryInstance<Mode extends FormInstanceInitializationMode = FormInstanceInitializationMode> extends InstanceNode<RootDefinition, PrimaryInstanceStateSpec, null, Root> implements PrimaryInstanceDocument, XFormsXPathDocument, TranslationContext, EvaluationContext, ClientReactiveSerializableInstance {
62
+ readonly initializationMode: FormInstanceInitializationMode;
63
+ readonly model: ModelDefinition;
64
+ readonly attachments: InstanceAttachmentsState;
40
65
  protected readonly state: SharedNodeState<PrimaryInstanceStateSpec>;
41
66
  protected readonly engineState: EngineState<PrimaryInstanceStateSpec>;
67
+ readonly instanceNode: StaticDocument;
42
68
  readonly getChildren: Accessor<readonly Root[]>;
43
69
  readonly hasReadonlyAncestor: () => boolean;
44
70
  readonly isReadonly: () => boolean;
@@ -53,13 +79,13 @@ export declare class PrimaryInstance extends InstanceNode<RootDefinition, Primar
53
79
  readonly root: Root;
54
80
  readonly currentState: MaterializedChildren<CurrentState<PrimaryInstanceStateSpec>, Root>;
55
81
  readonly validationState: AncestorNodeValidationState;
56
- readonly submissionState: SubmissionState;
82
+ readonly instanceState: InstanceState;
57
83
  readonly languages: FormLanguages;
58
84
  readonly getActiveLanguage: Accessor<ActiveLanguage>;
59
85
  readonly isAttached: Accessor<boolean>;
60
86
  readonly evaluator: EngineXPathEvaluator;
61
87
  readonly contextNode: this;
62
- constructor(scope: ReactiveScope, model: ModelDefinition, secondaryInstances: SecondaryInstancesDefinition, engineConfig: InstanceConfig);
88
+ constructor(options: PrimaryInstanceOptions<Mode>);
63
89
  /**
64
90
  * @todo Note that this method's signature is intentionally derived from
65
91
  * {@link RootNode.setLanguage}, but its return type differs! The design
@@ -80,6 +106,6 @@ export declare class PrimaryInstance extends InstanceNode<RootDefinition, Primar
80
106
  * philosophical reasoning behind the existing signature convention.
81
107
  */
82
108
  setLanguage(language: FormLanguage): FormLanguage;
83
- prepareSubmission<ChunkedType extends SubmissionChunkedType = 'monolithic'>(options?: SubmissionOptions<ChunkedType>): Promise<SubmissionResult<ChunkedType>>;
109
+ prepareInstancePayload<PayloadType extends InstancePayloadType = 'monolithic'>(options?: InstancePayloadOptions<PayloadType>): Promise<InstancePayload<PayloadType>>;
84
110
  }
85
111
  export {};
@@ -3,6 +3,7 @@ import { Accessor } from 'solid-js';
3
3
  import { RangeInputValue, RangeNode, RangeNodeAppearances, RangeValue } from '../client/RangeNode.ts';
4
4
  import { TextRange } from '../client/TextRange.ts';
5
5
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
6
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
6
7
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
7
8
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
8
9
  import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
@@ -12,14 +13,14 @@ import { ValueNode, ValueNodeStateSpec } from './abstract/ValueNode.ts';
12
13
  import { GeneralParentNode } from './hierarchy.ts';
13
14
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
14
15
  import { ValidationContext } from './internal-api/ValidationContext.ts';
15
- import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
16
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
16
17
  interface RangeControlStateSpec<V extends RangeValueType> extends ValueNodeStateSpec<RangeValue<V>> {
17
18
  readonly label: Accessor<TextRange<'label'> | null>;
18
19
  readonly hint: Accessor<TextRange<'hint'> | null>;
19
20
  readonly valueOptions: null;
20
21
  }
21
- export declare class RangeControl<V extends RangeValueType = RangeValueType> extends ValueNode<V, RangeNodeDefinition<V>, RangeValue<V>, RangeInputValue<V>> implements RangeNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
22
- static from(parent: GeneralParentNode, definition: AnyRangeNodeDefinition): AnyRangeControl;
22
+ export declare class RangeControl<V extends RangeValueType = RangeValueType> extends ValueNode<V, RangeNodeDefinition<V>, RangeValue<V>, RangeInputValue<V>> implements RangeNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSerializableValueNode {
23
+ static from(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: AnyRangeNodeDefinition): AnyRangeControl;
23
24
  readonly [XPathNodeKindKey] = "element";
24
25
  protected readonly state: SharedNodeState<RangeControlStateSpec<V>>;
25
26
  protected readonly engineState: EngineState<RangeControlStateSpec<V>>;
@@ -27,7 +28,7 @@ export declare class RangeControl<V extends RangeValueType = RangeValueType> ext
27
28
  readonly appearances: RangeNodeAppearances;
28
29
  readonly nodeOptions: null;
29
30
  readonly currentState: CurrentState<RangeControlStateSpec<V>>;
30
- constructor(parent: GeneralParentNode, definition: RangeNodeDefinition<V>);
31
+ constructor(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: RangeNodeDefinition<V>);
31
32
  setValue(value: RangeInputValue<V>): Root;
32
33
  }
33
34
  export type AnyRangeControl = RangeControl<'decimal'> | RangeControl<'int'>;
@@ -2,18 +2,19 @@ import { XPathNodeKindKey } from '@getodk/xpath';
2
2
  import { Accessor } from 'solid-js';
3
3
  import { RankDefinition, RankNode, RankValueOptions } from '../client/RankNode.ts';
4
4
  import { TextRange } from '../client/TextRange.ts';
5
+ import { ValueType } from '../client/ValueType.ts';
5
6
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
7
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
6
8
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
7
9
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
8
10
  import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
11
+ import { UnknownAppearanceDefinition } from '../parse/body/appearance/unknownAppearanceParser.ts';
9
12
  import { Root } from './Root.ts';
10
13
  import { ValueNodeStateSpec, ValueNode } from './abstract/ValueNode.ts';
11
14
  import { GeneralParentNode } from './hierarchy.ts';
12
15
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
13
16
  import { ValidationContext } from './internal-api/ValidationContext.ts';
14
- import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
15
- import { UnknownAppearanceDefinition } from '../parse/body/appearance/unknownAppearanceParser.ts';
16
- import { ValueType } from '../client/ValueType.ts';
17
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
17
18
  export type AnyRankDefinition = {
18
19
  [V in ValueType]: RankDefinition<V>;
19
20
  }[ValueType];
@@ -22,8 +23,8 @@ interface RankControlStateSpec extends ValueNodeStateSpec<readonly string[]> {
22
23
  readonly hint: Accessor<TextRange<'hint'> | null>;
23
24
  readonly valueOptions: Accessor<RankValueOptions>;
24
25
  }
25
- export declare class RankControl extends ValueNode<'string', RankDefinition<'string'>, readonly string[], readonly string[]> implements RankNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
26
- static from(parent: GeneralParentNode, definition: RankDefinition): RankControl;
26
+ export declare class RankControl extends ValueNode<'string', RankDefinition<'string'>, readonly string[], readonly string[]> implements RankNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSerializableValueNode {
27
+ static from(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: RankDefinition): RankControl;
27
28
  private readonly mapOptionsByValue;
28
29
  protected readonly getInstanceValue: Accessor<string>;
29
30
  readonly [XPathNodeKindKey] = "element";
@@ -3,10 +3,9 @@ import { Accessor } from 'solid-js';
3
3
  import { ActiveLanguage, FormLanguage, FormLanguages } from '../client/FormLanguage.ts';
4
4
  import { FormNodeID } from '../client/identity.ts';
5
5
  import { RootNode } from '../client/RootNode.ts';
6
- import { SubmissionDefinition } from '../client/submission/SubmissionDefinition.ts';
7
- import { SubmissionChunkedType, SubmissionOptions } from '../client/submission/SubmissionOptions.ts';
8
- import { SubmissionResult } from '../client/submission/SubmissionResult.ts';
9
- import { SubmissionState } from '../client/submission/SubmissionState.ts';
6
+ import { InstancePayload } from '../client/serialization/InstancePayload.ts';
7
+ import { InstancePayloadOptions, InstancePayloadType } from '../client/serialization/InstancePayloadOptions.ts';
8
+ import { InstanceState } from '../client/serialization/InstanceState.ts';
10
9
  import { AncestorNodeValidationState } from '../client/validation.ts';
11
10
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
12
11
  import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
@@ -18,7 +17,7 @@ import { RootDefinition } from '../parse/model/RootDefinition.ts';
18
17
  import { DescendantNode } from './abstract/DescendantNode.ts';
19
18
  import { GeneralChildNode } from './hierarchy.ts';
20
19
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
21
- import { ClientReactiveSubmittableParentNode } from './internal-api/submission/ClientReactiveSubmittableParentNode.ts';
20
+ import { ClientReactiveSerializableParentNode } from './internal-api/serialization/ClientReactiveSerializableParentNode.ts';
22
21
  import { TranslationContext } from './internal-api/TranslationContext.ts';
23
22
  import { PrimaryInstance } from './PrimaryInstance.ts';
24
23
  interface RootStateSpec {
@@ -33,7 +32,7 @@ interface RootStateSpec {
33
32
  readonly value: null;
34
33
  readonly activeLanguage: Accessor<ActiveLanguage>;
35
34
  }
36
- export declare class Root extends DescendantNode<RootDefinition, RootStateSpec, PrimaryInstance, GeneralChildNode> implements RootNode, XFormsXPathElement, EvaluationContext, TranslationContext, ClientReactiveSubmittableParentNode<GeneralChildNode> {
35
+ export declare class Root extends DescendantNode<RootDefinition, RootStateSpec, PrimaryInstance, GeneralChildNode> implements RootNode, XFormsXPathElement, EvaluationContext, TranslationContext, ClientReactiveSerializableParentNode<GeneralChildNode> {
37
36
  private readonly childrenState;
38
37
  readonly [XPathNodeKindKey] = "element";
39
38
  protected readonly state: SharedNodeState<RootStateSpec>;
@@ -51,12 +50,11 @@ export declare class Root extends DescendantNode<RootDefinition, RootStateSpec,
51
50
  readonly classes: BodyClassList;
52
51
  readonly currentState: MaterializedChildren<CurrentState<RootStateSpec>, GeneralChildNode>;
53
52
  readonly validationState: AncestorNodeValidationState;
54
- readonly submissionState: SubmissionState;
55
- get submissionDefinition(): SubmissionDefinition;
53
+ readonly instanceState: InstanceState;
56
54
  readonly languages: FormLanguages;
57
55
  constructor(parent: PrimaryInstance);
58
56
  getChildren(): readonly GeneralChildNode[];
59
57
  setLanguage(language: FormLanguage): Root;
60
- prepareSubmission<ChunkedType extends SubmissionChunkedType = 'monolithic'>(options?: SubmissionOptions<ChunkedType>): Promise<SubmissionResult<ChunkedType>>;
58
+ prepareInstancePayload<PayloadType extends InstancePayloadType = 'monolithic'>(options?: InstancePayloadOptions<PayloadType>): Promise<InstancePayload<PayloadType>>;
61
59
  }
62
60
  export {};
@@ -4,6 +4,7 @@ import { SelectDefinition, SelectItem, SelectNode, SelectNodeAppearances, Select
4
4
  import { TextRange } from '../client/TextRange.ts';
5
5
  import { ValueType } from '../client/ValueType.ts';
6
6
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
7
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
7
8
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
8
9
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
9
10
  import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
@@ -13,7 +14,7 @@ import { ValueNodeStateSpec, ValueNode } from './abstract/ValueNode.ts';
13
14
  import { GeneralParentNode } from './hierarchy.ts';
14
15
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
15
16
  import { ValidationContext } from './internal-api/ValidationContext.ts';
16
- import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
17
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
17
18
  export type AnySelectDefinition = {
18
19
  [V in ValueType]: SelectDefinition<V>;
19
20
  }[ValueType];
@@ -22,8 +23,8 @@ interface SelectControlStateSpec extends ValueNodeStateSpec<readonly string[]> {
22
23
  readonly hint: Accessor<TextRange<'hint'> | null>;
23
24
  readonly valueOptions: Accessor<SelectValueOptions>;
24
25
  }
25
- export declare class SelectControl extends ValueNode<'string', SelectDefinition<'string'>, readonly string[], readonly string[]> implements SelectNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
26
- static from(parent: GeneralParentNode, definition: SelectDefinition): SelectControl;
26
+ export declare class SelectControl extends ValueNode<'string', SelectDefinition<'string'>, readonly string[], readonly string[]> implements SelectNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSerializableValueNode {
27
+ static from(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: SelectDefinition): SelectControl;
27
28
  private readonly mapOptionsByValue;
28
29
  protected readonly getInstanceValue: Accessor<string>;
29
30
  readonly [XPathNodeKindKey] = "element";
@@ -1,10 +1,11 @@
1
1
  import { XPathNodeKindKey } from '@getodk/xpath';
2
2
  import { Accessor } from 'solid-js';
3
3
  import { FormNodeID } from '../client/identity.ts';
4
- import { SubmissionState } from '../client/submission/SubmissionState.ts';
4
+ import { InstanceState } from '../client/serialization/InstanceState.ts';
5
5
  import { SubtreeDefinition, SubtreeNode } from '../client/SubtreeNode.ts';
6
6
  import { AncestorNodeValidationState } from '../client/validation.ts';
7
7
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
8
+ import { StaticElement } from '../integration/xpath/static-dom/StaticElement.ts';
8
9
  import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
9
10
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
10
11
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
@@ -12,7 +13,7 @@ import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeSt
12
13
  import { DescendantNodeSharedStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
13
14
  import { GeneralChildNode, GeneralParentNode } from './hierarchy.ts';
14
15
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
15
- import { ClientReactiveSubmittableParentNode } from './internal-api/submission/ClientReactiveSubmittableParentNode.ts';
16
+ import { ClientReactiveSerializableParentNode } from './internal-api/serialization/ClientReactiveSerializableParentNode.ts';
16
17
  interface SubtreeStateSpec extends DescendantNodeSharedStateSpec {
17
18
  readonly label: null;
18
19
  readonly hint: null;
@@ -20,7 +21,7 @@ interface SubtreeStateSpec extends DescendantNodeSharedStateSpec {
20
21
  readonly valueOptions: null;
21
22
  readonly value: null;
22
23
  }
23
- export declare class Subtree extends DescendantNode<SubtreeDefinition, SubtreeStateSpec, GeneralParentNode, GeneralChildNode> implements SubtreeNode, XFormsXPathElement, EvaluationContext, ClientReactiveSubmittableParentNode<GeneralChildNode> {
24
+ export declare class Subtree extends DescendantNode<SubtreeDefinition, SubtreeStateSpec, GeneralParentNode, GeneralChildNode> implements SubtreeNode, XFormsXPathElement, EvaluationContext, ClientReactiveSerializableParentNode<GeneralChildNode> {
24
25
  private readonly childrenState;
25
26
  readonly [XPathNodeKindKey] = "element";
26
27
  protected readonly state: SharedNodeState<SubtreeStateSpec>;
@@ -30,8 +31,8 @@ export declare class Subtree extends DescendantNode<SubtreeDefinition, SubtreeSt
30
31
  readonly nodeOptions: null;
31
32
  readonly currentState: MaterializedChildren<CurrentState<SubtreeStateSpec>, GeneralChildNode>;
32
33
  readonly validationState: AncestorNodeValidationState;
33
- readonly submissionState: SubmissionState;
34
- constructor(parent: GeneralParentNode, definition: SubtreeDefinition);
34
+ readonly instanceState: InstanceState;
35
+ constructor(parent: GeneralParentNode, instanceNode: StaticElement | null, definition: SubtreeDefinition);
35
36
  getChildren(): readonly GeneralChildNode[];
36
37
  }
37
38
  export {};
@@ -3,6 +3,7 @@ import { Accessor } from 'solid-js';
3
3
  import { TextRange } from '../client/TextRange.ts';
4
4
  import { TriggerNode, TriggerNodeDefinition } from '../client/TriggerNode.ts';
5
5
  import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
6
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
6
7
  import { TriggerInputValue, TriggerRuntimeValue } from '../lib/codecs/TriggerCodec.ts';
7
8
  import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
8
9
  import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
@@ -13,14 +14,14 @@ import { ValueNode, ValueNodeStateSpec } from './abstract/ValueNode.ts';
13
14
  import { GeneralParentNode } from './hierarchy.ts';
14
15
  import { EvaluationContext } from './internal-api/EvaluationContext.ts';
15
16
  import { ValidationContext } from './internal-api/ValidationContext.ts';
16
- import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
17
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
17
18
  interface TriggerControlStateSpec extends ValueNodeStateSpec<TriggerRuntimeValue> {
18
19
  readonly label: Accessor<TextRange<'label'> | null>;
19
20
  readonly hint: Accessor<TextRange<'hint'> | null>;
20
21
  readonly valueOptions: null;
21
22
  }
22
- export declare class TriggerControl extends ValueNode<'string', TriggerNodeDefinition<'string'>, TriggerRuntimeValue, TriggerInputValue> implements TriggerNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
23
- static from(parent: GeneralParentNode, definition: TriggerNodeDefinition): TriggerControl;
23
+ export declare class TriggerControl extends ValueNode<'string', TriggerNodeDefinition<'string'>, TriggerRuntimeValue, TriggerInputValue> implements TriggerNode, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSerializableValueNode {
24
+ static from(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: TriggerNodeDefinition): TriggerControl;
24
25
  readonly [XPathNodeKindKey] = "element";
25
26
  protected readonly state: SharedNodeState<TriggerControlStateSpec>;
26
27
  protected readonly engineState: EngineState<TriggerControlStateSpec>;
@@ -0,0 +1,58 @@
1
+ import { XPathNodeKindKey } from '@getodk/xpath';
2
+ import { Accessor } from 'solid-js';
3
+ import { TextRange } from '../client/TextRange.ts';
4
+ import { UploadDefinition, UploadNode, UploadNodeOptions } from '../client/UploadNode.ts';
5
+ import { ValueType } from '../client/ValueType.ts';
6
+ import { InstanceAttachmentFileName, InstanceState } from '../client/index.ts';
7
+ import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
8
+ import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
9
+ import { StaticLeafElement } from '../integration/xpath/static-dom/StaticElement.ts';
10
+ import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
11
+ import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
12
+ import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
13
+ import { SimpleAtomicState } from '../lib/reactivity/types.ts';
14
+ import { UnknownAppearanceDefinition } from '../parse/body/appearance/unknownAppearanceParser.ts';
15
+ import { Root } from './Root.ts';
16
+ import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
17
+ import { InstanceAttachmentRuntimeValue } from './attachments/InstanceAttachment.ts';
18
+ import { GeneralParentNode } from './hierarchy.ts';
19
+ import { EvaluationContext } from './internal-api/EvaluationContext.ts';
20
+ import { InstanceAttachmentContext } from './internal-api/InstanceAttachmentContext.ts';
21
+ import { DecodeInstanceValue, InstanceValueContext } from './internal-api/InstanceValueContext.ts';
22
+ import { ValidationContext } from './internal-api/ValidationContext.ts';
23
+ import { ClientReactiveSerializableValueNode } from './internal-api/serialization/ClientReactiveSerializableValueNode.ts';
24
+ export type AnyUploadDefinition = {
25
+ [V in ValueType]: UploadDefinition<V>;
26
+ }[ValueType];
27
+ interface UploadControlStateSpec extends DescendantNodeStateSpec<InstanceAttachmentRuntimeValue> {
28
+ readonly label: Accessor<TextRange<'label'> | null>;
29
+ readonly hint: Accessor<TextRange<'hint'> | null>;
30
+ readonly children: null;
31
+ readonly valueOptions: null;
32
+ readonly value: SimpleAtomicState<InstanceAttachmentRuntimeValue>;
33
+ readonly instanceValue: Accessor<InstanceAttachmentFileName>;
34
+ }
35
+ export declare class UploadControl extends DescendantNode<UploadDefinition<'binary'>, UploadControlStateSpec, GeneralParentNode, null> implements UploadNode, XFormsXPathElement, EvaluationContext, InstanceAttachmentContext, InstanceValueContext, ValidationContext, ClientReactiveSerializableValueNode {
36
+ readonly instanceNode: StaticLeafElement | null;
37
+ static from(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: UploadDefinition): UploadControl;
38
+ private readonly validation;
39
+ private readonly instanceAttachment;
40
+ readonly [XPathNodeKindKey] = "element";
41
+ readonly getXPathValue: () => InstanceAttachmentFileName;
42
+ protected readonly state: SharedNodeState<UploadControlStateSpec>;
43
+ protected readonly engineState: EngineState<UploadControlStateSpec>;
44
+ readonly decodeInstanceValue: DecodeInstanceValue;
45
+ readonly nodeType = "upload";
46
+ readonly valueType = "binary";
47
+ readonly appearances: UnknownAppearanceDefinition;
48
+ readonly nodeOptions: UploadNodeOptions;
49
+ readonly currentState: CurrentState<UploadControlStateSpec>;
50
+ get validationState(): LeafNodeValidationState;
51
+ readonly instanceState: InstanceState;
52
+ private constructor();
53
+ getViolation(): AnyViolation | null;
54
+ isBlank(): boolean;
55
+ getChildren(): readonly [];
56
+ setValue(value: InstanceAttachmentRuntimeValue): Root;
57
+ }
58
+ export {};
@@ -6,6 +6,7 @@ import { InstanceNodeType } from '../../client/node-types.ts';
6
6
  import { PrimaryInstanceXPathChildNode } from '../../integration/xpath/adapter/kind.ts';
7
7
  import { XFormsXPathPrimaryInstanceDescendantNode, XFormsXPathPrimaryInstanceDescendantNodeKind } from '../../integration/xpath/adapter/XFormsXPathNode.ts';
8
8
  import { EngineXPathEvaluator } from '../../integration/xpath/EngineXPathEvaluator.ts';
9
+ import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
9
10
  import { AnyNodeDefinition } from '../../parse/model/NodeDefinition.ts';
10
11
  import { AnyChildNode, AnyParentNode } from '../hierarchy.ts';
11
12
  import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
@@ -23,8 +24,16 @@ export type AnyDescendantNode = DescendantNode<DescendantNodeDefinition, Descend
23
24
  interface DescendantNodeOptions {
24
25
  readonly computeReference?: Accessor<string>;
25
26
  }
27
+ /**
28
+ * @todo Unify constructor signatures of {@link DescendantNode} and its
29
+ * subclasses, which will simplify the branchy logic of child node construction
30
+ * and minimize internal churn as common themes evolve. A good starting point is
31
+ * beginning to form in {@link DescendantNodeInitOptions} (not to be confused
32
+ * with the current module-local {@link DescendantNodeOptions}).
33
+ */
26
34
  export declare abstract class DescendantNode<Definition extends DescendantNodeDefinition, Spec extends DescendantNodeStateSpec<any>, Parent extends AnyParentNode, Child extends AnyChildNode | null = null> extends InstanceNode<Definition, Spec, Parent, Child> implements BaseNode, XFormsXPathPrimaryInstanceDescendantNode, EvaluationContext {
27
35
  readonly parent: Parent;
36
+ readonly instanceNode: StaticElement | null;
28
37
  readonly definition: Definition;
29
38
  /**
30
39
  * Partial implementation of {@link isAttached}, used to check whether `this`
@@ -56,7 +65,7 @@ export declare abstract class DescendantNode<Definition extends DescendantNodeDe
56
65
  readonly evaluator: EngineXPathEvaluator;
57
66
  readonly contextNode: PrimaryInstanceXPathChildNode;
58
67
  readonly getActiveLanguage: Accessor<ActiveLanguage>;
59
- constructor(parent: Parent, definition: Definition, options?: DescendantNodeOptions);
68
+ constructor(parent: Parent, instanceNode: StaticElement | null, definition: Definition, options?: DescendantNodeOptions);
60
69
  /**
61
70
  * @package
62
71
  *
@@ -4,12 +4,14 @@ import { BaseNode } from '../../client/BaseNode.ts';
4
4
  import { NodeAppearances } from '../../client/NodeAppearances.ts';
5
5
  import { FormNodeID } from '../../client/identity.ts';
6
6
  import { InstanceNodeType as ClientInstanceNodeType } from '../../client/node-types.ts';
7
- import { SubmissionState } from '../../client/submission/SubmissionState.ts';
7
+ import { InstanceState } from '../../client/serialization/InstanceState.ts';
8
8
  import { NodeValidationState } from '../../client/validation.ts';
9
9
  import { ActiveLanguage, TextRange } from '../../index.ts';
10
10
  import { EngineXPathEvaluator } from '../../integration/xpath/EngineXPathEvaluator.ts';
11
11
  import { XFormsXPathPrimaryInstanceNode, XFormsXPathPrimaryInstanceNodeKind } from '../../integration/xpath/adapter/XFormsXPathNode.ts';
12
12
  import { PrimaryInstanceXPathNode } from '../../integration/xpath/adapter/kind.ts';
13
+ import { StaticDocument } from '../../integration/xpath/static-dom/StaticDocument.ts';
14
+ import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
13
15
  import { CurrentState } from '../../lib/reactivity/node-state/createCurrentState.ts';
14
16
  import { EngineState } from '../../lib/reactivity/node-state/createEngineState.ts';
15
17
  import { SharedNodeState } from '../../lib/reactivity/node-state/createSharedNodeState.ts';
@@ -55,8 +57,9 @@ export interface InstanceNodeOptions {
55
57
  readonly scope?: ReactiveScope;
56
58
  }
57
59
  export declare abstract class InstanceNode<Definition extends AnyNodeDefinition, Spec extends InstanceNodeStateSpec<any>, Parent extends AnyParentNode | null, Child extends AnyChildNode | null = null> implements BaseEngineNode, XFormsXPathPrimaryInstanceNode, EvaluationContext {
58
- readonly engineConfig: InstanceConfig;
60
+ readonly instanceConfig: InstanceConfig;
59
61
  readonly parent: Parent;
62
+ readonly instanceNode: StaticDocument | StaticElement | null;
60
63
  readonly definition: Definition;
61
64
  protected abstract readonly state: SharedNodeState<Spec>;
62
65
  protected abstract readonly engineState: EngineState<Spec>;
@@ -89,7 +92,7 @@ export declare abstract class InstanceNode<Definition extends AnyNodeDefinition,
89
92
  abstract readonly nodeOptions: object | null;
90
93
  abstract readonly currentState: InstanceNodeCurrentState<Spec, Child>;
91
94
  abstract readonly validationState: NodeValidationState;
92
- abstract readonly submissionState: SubmissionState;
95
+ abstract readonly instanceState: InstanceState;
93
96
  abstract readonly evaluator: EngineXPathEvaluator;
94
97
  abstract readonly getActiveLanguage: Accessor<ActiveLanguage>;
95
98
  abstract readonly isAttached: Accessor<boolean>;
@@ -103,7 +106,7 @@ export declare abstract class InstanceNode<Definition extends AnyNodeDefinition,
103
106
  * constrain) their more specific `this` type.
104
107
  */
105
108
  readonly contextNode: PrimaryInstanceXPathNode;
106
- constructor(engineConfig: InstanceConfig, parent: Parent, definition: Definition, options?: InstanceNodeOptions);
109
+ constructor(instanceConfig: InstanceConfig, parent: Parent, instanceNode: StaticDocument | StaticElement | null, definition: Definition, options?: InstanceNodeOptions);
107
110
  /** @package */
108
111
  isPrimaryInstance(): this is PrimaryInstance;
109
112
  /** @package */