@getodk/xforms-engine 0.2.0 → 0.4.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 +69 -4
- package/dist/client/EngineConfig.d.ts +0 -1
- package/dist/client/GroupNode.d.ts +4 -3
- package/dist/client/ModelValueNode.d.ts +36 -0
- package/dist/client/NodeAppearances.d.ts +1 -2
- package/dist/client/NoteNode.d.ts +52 -0
- package/dist/client/RootNode.d.ts +4 -3
- package/dist/client/SelectNode.d.ts +6 -5
- package/dist/client/StringNode.d.ts +6 -5
- package/dist/client/SubtreeNode.d.ts +3 -2
- package/dist/client/TextRange.d.ts +85 -3
- package/dist/client/TriggerNode.d.ts +25 -0
- package/dist/client/constants.d.ts +8 -0
- package/dist/client/hierarchy.d.ts +19 -10
- package/dist/client/index.d.ts +0 -1
- package/dist/client/node-types.d.ts +3 -1
- package/dist/client/{RepeatRangeNode.d.ts → repeat/BaseRepeatRangeNode.d.ts} +18 -18
- package/dist/client/{RepeatInstanceNode.d.ts → repeat/RepeatInstanceNode.d.ts} +9 -9
- package/dist/client/repeat/RepeatRangeControlledNode.d.ts +18 -0
- package/dist/client/repeat/RepeatRangeUncontrolledNode.d.ts +19 -0
- package/dist/client/unsupported/RangeNode.d.ts +9 -0
- package/dist/client/unsupported/RankNode.d.ts +9 -0
- package/dist/client/unsupported/UnsupportedControlNode.d.ts +32 -0
- package/dist/client/unsupported/UploadNode.d.ts +9 -0
- package/dist/client/validation.d.ts +162 -0
- package/dist/index.d.ts +14 -6
- package/dist/index.js +39696 -36151
- package/dist/index.js.map +1 -1
- package/dist/instance/Group.d.ts +3 -2
- package/dist/instance/ModelValue.d.ts +39 -0
- package/dist/instance/Note.d.ts +41 -0
- package/dist/instance/Root.d.ts +5 -4
- package/dist/instance/SelectField.d.ts +11 -6
- package/dist/instance/StringField.d.ts +12 -7
- package/dist/instance/Subtree.d.ts +2 -1
- package/dist/instance/TriggerControl.d.ts +40 -0
- package/dist/instance/abstract/DescendantNode.d.ts +8 -10
- package/dist/instance/abstract/InstanceNode.d.ts +3 -2
- package/dist/instance/abstract/UnsupportedControl.d.ts +46 -0
- package/dist/instance/children.d.ts +0 -1
- package/dist/instance/hierarchy.d.ts +15 -6
- package/dist/instance/index.d.ts +0 -1
- package/dist/instance/internal-api/EvaluationContext.d.ts +0 -1
- package/dist/instance/internal-api/InstanceConfig.d.ts +0 -1
- package/dist/instance/internal-api/SubscribableDependency.d.ts +0 -1
- package/dist/instance/internal-api/TranslationContext.d.ts +0 -1
- package/dist/instance/internal-api/ValidationContext.d.ts +28 -0
- package/dist/instance/internal-api/ValueContext.d.ts +3 -4
- package/dist/instance/{RepeatRange.d.ts → repeat/BaseRepeatRange.d.ts} +46 -46
- package/dist/instance/{RepeatInstance.d.ts → repeat/RepeatInstance.d.ts} +13 -13
- package/dist/instance/repeat/RepeatRangeControlled.d.ts +15 -0
- package/dist/instance/repeat/RepeatRangeUncontrolled.d.ts +34 -0
- package/dist/instance/resource.d.ts +0 -1
- package/dist/instance/text/TextChunk.d.ts +0 -1
- package/dist/instance/text/TextRange.d.ts +4 -5
- package/dist/instance/unsupported/RangeControl.d.ts +4 -0
- package/dist/instance/unsupported/RankControl.d.ts +4 -0
- package/dist/instance/unsupported/UploadControl.d.ts +4 -0
- package/dist/lib/TokenListParser.d.ts +3 -3
- package/dist/lib/dom/query.d.ts +1 -2
- package/dist/lib/reactivity/createChildrenState.d.ts +0 -1
- package/dist/lib/reactivity/createComputedExpression.d.ts +7 -3
- package/dist/lib/reactivity/createNoteReadonlyThunk.d.ts +4 -0
- package/dist/lib/reactivity/createSelectItems.d.ts +0 -1
- package/dist/lib/reactivity/createValueState.d.ts +0 -1
- package/dist/lib/reactivity/materializeCurrentStateChildren.d.ts +0 -1
- package/dist/lib/reactivity/node-state/createClientState.d.ts +0 -1
- package/dist/lib/reactivity/node-state/createCurrentState.d.ts +0 -1
- package/dist/lib/reactivity/node-state/createEngineState.d.ts +0 -1
- package/dist/lib/reactivity/node-state/createSharedNodeState.d.ts +1 -2
- package/dist/lib/reactivity/node-state/createSpecifiedPropertyDescriptor.d.ts +0 -1
- package/dist/lib/reactivity/node-state/createSpecifiedState.d.ts +1 -2
- package/dist/lib/reactivity/node-state/representations.d.ts +0 -1
- package/dist/lib/reactivity/scope.d.ts +0 -1
- package/dist/lib/reactivity/text/createFieldHint.d.ts +3 -4
- package/dist/lib/reactivity/text/createNodeLabel.d.ts +3 -4
- package/dist/lib/reactivity/text/createNoteText.d.ts +24 -0
- package/dist/lib/reactivity/text/createTextRange.d.ts +5 -8
- package/dist/lib/reactivity/types.d.ts +0 -1
- package/dist/lib/reactivity/validation/createAggregatedViolations.d.ts +8 -0
- package/dist/lib/reactivity/validation/createValidation.d.ts +17 -0
- package/dist/{XFormDOM.d.ts → parse/XFormDOM.d.ts} +1 -2
- package/dist/{XFormDataType.d.ts → parse/XFormDataType.d.ts} +2 -4
- package/dist/{XFormDefinition.d.ts → parse/XFormDefinition.d.ts} +2 -3
- package/dist/{body → parse/body}/BodyDefinition.d.ts +15 -10
- package/dist/{body → parse/body}/BodyElementDefinition.d.ts +8 -7
- package/dist/{body → parse/body}/RepeatElementDefinition.d.ts +4 -5
- package/dist/{body → parse/body}/UnsupportedBodyElementDefinition.d.ts +0 -1
- package/dist/{body → parse/body}/appearance/inputAppearanceParser.d.ts +1 -2
- package/dist/{body → parse/body}/appearance/selectAppearanceParser.d.ts +1 -2
- package/dist/{body → parse/body}/appearance/structureElementAppearanceParser.d.ts +1 -2
- package/dist/parse/body/appearance/unknownAppearanceParser.d.ts +3 -0
- package/dist/{body → parse/body}/control/ControlDefinition.d.ts +3 -4
- package/dist/{body → parse/body}/control/InputDefinition.d.ts +1 -2
- package/dist/parse/body/control/RangeControlDefinition.d.ts +11 -0
- package/dist/parse/body/control/RankControlDefinition.d.ts +11 -0
- package/dist/parse/body/control/TriggerControlDefinition.d.ts +11 -0
- package/dist/parse/body/control/UploadControlDefinition.d.ts +11 -0
- package/dist/{body → parse/body}/control/select/ItemDefinition.d.ts +3 -4
- package/dist/{body → parse/body}/control/select/ItemsetDefinition.d.ts +7 -7
- package/dist/{body → parse/body}/control/select/ItemsetNodesetContext.d.ts +2 -3
- package/dist/{body → parse/body}/control/select/SelectDefinition.d.ts +3 -12
- package/dist/{body → parse/body}/group/BaseGroupDefinition.d.ts +3 -5
- package/dist/{body → parse/body}/group/LogicalGroupDefinition.d.ts +0 -1
- package/dist/{body → parse/body}/group/PresentationGroupDefinition.d.ts +1 -2
- package/dist/{body → parse/body}/group/StructuralGroupDefinition.d.ts +0 -1
- package/dist/{model/BindComputation.d.ts → parse/expression/BindComputationExpression.d.ts} +5 -6
- package/dist/{body/control/select → parse/expression}/ItemsetNodesetExpression.d.ts +2 -3
- package/dist/{body/control/select → parse/expression}/ItemsetValueExpression.d.ts +2 -3
- package/dist/parse/expression/RepeatCountControlExpression.d.ts +18 -0
- package/dist/parse/expression/TextLiteralExpression.d.ts +9 -0
- package/dist/parse/expression/TextOutputExpression.d.ts +7 -0
- package/dist/parse/expression/TextReferenceExpression.d.ts +7 -0
- package/dist/parse/expression/TextTranslationExpression.d.ts +8 -0
- package/dist/{expression → parse/expression/abstract}/DependencyContext.d.ts +0 -1
- package/dist/{expression → parse/expression/abstract}/DependentExpression.d.ts +13 -10
- package/dist/parse/expression/abstract/TextChunkExpression.d.ts +17 -0
- package/dist/parse/model/BindDefinition.d.ts +39 -0
- package/dist/{model → parse/model}/BindElement.d.ts +1 -0
- package/dist/{model → parse/model}/DescendentNodeDefinition.d.ts +0 -1
- package/dist/{model/ValueNodeDefinition.d.ts → parse/model/LeafNodeDefinition.d.ts} +3 -4
- package/dist/{model → parse/model}/ModelBindMap.d.ts +0 -1
- package/dist/{model → parse/model}/ModelDefinition.d.ts +1 -2
- package/dist/{model → parse/model}/NodeDefinition.d.ts +8 -9
- package/dist/parse/model/NoteNodeDefinition.d.ts +30 -0
- package/dist/{model → parse/model}/RepeatInstanceDefinition.d.ts +3 -4
- package/dist/{model → parse/model}/RepeatRangeDefinition.d.ts +14 -5
- package/dist/{model → parse/model}/RepeatTemplateDefinition.d.ts +2 -3
- package/dist/{model → parse/model}/RootDefinition.d.ts +2 -3
- package/dist/{model → parse/model}/SubtreeDefinition.d.ts +1 -2
- package/dist/parse/text/HintDefinition.d.ts +8 -0
- package/dist/parse/text/ItemLabelDefinition.d.ts +8 -0
- package/dist/parse/text/ItemsetLabelDefinition.d.ts +12 -0
- package/dist/parse/text/LabelDefinition.d.ts +14 -0
- package/dist/parse/text/MessageDefinition.d.ts +14 -0
- package/dist/parse/text/abstract/TextElementDefinition.d.ts +22 -0
- package/dist/parse/text/abstract/TextRangeDefinition.d.ts +34 -0
- package/dist/parse/xpath/dependency-analysis.d.ts +40 -0
- package/dist/parse/xpath/path-resolution.d.ts +69 -0
- package/dist/parse/xpath/predicate-analysis.d.ts +29 -0
- package/dist/parse/xpath/reference-parsing.d.ts +17 -0
- package/dist/parse/xpath/semantic-analysis.d.ts +97 -0
- package/dist/parse/xpath/syntax-traversal.d.ts +68 -0
- package/dist/solid.js +8745 -5186
- package/dist/solid.js.map +1 -1
- package/package.json +15 -16
- package/src/client/BaseNode.ts +74 -8
- package/src/client/GroupNode.ts +4 -2
- package/src/client/ModelValueNode.ts +40 -0
- package/src/client/NodeAppearances.ts +1 -1
- package/src/client/NoteNode.ts +74 -0
- package/src/client/README.md +1 -0
- package/src/client/RootNode.ts +4 -2
- package/src/client/SelectNode.ts +6 -4
- package/src/client/StringNode.ts +6 -4
- package/src/client/SubtreeNode.ts +3 -1
- package/src/client/TextRange.ts +98 -2
- package/src/client/TriggerNode.ts +29 -0
- package/src/client/constants.ts +10 -0
- package/src/client/hierarchy.ts +43 -15
- package/src/client/node-types.ts +17 -2
- package/src/client/{RepeatRangeNode.ts → repeat/BaseRepeatRangeNode.ts} +18 -19
- package/src/client/{RepeatInstanceNode.ts → repeat/RepeatInstanceNode.ts} +10 -8
- package/src/client/repeat/RepeatRangeControlledNode.ts +20 -0
- package/src/client/repeat/RepeatRangeUncontrolledNode.ts +21 -0
- package/src/client/unsupported/RangeNode.ts +14 -0
- package/src/client/unsupported/RankNode.ts +14 -0
- package/src/client/unsupported/UnsupportedControlNode.ts +40 -0
- package/src/client/unsupported/UploadNode.ts +14 -0
- package/src/client/validation.ts +199 -0
- package/src/index.ts +21 -9
- package/src/instance/Group.ts +10 -4
- package/src/instance/ModelValue.ts +104 -0
- package/src/instance/Note.ts +142 -0
- package/src/instance/Root.ts +16 -6
- package/src/instance/SelectField.ts +29 -7
- package/src/instance/StringField.ts +36 -10
- package/src/instance/Subtree.ts +9 -3
- package/src/instance/TriggerControl.ts +134 -0
- package/src/instance/abstract/DescendantNode.ts +9 -10
- package/src/instance/abstract/InstanceNode.ts +29 -7
- package/src/instance/abstract/UnsupportedControl.ts +151 -0
- package/src/instance/children.ts +113 -16
- package/src/instance/hierarchy.ts +42 -5
- package/src/instance/index.ts +1 -1
- package/src/instance/internal-api/EvaluationContext.ts +1 -1
- package/src/instance/internal-api/ValidationContext.ts +32 -0
- package/src/instance/internal-api/ValueContext.ts +3 -3
- package/src/instance/{RepeatRange.ts → repeat/BaseRepeatRange.ts} +114 -99
- package/src/instance/{RepeatInstance.ts → repeat/RepeatInstance.ts} +27 -22
- package/src/instance/repeat/RepeatRangeControlled.ts +82 -0
- package/src/instance/repeat/RepeatRangeUncontrolled.ts +67 -0
- package/src/instance/text/TextRange.ts +10 -4
- package/src/instance/unsupported/RangeControl.ts +5 -0
- package/src/instance/unsupported/RankControl.ts +5 -0
- package/src/instance/unsupported/UploadControl.ts +5 -0
- package/src/lib/TokenListParser.ts +11 -7
- package/src/lib/dom/query.ts +1 -1
- package/src/lib/reactivity/createComputedExpression.ts +25 -27
- package/src/lib/reactivity/createNoteReadonlyThunk.ts +33 -0
- package/src/lib/reactivity/createSelectItems.ts +23 -16
- package/src/lib/reactivity/createValueState.ts +3 -3
- package/src/lib/reactivity/node-state/createSharedNodeState.ts +1 -1
- package/src/lib/reactivity/node-state/createSpecifiedState.ts +1 -1
- package/src/lib/reactivity/text/createFieldHint.ts +9 -7
- package/src/lib/reactivity/text/createNodeLabel.ts +8 -6
- package/src/lib/reactivity/text/createNoteText.ts +72 -0
- package/src/lib/reactivity/text/createTextRange.ts +17 -90
- package/src/lib/reactivity/validation/createAggregatedViolations.ts +75 -0
- package/src/lib/reactivity/validation/createValidation.ts +196 -0
- package/src/{XFormDataType.ts → parse/XFormDataType.ts} +1 -3
- package/src/{XFormDefinition.ts → parse/XFormDefinition.ts} +2 -2
- package/src/{body → parse/body}/BodyDefinition.ts +44 -27
- package/src/{body → parse/body}/BodyElementDefinition.ts +13 -6
- package/src/{body → parse/body}/RepeatElementDefinition.ts +10 -20
- package/src/{body → parse/body}/appearance/inputAppearanceParser.ts +1 -1
- package/src/{body → parse/body}/appearance/selectAppearanceParser.ts +1 -1
- package/src/{body → parse/body}/appearance/structureElementAppearanceParser.ts +1 -1
- package/src/parse/body/appearance/unknownAppearanceParser.ts +5 -0
- package/src/{body → parse/body}/control/ControlDefinition.ts +5 -4
- package/src/parse/body/control/RangeControlDefinition.ts +26 -0
- package/src/parse/body/control/RankControlDefinition.ts +27 -0
- package/src/parse/body/control/TriggerControlDefinition.ts +26 -0
- package/src/parse/body/control/UploadControlDefinition.ts +26 -0
- package/src/{body → parse/body}/control/select/ItemDefinition.ts +4 -4
- package/src/parse/body/control/select/ItemsetDefinition.ts +53 -0
- package/src/{body → parse/body}/control/select/ItemsetNodesetContext.ts +2 -2
- package/src/{body → parse/body}/control/select/SelectDefinition.ts +3 -11
- package/src/{body → parse/body}/group/BaseGroupDefinition.ts +11 -21
- package/src/{body → parse/body}/group/PresentationGroupDefinition.ts +1 -1
- package/src/{model/BindComputation.ts → parse/expression/BindComputationExpression.ts} +8 -12
- package/src/parse/expression/ItemsetNodesetExpression.ts +8 -0
- package/src/{body/control/select → parse/expression}/ItemsetValueExpression.ts +2 -2
- package/src/parse/expression/RepeatCountControlExpression.ts +44 -0
- package/src/parse/expression/TextLiteralExpression.ts +19 -0
- package/src/parse/expression/TextOutputExpression.ts +25 -0
- package/src/parse/expression/TextReferenceExpression.ts +14 -0
- package/src/parse/expression/TextTranslationExpression.ts +38 -0
- package/src/{expression → parse/expression/abstract}/DependentExpression.ts +46 -28
- package/src/parse/expression/abstract/TextChunkExpression.ts +38 -0
- package/src/{model → parse/model}/BindDefinition.ts +30 -27
- package/src/{model → parse/model}/BindElement.ts +1 -0
- package/src/{model/ValueNodeDefinition.ts → parse/model/LeafNodeDefinition.ts} +4 -4
- package/src/{model → parse/model}/ModelBindMap.ts +4 -0
- package/src/{model → parse/model}/NodeDefinition.ts +12 -12
- package/src/parse/model/NoteNodeDefinition.ts +70 -0
- package/src/{model → parse/model}/RepeatInstanceDefinition.ts +2 -2
- package/src/parse/model/RepeatRangeDefinition.ts +94 -0
- package/src/{model → parse/model}/RootDefinition.ts +8 -4
- package/src/parse/text/HintDefinition.ts +25 -0
- package/src/parse/text/ItemLabelDefinition.ts +25 -0
- package/src/parse/text/ItemsetLabelDefinition.ts +44 -0
- package/src/parse/text/LabelDefinition.ts +61 -0
- package/src/parse/text/MessageDefinition.ts +49 -0
- package/src/parse/text/abstract/TextElementDefinition.ts +71 -0
- package/src/parse/text/abstract/TextRangeDefinition.ts +70 -0
- package/src/parse/xpath/dependency-analysis.ts +105 -0
- package/src/parse/xpath/path-resolution.ts +475 -0
- package/src/parse/xpath/predicate-analysis.ts +61 -0
- package/src/parse/xpath/reference-parsing.ts +90 -0
- package/src/parse/xpath/semantic-analysis.ts +466 -0
- package/src/parse/xpath/syntax-traversal.ts +129 -0
- package/dist/body/text/HintDefinition.d.ts +0 -11
- package/dist/body/text/LabelDefinition.d.ts +0 -22
- package/dist/body/text/TextElementDefinition.d.ts +0 -33
- package/dist/body/text/TextElementOutputPart.d.ts +0 -13
- package/dist/body/text/TextElementPart.d.ts +0 -13
- package/dist/body/text/TextElementReferencePart.d.ts +0 -7
- package/dist/body/text/TextElementStaticPart.d.ts +0 -7
- package/dist/lib/xpath/analysis.d.ts +0 -23
- package/dist/model/BindDefinition.d.ts +0 -32
- package/src/body/control/select/ItemsetDefinition.ts +0 -36
- package/src/body/control/select/ItemsetNodesetExpression.ts +0 -8
- package/src/body/text/HintDefinition.ts +0 -26
- package/src/body/text/LabelDefinition.ts +0 -68
- package/src/body/text/TextElementDefinition.ts +0 -97
- package/src/body/text/TextElementOutputPart.ts +0 -27
- package/src/body/text/TextElementPart.ts +0 -31
- package/src/body/text/TextElementReferencePart.ts +0 -21
- package/src/body/text/TextElementStaticPart.ts +0 -26
- package/src/lib/xpath/analysis.ts +0 -241
- package/src/model/RepeatRangeDefinition.ts +0 -53
- package/src/{XFormDOM.ts → parse/XFormDOM.ts} +0 -0
- package/src/{body → parse/body}/UnsupportedBodyElementDefinition.ts +0 -0
- package/src/{body → parse/body}/control/InputDefinition.ts +1 -1
- /package/src/{body → parse/body}/group/LogicalGroupDefinition.ts +0 -0
- /package/src/{body → parse/body}/group/StructuralGroupDefinition.ts +0 -0
- /package/src/{expression → parse/expression/abstract}/DependencyContext.ts +0 -0
- /package/src/{model → parse/model}/DescendentNodeDefinition.ts +0 -0
- /package/src/{model → parse/model}/ModelDefinition.ts +0 -0
- /package/src/{model → parse/model}/RepeatTemplateDefinition.ts +0 -0
- /package/src/{model → parse/model}/SubtreeDefinition.ts +0 -0
package/dist/instance/Group.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Accessor } from 'solid-js';
|
|
2
2
|
import { GroupDefinition, GroupNode, GroupNodeAppearances } from '../client/GroupNode.ts';
|
|
3
|
-
import { TextRange } from '../
|
|
3
|
+
import { TextRange } from '../client/TextRange.ts';
|
|
4
|
+
import { AncestorNodeValidationState } from '../client/validation.ts';
|
|
4
5
|
import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
|
|
5
6
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
7
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
@@ -10,7 +11,6 @@ import { GeneralChildNode, GeneralParentNode } from './hierarchy.ts';
|
|
|
10
11
|
import { NodeID } from './identity.ts';
|
|
11
12
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
12
13
|
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
13
|
-
|
|
14
14
|
interface GroupStateSpec extends DescendantNodeSharedStateSpec {
|
|
15
15
|
readonly label: Accessor<TextRange<'label'> | null>;
|
|
16
16
|
readonly hint: null;
|
|
@@ -25,6 +25,7 @@ export declare class Group extends DescendantNode<GroupDefinition, GroupStateSpe
|
|
|
25
25
|
readonly nodeType = "group";
|
|
26
26
|
readonly appearances: GroupNodeAppearances;
|
|
27
27
|
readonly currentState: MaterializedChildren<CurrentState<GroupStateSpec>, GeneralChildNode>;
|
|
28
|
+
readonly validationState: AncestorNodeValidationState;
|
|
28
29
|
constructor(parent: GeneralParentNode, definition: GroupDefinition);
|
|
29
30
|
getChildren(): readonly GeneralChildNode[];
|
|
30
31
|
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { ModelValueNode } from '../client/ModelValueNode.ts';
|
|
2
|
+
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
3
|
+
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
4
|
+
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
5
|
+
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
6
|
+
import { SimpleAtomicState } from '../lib/reactivity/types.ts';
|
|
7
|
+
import { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
|
|
8
|
+
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
9
|
+
import { GeneralParentNode } from './hierarchy.ts';
|
|
10
|
+
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
11
|
+
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
12
|
+
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
13
|
+
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
14
|
+
export interface ModelValueDefinition extends LeafNodeDefinition {
|
|
15
|
+
readonly bodyElement: null;
|
|
16
|
+
}
|
|
17
|
+
interface ModelValueStateSpec extends DescendantNodeStateSpec<string> {
|
|
18
|
+
readonly label: null;
|
|
19
|
+
readonly hint: null;
|
|
20
|
+
readonly children: null;
|
|
21
|
+
readonly value: SimpleAtomicState<string>;
|
|
22
|
+
readonly valueOptions: null;
|
|
23
|
+
}
|
|
24
|
+
export declare class ModelValue extends DescendantNode<ModelValueDefinition, ModelValueStateSpec, null> implements ModelValueNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<string> {
|
|
25
|
+
private readonly validation;
|
|
26
|
+
protected readonly state: SharedNodeState<ModelValueStateSpec>;
|
|
27
|
+
protected engineState: EngineState<ModelValueStateSpec>;
|
|
28
|
+
readonly nodeType = "model-value";
|
|
29
|
+
readonly appearances: null;
|
|
30
|
+
readonly currentState: CurrentState<ModelValueStateSpec>;
|
|
31
|
+
get validationState(): LeafNodeValidationState;
|
|
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 [];
|
|
38
|
+
}
|
|
39
|
+
export {};
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { NoteNode, NoteNodeAppearances } from '../client/NoteNode.ts';
|
|
3
|
+
import { TextRange } from '../client/TextRange.ts';
|
|
4
|
+
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
5
|
+
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
|
+
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
|
+
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
8
|
+
import { ComputedNoteText } from '../lib/reactivity/text/createNoteText.ts';
|
|
9
|
+
import { SimpleAtomicState } from '../lib/reactivity/types.ts';
|
|
10
|
+
import { NoteNodeDefinition } from '../parse/model/NoteNodeDefinition.ts';
|
|
11
|
+
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
12
|
+
import { GeneralParentNode } from './hierarchy.ts';
|
|
13
|
+
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
14
|
+
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
15
|
+
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
16
|
+
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
17
|
+
interface NoteStateSpec extends DescendantNodeStateSpec<string> {
|
|
18
|
+
readonly readonly: Accessor<true>;
|
|
19
|
+
readonly noteText: ComputedNoteText;
|
|
20
|
+
readonly label: Accessor<TextRange<'label', 'form'> | null>;
|
|
21
|
+
readonly hint: Accessor<TextRange<'hint', 'form'> | null>;
|
|
22
|
+
readonly children: null;
|
|
23
|
+
readonly value: SimpleAtomicState<string>;
|
|
24
|
+
readonly valueOptions: null;
|
|
25
|
+
}
|
|
26
|
+
export declare class Note extends DescendantNode<NoteNodeDefinition, NoteStateSpec, null> implements NoteNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<string> {
|
|
27
|
+
private readonly validation;
|
|
28
|
+
protected readonly state: SharedNodeState<NoteStateSpec>;
|
|
29
|
+
protected engineState: EngineState<NoteStateSpec>;
|
|
30
|
+
readonly nodeType = "note";
|
|
31
|
+
readonly appearances: NoteNodeAppearances;
|
|
32
|
+
readonly currentState: CurrentState<NoteStateSpec>;
|
|
33
|
+
get validationState(): LeafNodeValidationState;
|
|
34
|
+
readonly encodeValue: (value: string) => string;
|
|
35
|
+
readonly decodeValue: (value: string) => string;
|
|
36
|
+
constructor(parent: GeneralParentNode, definition: NoteNodeDefinition);
|
|
37
|
+
getViolation(): AnyViolation | null;
|
|
38
|
+
isBlank(): boolean;
|
|
39
|
+
getChildren(): readonly [];
|
|
40
|
+
}
|
|
41
|
+
export {};
|
package/dist/instance/Root.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { XFormsXPathEvaluator } from '@getodk/xpath';
|
|
2
2
|
import { Accessor, Signal } from 'solid-js';
|
|
3
|
-
import { XFormDOM } from '../XFormDOM.ts';
|
|
4
|
-
import { BodyClassList } from '../body/BodyDefinition.ts';
|
|
5
3
|
import { ActiveLanguage, FormLanguage, FormLanguages } from '../client/FormLanguage.ts';
|
|
6
4
|
import { RootNode } from '../client/RootNode.ts';
|
|
5
|
+
import { AncestorNodeValidationState } from '../client/validation.ts';
|
|
7
6
|
import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
|
|
8
7
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
9
8
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
10
9
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
11
|
-
import {
|
|
10
|
+
import { BodyClassList } from '../parse/body/BodyDefinition.ts';
|
|
11
|
+
import { RootDefinition } from '../parse/model/RootDefinition.ts';
|
|
12
|
+
import { XFormDOM } from '../parse/XFormDOM.ts';
|
|
12
13
|
import { InstanceNode } from './abstract/InstanceNode.ts';
|
|
13
14
|
import { GeneralChildNode } from './hierarchy.ts';
|
|
14
15
|
import { NodeID } from './identity.ts';
|
|
@@ -16,7 +17,6 @@ import { EvaluationContext, EvaluationContextRoot } from './internal-api/Evaluat
|
|
|
16
17
|
import { InstanceConfig } from './internal-api/InstanceConfig.ts';
|
|
17
18
|
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
18
19
|
import { TranslationContext } from './internal-api/TranslationContext.ts';
|
|
19
|
-
|
|
20
20
|
interface RootStateSpec {
|
|
21
21
|
readonly reference: string;
|
|
22
22
|
readonly readonly: boolean;
|
|
@@ -41,6 +41,7 @@ export declare class Root extends InstanceNode<RootDefinition, RootStateSpec, Ge
|
|
|
41
41
|
readonly appearances: null;
|
|
42
42
|
readonly classes: BodyClassList;
|
|
43
43
|
readonly currentState: MaterializedChildren<CurrentState<RootStateSpec>, GeneralChildNode>;
|
|
44
|
+
readonly validationState: AncestorNodeValidationState;
|
|
44
45
|
protected readonly instanceDOM: XFormDOM;
|
|
45
46
|
readonly root: this;
|
|
46
47
|
readonly evaluator: XFormsXPathEvaluator;
|
|
@@ -1,20 +1,21 @@
|
|
|
1
1
|
import { Accessor } from 'solid-js';
|
|
2
|
-
import { AnySelectDefinition } from '../body/control/select/SelectDefinition.ts';
|
|
3
2
|
import { SelectItem, SelectNode, SelectNodeAppearances } from '../client/SelectNode.ts';
|
|
4
|
-
import { TextRange } from '../
|
|
3
|
+
import { TextRange } from '../client/TextRange.ts';
|
|
4
|
+
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
5
5
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
6
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
7
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
8
8
|
import { SimpleAtomicState } from '../lib/reactivity/types.ts';
|
|
9
|
-
import {
|
|
9
|
+
import { AnySelectDefinition } from '../parse/body/control/select/SelectDefinition.ts';
|
|
10
|
+
import { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
|
|
10
11
|
import { Root } from './Root.ts';
|
|
11
12
|
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
12
13
|
import { GeneralParentNode } from './hierarchy.ts';
|
|
13
14
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
14
15
|
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
16
|
+
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
15
17
|
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
16
|
-
|
|
17
|
-
export interface SelectFieldDefinition extends ValueNodeDefinition {
|
|
18
|
+
export interface SelectFieldDefinition extends LeafNodeDefinition {
|
|
18
19
|
readonly bodyElement: AnySelectDefinition;
|
|
19
20
|
}
|
|
20
21
|
interface SelectFieldStateSpec extends DescendantNodeStateSpec<readonly SelectItem[]> {
|
|
@@ -24,13 +25,15 @@ interface SelectFieldStateSpec extends DescendantNodeStateSpec<readonly SelectIt
|
|
|
24
25
|
readonly value: SimpleAtomicState<readonly SelectItem[]>;
|
|
25
26
|
readonly valueOptions: Accessor<readonly SelectItem[]>;
|
|
26
27
|
}
|
|
27
|
-
export declare class SelectField extends DescendantNode<SelectFieldDefinition, SelectFieldStateSpec, null> implements SelectNode, EvaluationContext, SubscribableDependency, ValueContext<readonly SelectItem[]> {
|
|
28
|
+
export declare class SelectField extends DescendantNode<SelectFieldDefinition, SelectFieldStateSpec, null> implements SelectNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<readonly SelectItem[]> {
|
|
28
29
|
private readonly selectExclusive;
|
|
30
|
+
private readonly validation;
|
|
29
31
|
protected readonly state: SharedNodeState<SelectFieldStateSpec>;
|
|
30
32
|
protected engineState: EngineState<SelectFieldStateSpec>;
|
|
31
33
|
readonly nodeType = "select";
|
|
32
34
|
readonly appearances: SelectNodeAppearances;
|
|
33
35
|
readonly currentState: CurrentState<SelectFieldStateSpec>;
|
|
36
|
+
get validationState(): LeafNodeValidationState;
|
|
34
37
|
readonly encodeValue: (runtimeValue: readonly SelectItem[]) => string;
|
|
35
38
|
readonly decodeValue: (instanceValue: string) => readonly SelectItem[];
|
|
36
39
|
protected readonly getValueOptions: Accessor<readonly SelectItem[]>;
|
|
@@ -41,5 +44,7 @@ export declare class SelectField extends DescendantNode<SelectFieldDefinition, S
|
|
|
41
44
|
select(selectedItem: SelectItem): Root;
|
|
42
45
|
deselect(deselectedItem: SelectItem): Root;
|
|
43
46
|
getChildren(): readonly [];
|
|
47
|
+
getViolation(): AnyViolation | null;
|
|
48
|
+
isBlank(): boolean;
|
|
44
49
|
}
|
|
45
50
|
export {};
|
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { Accessor } from 'solid-js';
|
|
2
|
-
import { InputDefinition } from '../body/control/InputDefinition.ts';
|
|
3
2
|
import { StringNode, StringNodeAppearances } from '../client/StringNode.ts';
|
|
4
|
-
import { TextRange } from '../
|
|
3
|
+
import { TextRange } from '../client/TextRange.ts';
|
|
4
|
+
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
5
5
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
6
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
7
|
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
8
8
|
import { SimpleAtomicState } from '../lib/reactivity/types.ts';
|
|
9
|
-
import {
|
|
9
|
+
import { InputDefinition } from '../parse/body/control/InputDefinition.ts';
|
|
10
|
+
import { LeafNodeDefinition } from '../parse/model/LeafNodeDefinition.ts';
|
|
10
11
|
import { Root } from './Root.ts';
|
|
11
12
|
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
12
13
|
import { GeneralParentNode } from './hierarchy.ts';
|
|
13
14
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
14
15
|
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
16
|
+
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
15
17
|
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
readonly bodyElement: InputDefinition | null;
|
|
18
|
+
export interface StringFieldDefinition extends LeafNodeDefinition {
|
|
19
|
+
readonly bodyElement: InputDefinition;
|
|
19
20
|
}
|
|
20
21
|
interface StringFieldStateSpec extends DescendantNodeStateSpec<string> {
|
|
21
22
|
readonly label: Accessor<TextRange<'label'> | null>;
|
|
@@ -24,15 +25,19 @@ interface StringFieldStateSpec extends DescendantNodeStateSpec<string> {
|
|
|
24
25
|
readonly value: SimpleAtomicState<string>;
|
|
25
26
|
readonly valueOptions: null;
|
|
26
27
|
}
|
|
27
|
-
export declare class StringField extends DescendantNode<StringFieldDefinition, StringFieldStateSpec, null> implements StringNode, EvaluationContext, SubscribableDependency, ValueContext<string> {
|
|
28
|
+
export declare class StringField extends DescendantNode<StringFieldDefinition, StringFieldStateSpec, null> implements StringNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<string> {
|
|
29
|
+
private readonly validation;
|
|
28
30
|
protected readonly state: SharedNodeState<StringFieldStateSpec>;
|
|
29
31
|
protected engineState: EngineState<StringFieldStateSpec>;
|
|
30
32
|
readonly nodeType = "string";
|
|
31
33
|
readonly appearances: StringNodeAppearances;
|
|
32
34
|
readonly currentState: CurrentState<StringFieldStateSpec>;
|
|
35
|
+
get validationState(): LeafNodeValidationState;
|
|
33
36
|
readonly encodeValue: (value: string) => string;
|
|
34
37
|
readonly decodeValue: (value: string) => string;
|
|
35
38
|
constructor(parent: GeneralParentNode, definition: StringFieldDefinition);
|
|
39
|
+
getViolation(): AnyViolation | null;
|
|
40
|
+
isBlank(): boolean;
|
|
36
41
|
getChildren(): readonly [];
|
|
37
42
|
setValue(value: string): Root;
|
|
38
43
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Accessor } from 'solid-js';
|
|
2
2
|
import { SubtreeDefinition, SubtreeNode } from '../client/SubtreeNode.ts';
|
|
3
|
+
import { AncestorNodeValidationState } from '../client/validation.ts';
|
|
3
4
|
import { MaterializedChildren } from '../lib/reactivity/materializeCurrentStateChildren.ts';
|
|
4
5
|
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
5
6
|
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
@@ -9,7 +10,6 @@ import { GeneralChildNode, GeneralParentNode } from './hierarchy.ts';
|
|
|
9
10
|
import { NodeID } from './identity.ts';
|
|
10
11
|
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
11
12
|
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
12
|
-
|
|
13
13
|
interface SubtreeStateSpec extends DescendantNodeSharedStateSpec {
|
|
14
14
|
readonly label: null;
|
|
15
15
|
readonly hint: null;
|
|
@@ -24,6 +24,7 @@ export declare class Subtree extends DescendantNode<SubtreeDefinition, SubtreeSt
|
|
|
24
24
|
readonly nodeType = "subtree";
|
|
25
25
|
readonly appearances: null;
|
|
26
26
|
readonly currentState: MaterializedChildren<CurrentState<SubtreeStateSpec>, GeneralChildNode>;
|
|
27
|
+
readonly validationState: AncestorNodeValidationState;
|
|
27
28
|
constructor(parent: GeneralParentNode, definition: SubtreeDefinition);
|
|
28
29
|
getChildren(): readonly GeneralChildNode[];
|
|
29
30
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { TextRange } from '../client/TextRange.ts';
|
|
3
|
+
import { TriggerNode, TriggerNodeDefinition } from '../client/TriggerNode.ts';
|
|
4
|
+
import { AnyViolation, LeafNodeValidationState } from '../client/validation.ts';
|
|
5
|
+
import { CurrentState } from '../lib/reactivity/node-state/createCurrentState.ts';
|
|
6
|
+
import { EngineState } from '../lib/reactivity/node-state/createEngineState.ts';
|
|
7
|
+
import { SharedNodeState } from '../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
8
|
+
import { SimpleAtomicState } from '../lib/reactivity/types.ts';
|
|
9
|
+
import { UnknownAppearanceDefinition } from '../parse/body/appearance/unknownAppearanceParser.ts';
|
|
10
|
+
import { Root } from './Root.ts';
|
|
11
|
+
import { DescendantNodeStateSpec, DescendantNode } from './abstract/DescendantNode.ts';
|
|
12
|
+
import { GeneralParentNode } from './hierarchy.ts';
|
|
13
|
+
import { EvaluationContext } from './internal-api/EvaluationContext.ts';
|
|
14
|
+
import { SubscribableDependency } from './internal-api/SubscribableDependency.ts';
|
|
15
|
+
import { ValidationContext } from './internal-api/ValidationContext.ts';
|
|
16
|
+
import { ValueContext } from './internal-api/ValueContext.ts';
|
|
17
|
+
interface TriggerControlStateSpec extends DescendantNodeStateSpec<boolean> {
|
|
18
|
+
readonly label: Accessor<TextRange<'label'> | null>;
|
|
19
|
+
readonly hint: Accessor<TextRange<'hint'> | null>;
|
|
20
|
+
readonly children: null;
|
|
21
|
+
readonly value: SimpleAtomicState<boolean>;
|
|
22
|
+
readonly valueOptions: null;
|
|
23
|
+
}
|
|
24
|
+
export declare class TriggerControl extends DescendantNode<TriggerNodeDefinition, TriggerControlStateSpec, null> implements TriggerNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<boolean> {
|
|
25
|
+
private readonly validation;
|
|
26
|
+
protected readonly state: SharedNodeState<TriggerControlStateSpec>;
|
|
27
|
+
protected engineState: EngineState<TriggerControlStateSpec>;
|
|
28
|
+
readonly nodeType = "trigger";
|
|
29
|
+
readonly appearances: UnknownAppearanceDefinition;
|
|
30
|
+
readonly currentState: CurrentState<TriggerControlStateSpec>;
|
|
31
|
+
get validationState(): LeafNodeValidationState;
|
|
32
|
+
readonly encodeValue: (runtimeValue: boolean) => string;
|
|
33
|
+
readonly decodeValue: (instanceValue: string) => boolean;
|
|
34
|
+
constructor(parent: GeneralParentNode, definition: TriggerNodeDefinition);
|
|
35
|
+
getViolation(): AnyViolation | null;
|
|
36
|
+
isBlank(): boolean;
|
|
37
|
+
getChildren(): readonly [];
|
|
38
|
+
setValue(value: boolean): Root;
|
|
39
|
+
}
|
|
40
|
+
export {};
|
|
@@ -1,17 +1,15 @@
|
|
|
1
1
|
import { XFormsXPathEvaluator } from '@getodk/xpath';
|
|
2
2
|
import { Accessor } from 'solid-js';
|
|
3
3
|
import { BaseNode } from '../../client/BaseNode.ts';
|
|
4
|
-
import { AnyDescendantNodeDefinition } from '../../model/DescendentNodeDefinition.ts';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { RepeatRange } from '../
|
|
9
|
-
import { Root } from '../Root.ts';
|
|
10
|
-
import { AnyChildNode, GeneralParentNode } from '../hierarchy.ts';
|
|
4
|
+
import { AnyDescendantNodeDefinition } from '../../parse/model/DescendentNodeDefinition.ts';
|
|
5
|
+
import { LeafNodeDefinition } from '../../parse/model/LeafNodeDefinition.ts';
|
|
6
|
+
import { AnyNodeDefinition } from '../../parse/model/NodeDefinition.ts';
|
|
7
|
+
import { RepeatInstanceDefinition } from '../../parse/model/RepeatInstanceDefinition.ts';
|
|
8
|
+
import { AnyChildNode, GeneralParentNode, RepeatRange } from '../hierarchy.ts';
|
|
11
9
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
12
10
|
import { SubscribableDependency } from '../internal-api/SubscribableDependency.ts';
|
|
11
|
+
import { Root } from '../Root.ts';
|
|
13
12
|
import { InstanceNodeStateSpec, InstanceNode } from './InstanceNode.ts';
|
|
14
|
-
|
|
15
13
|
export interface DescendantNodeSharedStateSpec {
|
|
16
14
|
readonly reference: Accessor<string>;
|
|
17
15
|
readonly readonly: Accessor<boolean>;
|
|
@@ -20,7 +18,7 @@ export interface DescendantNodeSharedStateSpec {
|
|
|
20
18
|
}
|
|
21
19
|
export type DescendantNodeStateSpec<Value = never> = InstanceNodeStateSpec<Value> & DescendantNodeSharedStateSpec;
|
|
22
20
|
export type DescendantNodeDefinition = Extract<AnyNodeDefinition, AnyDescendantNodeDefinition>;
|
|
23
|
-
export type DescendantNodeParent<Definition extends DescendantNodeDefinition> = Definition extends
|
|
21
|
+
export type DescendantNodeParent<Definition extends DescendantNodeDefinition> = Definition extends LeafNodeDefinition ? GeneralParentNode : Definition extends RepeatInstanceDefinition ? RepeatRange : GeneralParentNode;
|
|
24
22
|
export type AnyDescendantNode = DescendantNode<DescendantNodeDefinition, DescendantNodeStateSpec<any>, any>;
|
|
25
23
|
interface DescendantNodeOptions {
|
|
26
24
|
readonly computeReference?: Accessor<string>;
|
|
@@ -34,7 +32,7 @@ export declare abstract class DescendantNode<Definition extends DescendantNodeDe
|
|
|
34
32
|
readonly hasNonRelevantAncestor: Accessor<boolean>;
|
|
35
33
|
readonly isSelfRelevant: Accessor<boolean>;
|
|
36
34
|
readonly isRelevant: Accessor<boolean>;
|
|
37
|
-
|
|
35
|
+
readonly isRequired: Accessor<boolean>;
|
|
38
36
|
readonly root: Root;
|
|
39
37
|
readonly evaluator: XFormsXPathEvaluator;
|
|
40
38
|
readonly contextNode: Element;
|
|
@@ -3,20 +3,20 @@ import { Accessor, Signal } from 'solid-js';
|
|
|
3
3
|
import { BaseNode } from '../../client/BaseNode.ts';
|
|
4
4
|
import { NodeAppearances } from '../../client/NodeAppearances.ts';
|
|
5
5
|
import { InstanceNodeType } from '../../client/node-types.ts';
|
|
6
|
+
import { NodeValidationState } from '../../client/validation.ts';
|
|
6
7
|
import { TextRange } from '../../index.ts';
|
|
7
8
|
import { CurrentState } from '../../lib/reactivity/node-state/createCurrentState.ts';
|
|
8
9
|
import { EngineState } from '../../lib/reactivity/node-state/createEngineState.ts';
|
|
9
10
|
import { SharedNodeState } from '../../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
10
11
|
import { ReactiveScope } from '../../lib/reactivity/scope.ts';
|
|
11
12
|
import { SimpleAtomicState } from '../../lib/reactivity/types.ts';
|
|
12
|
-
import { AnyNodeDefinition } from '../../model/NodeDefinition.ts';
|
|
13
|
+
import { AnyNodeDefinition } from '../../parse/model/NodeDefinition.ts';
|
|
13
14
|
import { Root } from '../Root.ts';
|
|
14
15
|
import { AnyChildNode, AnyNode, AnyParentNode } from '../hierarchy.ts';
|
|
15
16
|
import { NodeID } from '../identity.ts';
|
|
16
17
|
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
17
18
|
import { InstanceConfig } from '../internal-api/InstanceConfig.ts';
|
|
18
19
|
import { SubscribableDependency } from '../internal-api/SubscribableDependency.ts';
|
|
19
|
-
|
|
20
20
|
export interface InstanceNodeStateSpec<Value = never> {
|
|
21
21
|
readonly reference: Accessor<string> | string;
|
|
22
22
|
readonly readonly: Accessor<boolean> | boolean;
|
|
@@ -74,6 +74,7 @@ export declare abstract class InstanceNode<Definition extends AnyNodeDefinition,
|
|
|
74
74
|
abstract readonly nodeType: InstanceNodeType;
|
|
75
75
|
abstract readonly appearances: NodeAppearances<Definition>;
|
|
76
76
|
abstract readonly currentState: InstanceNodeCurrentState<Spec, Child>;
|
|
77
|
+
abstract readonly validationState: NodeValidationState;
|
|
77
78
|
abstract readonly root: Root;
|
|
78
79
|
abstract readonly evaluator: XFormsXPathEvaluator;
|
|
79
80
|
readonly scope: ReactiveScope;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Accessor } from 'solid-js';
|
|
2
|
+
import { UnsupportedControlNodeType } from '../../client/node-types.ts';
|
|
3
|
+
import { TextRange } from '../../client/TextRange.ts';
|
|
4
|
+
import { UnsupportedControlDefinition, UnsupportedControlElementDefinition, UnsupportedControlNode } from '../../client/unsupported/UnsupportedControlNode.ts';
|
|
5
|
+
import { AnyViolation, LeafNodeValidationState } from '../../client/validation.ts';
|
|
6
|
+
import { CurrentState } from '../../lib/reactivity/node-state/createCurrentState.ts';
|
|
7
|
+
import { EngineState } from '../../lib/reactivity/node-state/createEngineState.ts';
|
|
8
|
+
import { SharedNodeState } from '../../lib/reactivity/node-state/createSharedNodeState.ts';
|
|
9
|
+
import { SimpleAtomicState } from '../../lib/reactivity/types.ts';
|
|
10
|
+
import { UnknownAppearanceDefinition } from '../../parse/body/appearance/unknownAppearanceParser.ts';
|
|
11
|
+
import { GeneralParentNode } from '../hierarchy.ts';
|
|
12
|
+
import { EvaluationContext } from '../internal-api/EvaluationContext.ts';
|
|
13
|
+
import { SubscribableDependency } from '../internal-api/SubscribableDependency.ts';
|
|
14
|
+
import { ValidationContext } from '../internal-api/ValidationContext.ts';
|
|
15
|
+
import { ValueContext } from '../internal-api/ValueContext.ts';
|
|
16
|
+
import { DescendantNode, DescendantNodeStateSpec } from './DescendantNode.ts';
|
|
17
|
+
type TypedUnsupportedControlElementDefinition<Type extends UnsupportedControlNodeType> = Extract<UnsupportedControlElementDefinition, {
|
|
18
|
+
readonly type: Type;
|
|
19
|
+
}>;
|
|
20
|
+
interface TypedUnsupportedControlDefinition<Type extends UnsupportedControlNodeType> extends UnsupportedControlDefinition {
|
|
21
|
+
readonly bodyElement: TypedUnsupportedControlElementDefinition<Type>;
|
|
22
|
+
}
|
|
23
|
+
interface UnsupportedControlStateSpec extends DescendantNodeStateSpec<unknown> {
|
|
24
|
+
readonly label: Accessor<TextRange<'label'> | null>;
|
|
25
|
+
readonly hint: Accessor<TextRange<'hint'> | null>;
|
|
26
|
+
readonly children: null;
|
|
27
|
+
readonly value: SimpleAtomicState<unknown>;
|
|
28
|
+
readonly valueOptions: never;
|
|
29
|
+
}
|
|
30
|
+
export declare abstract class UnsupportedControl<Type extends UnsupportedControlNodeType> extends DescendantNode<TypedUnsupportedControlDefinition<Type>, UnsupportedControlStateSpec, null> implements UnsupportedControlNode, EvaluationContext, SubscribableDependency, ValidationContext, ValueContext<unknown> {
|
|
31
|
+
private readonly validation;
|
|
32
|
+
protected readonly state: SharedNodeState<UnsupportedControlStateSpec>;
|
|
33
|
+
protected readonly engineState: EngineState<UnsupportedControlStateSpec>;
|
|
34
|
+
abstract readonly nodeType: Type;
|
|
35
|
+
readonly appearances: UnknownAppearanceDefinition;
|
|
36
|
+
readonly currentState: CurrentState<UnsupportedControlStateSpec>;
|
|
37
|
+
get validationState(): LeafNodeValidationState;
|
|
38
|
+
readonly encodeValue: (instanceValue: unknown) => string;
|
|
39
|
+
readonly decodeValue: (instanceValue: unknown) => unknown;
|
|
40
|
+
constructor(parent: GeneralParentNode, definition: TypedUnsupportedControlDefinition<Type>);
|
|
41
|
+
getViolation(): AnyViolation | null;
|
|
42
|
+
isBlank(): boolean;
|
|
43
|
+
getChildren(): readonly [];
|
|
44
|
+
setValue(_: never): never;
|
|
45
|
+
}
|
|
46
|
+
export {};
|
|
@@ -1,13 +1,22 @@
|
|
|
1
1
|
import { Group } from './Group.ts';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { ModelValue } from './ModelValue.ts';
|
|
3
|
+
import { Note } from './Note.ts';
|
|
4
|
+
import { RepeatInstance } from './repeat/RepeatInstance.ts';
|
|
5
|
+
import { RepeatRangeControlled } from './repeat/RepeatRangeControlled.ts';
|
|
6
|
+
import { RepeatRangeUncontrolled } from './repeat/RepeatRangeUncontrolled.ts';
|
|
4
7
|
import { Root } from './Root.ts';
|
|
5
8
|
import { SelectField } from './SelectField.ts';
|
|
6
9
|
import { StringField } from './StringField.ts';
|
|
7
10
|
import { Subtree } from './Subtree.ts';
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
import { TriggerControl } from './TriggerControl.ts';
|
|
12
|
+
import { RangeControl } from './unsupported/RangeControl.ts';
|
|
13
|
+
import { RankControl } from './unsupported/RankControl.ts';
|
|
14
|
+
import { UploadControl } from './unsupported/UploadControl.ts';
|
|
15
|
+
export type RepeatRange = RepeatRangeControlled | RepeatRangeUncontrolled;
|
|
16
|
+
export type UnsupportedControl = RangeControl | RankControl | UploadControl;
|
|
17
|
+
export type AnyNode = Root | Group | Subtree | RepeatRange | RepeatInstance | Note | ModelValue | StringField | SelectField | TriggerControl | UnsupportedControl;
|
|
10
18
|
export type AnyParentNode = Root | Group | Subtree | RepeatRange | RepeatInstance;
|
|
11
19
|
export type GeneralParentNode = Root | Group | Subtree | RepeatInstance;
|
|
12
|
-
export type AnyChildNode = Group | Subtree | RepeatRange | RepeatInstance | StringField | SelectField;
|
|
13
|
-
export type GeneralChildNode = Group | Subtree | RepeatRange | StringField | SelectField;
|
|
20
|
+
export type AnyChildNode = Group | Subtree | RepeatRange | RepeatInstance | ModelValue | Note | StringField | SelectField | TriggerControl | UnsupportedControl;
|
|
21
|
+
export type GeneralChildNode = Group | Subtree | RepeatRange | ModelValue | Note | StringField | SelectField | TriggerControl | UnsupportedControl;
|
|
22
|
+
export type AnyValueNode = ModelValue | Note | StringField | SelectField | TriggerControl | UnsupportedControl;
|
package/dist/instance/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { RootNode } from '../client/RootNode.ts';
|
|
2
2
|
import { InitializeFormOptions as BaseInitializeFormOptions, FormResource } from '../client/index.ts';
|
|
3
3
|
import { InstanceConfig } from './internal-api/InstanceConfig.ts';
|
|
4
|
-
|
|
5
4
|
interface InitializeFormOptions extends BaseInitializeFormOptions {
|
|
6
5
|
readonly config: Partial<InstanceConfig>;
|
|
7
6
|
}
|
|
@@ -3,7 +3,6 @@ import { Accessor } from 'solid-js';
|
|
|
3
3
|
import { ReactiveScope } from '../../lib/reactivity/scope.ts';
|
|
4
4
|
import { SubscribableDependency } from './SubscribableDependency.ts';
|
|
5
5
|
import { TranslationContext } from './TranslationContext.ts';
|
|
6
|
-
|
|
7
6
|
export interface EvaluationContextRoot extends SubscribableDependency, TranslationContext {
|
|
8
7
|
}
|
|
9
8
|
/**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { EngineConfig } from '../../client/EngineConfig.ts';
|
|
2
2
|
import { CreateUniqueId } from '../../lib/unique-id.ts';
|
|
3
|
-
|
|
4
3
|
export interface InstanceConfig extends Required<EngineConfig> {
|
|
5
4
|
/**
|
|
6
5
|
* Uniqueness per form instance session (so e.g. persistence isn't necessary).
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { AnyViolation } from '../../client/validation.ts';
|
|
2
|
+
import { BindComputationExpression } from '../../parse/expression/BindComputationExpression.ts';
|
|
3
|
+
import { MessageDefinition } from '../../parse/text/MessageDefinition.ts';
|
|
4
|
+
import { NodeID } from '../identity.ts';
|
|
5
|
+
import { EvaluationContext } from './EvaluationContext.ts';
|
|
6
|
+
import { SubscribableDependency } from './SubscribableDependency.ts';
|
|
7
|
+
interface ValidationContextCurrentState {
|
|
8
|
+
get reference(): string;
|
|
9
|
+
}
|
|
10
|
+
interface ValidationContextDefinitionBind {
|
|
11
|
+
readonly constraint: BindComputationExpression<'constraint'>;
|
|
12
|
+
readonly constraintMsg: MessageDefinition<'constraintMsg'> | null;
|
|
13
|
+
readonly required: BindComputationExpression<'required'>;
|
|
14
|
+
readonly requiredMsg: MessageDefinition<'requiredMsg'> | null;
|
|
15
|
+
}
|
|
16
|
+
interface ValidationContextDefinition {
|
|
17
|
+
readonly bind: ValidationContextDefinitionBind;
|
|
18
|
+
}
|
|
19
|
+
export interface ValidationContext extends EvaluationContext, SubscribableDependency {
|
|
20
|
+
readonly nodeId: NodeID;
|
|
21
|
+
readonly definition: ValidationContextDefinition;
|
|
22
|
+
readonly currentState: ValidationContextCurrentState;
|
|
23
|
+
getViolation(): AnyViolation | null;
|
|
24
|
+
isRelevant(): boolean;
|
|
25
|
+
isRequired(): boolean;
|
|
26
|
+
isBlank(): boolean;
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { ReactiveScope } from '../../lib/reactivity/scope.ts';
|
|
2
|
-
import {
|
|
2
|
+
import { BindComputationExpression } from '../../parse/expression/BindComputationExpression.ts';
|
|
3
3
|
import { EvaluationContext } from './EvaluationContext.ts';
|
|
4
|
-
|
|
5
4
|
export type InstanceValue = string;
|
|
6
5
|
interface ValueContextDefinitionBind {
|
|
7
|
-
readonly calculate:
|
|
8
|
-
readonly readonly:
|
|
6
|
+
readonly calculate: BindComputationExpression<'calculate'> | null;
|
|
7
|
+
readonly readonly: BindComputationExpression<'readonly'>;
|
|
9
8
|
}
|
|
10
9
|
export interface ValueContextDefinition {
|
|
11
10
|
readonly bind: ValueContextDefinitionBind;
|