Properties
additionalActions
{ … } | null
Optional actions to execute when an event is triggered.
| Property | Description |
|---|---|
| onCalculate | Action to be performed to recalculate the value of a field. The name of this event in the PDF spec is |
| onChange | Execute an action when the value of the field changes. The name of this event in the PDF spec is |
| onBlur | Execute an action when the widget loses focus. The name of this event in the PDF spec is |
| onChange | Action to be performed when the user changes the value of the field. The name of this event in the PDF spec is |
| onFocus | Execute an action when the widget is focused. The name of this event in the PDF spec is |
| onFormat | Action to be performed before the field is formatted to display its current value. The name of this event in the PDF spec is |
| onInput | Action to be performed when the user types a key-stroke into a text field or combo box or modifies the selection in a scrollable list box. The name of this event in the PDF spec is |
| onPointerDown | Action to be performed when the pointer is pressed. |
| onPointerEnter | Action to be performed when the pointer enters the field area. |
| onPointerLeave | Action to be performed when the pointer hovers the field. |
| onPointerUp | Action to be performed when the pointer is released. |
Default Value
nullannotationIds
Holds an immutable list of NutrientViewer.Annotations.WidgetAnnotation#ids.
canSetGroup
This property defines whether the user has permission to edit the group of this form field. The value of this field depends on the set of collaboration permissions defined in the JWT token.
It is only available when collaboration permissions is enabled on Server-Backed deployments.
defaultValue
Similar to the value property. The default values are only used when a form needs to be reset.
group
This property is used to define the permission scope for this form-field, it's corresponding widget-annotations and form field values. If you change the group of a form field, the corresponding widget annotations and form field values will inherit it.
It is only available when collaboration permissions is enabled on Server-Backed deployments.
id
A unique identifier to describe the form field record. When a form field is created in the UI, the viewer has to generate a unique ID.
When changes are saved to the underlying form field provider, we call NutrientViewer.Instance#ensureChangesSaved to make sure the form field has been persisted from the provider.
isDeletable
This property defines whether this form field can be deleted or not. The value of this field depends on the set of collaboration permissions defined in the JWT token.
It is only available when collaboration permissions is enabled on Server-Backed deployments.
isEditable
This property defines whether this form-field can be edited or not. The value of this field depends on the set of collaboration permissions defined in the JWT token.
It is only available when collaboration permissions is enabled on Server-Backed deployments.
isFillable
This property defines whether this form-field can be filled or not. The value of this field depends on the set of collaboration permissions defined in the JWT token.
It is only available when collaboration permissions is enabled on Server-Backed deployments.
name
Unique name of the form field (often referred to as fully qualified name). This name is used to link NutrientViewer.Annotations.WidgetAnnotation and is also used as an identifier for form field values.
noExport
Form fields with the noExport flag won't appear in the serialized payload of a form
submission.
Default Value
falsenoToggleToOff
If true, exactly one radio button must be selected at all times. Clicking the currently selected button has no effect. Otherwise, clicking the selected button deselects it, leaving no button selected.
Default Value
falseoptionIndexes
Radio buttons and checkboxes can have multiple widgets with the same form value associated, but can be
selected independently. optionIndexes contains the value indexes that should be actually set.
If set, the value field doesn't get used, and the widget found at the corresponding indexes in the form field's
annotationIds property are checked.
If set on fields other than radio buttons or checkboxes, setting the form value will fail.
options
A list of NutrientViewer.FormOptions. This is necessary to map the multiple radio button options to their values.
See NutrientViewer.FormOption for more information.
radiosInUnison
If true, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unions: If one is checked, they are all checked (the same behavior as HTML radio buttons). Otherwise, only the checked radio button will be marked checked.
Default Value
truereadOnly
Read only form fields can not be filled out (similar to disabled HTML input elements).
Default Value
falserequired
Required form fields must be filled out in order to submit the form.
NutrientViewer.FormFields.TextFormField, NutrientViewer.FormFields.ComboBoxFormField and
NutrientViewer.FormFields.ListBoxFormField with this flag set will be rendered with
the PSPDFKit-Annotation-Widget-Required public CSS class and the HTML required attribute set.
Default Value
falsevalue
The selected form option value, or null when no option is selected. In order to modify it, instance.setFormFieldValues() should be used.
Methods
Returns the record's
[key, value]pairs, in the order its fields were defined.Returns
IterableIterator<[string, unknown]>An iterator over the record's fields.
Immutable Record API
27
Iterates the form field's
[key, value]pairs, in the order its fields were defined.Returns
IterableIterator<[string, any]>
Returns a record with every key reset to the default it was defined with.
Returns
thisA new record holding only default values.
delete<K extends keyof { … }>(
key: K & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
),
): thisReturns a record with
keyreset to the default it was defined with.Type Parameters
Kextends keyof { … }
Parameters
keyK & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
)One of the keys this record was defined with.
Returns
thisA new record, or this one when the value already equals the default.
Returns a record with the value at
keyPathremoved. A field of this record is reset to its default; a key of a nested collection or plain object is deleted.Parameters
keyPathIterable<unknown>The keys to follow, outermost first.
Returns
thisA new record, or this one when nothing was removed.
equals
Reports whether
otheris a record holding the same keys with equal values, whatever its class.Parameters
otherunknownThe value to compare against.
Returns
booleantruewhen both hold the same keys and every value matches.Deprecated
Records of different classes with identical values compare equal. Use
isEqual(), which also requires both records to be of the same class.
get<K extends keyof { … }, N = never>(
key: K & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
),
notSetValue?: N,
): N | { … }[K]Returns the value stored under
key.Type Parameters
Kextends keyof { … }
N = neverParameters
keyK & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
)One of the keys this record was defined with.
Returned when the record does not define
key.
Returns the value at
keyPath, walking nested records and collections.A literal key path is checked against the record's fields and gives the value's type; a computed one gives
unknown.Parameters
keyPathIterable<unknown>The keys to follow, outermost first.
Returns
unknownThe value at that path, or
undefinedwhen it does not resolve.Returns the value at
keyPath, walking nested records and collections.A literal key path is checked against the record's fields and gives the value's type; a computed one gives
unknown.
- has(
key: string,
): key is
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"Reports whether
keyis one of the keys this record was defined with.A literal key must name a field; a key typed as
stringis narrowed to the field names.Parameters
keystringThe key to look for.
Returns
key is
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"truewhen the record defines that key, even if its value isnull.
Computes a hash of this record from its contents, the same way Immutable.js does. Equal records have equal hashes; records with equal hashes are not necessarily equal. Plain objects, functions and symbols hash by identity, so a hash is only meaningful within the page that computed it.
Returns
numberAn integer hash.
Reports whether
keyPathresolves, walking nested records and collections.Parameters
keyPathIterable<unknown>The keys to follow, outermost first.
Returns
booleantruewhen every key along the path is present.
Reports whether
otheris a record of the same class holding equal values. Only the two records' own classes are compared; nested records compare asequals()does.Parameters
otherunknownThe value to compare against.
Returns
booleantruewhen both are the same class and every value matches.
Returns a record with the entries of each collection applied in order.
Keys the record was not defined with are ignored.
Returns a record with the entries of each collection merged in, recursing into nested collections and plain objects instead of replacing them.
Keys the record was not defined with are ignored.
Returns a record with each collection merged deeply into the value at
keyPath.Parameters
keyPathIterable<unknown>The keys to follow, outermost first.
...collectionsunknown[]Collections or plain objects to merge into the value there.
Returns
thisA new record, or this one when the value is unchanged.
mergeDeepWith(
merger: (previous: unknown, next: unknown, key: unknown) => unknown,
...collections: (Partial<{ … }> | Iterable<readonly [string, unknown]>)[],
): thisReturns a record with the entries of each collection merged in deeply, calling
mergerwhere a nested value is not a collection to decide the value that is kept.Keys the record was not defined with are ignored.
Parameters
Returns
thisA new record, or this one when no value changed.
Returns a record with each collection merged into the value at
keyPath, one level at a time.Parameters
keyPathIterable<unknown>The keys to follow, outermost first.
...collectionsunknown[]Collections or plain objects to merge into the value there.
Returns
thisA new record, or this one when the value is unchanged.
mergeWith(
merger: <K extends string | number | symbol>(
previous: { … }[K],
next: { … }[K],
key: K,
) => { … }[K],
...collections: (Partial<{ … }> | Iterable<readonly [string, unknown]>)[],
): thisReturns a record with the entries of each collection merged in, calling
mergerfor each key the record already holds to decide the value that is kept.Keys the record was not defined with are ignored.
Parameters
Returns
thisA new record, or this one when no value changed.
remove<K extends keyof { … }>(
key: K & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
),
): thisAn alias for delete.
Type Parameters
Kextends keyof { … }
Parameters
keyK & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
)One of the keys this record was defined with.
Returns
thisA new record, or this one when the value already equals the default.
set<K extends keyof { … }>(
key: K & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
),
value: { … }[K],
): thisReturns a record with
keyset tovalue.Setting a key to the value it already holds returns the same instance, so a record can be compared by reference to detect a change.
Type Parameters
Kextends keyof { … }
Parameters
keyK & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
)One of the keys this record was defined with.
value{ … }[K]
The value to store.
Returns
thisA new record, or this one when the value is unchanged or the key is not defined.
Returns a record with
valuewritten atkeyPath.Parameters
keyPathIterable<unknown>The keys to follow, outermost first.
valueunknownThe value to store.
Returns
thisA new record, or this one when the value is unchanged.
Converts this record and everything nested inside it to plain JavaScript values.
Returns
{ … }
A plain object holding this record's values, converted all the way down.
- Optionalid?: string
- OptionalpdfObjectId?: number | null
- OptionalannotationIds?: string[]
- Optionalname?: string
- Optionallabel?: string
- OptionalreadOnly?: boolean
- Optionalrequired?: boolean
- OptionalnoExport?: boolean
- OptionaladditionalActions?:
| {
onChange?: { script: string } & {
subActions?:
| (
(ActionProperties) & {
subActions?:
| Action<(ActionProperties), (ActionProperties)>[]
| null;
}
)[]
| null;
};
onCalculate?: { script: string } & {
subActions?:
| (
(ActionProperties) & {
subActions?:
| Action<(ActionProperties), (ActionProperties)>[]
| null;
}
)[]
| null;
};
} & {
onFocus?: { script: string } & {
subActions?:
| (
(ActionProperties) & {
subActions?:
| Action<(ActionProperties), (ActionProperties)>[]
| null;
}
)[]
| null;
};
onBlur?: { script: string } & {
subActions?:
| (
(ActionProperties) & {
subActions?:
| Action<(ActionProperties), (ActionProperties)>[]
| null;
}
)[]
| null;
};
onChange?: { script: string } & {
subActions?:
| (
(ActionProperties) & {
subActions?:
| Action<(ActionProperties), (ActionProperties)>[]
| null;
}
)[]
| null;
};
onFormat?: { script: string } & {
subActions?:
| (
(ActionProperties) & {
subActions?:
| Action<(ActionProperties), (ActionProperties)>[]
| null;
}
)[]
| null;
};
onInput?: { script: string } & {
subActions?:
| (
(ActionProperties) & {
subActions?:
| Action<(ActionProperties), (ActionProperties)>[]
| null;
}
)[]
| null;
};
onPointerDown?: { subActions?: NutrientViewer.Actions.Action[]
| null } & {
subActions?: Action<(ActionProperties), (ActionProperties)>[] | null;
};
onPointerUp?: { subActions?: NutrientViewer.Actions.Action[]
| null } & {
subActions?: Action<(ActionProperties), (ActionProperties)>[] | null;
};
onPointerEnter?: { subActions?: NutrientViewer.Actions.Action[]
| null } & {
subActions?: Action<(ActionProperties), (ActionProperties)>[] | null;
};
onPointerLeave?: { subActions?: NutrientViewer.Actions.Action[]
| null } & {
subActions?: Action<(ActionProperties), (ActionProperties)>[] | null;
};
}
| null - Optionalgroup?: string | null
- OptionalisEditable?: boolean
- OptionalisFillable?: boolean
- OptionalisDeletable?: boolean
- OptionalcanSetGroup?: boolean
noToggleToOff: boolean
If true, exactly one radio button must be selected at all times. Clicking the currently selected button has no effect. Otherwise, clicking the selected button deselects it, leaving no button selected.
Default Value
falseradiosInUnison: boolean
If true, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unions: If one is checked, they are all checked (the same behavior as HTML radio buttons). Otherwise, only the checked radio button will be marked checked.
Default Value
true- Readonlyvalue: string | null
The selected form option value, or
nullwhen no option is selected. In order to modify it, instance.setFormFieldValues() should be used. - ReadonlydefaultValue: string
Similar to the
valueproperty. The default values are only used when a form needs to be reset. - Readonlyoptions: { label: string; value: string }[]
A list of NutrientViewer.FormOptions. This is necessary to map the multiple radio button options to their values.
See NutrientViewer.FormOption for more information.
- OptionalReadonlyoptionIndexes?: number[]
Radio buttons and checkboxes can have multiple widgets with the same form value associated, but can be selected independently.
optionIndexescontains the value indexes that should be actually set.If set, the
valuefield doesn't get used, and the widget found at the corresponding indexes in the form field'sannotationIdsproperty are checked.If set on fields other than radio buttons or checkboxes, setting the form value will fail.
An alias for toObject, called by
JSON.stringify.Returns
{ … }
A plain object holding this record's values.
- OptionaladditionalActions?:
| {
onCalculate?: NutrientViewer.Actions.JavaScriptAction;
onChange?: NutrientViewer.Actions.JavaScriptAction;
} & {
onBlur?: NutrientViewer.Actions.JavaScriptAction;
onChange?: NutrientViewer.Actions.JavaScriptAction;
onFocus?: NutrientViewer.Actions.JavaScriptAction;
onFormat?: NutrientViewer.Actions.JavaScriptAction;
onInput?: NutrientViewer.Actions.JavaScriptAction;
onPointerDown?: NutrientViewer.Actions.Action;
onPointerEnter?: NutrientViewer.Actions.Action;
onPointerLeave?: NutrientViewer.Actions.Action;
onPointerUp?: NutrientViewer.Actions.Action;
}
| null - OptionalannotationIds?: NutrientViewer.Immutable.List<string>
- OptionalcanSetGroup?: boolean
- Optionalgroup?: string | null
- Optionalid?: string
- OptionalisDeletable?: boolean
- OptionalisEditable?: boolean
- OptionalisFillable?: boolean
- Optionallabel?: string
- Optionalname?: string
- OptionalnoExport?: boolean
- OptionalpdfObjectId?: number | null
- OptionalreadOnly?: boolean
- Optionalrequired?: boolean
- ReadonlydefaultValue: string
Similar to the
valueproperty. The default values are only used when a form needs to be reset. noToggleToOff: boolean
If true, exactly one radio button must be selected at all times. Clicking the currently selected button has no effect. Otherwise, clicking the selected button deselects it, leaving no button selected.
Default Value
false- OptionalReadonlyoptionIndexes?: NutrientViewer.Immutable.List<number>
Radio buttons and checkboxes can have multiple widgets with the same form value associated, but can be selected independently.
optionIndexescontains the value indexes that should be actually set.If set, the
valuefield doesn't get used, and the widget found at the corresponding indexes in the form field'sannotationIdsproperty are checked.If set on fields other than radio buttons or checkboxes, setting the form value will fail.
- Readonlyoptions: NutrientViewer.Immutable.List<NutrientViewer.FormOption>
A list of NutrientViewer.FormOptions. This is necessary to map the multiple radio button options to their values.
See NutrientViewer.FormOption for more information.
radiosInUnison: boolean
If true, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unions: If one is checked, they are all checked (the same behavior as HTML radio buttons). Otherwise, only the checked radio button will be marked checked.
Default Value
true- Readonlyvalue: string | null
The selected form option value, or
nullwhen no option is selected. In order to modify it, instance.setFormFieldValues() should be used.
Converts this record to a plain object, one level deep. Nested records are left as they are.
Returns
{ … }
A plain object holding this record's values.
- OptionaladditionalActions?:
| {
onCalculate?: NutrientViewer.Actions.JavaScriptAction;
onChange?: NutrientViewer.Actions.JavaScriptAction;
} & {
onBlur?: NutrientViewer.Actions.JavaScriptAction;
onChange?: NutrientViewer.Actions.JavaScriptAction;
onFocus?: NutrientViewer.Actions.JavaScriptAction;
onFormat?: NutrientViewer.Actions.JavaScriptAction;
onInput?: NutrientViewer.Actions.JavaScriptAction;
onPointerDown?: NutrientViewer.Actions.Action;
onPointerEnter?: NutrientViewer.Actions.Action;
onPointerLeave?: NutrientViewer.Actions.Action;
onPointerUp?: NutrientViewer.Actions.Action;
}
| null - OptionalannotationIds?: NutrientViewer.Immutable.List<string>
- OptionalcanSetGroup?: boolean
- Optionalgroup?: string | null
- Optionalid?: string
- OptionalisDeletable?: boolean
- OptionalisEditable?: boolean
- OptionalisFillable?: boolean
- Optionallabel?: string
- Optionalname?: string
- OptionalnoExport?: boolean
- OptionalpdfObjectId?: number | null
- OptionalreadOnly?: boolean
- Optionalrequired?: boolean
- ReadonlydefaultValue: string
Similar to the
valueproperty. The default values are only used when a form needs to be reset. noToggleToOff: boolean
If true, exactly one radio button must be selected at all times. Clicking the currently selected button has no effect. Otherwise, clicking the selected button deselects it, leaving no button selected.
Default Value
false- OptionalReadonlyoptionIndexes?: NutrientViewer.Immutable.List<number>
Radio buttons and checkboxes can have multiple widgets with the same form value associated, but can be selected independently.
optionIndexescontains the value indexes that should be actually set.If set, the
valuefield doesn't get used, and the widget found at the corresponding indexes in the form field'sannotationIdsproperty are checked.If set on fields other than radio buttons or checkboxes, setting the form value will fail.
- Readonlyoptions: NutrientViewer.Immutable.List<NutrientViewer.FormOption>
A list of NutrientViewer.FormOptions. This is necessary to map the multiple radio button options to their values.
See NutrientViewer.FormOption for more information.
radiosInUnison: boolean
If true, a group of radio buttons within a radio button field that use the same value for the on state will turn on and off in unions: If one is checked, they are all checked (the same behavior as HTML radio buttons). Otherwise, only the checked radio button will be marked checked.
Default Value
true- Readonlyvalue: string | null
The selected form option value, or
nullwhen no option is selected. In order to modify it, instance.setFormFieldValues() should be used.
update<K extends keyof { … }>(
key: K & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
),
updater: (value: { … }[K]) => { … }[K],
): thisReturns a record with
keyreplaced by the result of applyingupdaterto its current value.Type Parameters
Kextends keyof { … }
Parameters
keyK & (
| "id"
| "pdfObjectId"
| "annotationIds"
| "name"
| "label"
| "readOnly"
| "required"
| "noExport"
| "additionalActions"
| "group"
| "isEditable"
| "isFillable"
| "isDeletable"
| "canSetGroup"
| "noToggleToOff"
| "radiosInUnison"
| "value"
| "defaultValue"
| "options"
| "optionIndexes"
)One of the keys this record was defined with.
Returns
thisA new record, or this one when the value is unchanged.
- updateIn<N>(
keyPath: Iterable<unknown>,
notSetValue: N,
updater: (value: unknown) => unknown,
): thisReturns a record with the value at
keyPathreplaced by the result ofupdater. Returns a record with the value at
keyPathreplaced by the result ofupdater.Parameters
keyPathIterable<unknown>The keys to follow, outermost first.
updater(value: unknown) => unknownReceives the current value and returns the new one.
Returns
thisA new record, or this one when the value is unchanged.
Applies several changes as one, so only a single new record is allocated.
The record handed to
mutatormay be written to withset; it is frozen again oncemutatorreturns.Parameters
mutator(mutable: this) => unknownReceives a temporarily writable copy of this record.
Returns
thisA new record holding the applied changes, or this one when nothing changed.
A group of radio buttons. Similar to NutrientViewer.FormFields.CheckBoxFormField, but there can only be one value set at the same time.
To retrieve a list of all form fields, use NutrientViewer.Instance#getFormFields.