Nutrient Web SDK

Class ChoiceFormField

Base form field type for all form fields that allow multiple choices:

Class

Type Parameters

TDataextends object = object

Constructors

Properties

{ … } | null

Optional actions to execute when an event is triggered.

PropertyDescription
onCalculate

Action to be performed to recalculate the value of a field.

The name of this event in the PDF spec is C.

onChange

Execute an action when the value of the field changes.

The name of this event in the PDF spec is V and can check the new value for validity.

onBlur

Execute an action when the widget loses focus.

The name of this event in the PDF spec is Bl.

onChange

Action to be performed when the user changes the value of the field.

The name of this event in the PDF spec is V.

onFocus

Execute an action when the widget is focused.

The name of this event in the PDF spec is Fo.

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 F.

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 K.

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

null

canSetGroup

OptionalReadonly
boolean

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.

boolean

If true, the new value is committed as soon as a selection is made, without requiring the user to exit the field. Otherwise, the new value is not committed until the user exits the field.

Please note that Instance#getFormFieldValues will not return the latest value for this field until the user leaves this field by default. If you want this value to update on every change then set this to true.

Default Value

false

Similar to the value property. The default values are only used when a form needs to be reset.

group

OptionalReadonly
string | null

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

Readonly
string

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

OptionalReadonly
boolean

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

OptionalReadonly
boolean

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

OptionalReadonly
boolean

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.

label

Readonly
string

Used to identify the form field in the UI or for accessibility.

multiSelect

Readonly
boolean

If true, more than one of the field’s option items may be selected simultaneously. Otherwise, no more than one item at a time may be selected.

Default Value

false

name

Readonly
string

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

Readonly
boolean

Form fields with the noExport flag won't appear in the serialized payload of a form submission.

Default Value

false

options

Readonly

A list of FormOptions. This is necessary for multiple check boxes in a group.

See FormOption for more information.

pdfObjectId

Readonly
number

The object ID of the form field object in the PDF.

readOnly

Readonly
boolean

Read only form fields can not be filled out (similar to disabled HTML input elements).

Default Value

false

required

Readonly
boolean

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

false

values

Readonly

An immutable list of all selected form option values. If no options are defined, a checked check box will have values: List(["Yes"]);.

If the list is empty, no check box is checked.

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

    this

    A new record holding only default values.

  • Returns a record with key reset to the default it was defined with.

    Type Parameters

    K
    extends keyof ({ … } & TData)

    Parameters

    keyK & (
    | "id"
    | "pdfObjectId"
    | "annotationIds"
    | "name"
    | "label"
    | "readOnly"
    | "required"
    | "noExport"
    | "additionalActions"
    | "group"
    | "isEditable"
    | "isFillable"
    | "isDeletable"
    | "canSetGroup"
    | "options"
    | "values"
    | "defaultValues"
    | "multiSelect"
    | "commitOnChange"
    | keyof TData
    )

    One of the keys this record was defined with.

    Returns

    this

    A new record, or this one when the value already equals the default.

  • Returns a record with the value at keyPath removed. 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

    this

    A new record, or this one when nothing was removed.

equals

Deprecated
  • Reports whether other is a record holding the same keys with equal values, whatever its class.

    Parameters

    otherunknown

    The value to compare against.

    Returns

    boolean

    true when 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.

  • 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

    unknown

    The value at that path, or undefined when 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.

    Type Parameters

    N

    Parameters

    keyPathIterable<unknown>

    The keys to follow, outermost first.

    notSetValueN

    Returned when the path does not resolve.

    Returns

    unknown

    The value at that path, or notSetValue.

  • Reports whether key is one of the keys this record was defined with.

    A literal key must name a field; a key typed as string is narrowed to the field names.

    Parameters

    keystring

    The key to look for.

    Returns

    key is
    | "id"
    | "pdfObjectId"
    | "annotationIds"
    | "name"
    | "label"
    | "readOnly"
    | "required"
    | "noExport"
    | "additionalActions"
    | "group"
    | "isEditable"
    | "isFillable"
    | "isDeletable"
    | "canSetGroup"
    | "options"
    | "values"
    | "defaultValues"
    | "multiSelect"
    | "commitOnChange"
    | keyof TData

    true when the record defines that key, even if its value is null.

  • 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

    number

    An integer hash.

  • Reports whether keyPath resolves, walking nested records and collections.

    Parameters

    keyPathIterable<unknown>

    The keys to follow, outermost first.

    Returns

    boolean

    true when every key along the path is present.

  • Reports whether other is a record of the same class holding equal values. Only the two records' own classes are compared; nested records compare as equals() does.

    Parameters

    otherunknown

    The value to compare against.

    Returns

    boolean

    true when both are the same class and every value matches.

  • 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.

    Parameters

    ...collections
    (Partial<{ … } & TData> | Iterable<readonly [string, unknown]>)[]

    Plain objects or key/value iterables to merge in.

    Returns

    this

    A new record, or this one when no value changed.

  • 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

    this

    A new record, or this one when the value is unchanged.

  • Returns a record with the entries of each collection merged in deeply, calling merger where a nested value is not a collection to decide the value that is kept.

    Keys the record was not defined with are ignored.

    Parameters

    merger(previous: unknown, next: unknown, key: unknown) => unknown

    Receives the current value, the incoming value and the key.

    ...collections
    (Partial<{ … } & TData> | Iterable<readonly [string, unknown]>)[]

    Plain objects or key/value iterables to merge in.

    Returns

    this

    A 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

    this

    A new record, or this one when the value is unchanged.

  • An alias for delete.

    Type Parameters

    K
    extends keyof ({ … } & TData)

    Parameters

    keyK & (
    | "id"
    | "pdfObjectId"
    | "annotationIds"
    | "name"
    | "label"
    | "readOnly"
    | "required"
    | "noExport"
    | "additionalActions"
    | "group"
    | "isEditable"
    | "isFillable"
    | "isDeletable"
    | "canSetGroup"
    | "options"
    | "values"
    | "defaultValues"
    | "multiSelect"
    | "commitOnChange"
    | keyof TData
    )

    One of the keys this record was defined with.

    Returns

    this

    A new record, or this one when the value already equals the default.

  • An alias for deleteIn.

    Parameters

    keyPathIterable<unknown>

    The keys to follow, outermost first.

    Returns

    this

    A new record, or this one when nothing was removed.

  • Returns a record with value written at keyPath.

    Parameters

    keyPathIterable<unknown>

    The keys to follow, outermost first.

    valueunknown

    The value to store.

    Returns

    this

    A new record, or this one when the value is unchanged.

  • Converts this record and everything nested inside it to plain JavaScript values.

    Returns

    { … } & TData

    A plain object holding this record's values, converted all the way down.

    • Optional
      id?: string
    • Optional
      pdfObjectId?: number | null
    • Optional
      annotationIds?: string[]
    • Optional
      name?: string
    • Optional
      label?: string
    • Optional
      readOnly?: boolean
    • Optional
      required?: boolean
    • Optional
      noExport?: boolean
    • Optional
      additionalActions?:
          | {
              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
    • Optional
      group?: string | null
    • Optional
      isEditable?: boolean
    • Optional
      isFillable?: boolean
    • Optional
      isDeletable?: boolean
    • Optional
      canSetGroup?: boolean
    • options: { label: string; value: string }[]

      A list of FormOptions. This is necessary for multiple check boxes in a group.

      See FormOption for more information.

    • Readonly
      values: string[]

      An immutable list of all selected form option values. If no options are defined, a checked check box will have values: List(["Yes"]);.

      If the list is empty, no check box is checked.

      In order to modify it, instance.setFormFieldValues() should be used.

    • Readonly
      defaultValues: string[]

      Similar to the value property. The default values are only used when a form needs to be reset.

    • multiSelect: boolean

      If true, more than one of the field’s option items may be selected simultaneously. Otherwise, no more than one item at a time may be selected.

      Default Value

      false
    • commitOnChange: boolean

      If true, the new value is committed as soon as a selection is made, without requiring the user to exit the field. Otherwise, the new value is not committed until the user exits the field.

      Please note that Instance#getFormFieldValues will not return the latest value for this field until the user leaves this field by default. If you want this value to update on every change then set this to true.

      Default Value

      false
  • Returns a record with the value at keyPath replaced by the result of updater.

    Type Parameters

    N

    Parameters

    keyPathIterable<unknown>

    The keys to follow, outermost first.

    notSetValueN
    updater(value: unknown) => unknown

    Receives the current value and returns the new one.

    Returns

    this

    A new record, or this one when the value is unchanged.

  • Returns a record with the value at keyPath replaced by the result of updater.

    Parameters

    keyPathIterable<unknown>

    The keys to follow, outermost first.

    updater(value: unknown) => unknown

    Receives the current value and returns the new one.

    Returns

    this

    A 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 mutator may be written to with set; it is frozen again once mutator returns.

    Parameters

    mutator(mutable: this) => unknown

    Receives a temporarily writable copy of this record.

    Returns

    this

    A new record holding the applied changes, or this one when nothing changed.