@getodk/xforms-engine 0.5.0 → 0.7.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.
- package/README.md +1 -1
- package/dist/client/BaseNode.d.ts +8 -4
- package/dist/client/BaseValueNode.d.ts +8 -4
- package/dist/client/GroupNode.d.ts +1 -0
- package/dist/client/InputNode.d.ts +32 -3
- package/dist/client/ModelValueNode.d.ts +1 -0
- package/dist/client/NoteNode.d.ts +24 -7
- package/dist/client/RangeNode.d.ts +36 -0
- package/dist/client/RankNode.d.ts +46 -0
- package/dist/client/RootNode.d.ts +21 -14
- package/dist/client/SelectNode.d.ts +47 -25
- package/dist/client/SubtreeNode.d.ts +1 -0
- package/dist/client/TriggerNode.d.ts +10 -6
- package/dist/client/constants.d.ts +11 -12
- package/dist/client/form/CreateFormInstance.d.ts +14 -0
- package/dist/client/form/EditFormInstance.d.ts +62 -0
- package/dist/client/form/FormInstance.d.ts +104 -0
- package/dist/client/form/FormInstanceConfig.d.ts +17 -0
- package/dist/client/form/FormResource.d.ts +1 -0
- package/dist/client/form/LoadForm.d.ts +79 -0
- package/dist/client/form/LoadFormResult.d.ts +67 -0
- package/dist/client/form/RestoreFormInstance.d.ts +8 -0
- package/dist/client/hierarchy.d.ts +5 -5
- package/dist/client/index.d.ts +37 -11
- package/dist/client/node-types.d.ts +2 -2
- package/dist/client/repeat/BaseRepeatRangeNode.d.ts +3 -4
- package/dist/client/repeat/RepeatInstanceNode.d.ts +4 -5
- package/dist/client/repeat/RepeatRangeControlledNode.d.ts +2 -2
- package/dist/client/repeat/RepeatRangeUncontrolledNode.d.ts +2 -2
- package/dist/client/resources.d.ts +1 -1
- package/dist/client/serialization/InstanceData.d.ts +12 -0
- package/dist/client/serialization/InstanceFile.d.ts +6 -0
- package/dist/client/serialization/InstancePayload.d.ts +93 -0
- package/dist/client/serialization/InstancePayloadOptions.d.ts +23 -0
- package/dist/client/serialization/InstanceState.d.ts +12 -0
- package/dist/client/submission/{SubmissionDefinition.d.ts → SubmissionMeta.d.ts} +1 -1
- package/dist/client/unsupported/UnsupportedControlNode.d.ts +1 -3
- package/dist/entrypoints/FormInstance.d.ts +20 -0
- package/dist/entrypoints/FormResult/BaseFormResult.d.ts +22 -0
- package/dist/entrypoints/FormResult/BaseInstantiableFormResult.d.ts +25 -0
- package/dist/entrypoints/FormResult/FormFailureResult.d.ts +17 -0
- package/dist/entrypoints/FormResult/FormSuccessResult.d.ts +15 -0
- package/dist/entrypoints/FormResult/FormWarningResult.d.ts +15 -0
- package/dist/entrypoints/createInstance.d.ts +9 -0
- package/dist/entrypoints/editInstance.d.ts +9 -0
- package/dist/entrypoints/index.d.ts +4 -0
- package/dist/entrypoints/loadForm.d.ts +4 -0
- package/dist/entrypoints/restoreInstance.d.ts +9 -0
- package/dist/error/LoadFormFailureError.d.ts +9 -0
- package/dist/error/MalformedInstanceDataError.d.ts +3 -0
- package/dist/error/RankMissingValueError.d.ts +3 -0
- package/dist/error/RankValueTypeError.d.ts +6 -0
- package/dist/error/SelectValueTypeError.d.ts +15 -0
- package/dist/error/TemplatedNodeAttributeSerializationError.d.ts +22 -0
- package/dist/error/XFormsSpecViolationError.d.ts +2 -0
- package/dist/index.d.ts +2 -34
- package/dist/index.js +7274 -5840
- package/dist/index.js.map +1 -1
- package/dist/instance/Group.d.ts +7 -5
- package/dist/instance/InputControl.d.ts +9 -6
- package/dist/instance/ModelValue.d.ts +7 -4
- package/dist/instance/Note.d.ts +14 -25
- package/dist/instance/PrimaryInstance.d.ts +36 -8
- package/dist/instance/RangeControl.d.ts +35 -0
- package/dist/instance/RankControl.d.ts +41 -0
- package/dist/instance/Root.d.ts +8 -9
- package/dist/instance/SelectControl.d.ts +67 -0
- package/dist/instance/Subtree.d.ts +7 -5
- package/dist/instance/TriggerControl.d.ts +10 -22
- package/dist/instance/abstract/DescendantNode.d.ts +11 -3
- package/dist/instance/abstract/InstanceNode.d.ts +10 -5
- package/dist/instance/abstract/ValueNode.d.ts +7 -6
- package/dist/instance/children/DescendantNodeInitOptions.d.ts +32 -0
- package/dist/instance/{children.d.ts → children/buildChildren.d.ts} +1 -1
- package/dist/instance/children/childrenInitOptions.d.ts +9 -0
- package/dist/instance/children/normalizeChildInitOptions.d.ts +2 -0
- package/dist/instance/hierarchy.d.ts +9 -9
- package/dist/instance/input/InitialInstanceState.d.ts +13 -0
- package/dist/instance/input/InstanceAttachmentMap.d.ts +19 -0
- package/dist/instance/internal-api/InstanceConfig.d.ts +2 -9
- package/dist/instance/internal-api/InstanceValueContext.d.ts +10 -1
- package/dist/instance/internal-api/serialization/ClientReactiveSerializableInstance.d.ts +14 -0
- package/dist/instance/internal-api/serialization/ClientReactiveSerializableLeafNode.d.ts +32 -0
- package/dist/instance/internal-api/serialization/ClientReactiveSerializableParentNode.d.ts +18 -0
- package/dist/instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.d.ts +13 -0
- package/dist/instance/internal-api/serialization/ClientReactiveSerializableValueNode.d.ts +21 -0
- package/dist/instance/repeat/BaseRepeatRange.d.ts +11 -8
- package/dist/instance/repeat/RepeatInstance.d.ts +11 -7
- package/dist/instance/repeat/RepeatRangeControlled.d.ts +27 -3
- package/dist/instance/repeat/RepeatRangeUncontrolled.d.ts +4 -3
- package/dist/instance/resource.d.ts +5 -1
- package/dist/instance/unsupported/UploadControl.d.ts +32 -4
- package/dist/integration/xpath/EngineXPathEvaluator.d.ts +2 -2
- package/dist/integration/xpath/adapter/kind.d.ts +4 -10
- package/dist/integration/xpath/adapter/names.d.ts +1 -11
- package/dist/integration/xpath/adapter/traversal.d.ts +10 -9
- package/dist/integration/xpath/static-dom/StaticAttribute.d.ts +10 -4
- package/dist/integration/xpath/static-dom/StaticDocument.d.ts +13 -11
- package/dist/integration/xpath/static-dom/StaticElement.d.ts +25 -18
- package/dist/integration/xpath/static-dom/StaticNode.d.ts +1 -1
- package/dist/integration/xpath/static-dom/StaticParentNode.d.ts +13 -0
- package/dist/integration/xpath/static-dom/staticNodeName.d.ts +3 -0
- package/dist/lib/client-reactivity/instance-state/createNodeRangeInstanceState.d.ts +4 -0
- package/dist/lib/client-reactivity/instance-state/createParentNodeInstanceState.d.ts +4 -0
- package/dist/lib/client-reactivity/instance-state/createPrimaryInstanceState.d.ts +3 -0
- package/dist/lib/client-reactivity/instance-state/createRootInstanceState.d.ts +3 -0
- package/dist/lib/client-reactivity/instance-state/createTemplatedNodeInstanceState.d.ts +6 -0
- package/dist/lib/client-reactivity/instance-state/createValueNodeInstanceState.d.ts +3 -0
- package/dist/lib/client-reactivity/instance-state/prepareInstancePayload.d.ts +8 -0
- package/dist/lib/codecs/Geopoint/Geopoint.d.ts +48 -0
- package/dist/lib/codecs/Geopoint/GeopointValueCodec.d.ts +5 -0
- package/dist/lib/codecs/NoteCodec.d.ts +8 -0
- package/dist/lib/codecs/RangeCodec.d.ts +8 -0
- package/dist/lib/codecs/TempUnsupportedControlCodec.d.ts +7 -0
- package/dist/lib/codecs/TriggerCodec.d.ts +7 -0
- package/dist/lib/codecs/ValueArrayCodec.d.ts +11 -0
- package/dist/lib/codecs/ValueCodec.d.ts +2 -2
- package/dist/lib/codecs/getNoteCodec.d.ts +3 -0
- package/dist/lib/codecs/getSelectCodec.d.ts +5 -0
- package/dist/lib/codecs/getSharedValueCodec.d.ts +3 -2
- package/dist/lib/codecs/items/BaseItemCodec.d.ts +9 -0
- package/dist/lib/codecs/items/MultipleValueItemCodec.d.ts +14 -0
- package/dist/lib/codecs/items/SingleValueItemCodec.d.ts +24 -0
- package/dist/lib/dom/query.d.ts +1 -2
- package/dist/lib/names/NamespaceDeclaration.d.ts +45 -0
- package/dist/lib/names/NamespaceDeclarationMap.d.ts +137 -0
- package/dist/lib/names/NamespaceURL.d.ts +30 -0
- package/dist/lib/names/QualifiedName.d.ts +113 -0
- package/dist/lib/names/UnprefixedXFormsName.d.ts +4 -0
- package/dist/lib/number-parsers.d.ts +2 -0
- package/dist/lib/reactivity/createInstanceValueState.d.ts +2 -27
- package/dist/lib/reactivity/createItemCollection.d.ts +21 -0
- package/dist/lib/xml-serialization.d.ts +11 -2
- package/dist/parse/XFormDOM.d.ts +1 -1
- package/dist/parse/body/BodyDefinition.d.ts +2 -2
- package/dist/parse/body/appearance/rangeAppearanceParser.d.ts +3 -0
- package/dist/parse/body/control/InputControlDefinition.d.ts +3 -0
- package/dist/parse/body/control/ItemDefinition.d.ts +14 -0
- package/dist/parse/body/control/ItemsetDefinition.d.ts +18 -0
- package/dist/parse/body/control/RangeControlDefinition.d.ts +31 -2
- package/dist/parse/body/control/RankControlDefinition.d.ts +7 -3
- package/dist/parse/body/control/{select/SelectDefinition.d.ts → SelectControlDefinition.d.ts} +9 -9
- package/dist/parse/expression/ItemsetNodesetExpression.d.ts +1 -1
- package/dist/parse/expression/ItemsetValueExpression.d.ts +1 -1
- package/dist/parse/model/BindDefinition.d.ts +3 -1
- package/dist/parse/model/BindPreloadDefinition.d.ts +42 -0
- package/dist/parse/model/DescendentNodeDefinition.d.ts +4 -13
- package/dist/parse/model/ItextTranslationsDefinition.d.ts +18 -0
- package/dist/parse/model/LeafNodeDefinition.d.ts +9 -7
- package/dist/parse/model/ModelDefinition.d.ts +9 -2
- package/dist/parse/model/NodeDefinition.d.ts +30 -45
- package/dist/parse/model/NoteNodeDefinition.d.ts +7 -5
- package/dist/parse/model/RangeNodeDefinition.d.ts +42 -0
- package/dist/parse/model/RepeatDefinition.d.ts +62 -0
- package/dist/parse/model/RootAttributeDefinition.d.ts +21 -0
- package/dist/parse/model/RootAttributeMap.d.ts +24 -0
- package/dist/parse/model/RootDefinition.d.ts +15 -14
- package/dist/parse/model/SecondaryInstance/SecondaryInstancesDefinition.d.ts +15 -2
- package/dist/parse/model/SecondaryInstance/assertSecondaryInstanceDefinition.d.ts +5 -0
- package/dist/parse/model/SecondaryInstance/defineSecondaryInstance.d.ts +5 -0
- package/dist/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.d.ts +1 -7
- package/dist/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.d.ts +1 -1
- package/dist/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.d.ts +1 -1
- package/dist/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.d.ts +1 -1
- package/dist/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.d.ts +1 -1
- package/dist/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.d.ts +1 -1
- package/dist/parse/model/{FormSubmissionDefinition.d.ts → SubmissionDefinition.d.ts} +2 -2
- package/dist/parse/model/SubtreeDefinition.d.ts +9 -7
- package/dist/parse/model/nodeDefinitionMap.d.ts +5 -0
- package/dist/parse/shared/parseInstanceXML.d.ts +21 -0
- package/dist/parse/shared/parseStaticDocumentFromDOMSubtree.d.ts +4 -22
- package/dist/parse/text/ItemLabelDefinition.d.ts +1 -1
- package/dist/parse/text/ItemsetLabelDefinition.d.ts +2 -2
- package/dist/parse/text/abstract/TextElementDefinition.d.ts +1 -1
- package/dist/parse/xpath/semantic-analysis.d.ts +1 -3
- package/dist/solid.js +7247 -5813
- package/dist/solid.js.map +1 -1
- package/package.json +15 -12
- package/src/client/BaseNode.ts +9 -4
- package/src/client/BaseValueNode.ts +8 -4
- package/src/client/GroupNode.ts +1 -0
- package/src/client/InputNode.ts +38 -2
- package/src/client/ModelValueNode.ts +1 -0
- package/src/client/NoteNode.ts +43 -7
- package/src/client/RangeNode.ts +51 -0
- package/src/client/RankNode.ts +54 -0
- package/src/client/RootNode.ts +30 -16
- package/src/client/SelectNode.ts +53 -26
- package/src/client/SubtreeNode.ts +1 -0
- package/src/client/TriggerNode.ts +12 -6
- package/src/client/constants.ts +12 -14
- package/src/client/form/CreateFormInstance.ts +19 -0
- package/src/client/form/EditFormInstance.ts +93 -0
- package/src/client/form/FormInstance.ts +114 -0
- package/src/client/form/FormInstanceConfig.ts +18 -0
- package/src/client/form/FormResource.ts +1 -0
- package/src/client/form/LoadForm.ts +92 -0
- package/src/client/form/LoadFormResult.ts +103 -0
- package/src/client/form/RestoreFormInstance.ts +14 -0
- package/src/client/hierarchy.ts +7 -8
- package/src/client/index.ts +47 -29
- package/src/client/node-types.ts +3 -5
- package/src/client/repeat/BaseRepeatRangeNode.ts +3 -4
- package/src/client/repeat/RepeatInstanceNode.ts +4 -8
- package/src/client/repeat/RepeatRangeControlledNode.ts +2 -2
- package/src/client/repeat/RepeatRangeUncontrolledNode.ts +2 -2
- package/src/client/resources.ts +2 -2
- package/src/client/serialization/InstanceData.ts +16 -0
- package/src/client/serialization/InstanceFile.ts +9 -0
- package/src/client/serialization/InstancePayload.ts +126 -0
- package/src/client/serialization/InstancePayloadOptions.ts +28 -0
- package/src/client/serialization/InstanceState.ts +14 -0
- package/src/client/submission/{SubmissionDefinition.ts → SubmissionMeta.ts} +1 -1
- package/src/client/unsupported/UnsupportedControlNode.ts +2 -6
- package/src/entrypoints/FormInstance.ts +55 -0
- package/src/entrypoints/FormResult/BaseFormResult.ts +40 -0
- package/src/entrypoints/FormResult/BaseInstantiableFormResult.ts +109 -0
- package/src/entrypoints/FormResult/FormFailureResult.ts +44 -0
- package/src/entrypoints/FormResult/FormSuccessResult.ts +25 -0
- package/src/entrypoints/FormResult/FormWarningResult.ts +25 -0
- package/src/entrypoints/createInstance.ts +23 -0
- package/src/entrypoints/editInstance.ts +24 -0
- package/src/entrypoints/index.ts +4 -0
- package/src/entrypoints/loadForm.ts +154 -0
- package/src/entrypoints/restoreInstance.ts +27 -0
- package/src/error/LoadFormFailureError.ts +114 -0
- package/src/error/MalformedInstanceDataError.ts +3 -0
- package/src/error/RankMissingValueError.ts +5 -0
- package/src/error/RankValueTypeError.ts +13 -0
- package/src/error/SelectValueTypeError.ts +22 -0
- package/src/error/TemplatedNodeAttributeSerializationError.ts +24 -0
- package/src/error/XFormsSpecViolationError.ts +1 -0
- package/src/index.ts +2 -56
- package/src/instance/Group.ts +17 -15
- package/src/instance/InputControl.ts +58 -12
- package/src/instance/ModelValue.ts +19 -11
- package/src/instance/Note.ts +40 -64
- package/src/instance/PrimaryInstance.ts +70 -31
- package/src/instance/RangeControl.ts +119 -0
- package/src/instance/RankControl.ts +208 -0
- package/src/instance/Root.ts +21 -31
- package/src/instance/SelectControl.ts +228 -0
- package/src/instance/Subtree.ts +17 -15
- package/src/instance/TriggerControl.ts +50 -80
- package/src/instance/abstract/DescendantNode.ts +13 -8
- package/src/instance/abstract/InstanceNode.ts +19 -7
- package/src/instance/abstract/ValueNode.ts +14 -15
- package/src/instance/children/DescendantNodeInitOptions.ts +35 -0
- package/src/instance/children/buildChildren.ts +206 -0
- package/src/instance/children/childrenInitOptions.ts +117 -0
- package/src/instance/children/normalizeChildInitOptions.ts +332 -0
- package/src/instance/hierarchy.ts +21 -16
- package/src/instance/input/InitialInstanceState.ts +108 -0
- package/src/instance/input/InstanceAttachmentMap.ts +142 -0
- package/src/instance/internal-api/InstanceConfig.ts +3 -10
- package/src/instance/internal-api/InstanceValueContext.ts +11 -1
- package/src/instance/internal-api/serialization/ClientReactiveSerializableInstance.ts +20 -0
- package/src/instance/internal-api/serialization/ClientReactiveSerializableLeafNode.ts +43 -0
- package/src/instance/internal-api/serialization/ClientReactiveSerializableParentNode.ts +26 -0
- package/src/instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.ts +24 -0
- package/src/instance/internal-api/serialization/ClientReactiveSerializableValueNode.ts +28 -0
- package/src/instance/repeat/BaseRepeatRange.ts +21 -24
- package/src/instance/repeat/RepeatInstance.ts +27 -19
- package/src/instance/repeat/RepeatRangeControlled.ts +90 -17
- package/src/instance/repeat/RepeatRangeUncontrolled.ts +10 -9
- package/src/instance/resource.ts +18 -2
- package/src/instance/unsupported/UploadControl.ts +116 -5
- package/src/integration/xpath/EngineXPathEvaluator.ts +2 -2
- package/src/integration/xpath/adapter/kind.ts +1 -28
- package/src/integration/xpath/adapter/names.ts +66 -17
- package/src/integration/xpath/adapter/traversal.ts +12 -11
- package/src/integration/xpath/static-dom/StaticAttribute.ts +16 -7
- package/src/integration/xpath/static-dom/StaticDocument.ts +17 -18
- package/src/integration/xpath/static-dom/StaticElement.ts +211 -52
- package/src/integration/xpath/static-dom/StaticNode.ts +1 -1
- package/src/integration/xpath/static-dom/StaticParentNode.ts +22 -0
- package/src/integration/xpath/static-dom/staticNodeName.ts +20 -0
- package/src/lib/client-reactivity/instance-state/createNodeRangeInstanceState.ts +17 -0
- package/src/lib/client-reactivity/instance-state/createParentNodeInstanceState.ts +22 -0
- package/src/lib/client-reactivity/instance-state/createPrimaryInstanceState.ts +12 -0
- package/src/lib/client-reactivity/instance-state/createRootInstanceState.ts +19 -0
- package/src/lib/client-reactivity/instance-state/createTemplatedNodeInstanceState.ts +31 -0
- package/src/lib/client-reactivity/instance-state/createValueNodeInstanceState.ts +21 -0
- package/src/lib/client-reactivity/instance-state/prepareInstancePayload.ts +173 -0
- package/src/lib/codecs/Geopoint/Geopoint.ts +150 -0
- package/src/lib/codecs/Geopoint/GeopointValueCodec.ts +20 -0
- package/src/lib/codecs/NoteCodec.ts +32 -0
- package/src/lib/codecs/RangeCodec.ts +65 -0
- package/src/lib/codecs/TempUnsupportedControlCodec.ts +32 -0
- package/src/lib/codecs/TriggerCodec.ts +64 -0
- package/src/lib/codecs/ValueArrayCodec.ts +42 -0
- package/src/lib/codecs/ValueCodec.ts +2 -2
- package/src/lib/codecs/getNoteCodec.ts +27 -0
- package/src/lib/codecs/getSelectCodec.ts +27 -0
- package/src/lib/codecs/getSharedValueCodec.ts +5 -3
- package/src/lib/codecs/items/BaseItemCodec.ts +20 -0
- package/src/lib/codecs/items/MultipleValueItemCodec.ts +28 -0
- package/src/lib/codecs/items/SingleValueItemCodec.ts +67 -0
- package/src/lib/dom/query.ts +1 -2
- package/src/lib/names/NamespaceDeclaration.ts +106 -0
- package/src/lib/names/NamespaceDeclarationMap.ts +228 -0
- package/src/lib/names/NamespaceURL.ts +44 -0
- package/src/lib/names/QualifiedName.ts +170 -0
- package/src/lib/names/UnprefixedXFormsName.ts +12 -0
- package/src/lib/number-parsers.ts +25 -0
- package/src/lib/reactivity/createInstanceValueState.ts +69 -43
- package/src/lib/reactivity/{createSelectItems.ts → createItemCollection.ts} +41 -36
- package/src/lib/xml-serialization.ts +76 -9
- package/src/parse/XFormDOM.ts +141 -21
- package/src/parse/XFormDefinition.ts +1 -4
- package/src/parse/body/BodyDefinition.ts +4 -4
- package/src/parse/body/appearance/rangeAppearanceParser.ts +11 -0
- package/src/parse/body/control/InputControlDefinition.ts +9 -0
- package/src/parse/body/control/{select/ItemDefinition.ts → ItemDefinition.ts} +8 -6
- package/src/parse/body/control/{select/ItemsetDefinition.ts → ItemsetDefinition.ts} +11 -9
- package/src/parse/body/control/RangeControlDefinition.ts +91 -6
- package/src/parse/body/control/RankControlDefinition.ts +25 -7
- package/src/parse/body/control/{select/SelectDefinition.ts → SelectControlDefinition.ts} +9 -9
- package/src/parse/expression/ItemsetNodesetExpression.ts +1 -1
- package/src/parse/expression/ItemsetValueExpression.ts +1 -1
- package/src/parse/model/BindDefinition.ts +4 -0
- package/src/parse/model/BindPreloadDefinition.ts +100 -0
- package/src/parse/model/DescendentNodeDefinition.ts +7 -25
- package/src/parse/model/ItextTranslationsDefinition.ts +79 -0
- package/src/parse/model/LeafNodeDefinition.ts +13 -8
- package/src/parse/model/ModelDefinition.ts +36 -3
- package/src/parse/model/NodeDefinition.ts +38 -85
- package/src/parse/model/NoteNodeDefinition.ts +12 -10
- package/src/parse/model/RangeNodeDefinition.ts +119 -0
- package/src/parse/model/RepeatDefinition.ts +382 -0
- package/src/parse/model/RootAttributeDefinition.ts +44 -0
- package/src/parse/model/RootAttributeMap.ts +49 -0
- package/src/parse/model/RootDefinition.ts +42 -43
- package/src/parse/model/SecondaryInstance/SecondaryInstancesDefinition.ts +23 -2
- package/src/parse/model/SecondaryInstance/assertSecondaryInstanceDefinition.ts +14 -0
- package/src/parse/model/SecondaryInstance/defineSecondaryInstance.ts +32 -0
- package/src/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.ts +3 -24
- package/src/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.ts +33 -86
- package/src/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.ts +64 -136
- package/src/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.ts +9 -7
- package/src/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.ts +1 -1
- package/src/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.ts +7 -7
- package/src/parse/model/{FormSubmissionDefinition.ts → SubmissionDefinition.ts} +2 -2
- package/src/parse/model/SubtreeDefinition.ts +15 -16
- package/src/parse/model/nodeDefinitionMap.ts +34 -0
- package/src/parse/shared/parseInstanceXML.ts +79 -0
- package/src/parse/shared/parseStaticDocumentFromDOMSubtree.ts +46 -131
- package/src/parse/text/ItemLabelDefinition.ts +1 -1
- package/src/parse/text/ItemsetLabelDefinition.ts +2 -2
- package/src/parse/text/abstract/TextElementDefinition.ts +1 -1
- package/src/parse/xpath/semantic-analysis.ts +4 -3
- package/dist/client/EngineConfig.d.ts +0 -79
- package/dist/client/submission/SubmissionData.d.ts +0 -7
- package/dist/client/submission/SubmissionInstanceFile.d.ts +0 -6
- package/dist/client/submission/SubmissionOptions.d.ts +0 -23
- package/dist/client/submission/SubmissionResult.d.ts +0 -91
- package/dist/client/submission/SubmissionState.d.ts +0 -12
- package/dist/client/unsupported/RangeNode.d.ts +0 -9
- package/dist/client/unsupported/RankNode.d.ts +0 -9
- package/dist/instance/SelectField.d.ts +0 -58
- package/dist/instance/abstract/UnsupportedControl.d.ts +0 -53
- package/dist/instance/index.d.ts +0 -8
- package/dist/instance/internal-api/ValueContext.d.ts +0 -23
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableInstance.d.ts +0 -14
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.d.ts +0 -31
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableParentNode.d.ts +0 -18
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableValueNode.d.ts +0 -17
- package/dist/instance/unsupported/RangeControl.d.ts +0 -6
- package/dist/instance/unsupported/RankControl.d.ts +0 -6
- package/dist/integration/xpath/static-dom/StaticNamedNode.d.ts +0 -17
- package/dist/lib/client-reactivity/submission/createInstanceSubmissionState.d.ts +0 -3
- package/dist/lib/client-reactivity/submission/createLeafNodeSubmissionState.d.ts +0 -3
- package/dist/lib/client-reactivity/submission/createNodeRangeSubmissionState.d.ts +0 -4
- package/dist/lib/client-reactivity/submission/createParentNodeSubmissionState.d.ts +0 -4
- package/dist/lib/client-reactivity/submission/createValueNodeSubmissionState.d.ts +0 -3
- package/dist/lib/client-reactivity/submission/prepareSubmission.d.ts +0 -8
- package/dist/lib/reactivity/createSelectItems.d.ts +0 -16
- package/dist/lib/reactivity/createValueState.d.ts +0 -40
- package/dist/parse/body/control/select/ItemDefinition.d.ts +0 -13
- package/dist/parse/body/control/select/ItemsetDefinition.d.ts +0 -17
- package/dist/parse/body/control/select/ItemsetNodesetContext.d.ts +0 -9
- package/dist/parse/model/ItextTranslation/ItextTranslationDefinition.d.ts +0 -4
- package/dist/parse/model/ItextTranslation/ItextTranslationRootDefinition.d.ts +0 -8
- package/dist/parse/model/ItextTranslation/ItextTranslationsDefinition.d.ts +0 -8
- package/dist/parse/model/RepeatInstanceDefinition.d.ts +0 -14
- package/dist/parse/model/RepeatRangeDefinition.d.ts +0 -29
- package/dist/parse/model/RepeatTemplateDefinition.d.ts +0 -28
- package/dist/parse/model/SecondaryInstance/SecondaryInstanceDefinition.d.ts +0 -4
- package/dist/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.d.ts +0 -7
- package/src/client/EngineConfig.ts +0 -84
- package/src/client/submission/SubmissionData.ts +0 -12
- package/src/client/submission/SubmissionInstanceFile.ts +0 -9
- package/src/client/submission/SubmissionOptions.ts +0 -28
- package/src/client/submission/SubmissionResult.ts +0 -124
- package/src/client/submission/SubmissionState.ts +0 -14
- package/src/client/unsupported/RangeNode.ts +0 -14
- package/src/client/unsupported/RankNode.ts +0 -14
- package/src/instance/SelectField.ts +0 -263
- package/src/instance/abstract/UnsupportedControl.ts +0 -174
- package/src/instance/children.ts +0 -158
- package/src/instance/index.ts +0 -55
- package/src/instance/internal-api/ValueContext.ts +0 -28
- package/src/instance/internal-api/submission/ClientReactiveSubmittableInstance.ts +0 -20
- package/src/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.ts +0 -42
- package/src/instance/internal-api/submission/ClientReactiveSubmittableParentNode.ts +0 -25
- package/src/instance/internal-api/submission/ClientReactiveSubmittableValueNode.ts +0 -23
- package/src/instance/unsupported/RangeControl.ts +0 -9
- package/src/instance/unsupported/RankControl.ts +0 -9
- package/src/integration/xpath/static-dom/StaticNamedNode.ts +0 -45
- package/src/lib/client-reactivity/submission/createInstanceSubmissionState.ts +0 -12
- package/src/lib/client-reactivity/submission/createLeafNodeSubmissionState.ts +0 -20
- package/src/lib/client-reactivity/submission/createNodeRangeSubmissionState.ts +0 -17
- package/src/lib/client-reactivity/submission/createParentNodeSubmissionState.ts +0 -22
- package/src/lib/client-reactivity/submission/createValueNodeSubmissionState.ts +0 -21
- package/src/lib/client-reactivity/submission/prepareSubmission.ts +0 -172
- package/src/lib/reactivity/createValueState.ts +0 -200
- package/src/parse/body/control/select/ItemsetNodesetContext.ts +0 -21
- package/src/parse/model/ItextTranslation/ItextTranslationDefinition.ts +0 -4
- package/src/parse/model/ItextTranslation/ItextTranslationRootDefinition.ts +0 -41
- package/src/parse/model/ItextTranslation/ItextTranslationsDefinition.ts +0 -31
- package/src/parse/model/RepeatInstanceDefinition.ts +0 -34
- package/src/parse/model/RepeatRangeDefinition.ts +0 -94
- package/src/parse/model/RepeatTemplateDefinition.ts +0 -145
- package/src/parse/model/SecondaryInstance/SecondaryInstanceDefinition.ts +0 -4
- package/src/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.ts +0 -12
|
@@ -6,7 +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 {
|
|
9
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
10
10
|
import { AnyNodeDefinition } from '../../parse/model/NodeDefinition.ts';
|
|
11
11
|
import { AnyChildNode, AnyParentNode } from '../hierarchy.ts';
|
|
12
12
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
@@ -19,13 +19,21 @@ export interface DescendantNodeSharedStateSpec {
|
|
|
19
19
|
readonly required: Accessor<boolean>;
|
|
20
20
|
}
|
|
21
21
|
export type DescendantNodeStateSpec<Value = never> = InstanceNodeStateSpec<Value> & DescendantNodeSharedStateSpec;
|
|
22
|
-
export type DescendantNodeDefinition =
|
|
22
|
+
export type DescendantNodeDefinition = AnyNodeDefinition;
|
|
23
23
|
export type AnyDescendantNode = DescendantNode<DescendantNodeDefinition, DescendantNodeStateSpec<any>, any, any>;
|
|
24
24
|
interface DescendantNodeOptions {
|
|
25
25
|
readonly computeReference?: Accessor<string>;
|
|
26
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
|
+
*/
|
|
27
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 {
|
|
28
35
|
readonly parent: Parent;
|
|
36
|
+
readonly instanceNode: StaticElement | null;
|
|
29
37
|
readonly definition: Definition;
|
|
30
38
|
/**
|
|
31
39
|
* Partial implementation of {@link isAttached}, used to check whether `this`
|
|
@@ -57,7 +65,7 @@ export declare abstract class DescendantNode<Definition extends DescendantNodeDe
|
|
|
57
65
|
readonly evaluator: EngineXPathEvaluator;
|
|
58
66
|
readonly contextNode: PrimaryInstanceXPathChildNode;
|
|
59
67
|
readonly getActiveLanguage: Accessor<ActiveLanguage>;
|
|
60
|
-
constructor(parent: Parent, definition: Definition, options?: DescendantNodeOptions);
|
|
68
|
+
constructor(parent: Parent, instanceNode: StaticElement | null, definition: Definition, options?: DescendantNodeOptions);
|
|
61
69
|
/**
|
|
62
70
|
* @package
|
|
63
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 {
|
|
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';
|
|
@@ -25,6 +27,7 @@ export type EngineInstanceNodeType = ClientInstanceNodeType | 'primary-instance'
|
|
|
25
27
|
export interface BaseEngineNode extends Omit<BaseNode, 'nodeType'> {
|
|
26
28
|
readonly nodeType: EngineInstanceNodeType;
|
|
27
29
|
}
|
|
30
|
+
export type InstanceNodeValueOptionsStateSpec = Accessor<null> | Accessor<readonly unknown[]> | null;
|
|
28
31
|
export interface InstanceNodeStateSpec<Value = never> {
|
|
29
32
|
readonly reference: Accessor<string> | string;
|
|
30
33
|
readonly readonly: Accessor<boolean> | boolean;
|
|
@@ -33,7 +36,7 @@ export interface InstanceNodeStateSpec<Value = never> {
|
|
|
33
36
|
readonly label: Accessor<TextRange<'label'> | null> | null;
|
|
34
37
|
readonly hint: Accessor<TextRange<'hint'> | null> | null;
|
|
35
38
|
readonly children: Accessor<readonly FormNodeID[]> | null;
|
|
36
|
-
readonly valueOptions:
|
|
39
|
+
readonly valueOptions: InstanceNodeValueOptionsStateSpec;
|
|
37
40
|
readonly value: Signal<Value> | SimpleAtomicState<Value> | null;
|
|
38
41
|
}
|
|
39
42
|
type AnyInstanceNode = InstanceNode<AnyNodeDefinition, InstanceNodeStateSpec<any>, any>;
|
|
@@ -54,8 +57,9 @@ export interface InstanceNodeOptions {
|
|
|
54
57
|
readonly scope?: ReactiveScope;
|
|
55
58
|
}
|
|
56
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 {
|
|
57
|
-
readonly
|
|
60
|
+
readonly instanceConfig: InstanceConfig;
|
|
58
61
|
readonly parent: Parent;
|
|
62
|
+
readonly instanceNode: StaticDocument | StaticElement | null;
|
|
59
63
|
readonly definition: Definition;
|
|
60
64
|
protected abstract readonly state: SharedNodeState<Spec>;
|
|
61
65
|
protected abstract readonly engineState: EngineState<Spec>;
|
|
@@ -85,9 +89,10 @@ export declare abstract class InstanceNode<Definition extends AnyNodeDefinition,
|
|
|
85
89
|
readonly nodeId: FormNodeID;
|
|
86
90
|
abstract readonly nodeType: EngineInstanceNodeType;
|
|
87
91
|
abstract readonly appearances: NodeAppearances<Definition>;
|
|
92
|
+
abstract readonly nodeOptions: object | null;
|
|
88
93
|
abstract readonly currentState: InstanceNodeCurrentState<Spec, Child>;
|
|
89
94
|
abstract readonly validationState: NodeValidationState;
|
|
90
|
-
abstract readonly
|
|
95
|
+
abstract readonly instanceState: InstanceState;
|
|
91
96
|
abstract readonly evaluator: EngineXPathEvaluator;
|
|
92
97
|
abstract readonly getActiveLanguage: Accessor<ActiveLanguage>;
|
|
93
98
|
abstract readonly isAttached: Accessor<boolean>;
|
|
@@ -101,7 +106,7 @@ export declare abstract class InstanceNode<Definition extends AnyNodeDefinition,
|
|
|
101
106
|
* constrain) their more specific `this` type.
|
|
102
107
|
*/
|
|
103
108
|
readonly contextNode: PrimaryInstanceXPathNode;
|
|
104
|
-
constructor(
|
|
109
|
+
constructor(instanceConfig: InstanceConfig, parent: Parent, instanceNode: StaticDocument | StaticElement | null, definition: Definition, options?: InstanceNodeOptions);
|
|
105
110
|
/** @package */
|
|
106
111
|
isPrimaryInstance(): this is PrimaryInstance;
|
|
107
112
|
/** @package */
|
|
@@ -2,10 +2,11 @@ import { XPathNodeKindKey } from '@getodk/xpath';
|
|
|
2
2
|
import { Accessor } from 'solid-js';
|
|
3
3
|
import { BaseValueNode } from '../../client/BaseValueNode.ts';
|
|
4
4
|
import { LeafNodeType as ValueNodeType } from '../../client/node-types.ts';
|
|
5
|
-
import {
|
|
5
|
+
import { InstanceState } from '../../client/serialization/InstanceState.ts';
|
|
6
6
|
import { AnyViolation, LeafNodeValidationState } from '../../client/validation.ts';
|
|
7
7
|
import { ValueType } from '../../client/ValueType.ts';
|
|
8
8
|
import { XFormsXPathElement } from '../../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
9
|
+
import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
9
10
|
import { RuntimeValueSetter, RuntimeValueState, ValueCodec } from '../../lib/codecs/ValueCodec.ts';
|
|
10
11
|
import { CurrentState } from '../../lib/reactivity/node-state/createCurrentState.ts';
|
|
11
12
|
import { EngineState } from '../../lib/reactivity/node-state/createEngineState.ts';
|
|
@@ -16,17 +17,17 @@ import { LeafNodeDefinition } from '../../parse/model/LeafNodeDefinition.ts';
|
|
|
16
17
|
import { GeneralParentNode } from '../hierarchy.ts';
|
|
17
18
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
18
19
|
import { DecodeInstanceValue, InstanceValueContext } from '../internal-api/InstanceValueContext.ts';
|
|
19
|
-
import {
|
|
20
|
+
import { ClientReactiveSerializableValueNode } from '../internal-api/serialization/ClientReactiveSerializableValueNode.ts';
|
|
20
21
|
import { ValidationContext } from '../internal-api/ValidationContext.ts';
|
|
21
22
|
import { DescendantNodeStateSpec, DescendantNode } from './DescendantNode.ts';
|
|
22
23
|
export type ValueNodeDefinition<V extends ValueType> = LeafNodeDefinition<V>;
|
|
23
24
|
export interface ValueNodeStateSpec<RuntimeValue> extends DescendantNodeStateSpec<RuntimeValue> {
|
|
24
25
|
readonly children: null;
|
|
25
|
-
readonly valueOptions: null;
|
|
26
26
|
readonly value: SimpleAtomicState<RuntimeValue>;
|
|
27
27
|
readonly instanceValue: Accessor<string>;
|
|
28
28
|
}
|
|
29
|
-
export declare abstract class ValueNode<V extends ValueType, Definition extends ValueNodeDefinition<V>, RuntimeValue extends RuntimeInputValue, RuntimeInputValue = RuntimeValue> extends DescendantNode<Definition, ValueNodeStateSpec<RuntimeValue>, GeneralParentNode, null> implements BaseValueNode<V, RuntimeValue>, XFormsXPathElement, EvaluationContext, InstanceValueContext, ValidationContext,
|
|
29
|
+
export declare abstract class ValueNode<V extends ValueType, Definition extends ValueNodeDefinition<V>, RuntimeValue extends RuntimeInputValue, RuntimeInputValue = RuntimeValue> extends DescendantNode<Definition, ValueNodeStateSpec<RuntimeValue>, GeneralParentNode, null> implements BaseValueNode<V, RuntimeValue>, XFormsXPathElement, EvaluationContext, InstanceValueContext, ValidationContext, ClientReactiveSerializableValueNode {
|
|
30
|
+
readonly instanceNode: StaticLeafElement | null;
|
|
30
31
|
protected readonly validation: SharedValidationState;
|
|
31
32
|
protected readonly getInstanceValue: Accessor<string>;
|
|
32
33
|
protected readonly valueState: RuntimeValueState<RuntimeValue>;
|
|
@@ -40,8 +41,8 @@ export declare abstract class ValueNode<V extends ValueType, Definition extends
|
|
|
40
41
|
readonly valueType: V;
|
|
41
42
|
abstract readonly currentState: CurrentState<ValueNodeStateSpec<RuntimeValue>>;
|
|
42
43
|
get validationState(): LeafNodeValidationState;
|
|
43
|
-
readonly
|
|
44
|
-
constructor(parent: GeneralParentNode, definition: Definition, codec: ValueCodec<V, RuntimeValue, RuntimeInputValue>);
|
|
44
|
+
readonly instanceState: InstanceState;
|
|
45
|
+
constructor(parent: GeneralParentNode, instanceNode: StaticLeafElement | null, definition: Definition, codec: ValueCodec<V, RuntimeValue, RuntimeInputValue>);
|
|
45
46
|
getViolation(): AnyViolation | null;
|
|
46
47
|
isBlank(): boolean;
|
|
47
48
|
getChildren(): readonly [];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
2
|
+
import { ChildNodeDefinition } from '../../parse/model/NodeDefinition.ts';
|
|
3
|
+
/**
|
|
4
|
+
* @todo We could pretty significantly simplify downstream child node
|
|
5
|
+
* construction logic, if we break this down into a tagged union (essentially
|
|
6
|
+
* moving the branchy type refinement aspects up the stack, probably trimming
|
|
7
|
+
* the construction logic itself down to a switch statement). At which point,
|
|
8
|
+
* it'd also probably be easier to reason about each of those constructors
|
|
9
|
+
* accepting input exactly as it's represented as a member of this hypothetical
|
|
10
|
+
* tagged union. Something like this:
|
|
11
|
+
*
|
|
12
|
+
* - Revise each concrete {@link DescendantNode} class to accept an options-like
|
|
13
|
+
* object suitable for its construction, each respectively defined by an
|
|
14
|
+
* interface whose name is consistent with that node
|
|
15
|
+
* - Update this type to be a union of those interfaces
|
|
16
|
+
* - Implement that in {@link childrenInitOptions}
|
|
17
|
+
* - Update downstream construction to switch over whatever narrows the union
|
|
18
|
+
* - Bonus points: revise each concrete {@link DescendantNode} to use a common
|
|
19
|
+
* constructor API (i.e. a static `from` method, since several such classes
|
|
20
|
+
* already have private constructors). Then downstream isn't even a switch
|
|
21
|
+
* statement, it's just a lookup table.
|
|
22
|
+
*
|
|
23
|
+
* @todo As of this commit, and as now mentioned on {@link DescendantNode}, and
|
|
24
|
+
* as discussed in
|
|
25
|
+
* {@link https://github.com/getodk/web-forms/pull/352#discussion_r2008237762}:
|
|
26
|
+
* this interface is intended as an intermediate step toward these goals.
|
|
27
|
+
*/
|
|
28
|
+
export interface DescendantNodeInitOptions {
|
|
29
|
+
readonly childNodeset: string;
|
|
30
|
+
readonly definition: ChildNodeDefinition;
|
|
31
|
+
readonly instanceNodes: readonly StaticElement[];
|
|
32
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { GeneralChildNode, GeneralParentNode } from '
|
|
1
|
+
import { GeneralChildNode, GeneralParentNode } from '../hierarchy.ts';
|
|
2
2
|
export declare const buildChildren: (parent: GeneralParentNode) => GeneralChildNode[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ModelDefinition } from '../../parse/model/ModelDefinition.ts';
|
|
2
|
+
import { GeneralParentNode } from '../hierarchy.ts';
|
|
3
|
+
import { DescendantNodeInitOptions } from './DescendantNodeInitOptions.ts';
|
|
4
|
+
export interface ChildrenInitOptions {
|
|
5
|
+
readonly parent: GeneralParentNode;
|
|
6
|
+
readonly model: ModelDefinition;
|
|
7
|
+
readonly children: readonly DescendantNodeInitOptions[];
|
|
8
|
+
}
|
|
9
|
+
export declare const childrenInitOptions: (parent: GeneralParentNode) => ChildrenInitOptions;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { Group } from './Group.ts';
|
|
2
2
|
import { AnyInputControl } from './InputControl.ts';
|
|
3
3
|
import { AnyModelValue } from './ModelValue.ts';
|
|
4
|
-
import {
|
|
4
|
+
import { AnyNote } from './Note.ts';
|
|
5
5
|
import { PrimaryInstance } from './PrimaryInstance.ts';
|
|
6
|
+
import { AnyRangeControl } from './RangeControl.ts';
|
|
6
7
|
import { RepeatInstance } from './repeat/RepeatInstance.ts';
|
|
7
8
|
import { RepeatRangeControlled } from './repeat/RepeatRangeControlled.ts';
|
|
8
9
|
import { RepeatRangeUncontrolled } from './repeat/RepeatRangeUncontrolled.ts';
|
|
9
10
|
import { Root } from './Root.ts';
|
|
10
|
-
import {
|
|
11
|
+
import { SelectControl } from './SelectControl.ts';
|
|
11
12
|
import { Subtree } from './Subtree.ts';
|
|
12
13
|
import { TriggerControl } from './TriggerControl.ts';
|
|
13
|
-
import {
|
|
14
|
-
import { RankControl } from './unsupported/RankControl.ts';
|
|
14
|
+
import { RankControl } from './RankControl.ts';
|
|
15
15
|
import { UploadControl } from './unsupported/UploadControl.ts';
|
|
16
16
|
export type RepeatRange = RepeatRangeControlled | RepeatRangeUncontrolled;
|
|
17
|
-
export type AnyUnsupportedControl =
|
|
18
|
-
export type AnyNode = PrimaryInstance | Root | Group | Subtree | RepeatRange | RepeatInstance |
|
|
17
|
+
export type AnyUnsupportedControl = UploadControl;
|
|
18
|
+
export type AnyNode = PrimaryInstance | Root | Group | Subtree | RepeatRange | RepeatInstance | AnyNote | AnyModelValue | AnyInputControl | AnyRangeControl | RankControl | SelectControl | TriggerControl | AnyUnsupportedControl;
|
|
19
19
|
export type AnyParentNode = PrimaryInstance | Root | Group | Subtree | RepeatRange | RepeatInstance;
|
|
20
20
|
export type GeneralParentNode = Root | Group | Subtree | RepeatInstance;
|
|
21
|
-
export type AnyChildNode = Root | Group | Subtree | RepeatRange | RepeatInstance | AnyModelValue |
|
|
22
|
-
export type GeneralChildNode = Group | Subtree | RepeatRange | AnyModelValue |
|
|
23
|
-
export type AnyValueNode = AnyModelValue |
|
|
21
|
+
export type AnyChildNode = Root | Group | Subtree | RepeatRange | RepeatInstance | AnyModelValue | AnyNote | AnyInputControl | AnyRangeControl | RankControl | SelectControl | TriggerControl | AnyUnsupportedControl;
|
|
22
|
+
export type GeneralChildNode = Group | Subtree | RepeatRange | AnyModelValue | AnyNote | AnyInputControl | AnyRangeControl | RankControl | SelectControl | TriggerControl | AnyUnsupportedControl;
|
|
23
|
+
export type AnyValueNode = AnyModelValue | AnyNote | AnyInputControl | AnyRangeControl | RankControl | SelectControl | TriggerControl | AnyUnsupportedControl;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EditFormInstanceInput } from '../../client/form/EditFormInstance.ts';
|
|
2
|
+
import { InstanceData } from '../../client/serialization/InstanceData.ts';
|
|
3
|
+
import { StaticDocument } from '../../integration/xpath/static-dom/StaticDocument.ts';
|
|
4
|
+
import { ModelDefinition } from '../../parse/model/ModelDefinition.ts';
|
|
5
|
+
import { InstanceAttachmentMap } from './InstanceAttachmentMap.ts';
|
|
6
|
+
export type InitialInstanceStateSources = readonly [InstanceData, ...InstanceData[]];
|
|
7
|
+
export declare class InitialInstanceState {
|
|
8
|
+
static from(model: ModelDefinition, data: InitialInstanceStateSources): Promise<InitialInstanceState>;
|
|
9
|
+
static resolve(model: ModelDefinition, input: EditFormInstanceInput): Promise<InitialInstanceState>;
|
|
10
|
+
readonly document: StaticDocument;
|
|
11
|
+
readonly attachments: InstanceAttachmentMap;
|
|
12
|
+
private constructor();
|
|
13
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ResolvableInstanceAttachmentsMap } from '../../client/form/EditFormInstance.ts';
|
|
2
|
+
type InstanceAttachmentMapSourceEntry = readonly [key: string, value: FormDataEntryValue];
|
|
3
|
+
interface InstanceAttachmentMapSource {
|
|
4
|
+
entries(): Iterable<InstanceAttachmentMapSourceEntry>;
|
|
5
|
+
}
|
|
6
|
+
type InstanceAttachmentMapSources = readonly [
|
|
7
|
+
InstanceAttachmentMapSource,
|
|
8
|
+
...InstanceAttachmentMapSource[]
|
|
9
|
+
];
|
|
10
|
+
export declare class InstanceAttachmentMap extends Map<string, File> {
|
|
11
|
+
static from(sources: InstanceAttachmentMapSources): InstanceAttachmentMap;
|
|
12
|
+
/**
|
|
13
|
+
* @todo
|
|
14
|
+
* @see {@link resolveInstanceAttachmentMapSource}
|
|
15
|
+
*/
|
|
16
|
+
static resolve(input: ResolvableInstanceAttachmentsMap): Promise<InstanceAttachmentMap>;
|
|
17
|
+
private constructor();
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
@@ -1,14 +1,7 @@
|
|
|
1
|
-
import { MissingResourceBehavior } from '../../client/constants.ts';
|
|
2
1
|
import { OpaqueReactiveObjectFactory } from '../../client/OpaqueReactiveObjectFactory.ts';
|
|
3
|
-
import { FetchFormAttachment, FetchResource } from '../../client/resources.ts';
|
|
4
|
-
import { CreateUniqueId } from '../../lib/unique-id.ts';
|
|
5
2
|
export interface InstanceConfig {
|
|
6
|
-
readonly stateFactory: OpaqueReactiveObjectFactory;
|
|
7
|
-
readonly fetchFormDefinition: FetchResource;
|
|
8
|
-
readonly fetchFormAttachment: FetchFormAttachment;
|
|
9
|
-
readonly missingResourceBehavior: MissingResourceBehavior;
|
|
10
3
|
/**
|
|
11
|
-
*
|
|
4
|
+
* @see {@link FormInstanceConfig.stateFactory}
|
|
12
5
|
*/
|
|
13
|
-
readonly
|
|
6
|
+
readonly clientStateFactory: OpaqueReactiveObjectFactory;
|
|
14
7
|
}
|
|
@@ -1,18 +1,27 @@
|
|
|
1
|
+
import { FormInstanceInitializationMode } from '../../client/index.ts';
|
|
2
|
+
import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
1
3
|
import { ReactiveScope } from '../../lib/reactivity/scope.ts';
|
|
2
4
|
import { BindComputationExpression } from '../../parse/expression/BindComputationExpression.ts';
|
|
5
|
+
import { AnyBindPreloadDefinition } from '../../parse/model/BindPreloadDefinition.ts';
|
|
3
6
|
import { EvaluationContext } from './EvaluationContext.ts';
|
|
7
|
+
export interface InstanceValueContextDocument {
|
|
8
|
+
readonly initializationMode: FormInstanceInitializationMode;
|
|
9
|
+
}
|
|
4
10
|
export type DecodeInstanceValue = (value: string) => string;
|
|
5
11
|
interface InstanceValueContextDefinitionBind {
|
|
12
|
+
readonly preload: AnyBindPreloadDefinition | null;
|
|
6
13
|
readonly calculate: BindComputationExpression<'calculate'> | null;
|
|
7
14
|
readonly readonly: BindComputationExpression<'readonly'>;
|
|
8
15
|
}
|
|
9
16
|
export interface InstanceValueContextDefinition {
|
|
10
17
|
readonly bind: InstanceValueContextDefinitionBind;
|
|
11
|
-
readonly
|
|
18
|
+
readonly template: StaticLeafElement;
|
|
12
19
|
}
|
|
13
20
|
export interface InstanceValueContext extends EvaluationContext {
|
|
14
21
|
readonly scope: ReactiveScope;
|
|
22
|
+
readonly rootDocument: InstanceValueContextDocument;
|
|
15
23
|
readonly definition: InstanceValueContextDefinition;
|
|
24
|
+
readonly instanceNode: StaticLeafElement | null;
|
|
16
25
|
readonly decodeInstanceValue: DecodeInstanceValue;
|
|
17
26
|
isReadonly(): boolean;
|
|
18
27
|
isRelevant(): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SubmissionMeta } from '../../../client/submission/SubmissionMeta.ts';
|
|
2
|
+
import { AncestorNodeValidationState } from '../../../client/validation.ts';
|
|
3
|
+
import { Root } from '../../Root.ts';
|
|
4
|
+
import { ClientReactiveSerializableParentNode, ClientReactiveSerializableParentNodeDefinition } from './ClientReactiveSerializableParentNode.ts';
|
|
5
|
+
interface ClientReactiveSerializableInstanceDefinition extends ClientReactiveSerializableParentNodeDefinition {
|
|
6
|
+
readonly submission: SubmissionMeta;
|
|
7
|
+
}
|
|
8
|
+
export interface ClientReactiveSerializableInstance extends ClientReactiveSerializableParentNode<Root> {
|
|
9
|
+
readonly definition: ClientReactiveSerializableInstanceDefinition;
|
|
10
|
+
readonly root: Root;
|
|
11
|
+
readonly parent: null;
|
|
12
|
+
readonly validationState: AncestorNodeValidationState;
|
|
13
|
+
}
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { QualifiedName } from '../../../lib/names/QualifiedName.ts';
|
|
3
|
+
import { EscapedXMLText } from '../../../lib/xml-serialization.ts';
|
|
4
|
+
import { ClientReactiveSerializableChildNode, ClientReactiveSerializableParentNode } from './ClientReactiveSerializableParentNode.ts';
|
|
5
|
+
interface ClientReactiveSerializableLeafNodeCurrentState<RuntimeValue> {
|
|
6
|
+
get relevant(): boolean;
|
|
7
|
+
get value(): RuntimeValue;
|
|
8
|
+
}
|
|
9
|
+
export type SerializedInstanceValue = string;
|
|
10
|
+
interface ClientReactiveSerializableLeafNodeDefinition {
|
|
11
|
+
readonly qualifiedName: QualifiedName;
|
|
12
|
+
}
|
|
13
|
+
export interface ClientReactiveSerializableLeafNode<RuntimeValue> {
|
|
14
|
+
readonly definition: ClientReactiveSerializableLeafNodeDefinition;
|
|
15
|
+
readonly parent: ClientReactiveSerializableParentNode<ClientReactiveSerializableChildNode>;
|
|
16
|
+
readonly currentState: ClientReactiveSerializableLeafNodeCurrentState<RuntimeValue>;
|
|
17
|
+
/**
|
|
18
|
+
* A client-reactive serializble leaf node is responsible for producing a
|
|
19
|
+
* string representation of its value state, suitable for instance
|
|
20
|
+
* serialization. It **MUST NOT** perform any further instance
|
|
21
|
+
* serialization-specific serialization duties: in particular, the value
|
|
22
|
+
* **MUST NOT** be escaped for XML. This responsibility is delegated up the
|
|
23
|
+
* stack, to avoid repeat escaping.
|
|
24
|
+
*
|
|
25
|
+
* Note: excluding {@link EscapedXMLText} here does not have an effect on the
|
|
26
|
+
* type system, it is a documentation-only hint, to help guard against future
|
|
27
|
+
* double-escaping mistakes.
|
|
28
|
+
*/
|
|
29
|
+
readonly encodeValue: (this: unknown, runtimeValue: RuntimeValue) => Exclude<string, EscapedXMLText>;
|
|
30
|
+
readonly instanceState: InstanceState;
|
|
31
|
+
}
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { QualifiedName } from '../../../lib/names/QualifiedName.ts';
|
|
3
|
+
export interface ClientReactiveSerializableChildNode {
|
|
4
|
+
readonly instanceState: InstanceState;
|
|
5
|
+
}
|
|
6
|
+
export interface ClientReactiveSerializableParentNodeCurrentState<Child extends ClientReactiveSerializableChildNode> {
|
|
7
|
+
get relevant(): boolean;
|
|
8
|
+
get children(): readonly Child[];
|
|
9
|
+
}
|
|
10
|
+
export interface ClientReactiveSerializableParentNodeDefinition {
|
|
11
|
+
readonly qualifiedName: QualifiedName;
|
|
12
|
+
}
|
|
13
|
+
export interface ClientReactiveSerializableParentNode<Child extends ClientReactiveSerializableChildNode> {
|
|
14
|
+
readonly definition: ClientReactiveSerializableParentNodeDefinition;
|
|
15
|
+
readonly parent: ClientReactiveSerializableParentNode<ClientReactiveSerializableChildNode> | null;
|
|
16
|
+
readonly currentState: ClientReactiveSerializableParentNodeCurrentState<Child>;
|
|
17
|
+
readonly instanceState: InstanceState;
|
|
18
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { StaticElement } from '../../../integration/xpath/static-dom/StaticElement.ts';
|
|
2
|
+
import { GeneralChildNode } from '../../hierarchy.ts';
|
|
3
|
+
import { ClientReactiveSerializableParentNode, ClientReactiveSerializableParentNodeCurrentState, ClientReactiveSerializableParentNodeDefinition } from './ClientReactiveSerializableParentNode.ts';
|
|
4
|
+
export interface ClientReactiveSerializableTemplatedNodeCurrentState extends ClientReactiveSerializableParentNodeCurrentState<GeneralChildNode> {
|
|
5
|
+
/** @see {@link TemplatedNodeAttributeSerializationError} */
|
|
6
|
+
get attributes(): unknown;
|
|
7
|
+
}
|
|
8
|
+
export interface ClientReactiveSerializableTemplatedNodeDefinition extends ClientReactiveSerializableParentNodeDefinition {
|
|
9
|
+
readonly template: StaticElement;
|
|
10
|
+
}
|
|
11
|
+
export interface ClientReactiveSerializableTemplatedNode extends ClientReactiveSerializableParentNode<GeneralChildNode> {
|
|
12
|
+
readonly currentState: ClientReactiveSerializableTemplatedNodeCurrentState;
|
|
13
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { QualifiedName } from '../../../lib/names/QualifiedName.ts';
|
|
3
|
+
import { ClientReactiveSerializableChildNode, ClientReactiveSerializableParentNode } from './ClientReactiveSerializableParentNode.ts';
|
|
4
|
+
export type SerializedInstanceValue = string;
|
|
5
|
+
interface ClientReactiveSerializableValueNodeCurrentState {
|
|
6
|
+
get relevant(): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* @todo Consider moving into {@link InstanceState}
|
|
9
|
+
*/
|
|
10
|
+
get instanceValue(): SerializedInstanceValue;
|
|
11
|
+
}
|
|
12
|
+
interface ClientReactiveSerializableValueNodeDefinition {
|
|
13
|
+
readonly qualifiedName: QualifiedName;
|
|
14
|
+
}
|
|
15
|
+
export interface ClientReactiveSerializableValueNode {
|
|
16
|
+
readonly definition: ClientReactiveSerializableValueNodeDefinition;
|
|
17
|
+
readonly parent: ClientReactiveSerializableParentNode<ClientReactiveSerializableChildNode>;
|
|
18
|
+
readonly currentState: ClientReactiveSerializableValueNodeCurrentState;
|
|
19
|
+
readonly instanceState: InstanceState;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
@@ -1,23 +1,25 @@
|
|
|
1
1
|
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
2
|
import { Accessor } from 'solid-js';
|
|
3
3
|
import { FormNodeID } from '../../client/identity.ts';
|
|
4
|
+
import { AnyRepeatDefinition } from '../../client/index.ts';
|
|
4
5
|
import { NodeAppearances } from '../../client/NodeAppearances.ts';
|
|
5
6
|
import { BaseRepeatRangeNode } from '../../client/repeat/BaseRepeatRangeNode.ts';
|
|
6
|
-
import {
|
|
7
|
+
import { InstanceState } from '../../client/serialization/InstanceState.ts';
|
|
7
8
|
import { TextRange } from '../../client/TextRange.ts';
|
|
8
9
|
import { AncestorNodeValidationState } from '../../client/validation.ts';
|
|
9
10
|
import { XFormsXPathNodeRange, XFormsXPathNodeRangeKind } from '../../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
11
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
10
12
|
import { ChildrenState } from '../../lib/reactivity/createChildrenState.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';
|
|
14
16
|
import { SharedNodeState } from '../../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
15
|
-
import {
|
|
17
|
+
import { ControlledRepeatDefinition } from '../../parse/model/RepeatDefinition.ts';
|
|
16
18
|
import { DescendantNodeSharedStateSpec, DescendantNode } from '../abstract/DescendantNode.ts';
|
|
17
19
|
import { GeneralParentNode } from '../hierarchy.ts';
|
|
18
20
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
19
|
-
import {
|
|
20
|
-
import { RepeatInstance
|
|
21
|
+
import { ClientReactiveSerializableParentNode } from '../internal-api/serialization/ClientReactiveSerializableParentNode.ts';
|
|
22
|
+
import { RepeatInstance } from './RepeatInstance.ts';
|
|
21
23
|
interface RepeatRangeStateSpec extends DescendantNodeSharedStateSpec {
|
|
22
24
|
readonly hint: null;
|
|
23
25
|
readonly label: Accessor<TextRange<'label'> | null>;
|
|
@@ -25,8 +27,8 @@ interface RepeatRangeStateSpec extends DescendantNodeSharedStateSpec {
|
|
|
25
27
|
readonly valueOptions: null;
|
|
26
28
|
readonly value: null;
|
|
27
29
|
}
|
|
28
|
-
type BaseRepeatRangeNodeType<Definition extends
|
|
29
|
-
export declare abstract class BaseRepeatRange<Definition extends
|
|
30
|
+
type BaseRepeatRangeNodeType<Definition extends AnyRepeatDefinition> = Definition extends ControlledRepeatDefinition ? 'repeat-range:controlled' : 'repeat-range:uncontrolled';
|
|
31
|
+
export declare abstract class BaseRepeatRange<Definition extends AnyRepeatDefinition> extends DescendantNode<Definition, RepeatRangeStateSpec, GeneralParentNode, RepeatInstance> implements BaseRepeatRangeNode, XFormsXPathNodeRange, EvaluationContext, ClientReactiveSerializableParentNode<RepeatInstance> {
|
|
30
32
|
protected readonly childrenState: ChildrenState<RepeatInstance>;
|
|
31
33
|
/**
|
|
32
34
|
* A repeat range doesn't have a corresponding primary instance element of its
|
|
@@ -101,14 +103,15 @@ export declare abstract class BaseRepeatRange<Definition extends AnyRepeatRangeD
|
|
|
101
103
|
* appearances" should apply, under which circumstances.
|
|
102
104
|
*/
|
|
103
105
|
abstract readonly appearances: NodeAppearances<Definition>;
|
|
106
|
+
readonly nodeOptions: null;
|
|
104
107
|
readonly currentState: MaterializedChildren<CurrentState<RepeatRangeStateSpec>, RepeatInstance>;
|
|
105
108
|
abstract readonly validationState: AncestorNodeValidationState;
|
|
106
|
-
readonly
|
|
109
|
+
readonly instanceState: InstanceState;
|
|
107
110
|
constructor(parent: GeneralParentNode, definition: Definition);
|
|
108
111
|
protected getLastIndex(): number;
|
|
109
112
|
getInstanceIndex(instance: RepeatInstance): number;
|
|
110
113
|
private createChildren;
|
|
111
|
-
protected addChildren(afterIndex: number,
|
|
114
|
+
protected addChildren(afterIndex: number, instanceNodes: readonly StaticElement[]): readonly RepeatInstance[];
|
|
112
115
|
protected removeChildren(startIndex: number, count: number): readonly RepeatInstance[];
|
|
113
116
|
getChildren(): readonly RepeatInstance[];
|
|
114
117
|
}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
2
|
import { Accessor } from 'solid-js';
|
|
3
3
|
import { FormNodeID } from '../../client/identity.ts';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { AnyRepeatDefinition, RepeatInstanceNode, RepeatInstanceNodeAppearances } from '../../client/repeat/RepeatInstanceNode.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,11 +14,12 @@ import { SharedNodeState } from '../../lib/reactivity/node-state/createSharedNod
|
|
|
13
14
|
import { DescendantNodeSharedStateSpec, DescendantNode } from '../abstract/DescendantNode.ts';
|
|
14
15
|
import { GeneralChildNode, RepeatRange } from '../hierarchy.ts';
|
|
15
16
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
16
|
-
import {
|
|
17
|
-
export type { RepeatDefinition };
|
|
17
|
+
import { ClientReactiveSerializableTemplatedNode } from '../internal-api/serialization/ClientReactiveSerializableTemplatedNode.ts';
|
|
18
18
|
interface RepeatInstanceStateSpec extends DescendantNodeSharedStateSpec {
|
|
19
19
|
readonly label: Accessor<TextRange<'label'> | null>;
|
|
20
20
|
readonly hint: null;
|
|
21
|
+
/** @see {@link TemplatedNodeAttributeSerializationError} */
|
|
22
|
+
readonly attributes: null;
|
|
21
23
|
readonly children: Accessor<readonly FormNodeID[]>;
|
|
22
24
|
readonly valueOptions: null;
|
|
23
25
|
readonly value: null;
|
|
@@ -25,7 +27,7 @@ interface RepeatInstanceStateSpec extends DescendantNodeSharedStateSpec {
|
|
|
25
27
|
interface RepeatInstanceOptions {
|
|
26
28
|
readonly precedingInstance: RepeatInstance | null;
|
|
27
29
|
}
|
|
28
|
-
export declare class RepeatInstance extends DescendantNode<
|
|
30
|
+
export declare class RepeatInstance extends DescendantNode<AnyRepeatDefinition, RepeatInstanceStateSpec, RepeatRange, GeneralChildNode> implements RepeatInstanceNode, XFormsXPathElement, EvaluationContext, ClientReactiveSerializableTemplatedNode {
|
|
29
31
|
readonly parent: RepeatRange;
|
|
30
32
|
private readonly childrenState;
|
|
31
33
|
private readonly currentIndex;
|
|
@@ -58,9 +60,11 @@ export declare class RepeatInstance extends DescendantNode<RepeatDefinition, Rep
|
|
|
58
60
|
* @see {@link RepeatRange.appearances}
|
|
59
61
|
*/
|
|
60
62
|
readonly appearances: RepeatInstanceNodeAppearances;
|
|
63
|
+
readonly nodeOptions: null;
|
|
61
64
|
readonly currentState: MaterializedChildren<CurrentState<RepeatInstanceStateSpec>, GeneralChildNode>;
|
|
62
65
|
readonly validationState: AncestorNodeValidationState;
|
|
63
|
-
readonly
|
|
64
|
-
constructor(parent: RepeatRange,
|
|
66
|
+
readonly instanceState: InstanceState;
|
|
67
|
+
constructor(parent: RepeatRange, instanceNode: StaticElement | null, options: RepeatInstanceOptions);
|
|
65
68
|
getChildren(): readonly GeneralChildNode[];
|
|
66
69
|
}
|
|
70
|
+
export {};
|
|
@@ -2,14 +2,38 @@ import { RepeatRangeNodeAppearances } from '../../client/repeat/BaseRepeatRangeN
|
|
|
2
2
|
import { RepeatRangeControlledNode } from '../../client/repeat/RepeatRangeControlledNode.ts';
|
|
3
3
|
import { AncestorNodeValidationState } from '../../client/validation.ts';
|
|
4
4
|
import { XFormsXPathNodeRange } from '../../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
5
|
-
import {
|
|
5
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
6
|
+
import { ControlledRepeatDefinition } from '../../parse/model/RepeatDefinition.ts';
|
|
6
7
|
import { GeneralParentNode } from '../hierarchy.ts';
|
|
7
8
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
8
9
|
import { BaseRepeatRange } from './BaseRepeatRange.ts';
|
|
9
|
-
export declare class RepeatRangeControlled extends BaseRepeatRange<
|
|
10
|
+
export declare class RepeatRangeControlled extends BaseRepeatRange<ControlledRepeatDefinition> implements RepeatRangeControlledNode, XFormsXPathNodeRange, EvaluationContext {
|
|
11
|
+
private readonly isInstanceCreation;
|
|
12
|
+
private readonly countControlType;
|
|
10
13
|
readonly nodeType = "repeat-range:controlled";
|
|
11
14
|
readonly appearances: RepeatRangeNodeAppearances;
|
|
12
15
|
readonly validationState: AncestorNodeValidationState;
|
|
13
|
-
constructor(parent: GeneralParentNode, definition:
|
|
16
|
+
constructor(parent: GeneralParentNode, instanceNodes: readonly StaticElement[], definition: ControlledRepeatDefinition);
|
|
14
17
|
private initializeControlledChildrenState;
|
|
18
|
+
/**
|
|
19
|
+
* Note: we do not warn about dropping "excess" repeat instances...
|
|
20
|
+
*
|
|
21
|
+
* - ... after the instance is fully loaded: dropping repeat instances after
|
|
22
|
+
* that point is an expected behavior of _dynamically-controlled repeats_
|
|
23
|
+
* (i.e. those defined with `jr:count`), and it does not occur for
|
|
24
|
+
* _fixed-controlled repeats_ (i.e. defined with `jr:noAddRemove`);
|
|
25
|
+
*
|
|
26
|
+
* - ... for dynamic (`jr:count`) repeats _in newly created form instances_, i.e. instances whose input instance
|
|
27
|
+
* nodes are derived from the _form definition_: those form-defined repeat
|
|
28
|
+
* instances are not "dropped", instead they're retained in memory to be
|
|
29
|
+
* added as count is recomputed to a larger value.
|
|
30
|
+
*
|
|
31
|
+
* @todo ^ it is pretty likely that retain-in-memory behavior also applies to
|
|
32
|
+
* instance state which has been serialized and restored as well! In this way,
|
|
33
|
+
* it's possible we're not really "dropping" those nodes, only deferring their
|
|
34
|
+
* restoration. Is this what we want?
|
|
35
|
+
*
|
|
36
|
+
* @todo Design and produce {@link LoadFormWarnings | warnings} as values!
|
|
37
|
+
*/
|
|
38
|
+
private warnDroppedInstanceNodes;
|
|
15
39
|
}
|
|
@@ -2,16 +2,17 @@ import { RepeatRangeNodeAppearances } from '../../client/repeat/BaseRepeatRangeN
|
|
|
2
2
|
import { RepeatRangeUncontrolledNode } from '../../client/repeat/RepeatRangeUncontrolledNode.ts';
|
|
3
3
|
import { AncestorNodeValidationState } from '../../client/validation.ts';
|
|
4
4
|
import { XFormsXPathNodeRange } from '../../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
5
|
-
import {
|
|
5
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
6
|
+
import { UncontrolledRepeatDefinition } from '../../parse/model/RepeatDefinition.ts';
|
|
6
7
|
import { GeneralParentNode } from '../hierarchy.ts';
|
|
7
8
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
8
9
|
import { Root } from '../Root.ts';
|
|
9
10
|
import { BaseRepeatRange } from './BaseRepeatRange.ts';
|
|
10
|
-
export declare class RepeatRangeUncontrolled extends BaseRepeatRange<
|
|
11
|
+
export declare class RepeatRangeUncontrolled extends BaseRepeatRange<UncontrolledRepeatDefinition> implements RepeatRangeUncontrolledNode, XFormsXPathNodeRange, EvaluationContext {
|
|
11
12
|
readonly nodeType = "repeat-range:uncontrolled";
|
|
12
13
|
readonly appearances: RepeatRangeNodeAppearances;
|
|
13
14
|
readonly validationState: AncestorNodeValidationState;
|
|
14
|
-
constructor(parent: GeneralParentNode, definition:
|
|
15
|
+
constructor(parent: GeneralParentNode, instanceNodes: readonly StaticElement[], definition: UncontrolledRepeatDefinition);
|
|
15
16
|
addInstances(afterIndex?: number, count?: number): Root;
|
|
16
17
|
/**
|
|
17
18
|
* Removes the {@link RepeatInstance}s corresponding to the specified range of
|