@getodk/xforms-engine 0.4.0 → 0.5.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 +14 -3
- package/dist/client/BaseValueNode.d.ts +32 -0
- package/dist/client/EngineConfig.d.ts +49 -48
- package/dist/client/InputNode.d.ts +53 -0
- package/dist/client/ModelValueNode.d.ts +12 -7
- package/dist/client/NoteNode.d.ts +2 -2
- package/dist/client/RootNode.d.ts +34 -7
- package/dist/client/SelectNode.d.ts +2 -2
- package/dist/client/ValueType.d.ts +3 -0
- package/dist/client/constants.d.ts +50 -0
- package/dist/client/hierarchy.d.ts +4 -4
- package/dist/client/identity.d.ts +14 -0
- package/dist/client/node-types.d.ts +2 -1
- package/dist/client/resources.d.ts +93 -0
- package/dist/client/submission/SubmissionData.d.ts +7 -0
- package/dist/client/submission/SubmissionDefinition.d.ts +14 -0
- package/dist/client/submission/SubmissionInstanceFile.d.ts +6 -0
- package/dist/client/submission/SubmissionOptions.d.ts +23 -0
- package/dist/client/submission/SubmissionResult.d.ts +91 -0
- package/dist/client/submission/SubmissionState.d.ts +12 -0
- package/dist/client/validation.d.ts +2 -2
- package/dist/error/ErrorProductionDesignPendingError.d.ts +7 -0
- package/dist/error/ValueTypeInvariantError.d.ts +17 -0
- package/dist/error/XPathFunctionalityError.d.ts +14 -0
- package/dist/error/XPathFunctionalityNotSupportedError.d.ts +7 -0
- package/dist/error/XPathFunctionalityPendingError.d.ts +7 -0
- package/dist/index.d.ts +10 -1
- package/dist/index.js +10856 -8585
- package/dist/index.js.map +1 -1
- package/dist/instance/Group.d.ts +9 -4
- package/dist/instance/InputControl.d.ts +36 -0
- package/dist/instance/ModelValue.d.ts +16 -26
- package/dist/instance/Note.d.ts +10 -3
- package/dist/instance/PrimaryInstance.d.ts +84 -0
- package/dist/instance/Root.d.ts +29 -25
- package/dist/instance/SelectField.d.ts +10 -2
- package/dist/instance/Subtree.d.ts +10 -5
- package/dist/instance/TriggerControl.d.ts +10 -3
- package/dist/instance/abstract/DescendantNode.d.ts +31 -23
- package/dist/instance/abstract/InstanceNode.d.ts +49 -29
- package/dist/instance/abstract/UnsupportedControl.d.ts +10 -3
- package/dist/instance/abstract/ValueNode.d.ts +48 -0
- package/dist/instance/hierarchy.d.ts +9 -8
- package/dist/instance/identity.d.ts +2 -7
- package/dist/instance/internal-api/EvaluationContext.d.ts +53 -12
- package/dist/instance/internal-api/InstanceConfig.d.ts +8 -2
- package/dist/instance/internal-api/InstanceValueContext.d.ts +20 -0
- package/dist/instance/internal-api/PrimaryInstanceDocument.d.ts +36 -0
- package/dist/instance/internal-api/TranslationContext.d.ts +3 -2
- package/dist/instance/internal-api/ValidationContext.d.ts +3 -4
- package/dist/instance/internal-api/ValueContext.d.ts +2 -1
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableInstance.d.ts +14 -0
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.d.ts +31 -0
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableParentNode.d.ts +18 -0
- package/dist/instance/internal-api/submission/ClientReactiveSubmittableValueNode.d.ts +17 -0
- package/dist/instance/repeat/BaseRepeatRange.d.ts +39 -83
- package/dist/instance/repeat/RepeatInstance.d.ts +11 -29
- package/dist/instance/repeat/RepeatRangeControlled.d.ts +2 -2
- package/dist/instance/repeat/RepeatRangeUncontrolled.d.ts +2 -2
- package/dist/instance/resource.d.ts +1 -1
- package/dist/instance/text/TextRange.d.ts +1 -1
- package/dist/instance/unsupported/RangeControl.d.ts +3 -1
- package/dist/instance/unsupported/RankControl.d.ts +3 -1
- package/dist/instance/unsupported/UploadControl.d.ts +3 -1
- package/dist/integration/xpath/EngineXPathEvaluator.d.ts +14 -0
- package/dist/integration/xpath/adapter/XFormsXPathNode.d.ts +71 -0
- package/dist/integration/xpath/adapter/engineDOMAdapter.d.ts +5 -0
- package/dist/integration/xpath/adapter/kind.d.ts +32 -0
- package/dist/integration/xpath/adapter/names.d.ts +16 -0
- package/dist/integration/xpath/adapter/traversal.d.ts +25 -0
- package/dist/integration/xpath/adapter/values.d.ts +2 -0
- package/dist/integration/xpath/static-dom/StaticAttribute.d.ts +19 -0
- package/dist/integration/xpath/static-dom/StaticDocument.d.ts +16 -0
- package/dist/integration/xpath/static-dom/StaticElement.d.ts +40 -0
- package/dist/integration/xpath/static-dom/StaticNamedNode.d.ts +17 -0
- package/dist/integration/xpath/static-dom/StaticNode.d.ts +33 -0
- package/dist/integration/xpath/static-dom/StaticText.d.ts +16 -0
- package/dist/lib/client-reactivity/submission/createInstanceSubmissionState.d.ts +3 -0
- package/dist/lib/client-reactivity/submission/createLeafNodeSubmissionState.d.ts +3 -0
- package/dist/lib/client-reactivity/submission/createNodeRangeSubmissionState.d.ts +4 -0
- package/dist/lib/client-reactivity/submission/createParentNodeSubmissionState.d.ts +4 -0
- package/dist/lib/client-reactivity/submission/createValueNodeSubmissionState.d.ts +3 -0
- package/dist/lib/client-reactivity/submission/prepareSubmission.d.ts +8 -0
- package/dist/lib/codecs/DecimalValueCodec.d.ts +6 -0
- package/dist/lib/codecs/IntValueCodec.d.ts +6 -0
- package/dist/lib/codecs/StringValueCodec.d.ts +4 -0
- package/dist/lib/codecs/ValueCodec.d.ts +30 -0
- package/dist/lib/codecs/ValueTypePlaceholderCodec.d.ts +12 -0
- package/dist/lib/codecs/getSharedValueCodec.d.ts +47 -0
- package/dist/lib/dom/query.d.ts +3 -0
- package/dist/lib/reactivity/createChildrenState.d.ts +7 -5
- package/dist/lib/reactivity/createComputedExpression.d.ts +18 -5
- package/dist/lib/reactivity/createInstanceValueState.d.ts +40 -0
- package/dist/lib/reactivity/createNoteReadonlyThunk.d.ts +2 -2
- package/dist/lib/reactivity/createTranslationState.d.ts +19 -0
- package/dist/lib/reactivity/createValueState.d.ts +6 -10
- package/dist/lib/reactivity/materializeCurrentStateChildren.d.ts +4 -4
- package/dist/lib/xml-serialization.d.ts +41 -0
- package/dist/parse/XFormDOM.d.ts +18 -7
- package/dist/parse/XFormDefinition.d.ts +1 -2
- package/dist/parse/attachments/FormAttachmentResource.d.ts +27 -0
- package/dist/parse/body/BodyDefinition.d.ts +3 -3
- package/dist/parse/body/RepeatElementDefinition.d.ts +1 -1
- package/dist/parse/body/appearance/inputAppearanceParser.d.ts +1 -1
- package/dist/parse/body/control/{InputDefinition.d.ts → InputControlDefinition.d.ts} +1 -1
- package/dist/parse/body/control/select/ItemsetNodesetContext.d.ts +0 -2
- package/dist/parse/expression/abstract/DependencyContext.d.ts +0 -5
- package/dist/parse/expression/abstract/DependentExpression.d.ts +2 -3
- package/dist/parse/model/BindDefinition.d.ts +4 -5
- package/dist/parse/model/BindTypeDefinition.d.ts +20 -0
- package/dist/parse/model/DescendentNodeDefinition.d.ts +0 -1
- package/dist/parse/model/FormSubmissionDefinition.d.ts +8 -0
- package/dist/parse/model/ItextTranslation/ItextTranslationDefinition.d.ts +4 -0
- package/dist/parse/model/ItextTranslation/ItextTranslationRootDefinition.d.ts +8 -0
- package/dist/parse/model/ItextTranslation/ItextTranslationsDefinition.d.ts +8 -0
- package/dist/parse/model/LeafNodeDefinition.d.ts +3 -1
- package/dist/parse/model/ModelBindMap.d.ts +1 -1
- package/dist/parse/model/ModelDefinition.d.ts +2 -0
- package/dist/parse/model/NodeDefinition.d.ts +0 -1
- package/dist/parse/model/NoteNodeDefinition.d.ts +4 -4
- package/dist/parse/model/RootDefinition.d.ts +3 -2
- package/dist/parse/model/SecondaryInstance/SecondaryInstanceDefinition.d.ts +4 -0
- package/dist/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.d.ts +7 -0
- package/dist/parse/model/SecondaryInstance/SecondaryInstancesDefinition.d.ts +13 -0
- package/dist/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.d.ts +14 -0
- package/dist/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.d.ts +22 -0
- package/dist/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceResource.d.ts +23 -0
- package/dist/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceSource.d.ts +9 -0
- package/dist/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.d.ts +5 -0
- package/dist/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.d.ts +7 -0
- package/dist/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.d.ts +13 -0
- package/dist/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.d.ts +12 -0
- package/dist/parse/shared/parseStaticDocumentFromDOMSubtree.d.ts +24 -0
- package/dist/parse/text/abstract/TextRangeDefinition.d.ts +0 -2
- package/dist/parse/xpath/semantic-analysis.d.ts +5 -0
- package/dist/solid.js +8174 -5921
- package/dist/solid.js.map +1 -1
- package/package.json +13 -11
- package/src/client/BaseNode.ts +16 -6
- package/src/client/BaseValueNode.ts +35 -0
- package/src/client/EngineConfig.ts +52 -51
- package/src/client/InputNode.ts +77 -0
- package/src/client/ModelValueNode.ts +30 -7
- package/src/client/NoteNode.ts +2 -2
- package/src/client/RootNode.ts +37 -7
- package/src/client/SelectNode.ts +3 -3
- package/src/client/ValueType.ts +4 -0
- package/src/client/constants.ts +67 -0
- package/src/client/hierarchy.ts +5 -5
- package/src/client/identity.ts +16 -0
- package/src/client/node-types.ts +12 -6
- package/src/client/resources.ts +118 -0
- package/src/client/submission/SubmissionData.ts +12 -0
- package/src/client/submission/SubmissionDefinition.ts +16 -0
- package/src/client/submission/SubmissionInstanceFile.ts +9 -0
- package/src/client/submission/SubmissionOptions.ts +28 -0
- package/src/client/submission/SubmissionResult.ts +124 -0
- package/src/client/submission/SubmissionState.ts +14 -0
- package/src/client/validation.ts +2 -2
- package/src/error/ErrorProductionDesignPendingError.ts +6 -0
- package/src/error/ValueTypeInvariantError.ts +22 -0
- package/src/error/XPathFunctionalityError.ts +26 -0
- package/src/error/XPathFunctionalityNotSupportedError.ts +18 -0
- package/src/error/XPathFunctionalityPendingError.ts +18 -0
- package/src/index.ts +10 -1
- package/src/instance/Group.ts +17 -5
- package/src/instance/InputControl.ts +119 -0
- package/src/instance/ModelValue.ts +47 -54
- package/src/instance/Note.ts +24 -8
- package/src/instance/PrimaryInstance.ts +244 -0
- package/src/instance/Root.ts +62 -134
- package/src/instance/SelectField.ts +56 -19
- package/src/instance/Subtree.ts +19 -7
- package/src/instance/TriggerControl.ts +23 -6
- package/src/instance/abstract/DescendantNode.ts +90 -45
- package/src/instance/abstract/InstanceNode.ts +103 -105
- package/src/instance/abstract/UnsupportedControl.ts +28 -5
- package/src/instance/abstract/ValueNode.ts +127 -0
- package/src/instance/children.ts +9 -10
- package/src/instance/hierarchy.ts +19 -15
- package/src/instance/identity.ts +3 -9
- package/src/instance/index.ts +25 -7
- package/src/instance/internal-api/EvaluationContext.ts +60 -13
- package/src/instance/internal-api/InstanceConfig.ts +9 -2
- package/src/instance/internal-api/InstanceValueContext.ts +24 -0
- package/src/instance/internal-api/PrimaryInstanceDocument.ts +53 -0
- package/src/instance/internal-api/TranslationContext.ts +3 -2
- package/src/instance/internal-api/ValidationContext.ts +3 -4
- package/src/instance/internal-api/ValueContext.ts +2 -1
- package/src/instance/internal-api/submission/ClientReactiveSubmittableInstance.ts +20 -0
- package/src/instance/internal-api/submission/ClientReactiveSubmittableLeafNode.ts +42 -0
- package/src/instance/internal-api/submission/ClientReactiveSubmittableParentNode.ts +25 -0
- package/src/instance/internal-api/submission/ClientReactiveSubmittableValueNode.ts +23 -0
- package/src/instance/repeat/BaseRepeatRange.ts +50 -131
- package/src/instance/repeat/RepeatInstance.ts +20 -46
- package/src/instance/repeat/RepeatRangeControlled.ts +5 -5
- package/src/instance/repeat/RepeatRangeUncontrolled.ts +2 -4
- package/src/instance/resource.ts +1 -1
- package/src/instance/text/TextChunk.ts +1 -1
- package/src/instance/unsupported/RangeControl.ts +5 -1
- package/src/instance/unsupported/RankControl.ts +5 -1
- package/src/instance/unsupported/UploadControl.ts +5 -1
- package/src/integration/xpath/EngineXPathEvaluator.ts +22 -0
- package/src/integration/xpath/adapter/XFormsXPathNode.ts +126 -0
- package/src/integration/xpath/adapter/engineDOMAdapter.ts +57 -0
- package/src/integration/xpath/adapter/kind.ts +114 -0
- package/src/integration/xpath/adapter/names.ts +99 -0
- package/src/integration/xpath/adapter/traversal.ts +228 -0
- package/src/integration/xpath/adapter/values.ts +5 -0
- package/src/integration/xpath/static-dom/StaticAttribute.ts +33 -0
- package/src/integration/xpath/static-dom/StaticDocument.ts +38 -0
- package/src/integration/xpath/static-dom/StaticElement.ts +106 -0
- package/src/integration/xpath/static-dom/StaticNamedNode.ts +45 -0
- package/src/integration/xpath/static-dom/StaticNode.ts +68 -0
- package/src/integration/xpath/static-dom/StaticText.ts +28 -0
- package/src/lib/client-reactivity/README.md +0 -0
- package/src/lib/client-reactivity/submission/createInstanceSubmissionState.ts +12 -0
- package/src/lib/client-reactivity/submission/createLeafNodeSubmissionState.ts +20 -0
- package/src/lib/client-reactivity/submission/createNodeRangeSubmissionState.ts +17 -0
- package/src/lib/client-reactivity/submission/createParentNodeSubmissionState.ts +22 -0
- package/src/lib/client-reactivity/submission/createValueNodeSubmissionState.ts +21 -0
- package/src/lib/client-reactivity/submission/prepareSubmission.ts +172 -0
- package/src/lib/codecs/DecimalValueCodec.ts +46 -0
- package/src/lib/codecs/IntValueCodec.ts +100 -0
- package/src/lib/codecs/StringValueCodec.ts +11 -0
- package/src/lib/codecs/ValueCodec.ts +106 -0
- package/src/lib/codecs/ValueTypePlaceholderCodec.ts +19 -0
- package/src/lib/codecs/getSharedValueCodec.ts +77 -0
- package/src/lib/dom/query.ts +7 -0
- package/src/lib/reactivity/createChildrenState.ts +8 -6
- package/src/lib/reactivity/createComputedExpression.ts +57 -34
- package/src/lib/reactivity/createInstanceValueState.ts +166 -0
- package/src/lib/reactivity/createNoteReadonlyThunk.ts +12 -7
- package/src/lib/reactivity/createSelectItems.ts +21 -21
- package/src/lib/reactivity/createTranslationState.ts +61 -0
- package/src/lib/reactivity/createValueState.ts +62 -120
- package/src/lib/reactivity/materializeCurrentStateChildren.ts +7 -7
- package/src/lib/reactivity/text/createTextRange.ts +4 -3
- package/src/lib/reactivity/validation/createAggregatedViolations.ts +1 -1
- package/src/lib/reactivity/validation/createValidation.ts +2 -3
- package/src/lib/xml-serialization.ts +96 -0
- package/src/parse/XFormDOM.ts +110 -75
- package/src/parse/XFormDefinition.ts +1 -6
- package/src/parse/attachments/FormAttachmentResource.ts +40 -0
- package/src/parse/body/BodyDefinition.ts +3 -3
- package/src/parse/body/appearance/inputAppearanceParser.ts +1 -1
- package/src/parse/body/control/{InputDefinition.ts → InputControlDefinition.ts} +3 -5
- package/src/parse/body/control/select/ItemsetNodesetContext.ts +0 -5
- package/src/parse/expression/abstract/DependencyContext.ts +0 -26
- package/src/parse/expression/abstract/DependentExpression.ts +2 -13
- package/src/parse/model/BindDefinition.ts +5 -8
- package/src/parse/model/BindTypeDefinition.ts +175 -0
- package/src/parse/model/DescendentNodeDefinition.ts +0 -6
- package/src/parse/model/FormSubmissionDefinition.ts +44 -0
- package/src/parse/model/ItextTranslation/ItextTranslationDefinition.ts +4 -0
- package/src/parse/model/ItextTranslation/ItextTranslationRootDefinition.ts +41 -0
- package/src/parse/model/ItextTranslation/ItextTranslationsDefinition.ts +31 -0
- package/src/parse/model/LeafNodeDefinition.ts +4 -1
- package/src/parse/model/ModelBindMap.ts +6 -8
- package/src/parse/model/ModelDefinition.ts +6 -1
- package/src/parse/model/NodeDefinition.ts +0 -3
- package/src/parse/model/NoteNodeDefinition.ts +3 -3
- package/src/parse/model/RootDefinition.ts +2 -1
- package/src/parse/model/SecondaryInstance/SecondaryInstanceDefinition.ts +4 -0
- package/src/parse/model/SecondaryInstance/SecondaryInstanceRootDefinition.ts +12 -0
- package/src/parse/model/SecondaryInstance/SecondaryInstancesDefinition.ts +102 -0
- package/src/parse/model/SecondaryInstance/sources/BlankSecondaryInstanceSource.ts +40 -0
- package/src/parse/model/SecondaryInstance/sources/CSVExternalSecondaryInstance.ts +288 -0
- package/src/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceResource.ts +222 -0
- package/src/parse/model/SecondaryInstance/sources/ExternalSecondaryInstanceSource.ts +22 -0
- package/src/parse/model/SecondaryInstance/sources/GeoJSONExternalSecondaryInstance.ts +414 -0
- package/src/parse/model/SecondaryInstance/sources/InternalSecondaryInstanceSource.ts +19 -0
- package/src/parse/model/SecondaryInstance/sources/SecondaryInstanceSource.ts +29 -0
- package/src/parse/model/SecondaryInstance/sources/XMLExternalSecondaryInstanceSource.ts +32 -0
- package/src/parse/shared/parseStaticDocumentFromDOMSubtree.ts +149 -0
- package/src/parse/text/abstract/TextRangeDefinition.ts +0 -6
- package/src/parse/xpath/semantic-analysis.ts +29 -0
- package/dist/client/StringNode.d.ts +0 -46
- package/dist/instance/StringField.d.ts +0 -44
- package/dist/instance/internal-api/SubscribableDependency.d.ts +0 -59
- package/dist/parse/XFormDataType.d.ts +0 -25
- package/src/client/StringNode.ts +0 -52
- package/src/instance/StringField.ts +0 -120
- package/src/instance/internal-api/SubscribableDependency.ts +0 -61
- package/src/parse/XFormDataType.ts +0 -62
package/dist/instance/Group.d.ts
CHANGED
|
@@ -1,31 +1,36 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
1
2
|
import { Accessor } from 'solid-js';
|
|
2
3
|
import { GroupDefinition, GroupNode, GroupNodeAppearances } from '../client/GroupNode.ts';
|
|
4
|
+
import { FormNodeID } from '../client/identity.ts';
|
|
5
|
+
import { SubmissionState } from '../client/submission/SubmissionState.ts';
|
|
3
6
|
import { TextRange } from '../client/TextRange.ts';
|
|
4
7
|
import { AncestorNodeValidationState } from '../client/validation.ts';
|
|
8
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
5
9
|
import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
|
|
6
10
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
7
11
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
8
12
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
9
13
|
import { DescendantNodeSharedStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
10
14
|
import { GeneralChildNode, GeneralParentNode } from './hierarchy.ts';
|
|
11
|
-
import { NodeID } from './identity.ts';
|
|
12
15
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
13
|
-
import {
|
|
16
|
+
import { ClientReactiveSubmittableParentNode } from './internal-api/submission/ClientReactiveSubmittableParentNode.ts';
|
|
14
17
|
interface GroupStateSpec extends DescendantNodeSharedStateSpec {
|
|
15
18
|
readonly label: Accessor<TextRange<'label'> | null>;
|
|
16
19
|
readonly hint: null;
|
|
17
|
-
readonly children: Accessor<readonly
|
|
20
|
+
readonly children: Accessor<readonly FormNodeID[]>;
|
|
18
21
|
readonly valueOptions: null;
|
|
19
22
|
readonly value: null;
|
|
20
23
|
}
|
|
21
|
-
export declare class Group extends DescendantNode<GroupDefinition, GroupStateSpec, GeneralChildNode> implements GroupNode, EvaluationContext,
|
|
24
|
+
export declare class Group extends DescendantNode<GroupDefinition, GroupStateSpec, GeneralParentNode, GeneralChildNode> implements GroupNode, XFormsXPathElement, EvaluationContext, ClientReactiveSubmittableParentNode<GeneralChildNode> {
|
|
22
25
|
private readonly childrenState;
|
|
26
|
+
readonly [XPathNodeKindKey] = "element";
|
|
23
27
|
protected readonly state: SharedNodeState<GroupStateSpec>;
|
|
24
28
|
protected engineState: EngineState<GroupStateSpec>;
|
|
25
29
|
readonly nodeType = "group";
|
|
26
30
|
readonly appearances: GroupNodeAppearances;
|
|
27
31
|
readonly currentState: MaterializedChildren<CurrentState<GroupStateSpec>, GeneralChildNode>;
|
|
28
32
|
readonly validationState: AncestorNodeValidationState;
|
|
33
|
+
readonly submissionState: SubmissionState;
|
|
29
34
|
constructor(parent: GeneralParentNode, definition: GroupDefinition);
|
|
30
35
|
getChildren(): readonly GeneralChildNode[];
|
|
31
36
|
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
|
+
import { Accessor } from 'solid-js';
|
|
3
|
+
import { InputDefinition, InputNode, InputNodeAppearances, InputNodeInputValue } from '../client/InputNode.ts';
|
|
4
|
+
import { TextRange } from '../client/TextRange.ts';
|
|
5
|
+
import { ValueType } from '../client/ValueType.ts';
|
|
6
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
7
|
+
import { RuntimeInputValue, RuntimeValue } from '../lib/codecs/getSharedValueCodec.ts';
|
|
8
|
+
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
9
|
+
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
10
|
+
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
11
|
+
import { Root } from './Root.ts';
|
|
12
|
+
import { ValueNode, ValueNodeStateSpec } from './abstract/ValueNode.ts';
|
|
13
|
+
import { GeneralParentNode } from './hierarchy.ts';
|
|
14
|
+
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
15
|
+
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
16
|
+
import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
|
|
17
|
+
export type AnyInputDefinition = {
|
|
18
|
+
[V in ValueType]: InputDefinition<V>;
|
|
19
|
+
}[ValueType];
|
|
20
|
+
interface InputControlStateSpec<V extends ValueType> extends ValueNodeStateSpec<RuntimeValue<V>> {
|
|
21
|
+
readonly label: Accessor<TextRange<'label'> | null>;
|
|
22
|
+
readonly hint: Accessor<TextRange<'hint'> | null>;
|
|
23
|
+
}
|
|
24
|
+
export declare class InputControl<V extends ValueType = ValueType> extends ValueNode<V, InputDefinition<V>, RuntimeValue<V>, RuntimeInputValue<V>> implements InputNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
|
|
25
|
+
static from(parent: GeneralParentNode, definition: InputDefinition): AnyInputControl;
|
|
26
|
+
readonly [XPathNodeKindKey] = "element";
|
|
27
|
+
protected readonly state: SharedNodeState<InputControlStateSpec<V>>;
|
|
28
|
+
protected readonly engineState: EngineState<InputControlStateSpec<V>>;
|
|
29
|
+
readonly nodeType = "input";
|
|
30
|
+
readonly appearances: InputNodeAppearances;
|
|
31
|
+
readonly currentState: CurrentState<InputControlStateSpec<V>>;
|
|
32
|
+
constructor(parent: GeneralParentNode, definition: InputDefinition<V>);
|
|
33
|
+
setValue(value: InputNodeInputValue<V>): Root;
|
|
34
|
+
}
|
|
35
|
+
export type AnyInputControl = InputControl<'barcode'> | InputControl<'binary'> | InputControl<'boolean'> | InputControl<'date'> | InputControl<'dateTime'> | InputControl<'decimal'> | InputControl<'geopoint'> | InputControl<'geoshape'> | InputControl<'geotrace'> | InputControl<'int'> | InputControl<'intent'> | InputControl<'string'> | InputControl<'time'>;
|
|
36
|
+
export {};
|
|
@@ -1,39 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
|
+
import { ModelValueDefinition, ModelValueNode } from '../client/ModelValueNode.ts';
|
|
3
|
+
import { ValueType } from '../client/ValueType.ts';
|
|
4
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
5
|
+
import { RuntimeInputValue, RuntimeValue } from '../lib/codecs/getSharedValueCodec.ts';
|
|
3
6
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
4
7
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
5
8
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
6
|
-
import {
|
|
7
|
-
import { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
|
|
8
|
-
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
9
|
+
import { ValueNode, ValueNodeStateSpec } from './abstract/ValueNode.ts';
|
|
9
10
|
import { GeneralParentNode } from './hierarchy.ts';
|
|
10
11
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
11
|
-
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
12
12
|
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
readonly bodyElement: null;
|
|
16
|
-
}
|
|
17
|
-
interface ModelValueStateSpec extends DescendantNodeStateSpec<string> {
|
|
13
|
+
import { ClientReactiveSubmittableValueNode } from './internal-api/submission/ClientReactiveSubmittableValueNode.ts';
|
|
14
|
+
interface ModelValueStateSpec<V extends ValueType> extends ValueNodeStateSpec<RuntimeValue<V>> {
|
|
18
15
|
readonly label: null;
|
|
19
16
|
readonly hint: null;
|
|
20
|
-
readonly children: null;
|
|
21
|
-
readonly value: SimpleAtomicState<string>;
|
|
22
|
-
readonly valueOptions: null;
|
|
23
17
|
}
|
|
24
|
-
export declare class ModelValue extends
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
protected
|
|
18
|
+
export declare class ModelValue<V extends ValueType = ValueType> extends ValueNode<V, ModelValueDefinition<V>, RuntimeValue<V>, RuntimeInputValue<V>> implements ModelValueNode<V>, XFormsXPathElement, EvaluationContext, ValidationContext, ClientReactiveSubmittableValueNode {
|
|
19
|
+
static from(parent: GeneralParentNode, definition: ModelValueDefinition): AnyModelValue;
|
|
20
|
+
readonly [XPathNodeKindKey] = "element";
|
|
21
|
+
protected readonly state: SharedNodeState<ModelValueStateSpec<V>>;
|
|
22
|
+
protected readonly engineState: EngineState<ModelValueStateSpec<V>>;
|
|
28
23
|
readonly nodeType = "model-value";
|
|
29
24
|
readonly appearances: null;
|
|
30
|
-
readonly currentState: CurrentState<ModelValueStateSpec
|
|
31
|
-
|
|
32
|
-
readonly encodeValue: (value: string) => string;
|
|
33
|
-
readonly decodeValue: (value: string) => string;
|
|
34
|
-
constructor(parent: GeneralParentNode, definition: ModelValueDefinition);
|
|
35
|
-
getViolation(): AnyViolation | null;
|
|
36
|
-
isBlank(): boolean;
|
|
37
|
-
getChildren(): readonly [];
|
|
25
|
+
readonly currentState: CurrentState<ModelValueStateSpec<V>>;
|
|
26
|
+
constructor(parent: GeneralParentNode, definition: ModelValueDefinition<V>);
|
|
38
27
|
}
|
|
28
|
+
export type AnyModelValue = ModelValue<'barcode'> | ModelValue<'binary'> | ModelValue<'boolean'> | ModelValue<'date'> | ModelValue<'dateTime'> | ModelValue<'decimal'> | ModelValue<'geopoint'> | ModelValue<'geoshape'> | ModelValue<'geotrace'> | ModelValue<'int'> | ModelValue<'intent'> | ModelValue<'string'> | ModelValue<'time'>;
|
|
39
29
|
export {};
|
package/dist/instance/Note.d.ts
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
1
2
|
import { Accessor } from 'solid-js';
|
|
2
3
|
import { NoteNode, NoteNodeAppearances } from '../client/NoteNode.ts';
|
|
4
|
+
import { SubmissionState } from '../client/submission/SubmissionState.ts';
|
|
3
5
|
import { TextRange } from '../client/TextRange.ts';
|
|
4
6
|
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
7
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
5
8
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
9
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
10
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
@@ -11,7 +14,7 @@ import { NoteNodeDefinition } from '../parse/model/NoteNodeDefinition.ts';
|
|
|
11
14
|
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
12
15
|
import { GeneralParentNode } from './hierarchy.ts';
|
|
13
16
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
14
|
-
import {
|
|
17
|
+
import { ClientReactiveSubmittableLeafNode } from './internal-api/submission/ClientReactiveSubmittableLeafNode.ts';
|
|
15
18
|
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
16
19
|
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
17
20
|
interface NoteStateSpec extends DescendantNodeStateSpec<string> {
|
|
@@ -23,17 +26,21 @@ interface NoteStateSpec extends DescendantNodeStateSpec<string> {
|
|
|
23
26
|
readonly value: SimpleAtomicState<string>;
|
|
24
27
|
readonly valueOptions: null;
|
|
25
28
|
}
|
|
26
|
-
export declare class Note extends DescendantNode<NoteNodeDefinition, NoteStateSpec, null> implements NoteNode,
|
|
29
|
+
export declare class Note extends DescendantNode<NoteNodeDefinition, NoteStateSpec, GeneralParentNode, null> implements NoteNode, XFormsXPathElement, EvaluationContext, ValidationContext, ValueContext<string>, ClientReactiveSubmittableLeafNode<string> {
|
|
27
30
|
private readonly validation;
|
|
31
|
+
readonly [XPathNodeKindKey] = "element";
|
|
28
32
|
protected readonly state: SharedNodeState<NoteStateSpec>;
|
|
29
|
-
protected engineState: EngineState<NoteStateSpec>;
|
|
33
|
+
protected readonly engineState: EngineState<NoteStateSpec>;
|
|
30
34
|
readonly nodeType = "note";
|
|
31
35
|
readonly appearances: NoteNodeAppearances;
|
|
32
36
|
readonly currentState: CurrentState<NoteStateSpec>;
|
|
33
37
|
get validationState(): LeafNodeValidationState;
|
|
38
|
+
readonly submissionState: SubmissionState;
|
|
39
|
+
readonly contextNode: this;
|
|
34
40
|
readonly encodeValue: (value: string) => string;
|
|
35
41
|
readonly decodeValue: (value: string) => string;
|
|
36
42
|
constructor(parent: GeneralParentNode, definition: NoteNodeDefinition);
|
|
43
|
+
getXPathValue(): string;
|
|
37
44
|
getViolation(): AnyViolation | null;
|
|
38
45
|
isBlank(): boolean;
|
|
39
46
|
getChildren(): readonly [];
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
|
+
import { Accessor } from 'solid-js';
|
|
3
|
+
import { ActiveLanguage, FormLanguage, FormLanguages } from '../client/FormLanguage.ts';
|
|
4
|
+
import { FormNodeID } from '../client/identity.ts';
|
|
5
|
+
import { SubmissionChunkedType, SubmissionOptions } from '../client/submission/SubmissionOptions.ts';
|
|
6
|
+
import { SubmissionResult } from '../client/submission/SubmissionResult.ts';
|
|
7
|
+
import { SubmissionState } from '../client/submission/SubmissionState.ts';
|
|
8
|
+
import { AncestorNodeValidationState } from '../client/validation.ts';
|
|
9
|
+
import { XFormsXPathDocument } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
10
|
+
import { EngineXPathEvaluator } from '../integration/xpath/EngineXPathEvaluator.ts';
|
|
11
|
+
import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
|
|
12
|
+
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
13
|
+
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
14
|
+
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
15
|
+
import { ReactiveScope } from '../lib/reactivity/scope.ts';
|
|
16
|
+
import { BodyClassList } from '../parse/body/BodyDefinition.ts';
|
|
17
|
+
import { ModelDefinition } from '../parse/model/ModelDefinition.ts';
|
|
18
|
+
import { RootDefinition } from '../parse/model/RootDefinition.ts';
|
|
19
|
+
import { SecondaryInstancesDefinition } from '../parse/model/SecondaryInstance/SecondaryInstancesDefinition.ts';
|
|
20
|
+
import { InstanceNode } from './abstract/InstanceNode.ts';
|
|
21
|
+
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
22
|
+
import { InstanceConfig } from './internal-api/InstanceConfig.ts';
|
|
23
|
+
import { PrimaryInstanceDocument } from './internal-api/PrimaryInstanceDocument.ts';
|
|
24
|
+
import { ClientReactiveSubmittableInstance } from './internal-api/submission/ClientReactiveSubmittableInstance.ts';
|
|
25
|
+
import { TranslationContext } from './internal-api/TranslationContext.ts';
|
|
26
|
+
import { Root } from './Root.ts';
|
|
27
|
+
interface PrimaryInstanceStateSpec {
|
|
28
|
+
readonly reference: string;
|
|
29
|
+
readonly readonly: boolean;
|
|
30
|
+
readonly relevant: boolean;
|
|
31
|
+
readonly required: boolean;
|
|
32
|
+
readonly label: null;
|
|
33
|
+
readonly hint: null;
|
|
34
|
+
readonly children: Accessor<readonly FormNodeID[]>;
|
|
35
|
+
readonly valueOptions: null;
|
|
36
|
+
readonly value: null;
|
|
37
|
+
readonly activeLanguage: Accessor<ActiveLanguage>;
|
|
38
|
+
}
|
|
39
|
+
export declare class PrimaryInstance extends InstanceNode<RootDefinition, PrimaryInstanceStateSpec, null, Root> implements PrimaryInstanceDocument, XFormsXPathDocument, TranslationContext, EvaluationContext, ClientReactiveSubmittableInstance {
|
|
40
|
+
protected readonly state: SharedNodeState<PrimaryInstanceStateSpec>;
|
|
41
|
+
protected readonly engineState: EngineState<PrimaryInstanceStateSpec>;
|
|
42
|
+
readonly getChildren: Accessor<readonly Root[]>;
|
|
43
|
+
readonly hasReadonlyAncestor: () => boolean;
|
|
44
|
+
readonly isReadonly: () => boolean;
|
|
45
|
+
readonly hasNonRelevantAncestor: () => boolean;
|
|
46
|
+
readonly isRelevant: () => boolean;
|
|
47
|
+
private readonly setActiveLanguage;
|
|
48
|
+
readonly [XPathNodeKindKey] = "document";
|
|
49
|
+
readonly nodeType = "primary-instance";
|
|
50
|
+
readonly appearances: null;
|
|
51
|
+
readonly classes: BodyClassList;
|
|
52
|
+
readonly root: Root;
|
|
53
|
+
readonly currentState: MaterializedChildren<CurrentState<PrimaryInstanceStateSpec>, Root>;
|
|
54
|
+
readonly validationState: AncestorNodeValidationState;
|
|
55
|
+
readonly submissionState: SubmissionState;
|
|
56
|
+
readonly languages: FormLanguages;
|
|
57
|
+
readonly getActiveLanguage: Accessor<ActiveLanguage>;
|
|
58
|
+
readonly isAttached: Accessor<boolean>;
|
|
59
|
+
readonly evaluator: EngineXPathEvaluator;
|
|
60
|
+
readonly contextNode: this;
|
|
61
|
+
constructor(scope: ReactiveScope, model: ModelDefinition, secondaryInstances: SecondaryInstancesDefinition, engineConfig: InstanceConfig);
|
|
62
|
+
/**
|
|
63
|
+
* @todo Note that this method's signature is intentionally derived from
|
|
64
|
+
* {@link RootNode.setLanguage}, but its return type differs! The design
|
|
65
|
+
* intent of returning {@link RootNode} from all of the client-facing state
|
|
66
|
+
* setter methods has proven… interesting philosophically. But nothing
|
|
67
|
+
* downstream has availed itself of that philosophy, and otherwise it's not
|
|
68
|
+
* particularly pragmatic or ergonomic (internally or for clients alike).
|
|
69
|
+
*
|
|
70
|
+
* Since this class is (currently) engine-internal, this seems like an
|
|
71
|
+
* excellent place to start a discussion around what we want longer term for
|
|
72
|
+
* state setter signatures in _client-facing_ APIs. As a first pass, it seems
|
|
73
|
+
* reasonable to borrow the idiomatic convention of returning the effective
|
|
74
|
+
* value assigned by the setter.
|
|
75
|
+
*
|
|
76
|
+
* @see
|
|
77
|
+
* {@link https://github.com/getodk/web-forms/issues/45#issuecomment-1967932261 | Initial read interface design between engine and UI - design summary comment}
|
|
78
|
+
* (and some of the comments leading up to it) for background on the
|
|
79
|
+
* philosophical reasoning behind the existing signature convention.
|
|
80
|
+
*/
|
|
81
|
+
setLanguage(language: FormLanguage): FormLanguage;
|
|
82
|
+
prepareSubmission<ChunkedType extends SubmissionChunkedType = 'monolithic'>(options?: SubmissionOptions<ChunkedType>): Promise<SubmissionResult<ChunkedType>>;
|
|
83
|
+
}
|
|
84
|
+
export {};
|
package/dist/instance/Root.d.ts
CHANGED
|
@@ -1,57 +1,61 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Accessor
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
|
+
import { Accessor } from 'solid-js';
|
|
3
3
|
import { ActiveLanguage, FormLanguage, FormLanguages } from '../client/FormLanguage.ts';
|
|
4
|
+
import { FormNodeID } from '../client/identity.ts';
|
|
4
5
|
import { RootNode } from '../client/RootNode.ts';
|
|
6
|
+
import { SubmissionDefinition } from '../client/submission/SubmissionDefinition.ts';
|
|
7
|
+
import { SubmissionChunkedType, SubmissionOptions } from '../client/submission/SubmissionOptions.ts';
|
|
8
|
+
import { SubmissionResult } from '../client/submission/SubmissionResult.ts';
|
|
9
|
+
import { SubmissionState } from '../client/submission/SubmissionState.ts';
|
|
5
10
|
import { AncestorNodeValidationState } from '../client/validation.ts';
|
|
11
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
6
12
|
import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
|
|
7
13
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
8
14
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
9
15
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
10
16
|
import { BodyClassList } from '../parse/body/BodyDefinition.ts';
|
|
11
17
|
import { RootDefinition } from '../parse/model/RootDefinition.ts';
|
|
12
|
-
import {
|
|
13
|
-
import { InstanceNode } from './abstract/InstanceNode.ts';
|
|
18
|
+
import { DescendantNode } from './abstract/DescendantNode.ts';
|
|
14
19
|
import { GeneralChildNode } from './hierarchy.ts';
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { InstanceConfig } from './internal-api/InstanceConfig.ts';
|
|
18
|
-
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
20
|
+
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
21
|
+
import { ClientReactiveSubmittableParentNode } from './internal-api/submission/ClientReactiveSubmittableParentNode.ts';
|
|
19
22
|
import { TranslationContext } from './internal-api/TranslationContext.ts';
|
|
23
|
+
import { PrimaryInstance } from './PrimaryInstance.ts';
|
|
20
24
|
interface RootStateSpec {
|
|
21
|
-
readonly reference: string
|
|
22
|
-
readonly readonly: boolean
|
|
23
|
-
readonly relevant: boolean
|
|
24
|
-
readonly required: boolean
|
|
25
|
+
readonly reference: Accessor<string>;
|
|
26
|
+
readonly readonly: Accessor<boolean>;
|
|
27
|
+
readonly relevant: Accessor<boolean>;
|
|
28
|
+
readonly required: Accessor<boolean>;
|
|
25
29
|
readonly label: null;
|
|
26
30
|
readonly hint: null;
|
|
27
|
-
readonly children: Accessor<readonly
|
|
31
|
+
readonly children: Accessor<readonly FormNodeID[]>;
|
|
28
32
|
readonly valueOptions: null;
|
|
29
33
|
readonly value: null;
|
|
30
|
-
readonly activeLanguage:
|
|
34
|
+
readonly activeLanguage: Accessor<ActiveLanguage>;
|
|
31
35
|
}
|
|
32
|
-
export declare class Root extends
|
|
36
|
+
export declare class Root extends DescendantNode<RootDefinition, RootStateSpec, PrimaryInstance, GeneralChildNode> implements RootNode, XFormsXPathElement, EvaluationContext, TranslationContext, ClientReactiveSubmittableParentNode<GeneralChildNode> {
|
|
33
37
|
private readonly childrenState;
|
|
38
|
+
readonly [XPathNodeKindKey] = "element";
|
|
39
|
+
protected readonly state: SharedNodeState<RootStateSpec>;
|
|
40
|
+
protected readonly engineState: EngineState<RootStateSpec>;
|
|
34
41
|
readonly hasReadonlyAncestor: () => boolean;
|
|
42
|
+
readonly isSelfReadonly: () => boolean;
|
|
35
43
|
readonly isReadonly: () => boolean;
|
|
36
44
|
readonly hasNonRelevantAncestor: () => boolean;
|
|
45
|
+
readonly isSelfRelevant: () => boolean;
|
|
37
46
|
readonly isRelevant: () => boolean;
|
|
38
|
-
|
|
39
|
-
protected readonly engineState: EngineState<RootStateSpec>;
|
|
47
|
+
readonly isRequired: () => boolean;
|
|
40
48
|
readonly nodeType = "root";
|
|
41
49
|
readonly appearances: null;
|
|
42
50
|
readonly classes: BodyClassList;
|
|
43
51
|
readonly currentState: MaterializedChildren<CurrentState<RootStateSpec>, GeneralChildNode>;
|
|
44
52
|
readonly validationState: AncestorNodeValidationState;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
readonly evaluator: XFormsXPathEvaluator;
|
|
48
|
-
readonly contextNode: Element;
|
|
49
|
-
readonly parent: null;
|
|
53
|
+
readonly submissionState: SubmissionState;
|
|
54
|
+
get submissionDefinition(): SubmissionDefinition;
|
|
50
55
|
readonly languages: FormLanguages;
|
|
51
|
-
|
|
52
|
-
constructor(xformDOM: XFormDOM, definition: RootDefinition, engineConfig: InstanceConfig);
|
|
56
|
+
constructor(parent: PrimaryInstance);
|
|
53
57
|
getChildren(): readonly GeneralChildNode[];
|
|
54
58
|
setLanguage(language: FormLanguage): Root;
|
|
55
|
-
|
|
59
|
+
prepareSubmission<ChunkedType extends SubmissionChunkedType = 'monolithic'>(options?: SubmissionOptions<ChunkedType>): Promise<SubmissionResult<ChunkedType>>;
|
|
56
60
|
}
|
|
57
61
|
export {};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
1
2
|
import { Accessor } from 'solid-js';
|
|
2
3
|
import { SelectItem, SelectNode, SelectNodeAppearances } from '../client/SelectNode.ts';
|
|
3
4
|
import { TextRange } from '../client/TextRange.ts';
|
|
5
|
+
import { SubmissionState } from '../client/submission/SubmissionState.ts';
|
|
4
6
|
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
7
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
5
8
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
9
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
10
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
@@ -12,9 +15,9 @@ import { Root } from './Root.ts';
|
|
|
12
15
|
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
13
16
|
import { GeneralParentNode } from './hierarchy.ts';
|
|
14
17
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
15
|
-
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
16
18
|
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
17
19
|
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
20
|
+
import { ClientReactiveSubmittableLeafNode } from './internal-api/submission/ClientReactiveSubmittableLeafNode.ts';
|
|
18
21
|
export interface SelectFieldDefinition extends LeafNodeDefinition {
|
|
19
22
|
readonly bodyElement: AnySelectDefinition;
|
|
20
23
|
}
|
|
@@ -25,22 +28,27 @@ interface SelectFieldStateSpec extends DescendantNodeStateSpec<readonly SelectIt
|
|
|
25
28
|
readonly value: SimpleAtomicState<readonly SelectItem[]>;
|
|
26
29
|
readonly valueOptions: Accessor<readonly SelectItem[]>;
|
|
27
30
|
}
|
|
28
|
-
export declare class SelectField extends DescendantNode<SelectFieldDefinition, SelectFieldStateSpec, null> implements SelectNode,
|
|
31
|
+
export declare class SelectField extends DescendantNode<SelectFieldDefinition, SelectFieldStateSpec, GeneralParentNode, null> implements SelectNode, XFormsXPathElement, EvaluationContext, ValidationContext, ValueContext<readonly SelectItem[]>, ClientReactiveSubmittableLeafNode<readonly SelectItem[]> {
|
|
29
32
|
private readonly selectExclusive;
|
|
30
33
|
private readonly validation;
|
|
34
|
+
readonly [XPathNodeKindKey] = "element";
|
|
31
35
|
protected readonly state: SharedNodeState<SelectFieldStateSpec>;
|
|
32
36
|
protected engineState: EngineState<SelectFieldStateSpec>;
|
|
33
37
|
readonly nodeType = "select";
|
|
34
38
|
readonly appearances: SelectNodeAppearances;
|
|
35
39
|
readonly currentState: CurrentState<SelectFieldStateSpec>;
|
|
36
40
|
get validationState(): LeafNodeValidationState;
|
|
41
|
+
readonly submissionState: SubmissionState;
|
|
42
|
+
readonly contextNode: this;
|
|
37
43
|
readonly encodeValue: (runtimeValue: readonly SelectItem[]) => string;
|
|
38
44
|
readonly decodeValue: (instanceValue: string) => readonly SelectItem[];
|
|
39
45
|
protected readonly getValueOptions: Accessor<readonly SelectItem[]>;
|
|
46
|
+
protected readonly getValue: Accessor<readonly SelectItem[]>;
|
|
40
47
|
constructor(parent: GeneralParentNode, definition: SelectFieldDefinition);
|
|
41
48
|
protected getSelectItemsByValue(valueOptions?: readonly SelectItem[]): ReadonlyMap<string, SelectItem>;
|
|
42
49
|
protected updateSelectedItemValues(values: readonly string[]): void;
|
|
43
50
|
protected setSelectedItemValue(value: string | null): void;
|
|
51
|
+
getXPathValue(): string;
|
|
44
52
|
select(selectedItem: SelectItem): Root;
|
|
45
53
|
deselect(deselectedItem: SelectItem): Root;
|
|
46
54
|
getChildren(): readonly [];
|
|
@@ -1,30 +1,35 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
1
2
|
import { Accessor } from 'solid-js';
|
|
3
|
+
import { FormNodeID } from '../client/identity.ts';
|
|
4
|
+
import { SubmissionState } from '../client/submission/SubmissionState.ts';
|
|
2
5
|
import { SubtreeDefinition, SubtreeNode } from '../client/SubtreeNode.ts';
|
|
3
6
|
import { AncestorNodeValidationState } from '../client/validation.ts';
|
|
7
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
4
8
|
import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
|
|
5
9
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
10
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
11
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
8
12
|
import { DescendantNodeSharedStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
9
13
|
import { GeneralChildNode, GeneralParentNode } from './hierarchy.ts';
|
|
10
|
-
import { NodeID } from './identity.ts';
|
|
11
14
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
12
|
-
import {
|
|
15
|
+
import { ClientReactiveSubmittableParentNode } from './internal-api/submission/ClientReactiveSubmittableParentNode.ts';
|
|
13
16
|
interface SubtreeStateSpec extends DescendantNodeSharedStateSpec {
|
|
14
17
|
readonly label: null;
|
|
15
18
|
readonly hint: null;
|
|
16
|
-
readonly children: Accessor<readonly
|
|
19
|
+
readonly children: Accessor<readonly FormNodeID[]>;
|
|
17
20
|
readonly valueOptions: null;
|
|
18
21
|
readonly value: null;
|
|
19
22
|
}
|
|
20
|
-
export declare class Subtree extends DescendantNode<SubtreeDefinition, SubtreeStateSpec, GeneralChildNode> implements SubtreeNode, EvaluationContext,
|
|
23
|
+
export declare class Subtree extends DescendantNode<SubtreeDefinition, SubtreeStateSpec, GeneralParentNode, GeneralChildNode> implements SubtreeNode, XFormsXPathElement, EvaluationContext, ClientReactiveSubmittableParentNode<GeneralChildNode> {
|
|
21
24
|
private readonly childrenState;
|
|
25
|
+
readonly [XPathNodeKindKey] = "element";
|
|
22
26
|
protected readonly state: SharedNodeState<SubtreeStateSpec>;
|
|
23
|
-
protected engineState: EngineState<SubtreeStateSpec>;
|
|
27
|
+
protected readonly engineState: EngineState<SubtreeStateSpec>;
|
|
24
28
|
readonly nodeType = "subtree";
|
|
25
29
|
readonly appearances: null;
|
|
26
30
|
readonly currentState: MaterializedChildren<CurrentState<SubtreeStateSpec>, GeneralChildNode>;
|
|
27
31
|
readonly validationState: AncestorNodeValidationState;
|
|
32
|
+
readonly submissionState: SubmissionState;
|
|
28
33
|
constructor(parent: GeneralParentNode, definition: SubtreeDefinition);
|
|
29
34
|
getChildren(): readonly GeneralChildNode[];
|
|
30
35
|
}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
1
2
|
import { Accessor } from 'solid-js';
|
|
2
3
|
import { TextRange } from '../client/TextRange.ts';
|
|
3
4
|
import { TriggerNode, TriggerNodeDefinition } from '../client/TriggerNode.ts';
|
|
5
|
+
import { SubmissionState } from '../client/submission/SubmissionState.ts';
|
|
4
6
|
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
7
|
+
import { XFormsXPathElement } from '../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
5
8
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
9
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
10
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
@@ -11,9 +14,9 @@ import { Root } from './Root.ts';
|
|
|
11
14
|
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
12
15
|
import { GeneralParentNode } from './hierarchy.ts';
|
|
13
16
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
14
|
-
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
15
17
|
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
16
18
|
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
19
|
+
import { ClientReactiveSubmittableLeafNode } from './internal-api/submission/ClientReactiveSubmittableLeafNode.ts';
|
|
17
20
|
interface TriggerControlStateSpec extends DescendantNodeStateSpec<boolean> {
|
|
18
21
|
readonly label: Accessor<TextRange<'label'> | null>;
|
|
19
22
|
readonly hint: Accessor<TextRange<'hint'> | null>;
|
|
@@ -21,17 +24,21 @@ interface TriggerControlStateSpec extends DescendantNodeStateSpec<boolean> {
|
|
|
21
24
|
readonly value: SimpleAtomicState<boolean>;
|
|
22
25
|
readonly valueOptions: null;
|
|
23
26
|
}
|
|
24
|
-
export declare class TriggerControl extends DescendantNode<TriggerNodeDefinition, TriggerControlStateSpec, null> implements TriggerNode,
|
|
27
|
+
export declare class TriggerControl extends DescendantNode<TriggerNodeDefinition, TriggerControlStateSpec, GeneralParentNode, null> implements TriggerNode, XFormsXPathElement, EvaluationContext, ValidationContext, ValueContext<boolean>, ClientReactiveSubmittableLeafNode<boolean> {
|
|
25
28
|
private readonly validation;
|
|
29
|
+
readonly [XPathNodeKindKey] = "element";
|
|
26
30
|
protected readonly state: SharedNodeState<TriggerControlStateSpec>;
|
|
27
|
-
protected engineState: EngineState<TriggerControlStateSpec>;
|
|
31
|
+
protected readonly engineState: EngineState<TriggerControlStateSpec>;
|
|
28
32
|
readonly nodeType = "trigger";
|
|
29
33
|
readonly appearances: UnknownAppearanceDefinition;
|
|
30
34
|
readonly currentState: CurrentState<TriggerControlStateSpec>;
|
|
31
35
|
get validationState(): LeafNodeValidationState;
|
|
36
|
+
readonly submissionState: SubmissionState;
|
|
37
|
+
readonly contextNode: this;
|
|
32
38
|
readonly encodeValue: (runtimeValue: boolean) => string;
|
|
33
39
|
readonly decodeValue: (instanceValue: string) => boolean;
|
|
34
40
|
constructor(parent: GeneralParentNode, definition: TriggerNodeDefinition);
|
|
41
|
+
getXPathValue(): string;
|
|
35
42
|
getViolation(): AnyViolation | null;
|
|
36
43
|
isBlank(): boolean;
|
|
37
44
|
getChildren(): readonly [];
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { XPathNodeKindKey } from '@getodk/xpath';
|
|
2
2
|
import { Accessor } from 'solid-js';
|
|
3
3
|
import { BaseNode } from '../../client/BaseNode.ts';
|
|
4
|
+
import { ActiveLanguage } from '../../client/FormLanguage.ts';
|
|
5
|
+
import { InstanceNodeType } from '../../client/node-types.ts';
|
|
6
|
+
import { PrimaryInstanceXPathChildNode } from '../../integration/xpath/adapter/kind.ts';
|
|
7
|
+
import { XFormsXPathPrimaryInstanceDescendantNode, XFormsXPathPrimaryInstanceDescendantNodeKind } from '../../integration/xpath/adapter/XFormsXPathNode.ts';
|
|
8
|
+
import { EngineXPathEvaluator } from '../../integration/xpath/EngineXPathEvaluator.ts';
|
|
4
9
|
import { AnyDescendantNodeDefinition } from '../../parse/model/DescendentNodeDefinition.ts';
|
|
5
|
-
import { LeafNodeDefinition } from '../../parse/model/LeafNodeDefinition.ts';
|
|
6
10
|
import { AnyNodeDefinition } from '../../parse/model/NodeDefinition.ts';
|
|
7
|
-
import {
|
|
8
|
-
import { AnyChildNode, GeneralParentNode, RepeatRange } from '../hierarchy.ts';
|
|
11
|
+
import { AnyChildNode, AnyParentNode } from '../hierarchy.ts';
|
|
9
12
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
10
|
-
import { SubscribableDependency } from '../internal-api/SubscribableDependency.ts';
|
|
11
13
|
import { Root } from '../Root.ts';
|
|
12
14
|
import { InstanceNodeStateSpec, InstanceNode } from './InstanceNode.ts';
|
|
13
15
|
export interface DescendantNodeSharedStateSpec {
|
|
@@ -18,14 +20,18 @@ export interface DescendantNodeSharedStateSpec {
|
|
|
18
20
|
}
|
|
19
21
|
export type DescendantNodeStateSpec<Value = never> = InstanceNodeStateSpec<Value> & DescendantNodeSharedStateSpec;
|
|
20
22
|
export type DescendantNodeDefinition = Extract<AnyNodeDefinition, AnyDescendantNodeDefinition>;
|
|
21
|
-
export type
|
|
22
|
-
export type AnyDescendantNode = DescendantNode<DescendantNodeDefinition, DescendantNodeStateSpec<any>, any>;
|
|
23
|
+
export type AnyDescendantNode = DescendantNode<DescendantNodeDefinition, DescendantNodeStateSpec<any>, any, any>;
|
|
23
24
|
interface DescendantNodeOptions {
|
|
24
25
|
readonly computeReference?: Accessor<string>;
|
|
25
26
|
}
|
|
26
|
-
export declare abstract class DescendantNode<Definition extends DescendantNodeDefinition, Spec extends DescendantNodeStateSpec<any>, Child extends AnyChildNode | null = null> extends InstanceNode<Definition, Spec, Child> implements BaseNode,
|
|
27
|
-
readonly parent:
|
|
27
|
+
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
|
+
readonly parent: Parent;
|
|
28
29
|
readonly definition: Definition;
|
|
30
|
+
/**
|
|
31
|
+
* Partial implementation of {@link isAttached}, used to check whether `this`
|
|
32
|
+
* is present in {@link parent}'s children state.
|
|
33
|
+
*/
|
|
34
|
+
protected readonly isAttachedDescendant: Accessor<boolean>;
|
|
29
35
|
readonly hasReadonlyAncestor: Accessor<boolean>;
|
|
30
36
|
readonly isSelfReadonly: Accessor<boolean>;
|
|
31
37
|
readonly isReadonly: Accessor<boolean>;
|
|
@@ -33,23 +39,25 @@ export declare abstract class DescendantNode<Definition extends DescendantNodeDe
|
|
|
33
39
|
readonly isSelfRelevant: Accessor<boolean>;
|
|
34
40
|
readonly isRelevant: Accessor<boolean>;
|
|
35
41
|
readonly isRequired: Accessor<boolean>;
|
|
36
|
-
readonly root: Root;
|
|
37
|
-
readonly evaluator: XFormsXPathEvaluator;
|
|
38
|
-
readonly contextNode: Element;
|
|
39
|
-
constructor(parent: DescendantNodeParent<Definition>, definition: Definition, options?: DescendantNodeOptions);
|
|
40
|
-
protected createContextNode(parentContextNode: Element, nodeName: string): Element;
|
|
41
42
|
/**
|
|
42
|
-
*
|
|
43
|
+
* WARNING! Ideally, this would be an abstract property, defined by each
|
|
44
|
+
* concrete subclass (or other intermediate abstract classes, where
|
|
45
|
+
* appropriate). Unfortunately it must be assigned here, so it will be present
|
|
46
|
+
* for certain XPath DOM adapter functionality **during** each concrete node's
|
|
47
|
+
* construction.
|
|
43
48
|
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* - Repeat instance: returns its created context node, but overrides handles
|
|
48
|
-
* appending behavior separately (for inserting at the end of its parent
|
|
49
|
-
* range, or even at an arbitrary index within the range, after instance
|
|
50
|
-
* creation is has completed).
|
|
49
|
+
* Those subclasses nevertheless override this same property, assigning the
|
|
50
|
+
* same value, for the purposes of narrowing the XPath node kind semantics
|
|
51
|
+
* appropriate for each node type.
|
|
51
52
|
*/
|
|
52
|
-
|
|
53
|
+
readonly [XPathNodeKindKey]: XFormsXPathPrimaryInstanceDescendantNodeKind;
|
|
54
|
+
readonly root: Root;
|
|
55
|
+
abstract readonly nodeType: InstanceNodeType;
|
|
56
|
+
readonly isAttached: Accessor<boolean>;
|
|
57
|
+
readonly evaluator: EngineXPathEvaluator;
|
|
58
|
+
readonly contextNode: PrimaryInstanceXPathChildNode;
|
|
59
|
+
readonly getActiveLanguage: Accessor<ActiveLanguage>;
|
|
60
|
+
constructor(parent: Parent, definition: Definition, options?: DescendantNodeOptions);
|
|
53
61
|
/**
|
|
54
62
|
* @package
|
|
55
63
|
*
|