Skip to content

API reference / Common / Engine types / TextComplexFieldKind

Type Alias: TextComplexFieldKind ​

ts
type TextComplexFieldKind = 
  | "formula"
  | "addIn"
  | "addressBlock"
  | "advance"
  | "ask"
  | "author"
  | "autoNum"
  | "autoNumLegal"
  | "autoNumOutline"
  | "autoText"
  | "autoTextList"
  | "barcode"
  | "bibliography"
  | "citation"
  | "comments"
  | "compare"
  | "control"
  | "createDate"
  | "database"
  | "date"
  | "dde"
  | "ddeAuto"
  | "displayBarcode"
  | "docProperty"
  | "docVariable"
  | "editTime"
  | "embed"
  | "eq"
  | "fileName"
  | "fileSize"
  | "fillIn"
  | "formCheckBox"
  | "formDropDown"
  | "formText"
  | "glossary"
  | "goToButton"
  | "greetingLine"
  | "hyperlink"
  | "if"
  | "import"
  | "include"
  | "includePicture"
  | "includeText"
  | "index"
  | "info"
  | "keywords"
  | "lastSavedBy"
  | "link"
  | "listNum"
  | "macroButton"
  | "mergeBarcode"
  | "mergeField"
  | "mergeRec"
  | "mergeSeq"
  | "next"
  | "nextIf"
  | "noteRef"
  | "numChars"
  | "numPages"
  | "numWords"
  | "page"
  | "pageRef"
  | "print"
  | "printDate"
  | "private"
  | "quote"
  | "referencedDocument"
  | "ref"
  | "revisionNumber"
  | "saveDate"
  | "section"
  | "sectionPages"
  | "seq"
  | "set"
  | "shape"
  | "skipIf"
  | "styleRef"
  | "subject"
  | "subscriber"
  | "symbol"
  | "authorityEntry"
  | "tocEntry"
  | "template"
  | "time"
  | "title"
  | "toa"
  | "toc"
  | "userAddress"
  | "userInitials"
  | "userName"
  | "indexEntry"
  | {
  unknown: {
     keyword: string;
  };
};

What a TextComplexField is — a payload-free tag, and the dispatch key a field pass evaluates on.

One vocabulary, not two: a complex field names itself with a keyword at the head of its instruction ({ PAGEREF _Toc491 \h }), and that is the only way it can. The self-contained elements have a vocabulary of their own and share nothing with this — see TextSimpleFieldKind, which is three variants where this is ninety. Page appears in both, because { PAGE } and w:pgNum really are two systems spelling one field.

The parameters are not here. \h is "hyperlink" and valueless on PAGEREF but "heading separator" and value-taking on INDEX, so switches cannot be interpreted without the keyword — and interpreting them at all is a resolve step at the field pass (ResolvedFieldParameters), not model state. Storing the typed form instead would make malformed-but-real input unrepresentable: { TOC \o "abc" } exists, because people hand-edit field codes. See Text Fields.