- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
DocsAPI referenceHeadlessquestionnaire
questionnaire headless API
The core connector and vanilla mount are always visible. Use the framework choice to inspect native composition, props, outputs, context and hooks for the selected adapter.
@grassroot/ui-headless-core/questionnaire
Core connector and vanilla API
cloneQuestionnaireAnswers
functiondeclare function cloneQuestionnaireAnswers(answers: readonly QuestionnaireAnswer[]): readonly QuestionnaireAnswer[];answersreadonly QuestionnaireAnswer[]returnreadonly QuestionnaireAnswer[]- Name
return- Kind
- return value
- Type
readonly QuestionnaireAnswer[]- Requirement
- n/a
connectQuestionnaire
functiondeclare function connectQuestionnaire(service: QuestionnaireService, scope: PartScope, options?: QuestionnaireConnectOptions): QuestionnaireApi;serviceQuestionnaireServicescopePartScopeoptionsQuestionnaireConnectOptionsreturnQuestionnaireApi- Name
service- Kind
- parameter
- Type
QuestionnaireService- Requirement
- required
- Name
scope- Kind
- parameter
- Type
PartScope- Requirement
- required
- Name
options- Kind
- parameter
- Type
QuestionnaireConnectOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
QuestionnaireApi- Requirement
- n/a
mountQuestionnaire
functiondeclare function mountQuestionnaire(container: HTMLElement, options: MountQuestionnaireOptions): QuestionnaireMount;containerHTMLElementoptionsMountQuestionnaireOptionsreturnQuestionnaireMount- Name
container- Kind
- parameter
- Type
HTMLElement- Requirement
- required
- Name
options- Kind
- parameter
- Type
MountQuestionnaireOptions- Requirement
- required
- Name
return- Kind
- return value
- Type
QuestionnaireMount- Requirement
- n/a
MountQuestionnaireOptions
interfaceinterface MountQuestionnaireOptions extends QuestionnaireInput, QuestionnaireConnectOptions {}questionnaireAnatomy
valueexport declare const questionnaireAnatomy: { readonly scope: "questionnaire"; readonly parts: readonly ["root", "item", "choice", "previous", "next", "skip", "submit"];};partsreadonly ["root", "item", "choice", "previous", "next", "skip", "submit"]scope"questionnaire"- Name
parts- Kind
- property
- Type
readonly ["root", "item", "choice", "previous", "next", "skip", "submit"]- Requirement
- required
- Name
scope- Kind
- property
- Type
"questionnaire"- Requirement
- required
QuestionnaireApi
interfaceinterface QuestionnaireApi { rootProps(): PartProps; itemProps(item: QuestionnaireItem): PartProps; choiceProps(item: QuestionnaireItem, value: string): PartProps; previousProps(): PartProps; nextProps(): PartProps; skipProps(): PartProps; submitProps(): PartProps; readonly item: string | undefined; readonly answers: QuestionnaireContext["answers"]; destroy(): void;}answersQuestionnaireContext["answers"]choiceProps(item: QuestionnaireItem, value: string) => PartPropsdestroy() => voiditemstring | undefineditemProps(item: QuestionnaireItem) => PartPropsnextProps() => PartPropspreviousProps() => PartPropsrootProps() => PartPropsskipProps() => PartPropssubmitProps() => PartProps- Name
answers- Kind
- property
- Type
QuestionnaireContext["answers"]- Requirement
- required
- Name
choiceProps- Kind
- method
- Type
(item: QuestionnaireItem, value: string) => PartProps- Requirement
- required
- Name
destroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
item- Kind
- property
- Type
string | undefined- Requirement
- required
- Name
itemProps- Kind
- method
- Type
(item: QuestionnaireItem) => PartProps- Requirement
- required
- Name
nextProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
previousProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
rootProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
skipProps- Kind
- method
- Type
() => PartProps- Requirement
- required
- Name
submitProps- Kind
- method
- Type
() => PartProps- Requirement
- required
questionnaireChoicePartition
functiondeclare function questionnaireChoicePartition(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): { readonly selected: readonly string[]; readonly freeform: readonly string[];};itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]return{
readonly selected: readonly string[];
readonly freeform: readonly string[];
}- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
{ readonly selected: readonly string[]; readonly freeform: readonly string[]; }- Requirement
- n/a
QuestionnaireConnectOptions
interfaceinterface QuestionnaireConnectOptions { readonly onItemChange?: (item: string) => void; readonly onAnswersChange?: (answers: QuestionnaireContext["answers"]) => void; readonly onSubmit?: (answers: QuestionnaireContext["answers"]) => void;}onAnswersChange(answers: QuestionnaireContext["answers"]) => voidonItemChange(item: string) => voidonSubmit(answers: QuestionnaireContext["answers"]) => void- Name
onAnswersChange- Kind
- property
- Type
(answers: QuestionnaireContext["answers"]) => void- Requirement
- optional
- Name
onItemChange- Kind
- property
- Type
(item: string) => void- Requirement
- optional
- Name
onSubmit- Kind
- property
- Type
(answers: QuestionnaireContext["answers"]) => void- Requirement
- optional
questionnaireInputValue
functiondeclare function questionnaireInputValue(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): string;itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]returnstring- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
string- Requirement
- n/a
QuestionnaireKeyboardInput
interfaceinterface QuestionnaireKeyboardInput { readonly key: string; readonly altKey?: boolean; readonly ctrlKey?: boolean; readonly metaKey?: boolean; readonly target?: QuestionnaireKeyboardTarget;}altKeybooleanctrlKeybooleankeystringmetaKeybooleantargetQuestionnaireKeyboardTarget- Name
altKey- Kind
- property
- Type
boolean- Requirement
- optional
- Name
ctrlKey- Kind
- property
- Type
boolean- Requirement
- optional
- Name
key- Kind
- property
- Type
string- Requirement
- required
- Name
metaKey- Kind
- property
- Type
boolean- Requirement
- optional
- Name
target- Kind
- property
- Type
QuestionnaireKeyboardTarget- Requirement
- optional
questionnaireKeyboardTarget
functiondeclare function questionnaireKeyboardTarget(target: unknown): QuestionnaireKeyboardTarget;targetunknownreturnQuestionnaireKeyboardTarget- Name
target- Kind
- parameter
- Type
unknown- Requirement
- required
- Name
return- Kind
- return value
- Type
QuestionnaireKeyboardTarget- Requirement
- n/a
type QuestionnaireKeyboardTarget = "text" | "button" | "other";questionnaireKeyEffect
functiondeclare function questionnaireKeyEffect(input: QuestionnaireKeyboardInput, item: QuestionnaireItem, shortcuts: QuestionnaireShortcutMode | undefined, answers?: readonly QuestionnaireAnswer[]): QuestionnaireKeyEffect;inputQuestionnaireKeyboardInputitemQuestionnaireItemshortcutsQuestionnaireShortcutMode | undefinedanswersreadonly QuestionnaireAnswer[]returnQuestionnaireKeyEffect- Name
input- Kind
- parameter
- Type
QuestionnaireKeyboardInput- Requirement
- required
- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
shortcuts- Kind
- parameter
- Type
QuestionnaireShortcutMode | undefined- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
return- Kind
- return value
- Type
QuestionnaireKeyEffect- Requirement
- n/a
type QuestionnaireKeyEffect = { readonly type: "choice"; readonly value: string; readonly focusChoiceIndex: number; readonly preventDefault: true;} | { readonly type: "continue"; readonly preventDefault: true;} | { readonly type: "previous"; readonly preventDefault: true;} | { readonly type: "next"; readonly preventDefault: true;} | null;QuestionnaireMount
interfaceinterface QuestionnaireMount { readonly service: QuestionnaireService; readonly connector: QuestionnaireApi; readonly root: HTMLElement; destroy(): void;}connectorQuestionnaireApidestroy() => voidrootHTMLElementserviceQuestionnaireService- Name
connector- Kind
- property
- Type
QuestionnaireApi- Requirement
- required
- Name
destroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
root- Kind
- property
- Type
HTMLElement- Requirement
- required
- Name
service- Kind
- property
- Type
QuestionnaireService- Requirement
- required
QuestionnairePart
typetype QuestionnairePart = (typeof questionnaireAnatomy.parts)[number];QuestionnaireService
typetype QuestionnaireService = Service<QuestionnaireInput, "ready", QuestionnaireContext, QuestionnaireEvent, QuestionnaireCommand>;runQuestionnaireCommand
functiondeclare function runQuestionnaireCommand(command: QuestionnaireCommand, options?: QuestionnaireConnectOptions): void;commandQuestionnaireCommandoptionsQuestionnaireConnectOptionsreturnvoid- Name
command- Kind
- parameter
- Type
QuestionnaireCommand- Requirement
- required
- Name
options- Kind
- parameter
- Type
QuestionnaireConnectOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
void- Requirement
- n/a
Framework adapters
Each panel keeps its adapter's public vocabulary. React compound exports, Vue composables, standalone Angular declarations, Svelte components, and Solid hooks stay native to their framework.
React imports
import { Root } from "@grassroot/ui-headless-react/questionnaire";Vue imports
<script setup lang="ts">import { Root } from "@grassroot/ui-headless-vue/questionnaire";</script>Angular imports
import { GrQuestionnaireRoot } from "@grassroot/ui-headless-angular/questionnaire";Svelte imports
<script lang="ts"> import { Root } from "@grassroot/ui-headless-svelte/questionnaire";</script>Solid imports
import { Root } from "@grassroot/ui-headless-solid/questionnaire";@grassroot/ui-headless-react/questionnaire
React adapter
cloneQuestionnaireAnswers
functiondeclare function cloneQuestionnaireAnswers(answers: readonly QuestionnaireAnswer[]): readonly QuestionnaireAnswer[];answersreadonly QuestionnaireAnswer[]returnreadonly QuestionnaireAnswer[]- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
readonly QuestionnaireAnswer[]- Requirement
- n/a
questionnaireChoicePartition
functiondeclare function questionnaireChoicePartition(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): { readonly selected: readonly string[]; readonly freeform: readonly string[];};itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]return{
readonly selected: readonly string[];
readonly freeform: readonly string[];
}- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
{ readonly selected: readonly string[]; readonly freeform: readonly string[]; }- Requirement
- n/a
questionnaireInputValue
functiondeclare function questionnaireInputValue(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): string;itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]returnstring- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
string- Requirement
- n/a
questionnaireKeyboardTarget
functiondeclare function questionnaireKeyboardTarget(target: unknown): QuestionnaireKeyboardTarget;targetunknownreturnQuestionnaireKeyboardTarget- Name
target- Kind
- parameter
- Type
unknown- Requirement
- required
- Name
return- Kind
- return value
- Type
QuestionnaireKeyboardTarget- Requirement
- n/a
type QuestionnaireKeyboardTarget = "text" | "button" | "other";questionnaireKeyEffect
functiondeclare function questionnaireKeyEffect(input: QuestionnaireKeyboardInput, item: QuestionnaireItem, shortcuts: QuestionnaireShortcutMode | undefined, answers?: readonly QuestionnaireAnswer[]): QuestionnaireKeyEffect;inputQuestionnaireKeyboardInputitemQuestionnaireItemshortcutsQuestionnaireShortcutMode | undefinedanswersreadonly QuestionnaireAnswer[]returnQuestionnaireKeyEffect- Name
input- Kind
- parameter
- Type
QuestionnaireKeyboardInput- Requirement
- required
- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
shortcuts- Kind
- parameter
- Type
QuestionnaireShortcutMode | undefined- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
return- Kind
- return value
- Type
QuestionnaireKeyEffect- Requirement
- n/a
type QuestionnaireKeyEffect = { readonly type: "choice"; readonly value: string; readonly focusChoiceIndex: number; readonly preventDefault: true;} | { readonly type: "continue"; readonly preventDefault: true;} | { readonly type: "previous"; readonly preventDefault: true;} | { readonly type: "next"; readonly preventDefault: true;} | null;QuestionnaireRootProps
interfaceinterface QuestionnaireRootProps extends Omit<FormHTMLAttributes<HTMLFormElement>, "onSubmit">, QuestionnaireInput { readonly onItemChange?: (item: string) => void; readonly onAnswersChange?: (answers: QuestionnaireInput["answers"]) => void; readonly onSubmitRequest?: (answers: QuestionnaireInput["answers"]) => void; readonly children?: ReactNode;}childrenReactNodeonAnswersChange(answers: QuestionnaireInput["answers"]) => voidonItemChange(item: string) => voidonSubmitRequest(answers: QuestionnaireInput["answers"]) => void- Name
children- Kind
- property
- Type
ReactNode- Requirement
- optional
- Name
onAnswersChange- Kind
- property
- Type
(answers: QuestionnaireInput["answers"]) => void- Requirement
- optional
- Name
onItemChange- Kind
- property
- Type
(item: string) => void- Requirement
- optional
- Name
onSubmitRequest- Kind
- property
- Type
(answers: QuestionnaireInput["answers"]) => void- Requirement
- optional
Root
valueexport declare const Root: import("react").ForwardRefExoticComponent<QuestionnaireRootProps & import("react").RefAttributes<HTMLFormElement>>;propsPreturnReactNode- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
useQuestionnaire
functiondeclare function useQuestionnaire(input: QuestionnaireInput, options?: QuestionnaireOptions): { service: QuestionnaireService; connector: QuestionnaireApi; snapshot: QuestionnaireSnapshot;};inputQuestionnaireInputoptionsQuestionnaireOptionsreturn{
service: QuestionnaireService;
connector: QuestionnaireApi;
snapshot: QuestionnaireSnapshot;
}- Name
input- Kind
- parameter
- Type
QuestionnaireInput- Requirement
- required
- Name
options- Kind
- parameter
- Type
QuestionnaireOptions- Requirement
- optional
- Name
return- Kind
- return value
- Type
{ service: QuestionnaireService; connector: QuestionnaireApi; snapshot: QuestionnaireSnapshot; }- Requirement
- n/a
@grassroot/ui-headless-vue/questionnaire
Vue adapter
cloneQuestionnaireAnswers
functiondeclare function cloneQuestionnaireAnswers(answers: readonly QuestionnaireAnswer[]): readonly QuestionnaireAnswer[];answersreadonly QuestionnaireAnswer[]returnreadonly QuestionnaireAnswer[]- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
readonly QuestionnaireAnswer[]- Requirement
- n/a
questionnaireChoicePartition
functiondeclare function questionnaireChoicePartition(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): { readonly selected: readonly string[]; readonly freeform: readonly string[];};itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]return{
readonly selected: readonly string[];
readonly freeform: readonly string[];
}- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
{ readonly selected: readonly string[]; readonly freeform: readonly string[]; }- Requirement
- n/a
questionnaireInputValue
functiondeclare function questionnaireInputValue(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): string;itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]returnstring- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
string- Requirement
- n/a
questionnaireKeyboardTarget
functiondeclare function questionnaireKeyboardTarget(target: unknown): QuestionnaireKeyboardTarget;targetunknownreturnQuestionnaireKeyboardTarget- Name
target- Kind
- parameter
- Type
unknown- Requirement
- required
- Name
return- Kind
- return value
- Type
QuestionnaireKeyboardTarget- Requirement
- n/a
type QuestionnaireKeyboardTarget = "text" | "button" | "other";questionnaireKeyEffect
functiondeclare function questionnaireKeyEffect(input: QuestionnaireKeyboardInput, item: QuestionnaireItem, shortcuts: QuestionnaireShortcutMode | undefined, answers?: readonly QuestionnaireAnswer[]): QuestionnaireKeyEffect;inputQuestionnaireKeyboardInputitemQuestionnaireItemshortcutsQuestionnaireShortcutMode | undefinedanswersreadonly QuestionnaireAnswer[]returnQuestionnaireKeyEffect- Name
input- Kind
- parameter
- Type
QuestionnaireKeyboardInput- Requirement
- required
- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
shortcuts- Kind
- parameter
- Type
QuestionnaireShortcutMode | undefined- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
return- Kind
- return value
- Type
QuestionnaireKeyEffect- Requirement
- n/a
type QuestionnaireKeyEffect = { readonly type: "choice"; readonly value: string; readonly focusChoiceIndex: number; readonly preventDefault: true;} | { readonly type: "continue"; readonly preventDefault: true;} | { readonly type: "previous"; readonly preventDefault: true;} | { readonly type: "next"; readonly preventDefault: true;} | null;Root
valueexport declare const Root: import("vue").DefineComponent<import("vue").ExtractPropTypes<{ items: { type: PropType<QuestionnaireInput["items"]>; required: true; }; item: StringConstructor; defaultItem: StringConstructor; answers: PropType<QuestionnaireInput["answers"]>; defaultAnswers: PropType<QuestionnaireInput["defaultAnswers"]>; shortcuts: PropType<QuestionnaireInput["shortcuts"]>;}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any;}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, { itemChange: (_value: string) => true; answersChange: (_value: unknown) => true; submitRequest: (_value: unknown) => true;}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{ items: { type: PropType<QuestionnaireInput["items"]>; required: true; }; item: StringConstructor; defaultItem: StringConstructor; answers: PropType<QuestionnaireInput["answers"]>; defaultAnswers: PropType<QuestionnaireInput["defaultAnswers"]>; shortcuts: PropType<QuestionnaireInput["shortcuts"]>;}>> & Readonly<{ onAnswersChange?: ((_value: unknown) => any) | undefined; onItemChange?: ((_value: string) => any) | undefined; onSubmitRequest?: ((_value: unknown) => any) | undefined;}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;@grassroot/ui-headless-angular/questionnaire
Angular adapter
cloneQuestionnaireAnswers
functiondeclare function cloneQuestionnaireAnswers(answers: readonly QuestionnaireAnswer[]): readonly QuestionnaireAnswer[];answersreadonly QuestionnaireAnswer[]returnreadonly QuestionnaireAnswer[]- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
readonly QuestionnaireAnswer[]- Requirement
- n/a
GrQuestionnaireRoot
classexport declare class GrQuestionnaireRoot implements OnDestroy { readonly items: import("@angular/core").InputSignal<readonly QuestionnaireItem[]>; readonly item: import("@angular/core").InputSignal<string | undefined>; readonly defaultItem: import("@angular/core").InputSignal<string | undefined>; readonly answers: import("@angular/core").InputSignal<readonly QuestionnaireAnswer[] | undefined>; readonly defaultAnswers: import("@angular/core").InputSignal<readonly QuestionnaireAnswer[] | undefined>; readonly itemChange: import("@angular/core").OutputEmitterRef<string>; readonly answersChange: import("@angular/core").OutputEmitterRef<readonly QuestionnaireAnswer[]>; readonly submitRequest: import("@angular/core").OutputEmitterRef<readonly QuestionnaireAnswer[]>; private readonly host; private readonly parts; private last; private readonly store; constructor(); private apply; private render; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<GrQuestionnaireRoot, never>; static ɵcmp: i0.ɵɵComponentDeclaration<GrQuestionnaireRoot, "gr-questionnaire-root", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "defaultItem": { "alias": "defaultItem"; "required": false; "isSignal": true; }; "answers": { "alias": "answers"; "required": false; "isSignal": true; }; "defaultAnswers": { "alias": "defaultAnswers"; "required": false; "isSignal": true; }; }, { "itemChange": "itemChange"; "answersChange": "answersChange"; "submitRequest": "submitRequest"; }, never, never, true, never>;}answersimport("@angular/core").InputSignal<readonly QuestionnaireAnswer[] | undefined>answersChangeimport("@angular/core").OutputEmitterRef<readonly QuestionnaireAnswer[]>applyanydefaultAnswersimport("@angular/core").InputSignal<readonly QuestionnaireAnswer[] | undefined>defaultItemimport("@angular/core").InputSignal<string | undefined>hostanyitemimport("@angular/core").InputSignal<string | undefined>itemChangeimport("@angular/core").OutputEmitterRef<string>itemsimport("@angular/core").InputSignal<readonly QuestionnaireItem[]>lastanyngOnDestroy() => voidɵcmpi0.ɵɵComponentDeclaration<GrQuestionnaireRoot, "gr-questionnaire-root", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "defaultItem": { "alias": "defaultItem"; "required": false; "isSignal": true; }; "answers": { "alias": "answers"; "required": false; "isSignal": true; }; "defaultAnswers": { "alias": "defaultAnswers"; "required": false; "isSignal": true; }; }, { "itemChange": "itemChange"; "answersChange": "answersChange"; "submitRequest": "submitRequest"; }, never, never, true, never>ɵfaci0.ɵɵFactoryDeclaration<GrQuestionnaireRoot, never>partsany- Name
answers- Kind
- property
- Type
import("@angular/core").InputSignal<readonly QuestionnaireAnswer[] | undefined>- Requirement
- required
- Name
answersChange- Kind
- property
- Type
import("@angular/core").OutputEmitterRef<readonly QuestionnaireAnswer[]>- Requirement
- required
- Name
apply- Kind
- property
- Type
any- Requirement
- required
- Name
defaultAnswers- Kind
- property
- Type
import("@angular/core").InputSignal<readonly QuestionnaireAnswer[] | undefined>- Requirement
- required
- Name
defaultItem- Kind
- property
- Type
import("@angular/core").InputSignal<string | undefined>- Requirement
- required
- Name
host- Kind
- property
- Type
any- Requirement
- required
- Name
item- Kind
- property
- Type
import("@angular/core").InputSignal<string | undefined>- Requirement
- required
- Name
itemChange- Kind
- property
- Type
import("@angular/core").OutputEmitterRef<string>- Requirement
- required
- Name
items- Kind
- property
- Type
import("@angular/core").InputSignal<readonly QuestionnaireItem[]>- Requirement
- required
- Name
last- Kind
- property
- Type
any- Requirement
- required
- Name
ngOnDestroy- Kind
- method
- Type
() => void- Requirement
- required
- Name
ɵcmp- Kind
- property
- Type
i0.ɵɵComponentDeclaration<GrQuestionnaireRoot, "gr-questionnaire-root", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "item": { "alias": "item"; "required": false; "isSignal": true; }; "defaultItem": { "alias": "defaultItem"; "required": false; "isSignal": true; }; "answers": { "alias": "answers"; "required": false; "isSignal": true; }; "defaultAnswers": { "alias": "defaultAnswers"; "required": false; "isSignal": true; }; }, { "itemChange": "itemChange"; "answersChange": "answersChange"; "submitRequest": "submitRequest"; }, never, never, true, never>- Requirement
- required
- Name
ɵfac- Kind
- property
- Type
i0.ɵɵFactoryDeclaration<GrQuestionnaireRoot, never>- Requirement
- required
- Name
parts- Kind
- property
- Type
any- Requirement
- required
- Name
render- Kind
- property
- Type
any- Requirement
- required
- Name
store- Kind
- property
- Type
any- Requirement
- required
- Name
submitRequest- Kind
- property
- Type
import("@angular/core").OutputEmitterRef<readonly QuestionnaireAnswer[]>- Requirement
- required
questionnaireChoicePartition
functiondeclare function questionnaireChoicePartition(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): { readonly selected: readonly string[]; readonly freeform: readonly string[];};itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]return{
readonly selected: readonly string[];
readonly freeform: readonly string[];
}- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
{ readonly selected: readonly string[]; readonly freeform: readonly string[]; }- Requirement
- n/a
questionnaireInputValue
functiondeclare function questionnaireInputValue(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): string;itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]returnstring- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
string- Requirement
- n/a
questionnaireKeyboardTarget
functiondeclare function questionnaireKeyboardTarget(target: unknown): QuestionnaireKeyboardTarget;targetunknownreturnQuestionnaireKeyboardTarget- Name
target- Kind
- parameter
- Type
unknown- Requirement
- required
- Name
return- Kind
- return value
- Type
QuestionnaireKeyboardTarget- Requirement
- n/a
type QuestionnaireKeyboardTarget = "text" | "button" | "other";questionnaireKeyEffect
functiondeclare function questionnaireKeyEffect(input: QuestionnaireKeyboardInput, item: QuestionnaireItem, shortcuts: QuestionnaireShortcutMode | undefined, answers?: readonly QuestionnaireAnswer[]): QuestionnaireKeyEffect;inputQuestionnaireKeyboardInputitemQuestionnaireItemshortcutsQuestionnaireShortcutMode | undefinedanswersreadonly QuestionnaireAnswer[]returnQuestionnaireKeyEffect- Name
input- Kind
- parameter
- Type
QuestionnaireKeyboardInput- Requirement
- required
- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
shortcuts- Kind
- parameter
- Type
QuestionnaireShortcutMode | undefined- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
return- Kind
- return value
- Type
QuestionnaireKeyEffect- Requirement
- n/a
type QuestionnaireKeyEffect = { readonly type: "choice"; readonly value: string; readonly focusChoiceIndex: number; readonly preventDefault: true;} | { readonly type: "continue"; readonly preventDefault: true;} | { readonly type: "previous"; readonly preventDefault: true;} | { readonly type: "next"; readonly preventDefault: true;} | null;@grassroot/ui-headless-svelte/questionnaire
Svelte adapter
cloneQuestionnaireAnswers
functiondeclare function cloneQuestionnaireAnswers(answers: readonly QuestionnaireAnswer[]): readonly QuestionnaireAnswer[];answersreadonly QuestionnaireAnswer[]returnreadonly QuestionnaireAnswer[]- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
readonly QuestionnaireAnswer[]- Requirement
- n/a
questionnaireChoicePartition
functiondeclare function questionnaireChoicePartition(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): { readonly selected: readonly string[]; readonly freeform: readonly string[];};itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]return{
readonly selected: readonly string[];
readonly freeform: readonly string[];
}- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
{ readonly selected: readonly string[]; readonly freeform: readonly string[]; }- Requirement
- n/a
questionnaireInputValue
functiondeclare function questionnaireInputValue(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): string;itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]returnstring- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
string- Requirement
- n/a
questionnaireKeyboardTarget
functiondeclare function questionnaireKeyboardTarget(target: unknown): QuestionnaireKeyboardTarget;targetunknownreturnQuestionnaireKeyboardTarget- Name
target- Kind
- parameter
- Type
unknown- Requirement
- required
- Name
return- Kind
- return value
- Type
QuestionnaireKeyboardTarget- Requirement
- n/a
type QuestionnaireKeyboardTarget = "text" | "button" | "other";questionnaireKeyEffect
functiondeclare function questionnaireKeyEffect(input: QuestionnaireKeyboardInput, item: QuestionnaireItem, shortcuts: QuestionnaireShortcutMode | undefined, answers?: readonly QuestionnaireAnswer[]): QuestionnaireKeyEffect;inputQuestionnaireKeyboardInputitemQuestionnaireItemshortcutsQuestionnaireShortcutMode | undefinedanswersreadonly QuestionnaireAnswer[]returnQuestionnaireKeyEffect- Name
input- Kind
- parameter
- Type
QuestionnaireKeyboardInput- Requirement
- required
- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
shortcuts- Kind
- parameter
- Type
QuestionnaireShortcutMode | undefined- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
return- Kind
- return value
- Type
QuestionnaireKeyEffect- Requirement
- n/a
type QuestionnaireKeyEffect = { readonly type: "choice"; readonly value: string; readonly focusChoiceIndex: number; readonly preventDefault: true;} | { readonly type: "continue"; readonly preventDefault: true;} | { readonly type: "previous"; readonly preventDefault: true;} | { readonly type: "next"; readonly preventDefault: true;} | null;Root
valueexport declare const Root: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- Name
args- Kind
- parameter
- Type
Parameters<Component<Record<string, any>>>- Requirement
- optional
- Name
return- Kind
- return value
- Type
ReturnType<Component<Record<string, any>, Record<string, any>>>- Requirement
- n/a
@grassroot/ui-headless-solid/questionnaire
Solid adapter
cloneQuestionnaireAnswers
functiondeclare function cloneQuestionnaireAnswers(answers: readonly QuestionnaireAnswer[]): readonly QuestionnaireAnswer[];answersreadonly QuestionnaireAnswer[]returnreadonly QuestionnaireAnswer[]- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
readonly QuestionnaireAnswer[]- Requirement
- n/a
questionnaireChoicePartition
functiondeclare function questionnaireChoicePartition(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): { readonly selected: readonly string[]; readonly freeform: readonly string[];};itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]return{
readonly selected: readonly string[];
readonly freeform: readonly string[];
}- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
{ readonly selected: readonly string[]; readonly freeform: readonly string[]; }- Requirement
- n/a
questionnaireInputValue
functiondeclare function questionnaireInputValue(item: QuestionnaireItem, answers: readonly QuestionnaireAnswer[]): string;itemQuestionnaireItemanswersreadonly QuestionnaireAnswer[]returnstring- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- required
- Name
return- Kind
- return value
- Type
string- Requirement
- n/a
questionnaireKeyboardTarget
functiondeclare function questionnaireKeyboardTarget(target: unknown): QuestionnaireKeyboardTarget;targetunknownreturnQuestionnaireKeyboardTarget- Name
target- Kind
- parameter
- Type
unknown- Requirement
- required
- Name
return- Kind
- return value
- Type
QuestionnaireKeyboardTarget- Requirement
- n/a
type QuestionnaireKeyboardTarget = "text" | "button" | "other";questionnaireKeyEffect
functiondeclare function questionnaireKeyEffect(input: QuestionnaireKeyboardInput, item: QuestionnaireItem, shortcuts: QuestionnaireShortcutMode | undefined, answers?: readonly QuestionnaireAnswer[]): QuestionnaireKeyEffect;inputQuestionnaireKeyboardInputitemQuestionnaireItemshortcutsQuestionnaireShortcutMode | undefinedanswersreadonly QuestionnaireAnswer[]returnQuestionnaireKeyEffect- Name
input- Kind
- parameter
- Type
QuestionnaireKeyboardInput- Requirement
- required
- Name
item- Kind
- parameter
- Type
QuestionnaireItem- Requirement
- required
- Name
shortcuts- Kind
- parameter
- Type
QuestionnaireShortcutMode | undefined- Requirement
- required
- Name
answers- Kind
- parameter
- Type
readonly QuestionnaireAnswer[]- Requirement
- optional
- Name
return- Kind
- return value
- Type
QuestionnaireKeyEffect- Requirement
- n/a
type QuestionnaireKeyEffect = { readonly type: "choice"; readonly value: string; readonly focusChoiceIndex: number; readonly preventDefault: true;} | { readonly type: "continue"; readonly preventDefault: true;} | { readonly type: "previous"; readonly preventDefault: true;} | { readonly type: "next"; readonly preventDefault: true;} | null;Root
functionexport declare function Root(props: QuestionnaireInput & { onItemChange?: (value: string) => void; onAnswersChange?: (value: QuestionnaireInput["answers"]) => void; onSubmitRequest?: (value: QuestionnaireInput["answers"]) => void; children?: JSX.Element;}): JSX.Element;propsQuestionnaireInput & {
onItemChange?: (value: string) => void;
onAnswersChange?: (value: QuestionnaireInput["answers"]) => void;
onSubmitRequest?: (value: QuestionnaireInput["answers"]) => void;
children?: JSX.Element;
}returnJSX.Element- Name
props- Kind
- parameter
- Type
QuestionnaireInput & { onItemChange?: (value: string) => void; onAnswersChange?: (value: QuestionnaireInput["answers"]) => void; onSubmitRequest?: (value: QuestionnaireInput["answers"]) => void; children?: JSX.Element; }- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a