@getodk/xforms-engine 0.6.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/dist/client/BaseNode.d.ts +4 -4
- package/dist/client/BaseValueNode.d.ts +7 -3
- package/dist/client/RootNode.d.ts +20 -16
- 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/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/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/TemplatedNodeAttributeSerializationError.d.ts +22 -0
- package/dist/index.d.ts +2 -33
- package/dist/index.js +1915 -1419
- package/dist/index.js.map +1 -1
- package/dist/instance/Group.d.ts +6 -5
- package/dist/instance/InputControl.d.ts +5 -4
- package/dist/instance/ModelValue.d.ts +5 -4
- package/dist/instance/Note.d.ts +4 -3
- package/dist/instance/PrimaryInstance.d.ts +35 -8
- package/dist/instance/RangeControl.d.ts +5 -4
- package/dist/instance/RankControl.d.ts +6 -5
- package/dist/instance/Root.d.ts +7 -9
- package/dist/instance/SelectControl.d.ts +4 -3
- package/dist/instance/Subtree.d.ts +6 -5
- package/dist/instance/TriggerControl.d.ts +4 -3
- package/dist/instance/abstract/DescendantNode.d.ts +10 -1
- package/dist/instance/abstract/InstanceNode.d.ts +7 -4
- package/dist/instance/abstract/ValueNode.d.ts +7 -5
- 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/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 +8 -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 +10 -8
- package/dist/instance/repeat/RepeatInstance.d.ts +10 -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/static-dom/StaticAttribute.d.ts +4 -5
- package/dist/integration/xpath/static-dom/StaticDocument.d.ts +13 -10
- package/dist/integration/xpath/static-dom/StaticElement.d.ts +21 -22
- 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/TempUnsupportedControlCodec.d.ts +7 -0
- package/dist/lib/names/UnprefixedXFormsName.d.ts +4 -0
- package/dist/lib/reactivity/createInstanceValueState.d.ts +2 -27
- package/dist/parse/XFormDOM.d.ts +1 -1
- package/dist/parse/model/BindDefinition.d.ts +1 -1
- package/dist/parse/model/ItextTranslationsDefinition.d.ts +18 -0
- package/dist/parse/model/LeafNodeDefinition.d.ts +4 -5
- package/dist/parse/model/ModelBindMap.d.ts +1 -1
- package/dist/parse/model/ModelDefinition.d.ts +9 -2
- package/dist/parse/model/NodeDefinition.d.ts +18 -30
- package/dist/parse/model/NoteNodeDefinition.d.ts +3 -2
- package/dist/parse/model/RangeNodeDefinition.d.ts +2 -1
- package/dist/parse/model/RepeatDefinition.d.ts +62 -0
- package/dist/parse/model/RootAttributeDefinition.d.ts +1 -4
- package/dist/parse/model/RootAttributeMap.d.ts +2 -1
- package/dist/parse/model/RootDefinition.d.ts +7 -8
- 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 +4 -5
- 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 -21
- package/dist/solid.js +1709 -1213
- package/dist/solid.js.map +1 -1
- package/package.json +1 -1
- package/src/client/BaseNode.ts +4 -4
- package/src/client/BaseValueNode.ts +7 -3
- package/src/client/RootNode.ts +27 -19
- 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/index.ts +47 -29
- package/src/client/node-types.ts +2 -4
- 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/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/TemplatedNodeAttributeSerializationError.ts +24 -0
- package/src/index.ts +2 -46
- package/src/instance/Group.ts +16 -15
- package/src/instance/InputControl.ts +17 -11
- package/src/instance/ModelValue.ts +17 -11
- package/src/instance/Note.ts +10 -9
- package/src/instance/PrimaryInstance.ts +69 -31
- package/src/instance/RangeControl.ts +17 -11
- package/src/instance/RankControl.ts +28 -19
- package/src/instance/Root.ts +20 -31
- package/src/instance/SelectControl.ts +21 -12
- package/src/instance/Subtree.ts +16 -15
- package/src/instance/TriggerControl.ts +21 -12
- package/src/instance/abstract/DescendantNode.ts +12 -2
- package/src/instance/abstract/InstanceNode.ts +9 -5
- package/src/instance/abstract/ValueNode.ts +11 -13
- package/src/instance/children/DescendantNodeInitOptions.ts +35 -0
- package/src/instance/{children.ts → children/buildChildren.ts} +55 -48
- package/src/instance/children/childrenInitOptions.ts +117 -0
- package/src/instance/children/normalizeChildInitOptions.ts +332 -0
- 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 +9 -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 +19 -24
- package/src/instance/repeat/RepeatInstance.ts +26 -19
- package/src/instance/repeat/RepeatRangeControlled.ts +90 -17
- package/src/instance/repeat/RepeatRangeUncontrolled.ts +10 -9
- package/src/instance/resource.ts +14 -1
- 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/traversal.ts +2 -2
- package/src/integration/xpath/static-dom/StaticAttribute.ts +6 -5
- package/src/integration/xpath/static-dom/StaticDocument.ts +17 -16
- package/src/integration/xpath/static-dom/StaticElement.ts +196 -50
- 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/{submission/createRootSubmissionState.ts → instance-state/createRootInstanceState.ts} +4 -4
- 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/TempUnsupportedControlCodec.ts +32 -0
- package/src/lib/names/UnprefixedXFormsName.ts +12 -0
- package/src/lib/reactivity/createInstanceValueState.ts +27 -51
- package/src/parse/model/ItextTranslationsDefinition.ts +79 -0
- package/src/parse/model/LeafNodeDefinition.ts +3 -5
- package/src/parse/model/ModelDefinition.ts +36 -3
- package/src/parse/model/NodeDefinition.ts +19 -45
- package/src/parse/model/NoteNodeDefinition.ts +4 -3
- package/src/parse/model/RangeNodeDefinition.ts +3 -2
- package/src/parse/model/RepeatDefinition.ts +382 -0
- package/src/parse/model/RootAttributeDefinition.ts +6 -7
- package/src/parse/model/RootAttributeMap.ts +15 -10
- package/src/parse/model/RootDefinition.ts +17 -19
- 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 -137
- 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 +4 -5
- package/src/parse/model/nodeDefinitionMap.ts +34 -0
- package/src/parse/shared/parseInstanceXML.ts +79 -0
- package/src/parse/shared/parseStaticDocumentFromDOMSubtree.ts +45 -130
- 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/instance/abstract/UnsupportedControl.d.ts +0 -54
- 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 -32
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableParentNode.d.ts +0 -19
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableValueNode.d.ts +0 -18
- 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/createRootSubmissionState.d.ts +0 -3
- 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/createValueState.d.ts +0 -40
- package/dist/parse/model/ItextTranslation/ItextTranslationDefinition.d.ts +0 -4
- package/dist/parse/model/ItextTranslation/ItextTranslationRootDefinition.d.ts +0 -9
- package/dist/parse/model/ItextTranslation/ItextTranslationsDefinition.d.ts +0 -8
- package/dist/parse/model/RepeatInstanceDefinition.d.ts +0 -17
- package/dist/parse/model/RepeatRangeDefinition.d.ts +0 -32
- package/dist/parse/model/RepeatTemplateDefinition.d.ts +0 -31
- 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/instance/abstract/UnsupportedControl.ts +0 -175
- 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 -43
- package/src/instance/internal-api/submission/ClientReactiveSubmittableParentNode.ts +0 -26
- package/src/instance/internal-api/submission/ClientReactiveSubmittableValueNode.ts +0 -24
- 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/model/ItextTranslation/ItextTranslationDefinition.ts +0 -4
- package/src/parse/model/ItextTranslation/ItextTranslationRootDefinition.ts +0 -42
- package/src/parse/model/ItextTranslation/ItextTranslationsDefinition.ts +0 -31
- package/src/parse/model/RepeatInstanceDefinition.ts +0 -38
- package/src/parse/model/RepeatRangeDefinition.ts +0 -98
- package/src/parse/model/RepeatTemplateDefinition.ts +0 -149
- package/src/parse/model/SecondaryInstance/SecondaryInstanceDefinition.ts +0 -4
- package/src/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.ts +0 -12
|
@@ -1,32 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { QualifiedName } from '../../../lib/names/QualifiedName.ts';
|
|
1
|
+
import { QualifiedNameSource, QualifiedName } from '../../../lib/names/QualifiedName.ts';
|
|
3
2
|
import { XFormsXPathElement } from '../adapter/XFormsXPathNode.ts';
|
|
4
|
-
import { StaticAttribute } from './StaticAttribute.ts';
|
|
3
|
+
import { StaticAttributeOptions, StaticAttribute } from './StaticAttribute.ts';
|
|
5
4
|
import { StaticDocument } from './StaticDocument.ts';
|
|
6
|
-
import { StaticChildNode
|
|
7
|
-
|
|
8
|
-
export type
|
|
5
|
+
import { StaticChildNode } from './StaticNode.ts';
|
|
6
|
+
import { StaticParentNode } from './StaticParentNode.ts';
|
|
7
|
+
export type StaticElementChildOption = StaticElementOptions | string;
|
|
9
8
|
export interface StaticElementOptions {
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
9
|
+
readonly name: QualifiedNameSource | string;
|
|
10
|
+
readonly attributes?: readonly StaticAttributeOptions[];
|
|
11
|
+
readonly children?: readonly StaticElementChildOption[];
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
readonly
|
|
16
|
-
|
|
17
|
-
export declare class StaticElement<Parent extends StaticParentNode = StaticParentNode> extends StaticNode<'element'> implements XFormsXPathElement {
|
|
18
|
-
readonly parent: Parent;
|
|
19
|
-
readonly [XFORMS_LOCAL_NAME]?: string;
|
|
20
|
-
readonly [XFORMS_KNOWN_ATTRIBUTE]?: string;
|
|
21
|
-
readonly [XPathNodeKindKey] = "element";
|
|
22
|
-
readonly nodeType = "static-element";
|
|
13
|
+
export declare class StaticElement extends StaticParentNode<'element'> implements XFormsXPathElement {
|
|
14
|
+
readonly parent: StaticDocument | StaticElement;
|
|
15
|
+
private computedValue;
|
|
23
16
|
readonly rootDocument: StaticDocument;
|
|
24
17
|
readonly root: StaticElement;
|
|
25
18
|
readonly qualifiedName: QualifiedName;
|
|
19
|
+
readonly nodeset: string;
|
|
26
20
|
readonly attributes: readonly StaticAttribute[];
|
|
27
21
|
readonly children: readonly StaticChildNode[];
|
|
28
|
-
readonly
|
|
29
|
-
|
|
22
|
+
readonly childElements: readonly StaticElement[];
|
|
23
|
+
readonly value: string | null;
|
|
24
|
+
constructor(parent: StaticDocument | StaticElement, options: StaticElementOptions);
|
|
25
|
+
isLeafElement(): this is StaticLeafElement;
|
|
26
|
+
assertLeafElement(): asserts this is StaticLeafElement;
|
|
30
27
|
/**
|
|
31
28
|
* @todo Generalize this, incorporate into {@link EngineDOMAdapter}
|
|
32
29
|
* @todo Namespaced lookup
|
|
@@ -42,7 +39,9 @@ export declare class StaticElement<Parent extends StaticParentNode = StaticParen
|
|
|
42
39
|
* up. (This was put off because the types are already plenty complex as it
|
|
43
40
|
* is.)
|
|
44
41
|
*/
|
|
45
|
-
getAttributeValue
|
|
42
|
+
getAttributeValue(localName: string): string | null;
|
|
46
43
|
getXPathValue(): string;
|
|
47
44
|
}
|
|
48
|
-
export {
|
|
45
|
+
export interface StaticLeafElement extends StaticElement {
|
|
46
|
+
readonly value: string;
|
|
47
|
+
}
|
|
@@ -29,5 +29,5 @@ export declare abstract class StaticNode<Kind extends StaticNodeKind> implements
|
|
|
29
29
|
abstract getXPathValue(): string;
|
|
30
30
|
}
|
|
31
31
|
export type AnyStaticNode = StaticDocument | StaticElement | StaticAttribute | StaticText;
|
|
32
|
-
export type
|
|
32
|
+
export type StaticNodeParent = StaticDocument | StaticElement;
|
|
33
33
|
export type StaticChildNode = StaticElement | StaticText;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
|
+
import { StaticElement } from './StaticElement.ts';
|
|
3
|
+
import { StaticNode, StaticChildNode } from './StaticNode.ts';
|
|
4
|
+
type StaticParentNodeKind = 'document' | 'element';
|
|
5
|
+
type StaticParentNodeType<Kind extends StaticParentNodeKind> = `static-${Kind}`;
|
|
6
|
+
export declare abstract class StaticParentNode<Kind extends StaticParentNodeKind> extends StaticNode<Kind> {
|
|
7
|
+
abstract readonly children: readonly StaticChildNode[];
|
|
8
|
+
abstract readonly childElements: readonly StaticElement[];
|
|
9
|
+
readonly [XPathNodeKindKey]: Kind;
|
|
10
|
+
readonly nodeType: StaticParentNodeType<Kind>;
|
|
11
|
+
constructor(kind: Kind);
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { ClientReactiveSerializableParentNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableParentNode.ts';
|
|
3
|
+
import { RepeatInstance } from '../../../instance/repeat/RepeatInstance.ts';
|
|
4
|
+
export declare const createNodeRangeInstanceState: (node: ClientReactiveSerializableParentNode<RepeatInstance>) => InstanceState;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { GeneralChildNode } from '../../../instance/hierarchy.ts';
|
|
3
|
+
import { ClientReactiveSerializableParentNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableParentNode.ts';
|
|
4
|
+
export declare const createParentNodeInstanceState: (node: ClientReactiveSerializableParentNode<GeneralChildNode>) => InstanceState;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { ClientReactiveSerializableInstance } from '../../../instance/internal-api/serialization/ClientReactiveSerializableInstance.ts';
|
|
3
|
+
export declare const createPrimaryInstanceState: (node: ClientReactiveSerializableInstance) => InstanceState;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { ClientReactiveSerializableTemplatedNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableTemplatedNode.ts';
|
|
3
|
+
/**
|
|
4
|
+
* @see {@link TemplatedNodeAttributeSerializationError}
|
|
5
|
+
*/
|
|
6
|
+
export declare const createTemplatedNodeInstanceState: (node: ClientReactiveSerializableTemplatedNode) => InstanceState;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InstanceState } from '../../../client/serialization/InstanceState.ts';
|
|
2
|
+
import { ClientReactiveSerializableValueNode } from '../../../instance/internal-api/serialization/ClientReactiveSerializableValueNode.ts';
|
|
3
|
+
export declare const createValueNodeInstanceState: (node: ClientReactiveSerializableValueNode) => InstanceState;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { InstancePayload } from '../../../client/serialization/InstancePayload.ts';
|
|
2
|
+
import { InstancePayloadType } from '../../../client/serialization/InstancePayloadOptions.ts';
|
|
3
|
+
import { ClientReactiveSerializableInstance } from '../../../instance/internal-api/serialization/ClientReactiveSerializableInstance.ts';
|
|
4
|
+
export interface PrepareInstancePayloadOptions<PayloadType extends InstancePayloadType> {
|
|
5
|
+
readonly payloadType: PayloadType;
|
|
6
|
+
readonly maxSize: number;
|
|
7
|
+
}
|
|
8
|
+
export declare const prepareInstancePayload: <PayloadType extends InstancePayloadType>(instanceRoot: ClientReactiveSerializableInstance, options: PrepareInstancePayloadOptions<PayloadType>) => InstancePayload<PayloadType>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ValueType } from '../../client/ValueType.ts';
|
|
2
|
+
import { ValueCodec } from './ValueCodec.ts';
|
|
3
|
+
export type TempUnsupportedRuntimeValue = unknown;
|
|
4
|
+
export type TempUnsupportedInputValue = unknown;
|
|
5
|
+
export declare class TempUnsupportedControlCodec<V extends ValueType> extends ValueCodec<V, TempUnsupportedRuntimeValue, TempUnsupportedInputValue> {
|
|
6
|
+
constructor(valueType: V);
|
|
7
|
+
}
|
|
@@ -1,40 +1,15 @@
|
|
|
1
1
|
import { InstanceValueContext } from '../../instance/internal-api/InstanceValueContext.ts';
|
|
2
2
|
import { SimpleAtomicState } from './types.ts';
|
|
3
|
-
type InitialValueSource = 'FORM_DEFAULT' | 'PRIMARY_INSTANCE';
|
|
4
|
-
export interface InstanceValueStateOptions {
|
|
5
|
-
/**
|
|
6
|
-
* Specifies the source of a {@link createInstanceValueState} signal's initial
|
|
7
|
-
* value state, where:
|
|
8
|
-
*
|
|
9
|
-
* - 'FORM_DEFAULT': Derives the initial state from the form's definition of
|
|
10
|
-
* the node itself. This is the default option, appropriate when
|
|
11
|
-
* initializing a form without additional primary instance data. In other
|
|
12
|
-
* words, this value should not be used for edits.
|
|
13
|
-
*
|
|
14
|
-
* - 'PRIMARY_INSTANCE': Derives the initial state from the current text
|
|
15
|
-
* content of the {@link ValueNode.contextNode}. This option should be
|
|
16
|
-
* specified when initializing a form with existing primary instance data,
|
|
17
|
-
* such as when editing a previous submission.
|
|
18
|
-
*
|
|
19
|
-
* @default 'FORM_DEFAULT'
|
|
20
|
-
*
|
|
21
|
-
* Specifies whether a {@link createInstanceValueState} signal's initial state
|
|
22
|
-
* should be derived from the current text content of the
|
|
23
|
-
* {@link ValueNode.contextNode | primary instance DOM state}.
|
|
24
|
-
*/
|
|
25
|
-
readonly initialValueSource?: InitialValueSource;
|
|
26
|
-
}
|
|
27
3
|
export type InstanceValueState = SimpleAtomicState<string>;
|
|
28
4
|
/**
|
|
29
5
|
* Provides a consistent interface for value nodes of any type which:
|
|
30
6
|
*
|
|
31
7
|
* - derives initial state from either an existing instance (e.g. for edits) or
|
|
32
|
-
* the node's definition (e.g. initializing a new
|
|
8
|
+
* the node's definition (e.g. initializing a new instance)
|
|
33
9
|
* - decodes current primary instance state into the value node's runtime type
|
|
34
10
|
* - encodes updated runtime values to store updated instance state
|
|
35
11
|
* - initializes reactive computation of `calculate` bind expressions for those
|
|
36
12
|
* nodes defined with one
|
|
37
13
|
* - prevents downstream writes to nodes in a readonly state
|
|
38
14
|
*/
|
|
39
|
-
export declare const createInstanceValueState: (context: InstanceValueContext
|
|
40
|
-
export {};
|
|
15
|
+
export declare const createInstanceValueState: (context: InstanceValueContext) => InstanceValueState;
|
package/dist/parse/XFormDOM.d.ts
CHANGED
|
@@ -29,7 +29,7 @@ export declare class XFormDOM {
|
|
|
29
29
|
readonly secondaryInstanceElements: readonly DOMSecondaryInstanceElement[];
|
|
30
30
|
readonly body: Element;
|
|
31
31
|
protected constructor(sourceXML: string, options: XFormDOMOptions);
|
|
32
|
-
toJSON(): Omit<this, "head" | "html" | "title" | "
|
|
32
|
+
toJSON(): Omit<this, "head" | "html" | "title" | "toJSON" | "model" | "primaryInstance" | "primaryInstanceRoot" | "xformDocument"> & {
|
|
33
33
|
xformDocument: string;
|
|
34
34
|
html: string;
|
|
35
35
|
head: string;
|
|
@@ -36,5 +36,5 @@ export declare class BindDefinition<T extends BindType = BindType> extends Depen
|
|
|
36
36
|
get reference(): string;
|
|
37
37
|
get parentReference(): string | null;
|
|
38
38
|
constructor(form: XFormDefinition, model: ModelDefinition, nodeset: string, bindElement: BindElement);
|
|
39
|
-
toJSON(): Omit<this, "form" | "
|
|
39
|
+
toJSON(): Omit<this, "form" | "reference" | "parentReference" | "toJSON" | "isTranslated" | "model" | "bindElement" | "parentBind">;
|
|
40
40
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { XFORMS_KNOWN_ATTRIBUTE, XFORMS_LOCAL_NAME, XFormsItextTranslationMap } from '@getodk/xpath';
|
|
2
|
+
import { StaticDocument } from '../../integration/xpath/static-dom/StaticDocument.ts';
|
|
3
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
4
|
+
import { XFormDOM } from '../XFormDOM.ts';
|
|
5
|
+
export interface ItextTranslationDefinition extends StaticDocument {
|
|
6
|
+
readonly rootDocument: ItextTranslationDefinition;
|
|
7
|
+
readonly root: ItextTranslationRootDefinition;
|
|
8
|
+
}
|
|
9
|
+
export interface ItextTranslationRootDefinition extends StaticElement {
|
|
10
|
+
readonly [XFORMS_LOCAL_NAME]: 'translation';
|
|
11
|
+
readonly [XFORMS_KNOWN_ATTRIBUTE]: 'lang';
|
|
12
|
+
readonly root: ItextTranslationRootDefinition;
|
|
13
|
+
readonly rootDocument: ItextTranslationDefinition;
|
|
14
|
+
}
|
|
15
|
+
export declare class ItextTranslationsDefinition extends Map<string, ItextTranslationRootDefinition> implements XFormsItextTranslationMap<ItextTranslationRootDefinition> {
|
|
16
|
+
static from(xformDOM: XFormDOM): ItextTranslationsDefinition;
|
|
17
|
+
private constructor();
|
|
18
|
+
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ValueType } from '../../client/ValueType.ts';
|
|
2
|
+
import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
2
3
|
import { NamespaceDeclarationMap, NamedSubtreeDefinition } from '../../lib/names/NamespaceDeclarationMap.ts';
|
|
3
4
|
import { QualifiedName } from '../../lib/names/QualifiedName.ts';
|
|
4
5
|
import { AnyBodyElementDefinition, ControlElementDefinition } from '../body/BodyDefinition.ts';
|
|
@@ -6,14 +7,12 @@ import { BindDefinition } from './BindDefinition.ts';
|
|
|
6
7
|
import { DescendentNodeDefinition } from './DescendentNodeDefinition.ts';
|
|
7
8
|
import { ParentNodeDefinition } from './NodeDefinition.ts';
|
|
8
9
|
export declare class LeafNodeDefinition<V extends ValueType = ValueType> extends DescendentNodeDefinition<'leaf-node', ControlElementDefinition | null> implements NamedSubtreeDefinition {
|
|
9
|
-
readonly
|
|
10
|
+
readonly template: StaticLeafElement;
|
|
10
11
|
readonly type = "leaf-node";
|
|
11
12
|
readonly valueType: V;
|
|
12
13
|
readonly namespaceDeclarations: NamespaceDeclarationMap;
|
|
13
14
|
readonly qualifiedName: QualifiedName;
|
|
14
15
|
readonly children: null;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
constructor(parent: ParentNodeDefinition, bind: BindDefinition, bodyElement: AnyBodyElementDefinition | null, node: Element);
|
|
18
|
-
toJSON(): Omit<this, "parent" | "bind" | "toJSON" | "root" | "bodyElement">;
|
|
16
|
+
constructor(parent: ParentNodeDefinition, bind: BindDefinition, bodyElement: AnyBodyElementDefinition | null, template: StaticLeafElement);
|
|
17
|
+
toJSON(): Omit<this, "parent" | "toJSON" | "bind" | "root" | "bodyElement">;
|
|
19
18
|
}
|
|
@@ -10,6 +10,6 @@ export declare class ModelBindMap extends Map<BindNodeset, BindDefinition> {
|
|
|
10
10
|
static fromModel(model: ModelDefinition): ModelBindMap;
|
|
11
11
|
protected constructor(form: XFormDefinition, model: ModelDefinition);
|
|
12
12
|
getOrCreateBindDefinition(nodeset: string): BindDefinition;
|
|
13
|
-
toJSON(): [string, BindDefinition<"string" | "boolean" | "time" | "
|
|
13
|
+
toJSON(): [string, BindDefinition<"string" | "boolean" | "time" | "int" | "decimal" | "date" | "dateTime" | "geopoint" | "geotrace" | "geoshape" | "binary" | "barcode" | "intent">][];
|
|
14
14
|
}
|
|
15
15
|
export {};
|
|
@@ -1,12 +1,19 @@
|
|
|
1
|
+
import { StaticDocument } from '../../integration/xpath/static-dom/StaticDocument.ts';
|
|
1
2
|
import { XFormDefinition } from '../XFormDefinition.ts';
|
|
2
|
-
import { ItextTranslationsDefinition } from './
|
|
3
|
+
import { ItextTranslationsDefinition } from './ItextTranslationsDefinition.ts';
|
|
3
4
|
import { ModelBindMap } from './ModelBindMap.ts';
|
|
5
|
+
import { AnyNodeDefinition } from './NodeDefinition.ts';
|
|
6
|
+
import { NodeDefinitionMap } from './nodeDefinitionMap.ts';
|
|
4
7
|
import { RootDefinition } from './RootDefinition.ts';
|
|
5
8
|
export declare class ModelDefinition {
|
|
6
9
|
readonly form: XFormDefinition;
|
|
7
10
|
readonly binds: ModelBindMap;
|
|
8
11
|
readonly root: RootDefinition;
|
|
12
|
+
readonly nodes: NodeDefinitionMap;
|
|
13
|
+
readonly instance: StaticDocument;
|
|
9
14
|
readonly itextTranslations: ItextTranslationsDefinition;
|
|
10
15
|
constructor(form: XFormDefinition);
|
|
11
|
-
|
|
16
|
+
getNodeDefinition(nodeset: string): AnyNodeDefinition;
|
|
17
|
+
getRootDefinition(instance: StaticDocument): RootDefinition;
|
|
18
|
+
toJSON(): Omit<this, "form" | "toJSON" | "getNodeDefinition" | "getRootDefinition">;
|
|
12
19
|
}
|
|
@@ -1,55 +1,46 @@
|
|
|
1
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
1
2
|
import { NamedSubtreeDefinition, NamespaceDeclarationMap } from '../../lib/names/NamespaceDeclarationMap.ts';
|
|
2
3
|
import { QualifiedName } from '../../lib/names/QualifiedName.ts';
|
|
3
4
|
import { AnyBodyElementDefinition } from '../body/BodyDefinition.ts';
|
|
4
5
|
import { RepeatElementDefinition } from '../body/RepeatElementDefinition.ts';
|
|
5
6
|
import { BindDefinition } from './BindDefinition.ts';
|
|
6
7
|
import { LeafNodeDefinition } from './LeafNodeDefinition.ts';
|
|
7
|
-
import {
|
|
8
|
-
import { AnyRepeatRangeDefinition } from './RepeatRangeDefinition.ts';
|
|
9
|
-
import { RepeatTemplateDefinition } from './RepeatTemplateDefinition.ts';
|
|
8
|
+
import { AnyRepeatDefinition } from './RepeatDefinition.ts';
|
|
10
9
|
import { RootDefinition } from './RootDefinition.ts';
|
|
11
10
|
import { SubtreeDefinition } from './SubtreeDefinition.ts';
|
|
12
11
|
/**
|
|
13
|
-
* Corresponds to
|
|
12
|
+
* Corresponds to a model instance root node, i.e.:
|
|
14
13
|
*
|
|
15
14
|
* - the element matching `/*` in primary instance expressions, a.k.a.
|
|
16
15
|
* - `/h:html/h:head/xf:model/xf:instance[1]/*`
|
|
17
16
|
*/
|
|
18
17
|
export type RootNodeType = 'root';
|
|
19
18
|
/**
|
|
20
|
-
* Corresponds to
|
|
21
|
-
*
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* as a template from the form's first element matched by a <repeat nodeset>.
|
|
28
|
-
*/
|
|
29
|
-
export type RepeatTemplateType = 'repeat-template';
|
|
30
|
-
/**
|
|
31
|
-
* Corresponds to a single instance of a model/entry DOM subtree which
|
|
32
|
-
* in turn corresponds to a <repeat> in the form body definition, and a
|
|
33
|
-
* 'repeat-range' definition.
|
|
19
|
+
* Corresponds to the combined concepts defining a "repeat".
|
|
20
|
+
*
|
|
21
|
+
* @see {@link RepeatDefinition} for details on these concepts and how they are used to produce a "repeat definition", as such.
|
|
22
|
+
*
|
|
23
|
+
* , including or
|
|
24
|
+
* referencing all of the following:
|
|
25
|
+
*
|
|
34
26
|
*/
|
|
35
|
-
export type
|
|
27
|
+
export type RepeatType = 'repeat';
|
|
36
28
|
/**
|
|
37
|
-
* Corresponds to a model
|
|
29
|
+
* Corresponds to a model instance subtree which **does not** correspond to a
|
|
38
30
|
* <repeat> in the form definition. This will typically correspond to a <group>,
|
|
39
31
|
* but this is not strictly necessary per spec (hence the distinct name).
|
|
40
32
|
*/
|
|
41
33
|
export type SubtreeNodeType = 'subtree';
|
|
42
34
|
/**
|
|
43
|
-
* Corresponds to a model
|
|
35
|
+
* Corresponds to a model instance leaf node, i.e. one of:
|
|
44
36
|
*
|
|
45
37
|
* - An element with no child elements
|
|
46
38
|
* - Any attribute corresponding to a bind's `nodeset` expression
|
|
47
39
|
*/
|
|
48
40
|
export type LeafNodeType = 'leaf-node';
|
|
49
|
-
export type NodeDefinitionType = RootNodeType |
|
|
50
|
-
export type ParentNodeDefinition = RootDefinition |
|
|
51
|
-
export type ChildNodeDefinition =
|
|
52
|
-
export type ChildNodeInstanceDefinition = RepeatTemplateDefinition | RepeatInstanceDefinition | SubtreeDefinition | LeafNodeDefinition;
|
|
41
|
+
export type NodeDefinitionType = RootNodeType | RepeatType | SubtreeNodeType | LeafNodeType;
|
|
42
|
+
export type ParentNodeDefinition = RootDefinition | AnyRepeatDefinition | SubtreeDefinition;
|
|
43
|
+
export type ChildNodeDefinition = AnyRepeatDefinition | LeafNodeDefinition | SubtreeDefinition;
|
|
53
44
|
export declare abstract class NodeDefinition<Type extends NodeDefinitionType> implements NamedSubtreeDefinition {
|
|
54
45
|
readonly bind: BindDefinition;
|
|
55
46
|
abstract readonly type: Type;
|
|
@@ -59,12 +50,9 @@ export declare abstract class NodeDefinition<Type extends NodeDefinitionType> im
|
|
|
59
50
|
abstract readonly isTranslated: boolean;
|
|
60
51
|
abstract readonly root: RootDefinition;
|
|
61
52
|
abstract readonly parent: ParentNodeDefinition | null;
|
|
53
|
+
abstract readonly template: StaticElement;
|
|
62
54
|
abstract readonly children: readonly ChildNodeDefinition[] | null;
|
|
63
|
-
abstract readonly instances: readonly RepeatInstanceDefinition[] | null;
|
|
64
|
-
abstract readonly defaultValue: string | null;
|
|
65
|
-
/** @todo leaf-node may be Attr */
|
|
66
|
-
abstract readonly node: Element | null;
|
|
67
55
|
readonly nodeset: string;
|
|
68
56
|
constructor(bind: BindDefinition);
|
|
69
57
|
}
|
|
70
|
-
export type AnyNodeDefinition = RootDefinition |
|
|
58
|
+
export type AnyNodeDefinition = RootDefinition | AnyRepeatDefinition | SubtreeDefinition | LeafNodeDefinition;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ValueType } from '../../client/ValueType.ts';
|
|
2
|
+
import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
2
3
|
import { AnyBodyElementDefinition } from '../body/BodyDefinition.ts';
|
|
3
4
|
import { InputControlDefinition } from '../body/control/InputControlDefinition.ts';
|
|
4
5
|
import { BindComputationExpression } from '../expression/BindComputationExpression.ts';
|
|
@@ -26,6 +27,6 @@ export declare class NoteNodeDefinition<V extends ValueType = ValueType> extends
|
|
|
26
27
|
readonly bind: NoteBindDefinition<V>;
|
|
27
28
|
readonly bodyElement: InputControlDefinition;
|
|
28
29
|
readonly noteTextDefinition: NoteTextDefinition;
|
|
29
|
-
static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: AnyBodyElementDefinition | null, node:
|
|
30
|
-
constructor(parent: ParentNodeDefinition, bind: NoteBindDefinition<V>, bodyElement: InputControlDefinition, noteTextDefinition: NoteTextDefinition,
|
|
30
|
+
static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: AnyBodyElementDefinition | null, node: StaticLeafElement): NoteNodeDefinition<V> | null;
|
|
31
|
+
constructor(parent: ParentNodeDefinition, bind: NoteBindDefinition<V>, bodyElement: InputControlDefinition, noteTextDefinition: NoteTextDefinition, template: StaticLeafElement);
|
|
31
32
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ValueType } from '../../client/ValueType.ts';
|
|
2
|
+
import { StaticLeafElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
2
3
|
import { RuntimeValue } from '../../lib/codecs/getSharedValueCodec.ts';
|
|
3
4
|
import { RangeControlBoundsDefinition, RangeControlDefinition } from '../body/control/RangeControlDefinition.ts';
|
|
4
5
|
import { BindDefinition } from './BindDefinition.ts';
|
|
@@ -33,7 +34,7 @@ declare class RangeNodeBoundsDefinition<V extends RangeValueType = RangeValueTyp
|
|
|
33
34
|
export declare class RangeNodeDefinition<V extends RangeValueType = RangeValueType> extends LeafNodeDefinition<V> implements RangeLeafNodeDefinition<V> {
|
|
34
35
|
readonly bind: BindDefinition<V>;
|
|
35
36
|
readonly bodyElement: RangeControlDefinition;
|
|
36
|
-
static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: RangeControlDefinition, node:
|
|
37
|
+
static from<V extends ValueType>(parent: ParentNodeDefinition, bind: BindDefinition<V>, bodyElement: RangeControlDefinition, node: StaticLeafElement): RangeNodeDefinition<Extract<V, RangeValueType>>;
|
|
37
38
|
readonly bounds: RangeNodeBoundsDefinition<V>;
|
|
38
39
|
private constructor();
|
|
39
40
|
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
2
|
+
import { NamespaceDeclarationMap } from '../../lib/names/NamespaceDeclarationMap.ts';
|
|
3
|
+
import { QualifiedName } from '../../lib/names/QualifiedName.ts';
|
|
4
|
+
import { RepeatElementDefinition } from '../body/RepeatElementDefinition.ts';
|
|
5
|
+
import { RepeatCountControlExpression } from '../expression/RepeatCountControlExpression.ts';
|
|
6
|
+
import { BindDefinition } from './BindDefinition.ts';
|
|
7
|
+
import { DescendentNodeDefinition } from './DescendentNodeDefinition.ts';
|
|
8
|
+
import { ChildNodeDefinition, ParentNodeDefinition } from './NodeDefinition.ts';
|
|
9
|
+
export type RepeatInstanceNodes = readonly [StaticElement, ...StaticElement[]];
|
|
10
|
+
export interface ControlledRepeatDefinition extends RepeatDefinition {
|
|
11
|
+
readonly count: RepeatCountControlExpression;
|
|
12
|
+
}
|
|
13
|
+
export interface UncontrolledRepeatDefinition extends RepeatDefinition {
|
|
14
|
+
readonly count: null;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Represents a definition of the combined concepts colloquially called a
|
|
18
|
+
* "repeat", as defined by a form, where those concepts include:
|
|
19
|
+
*
|
|
20
|
+
* - A {@link RepeatElementDefinition}—corresponding to a `<repeat>` {@link https://getodk.github.io/xforms-spec/#body-elements | body element}—which is associated with the nodeset referencing the "repeat template" and
|
|
21
|
+
* all "repeat instances" (see below points describing both concepts in more detail). The presence of such a body element determines whether to produce a repeat definition (rather than e.g. a {@link SubtreeDefinition}).
|
|
22
|
+
*
|
|
23
|
+
* - A "repeat template", defined by a form either
|
|
24
|
+
* explicitly,
|
|
25
|
+
* or derived from the structure of the first form-defined "repeat instance"
|
|
26
|
+
* (as described in the next point).
|
|
27
|
+
*
|
|
28
|
+
* - A sequence of one or more model instance nodes, each representing a "repeat instance"
|
|
29
|
+
* defined by the form. These nodes contribute to the definition in the following ways:
|
|
30
|
+
*
|
|
31
|
+
* - If an explicit "repeat template" is not defined for
|
|
32
|
+
* the "repeat", one is derived from the **structure** (but not the values!)
|
|
33
|
+
* of the first such model instance node.
|
|
34
|
+
*
|
|
35
|
+
* - If the "repeat" is {@link ControlledRepeatDefinition | controlled} (i.e. by either a `jr:count` or `jr:noAddRemove` {@link https://getodk.github.io/xforms-spec/#body-attributes | attribute} on the associated {@link RepeatElementDefinition}
|
|
36
|
+
*
|
|
37
|
+
* (For construction of this
|
|
38
|
+
* definition, all other referenced instance nodes are **consumed** in the
|
|
39
|
+
* process of building the repeat definition's subtree of a
|
|
40
|
+
* {@link RootDefinition}, ensuring that one repeat definition is produced for
|
|
41
|
+
* all applicable nodes; they are later referenced for construction of a
|
|
42
|
+
* form's {@link PrimaryInstance | instance state}.)
|
|
43
|
+
*
|
|
44
|
+
* Combined, these concepts produce the details required to instantiate the
|
|
45
|
+
* {@link RepeatRange} and {@link RepeatInstance} instance state nodes
|
|
46
|
+
* associated with a defined repeat.
|
|
47
|
+
*/
|
|
48
|
+
export declare class RepeatDefinition extends DescendentNodeDefinition<'repeat', RepeatElementDefinition> {
|
|
49
|
+
static from(parent: ParentNodeDefinition, bind: BindDefinition, bodyElement: RepeatElementDefinition, instanceNodes: RepeatInstanceNodes): AnyRepeatDefinition;
|
|
50
|
+
readonly type = "repeat";
|
|
51
|
+
readonly children: readonly ChildNodeDefinition[];
|
|
52
|
+
readonly count: RepeatCountControlExpression | null;
|
|
53
|
+
readonly template: StaticElement;
|
|
54
|
+
readonly namespaceDeclarations: NamespaceDeclarationMap;
|
|
55
|
+
readonly qualifiedName: QualifiedName;
|
|
56
|
+
private constructor();
|
|
57
|
+
isControlled(): this is ControlledRepeatDefinition;
|
|
58
|
+
isUncontrolled(): this is UncontrolledRepeatDefinition;
|
|
59
|
+
omitTemplate(instanceNodes: readonly StaticElement[]): readonly StaticElement[];
|
|
60
|
+
toJSON(): object;
|
|
61
|
+
}
|
|
62
|
+
export type AnyRepeatDefinition = ControlledRepeatDefinition | UncontrolledRepeatDefinition;
|
|
@@ -2,10 +2,7 @@ import { NamedNodeDefinition } from '../../lib/names/NamespaceDeclarationMap.ts'
|
|
|
2
2
|
import { QualifiedName } from '../../lib/names/QualifiedName.ts';
|
|
3
3
|
import { RootDefinition } from './RootDefinition.ts';
|
|
4
4
|
interface RootAttributeSource {
|
|
5
|
-
readonly
|
|
6
|
-
readonly nodeName: string;
|
|
7
|
-
readonly prefix: string | null;
|
|
8
|
-
readonly localName: string;
|
|
5
|
+
readonly qualifiedName: QualifiedName;
|
|
9
6
|
readonly value: string;
|
|
10
7
|
}
|
|
11
8
|
/**
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
1
2
|
import { QualifiedName } from '../../lib/names/QualifiedName.ts';
|
|
2
3
|
import { RootAttributeDefinition } from './RootAttributeDefinition.ts';
|
|
3
4
|
import { RootDefinition } from './RootDefinition.ts';
|
|
@@ -18,6 +19,6 @@ import { RootDefinition } from './RootDefinition.ts';
|
|
|
18
19
|
* @see {@link QualifiedName} for more detail.
|
|
19
20
|
*/
|
|
20
21
|
export declare class RootAttributeMap extends Map<QualifiedName, RootAttributeDefinition> {
|
|
21
|
-
static from(root: RootDefinition,
|
|
22
|
+
static from(root: RootDefinition, instanceNode: StaticElement): RootAttributeMap;
|
|
22
23
|
private constructor();
|
|
23
24
|
}
|
|
@@ -1,29 +1,28 @@
|
|
|
1
|
+
import { StaticElement } from '../../integration/xpath/static-dom/StaticElement.ts';
|
|
1
2
|
import { NamespaceDeclarationMap } from '../../lib/names/NamespaceDeclarationMap.ts';
|
|
2
3
|
import { QualifiedName } from '../../lib/names/QualifiedName.ts';
|
|
3
4
|
import { BodyClassList } from '../body/BodyDefinition.ts';
|
|
4
5
|
import { XFormDefinition } from '../XFormDefinition.ts';
|
|
5
|
-
import { FormSubmissionDefinition } from './FormSubmissionDefinition.ts';
|
|
6
6
|
import { ModelDefinition } from './ModelDefinition.ts';
|
|
7
7
|
import { ChildNodeDefinition, ParentNodeDefinition, NodeDefinition } from './NodeDefinition.ts';
|
|
8
8
|
import { RootAttributeMap } from './RootAttributeMap.ts';
|
|
9
|
+
import { SubmissionDefinition } from './SubmissionDefinition.ts';
|
|
9
10
|
export declare class RootDefinition extends NodeDefinition<'root'> {
|
|
10
11
|
protected readonly form: XFormDefinition;
|
|
11
12
|
protected readonly model: ModelDefinition;
|
|
12
|
-
readonly submission:
|
|
13
|
+
readonly submission: SubmissionDefinition;
|
|
13
14
|
readonly classes: BodyClassList;
|
|
14
15
|
readonly type = "root";
|
|
15
16
|
readonly qualifiedName: QualifiedName;
|
|
16
17
|
readonly bodyElement: null;
|
|
17
18
|
readonly root: this;
|
|
18
19
|
readonly parent: null;
|
|
20
|
+
readonly template: StaticElement;
|
|
19
21
|
readonly namespaceDeclarations: NamespaceDeclarationMap;
|
|
20
22
|
readonly attributes: RootAttributeMap;
|
|
21
23
|
readonly children: readonly ChildNodeDefinition[];
|
|
22
|
-
readonly instances: null;
|
|
23
|
-
readonly node: Element;
|
|
24
|
-
readonly defaultValue: null;
|
|
25
24
|
readonly isTranslated = false;
|
|
26
|
-
constructor(form: XFormDefinition, model: ModelDefinition, submission:
|
|
27
|
-
buildSubtree(parent: ParentNodeDefinition): readonly ChildNodeDefinition[];
|
|
28
|
-
toJSON(): Omit<this, "form" | "
|
|
25
|
+
constructor(form: XFormDefinition, model: ModelDefinition, submission: SubmissionDefinition, classes: BodyClassList);
|
|
26
|
+
buildSubtree(parent: ParentNodeDefinition, node: StaticElement): readonly ChildNodeDefinition[];
|
|
27
|
+
toJSON(): Omit<this, "form" | "toJSON" | "bind" | "root" | "model" | "bodyElement" | "buildSubtree">;
|
|
29
28
|
}
|
|
@@ -1,8 +1,21 @@
|
|
|
1
|
-
import { XFormsSecondaryInstanceMap } from '@getodk/xpath';
|
|
1
|
+
import { XFORMS_KNOWN_ATTRIBUTE, XFORMS_LOCAL_NAME, XFormsSecondaryInstanceMap } from '@getodk/xpath';
|
|
2
2
|
import { EngineXPathNode } from '../../../integration/xpath/adapter/kind.ts';
|
|
3
|
+
import { StaticDocument } from '../../../integration/xpath/static-dom/StaticDocument.ts';
|
|
4
|
+
import { StaticElement } from '../../../integration/xpath/static-dom/StaticElement.ts';
|
|
3
5
|
import { XFormDOM } from '../../XFormDOM.ts';
|
|
4
|
-
import { SecondaryInstanceRootDefinition } from './SecondaryInstanceRootDefinition.ts';
|
|
5
6
|
import { ExternalSecondaryInstanceResourceLoadOptions } from './sources/ExternalSecondaryInstanceResource.ts';
|
|
7
|
+
export interface SecondaryInstanceDefinition extends StaticDocument {
|
|
8
|
+
readonly rootDocument: SecondaryInstanceDefinition;
|
|
9
|
+
readonly root: SecondaryInstanceRootDefinition;
|
|
10
|
+
}
|
|
11
|
+
export interface SecondaryInstanceRootDefinition extends StaticElement {
|
|
12
|
+
readonly [XFORMS_LOCAL_NAME]: 'instance';
|
|
13
|
+
readonly [XFORMS_KNOWN_ATTRIBUTE]: 'id';
|
|
14
|
+
readonly rootDocument: SecondaryInstanceDefinition;
|
|
15
|
+
readonly root: SecondaryInstanceRootDefinition;
|
|
16
|
+
getAttributeValue(localName: 'id'): string;
|
|
17
|
+
getAttributeValue(localName: string): string | null;
|
|
18
|
+
}
|
|
6
19
|
export declare class SecondaryInstancesDefinition extends Map<string, SecondaryInstanceRootDefinition> implements XFormsSecondaryInstanceMap<EngineXPathNode> {
|
|
7
20
|
/**
|
|
8
21
|
* @package Only to be used for testing
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { StaticDocument } from '../../../integration/xpath/static-dom/StaticDocument.ts';
|
|
2
|
+
import { SecondaryInstanceDefinition } from './SecondaryInstancesDefinition.ts';
|
|
3
|
+
type AssertSecondaryInstanceDefinition = (doc: StaticDocument) => asserts doc is SecondaryInstanceDefinition;
|
|
4
|
+
export declare const assertSecondaryInstanceDefinition: AssertSecondaryInstanceDefinition;
|
|
5
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { StaticElementOptions } from '../../../integration/xpath/static-dom/StaticElement.ts';
|
|
2
|
+
import { SecondaryInstanceDefinition } from './SecondaryInstancesDefinition.ts';
|
|
3
|
+
type SecondaryInstanceRoot = StaticElementOptions | '';
|
|
4
|
+
export declare const defineSecondaryInstance: (instanceId: string, secondaryInstanceRoot: SecondaryInstanceRoot) => SecondaryInstanceDefinition;
|
|
5
|
+
export {};
|
|
@@ -1,14 +1,8 @@
|
|
|
1
1
|
import { JRResourceURL } from '../../../../../../common/src/jr-resources/JRResourceURL.ts';
|
|
2
2
|
import { DOMSecondaryInstanceElement } from '../../../XFormDOM.ts';
|
|
3
|
-
import { SecondaryInstanceDefinition } from '../
|
|
3
|
+
import { SecondaryInstanceDefinition } from '../SecondaryInstancesDefinition.ts';
|
|
4
4
|
import { SecondaryInstanceSource } from './SecondaryInstanceSource.ts';
|
|
5
5
|
export declare class BlankSecondaryInstanceSource extends SecondaryInstanceSource<'blank'> {
|
|
6
6
|
constructor(instanceId: string, resourceURL: JRResourceURL, domElement: DOMSecondaryInstanceElement);
|
|
7
|
-
/**
|
|
8
|
-
* @todo there is really no sense in using the DOM for this, other than it was
|
|
9
|
-
* quicker/more ergonomic than constructing the requisite {@link StaticNode}
|
|
10
|
-
* structures directly. Pretty good sign those constructor signatures could
|
|
11
|
-
* use some TLC!
|
|
12
|
-
*/
|
|
13
7
|
parseDefinition(): SecondaryInstanceDefinition;
|
|
14
8
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SecondaryInstanceDefinition } from '../
|
|
1
|
+
import { SecondaryInstanceDefinition } from '../SecondaryInstancesDefinition.ts';
|
|
2
2
|
import { ExternalSecondaryInstanceSource } from './ExternalSecondaryInstanceSource.ts';
|
|
3
3
|
export declare class CSVExternalSecondaryInstanceSource extends ExternalSecondaryInstanceSource<'csv'> {
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SecondaryInstanceDefinition } from '../
|
|
1
|
+
import { SecondaryInstanceDefinition } from '../SecondaryInstancesDefinition.ts';
|
|
2
2
|
import { ExternalSecondaryInstanceSource } from './ExternalSecondaryInstanceSource.ts';
|
|
3
3
|
export declare class GeoJSONExternalSecondaryInstanceSource extends ExternalSecondaryInstanceSource<'geojson'> {
|
|
4
4
|
parseDefinition(): SecondaryInstanceDefinition;
|