API reference / Common / Engine types / TextComplexFieldKind
Type Alias: TextComplexFieldKind
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.