ProtectedbaseThe metadata + caller filters, AND-ed. Subclasses widen this.
Runs after the user picks a row and before the value is written. Return false to cancel the pick — used where choosing a record has a side effect the user should confirm first.
ProtectedbrowseThe empty-query list: the first MaxRows rows in a deliberate order.
Values to prefill when the user creates a new related record from the dropdown's footer.
ProtectedfieldsFields to read per row. Subclasses widen this for a second line or chips.
ProtectedhydrateThe rows for the current query and scope, in the order they should render. Called for the empty query too — that is the browse list the user sees on focus.
ProtectedorderThe filter the browse and search paths apply, so a recent pick outside it stops being offered.
Labels for the scope toggle, or null to hide it. Called before every Lookup so a strategy can decide per field whether a second population is worth offering.
ProtectedsearchRank through the platform search API, then hydrate the winners in search order so the dropdown has display columns. Falls back to a LIKE when search returns nothing — a server with no search index — or when the filter removes every hit it did return.
ProtectedshouldThe search API ranks across every searchable field of the related entity, so it answers only
when the field opted into hybrid ranking AND the user is searching the name field — a column
chosen on the scope pill needs a LIKE on that column. A field metadata marks as Dropdown is a
small reference table the user is meant to read, and a composite key's search result is a
compact key segment rather than a SQL literal to hydrate with an IN list; both take the LIKE path.
The stock lookup: browse by name for the empty query; for a typed one, an escaped
LIKEon the column the user is searching, prefix matches first. The field'sRelatedEntityFilterand the[FKExtraFilter]input apply to both, in SQL.{ SearchMode: 'hybrid' }in[FKLookupOptions]ranks through the platform search API instead and hydrates the winners in search order.Subclass it rather than FKLookupStrategy when an app wants MJ's querying but its own grouping or decoration —
fieldsForandbaseFilterare the hooks for that.