Member Junction
    Preparing search index...

    The Cluster view type renderer — a thin IViewRenderer adapter that lets any entity with vectors be visualized as a cluster scatter directly inside mj-entity-viewer, reusing the exact same ClusteringService + mj-cluster-scatter the Knowledge Hub "Visualize" cluster surface uses.

    The host feeds it the standard renderer inputs (entity / records / filterText / config) via setInput, and listens for recordSelected / recordOpened. When the entity or config changes it re-runs the clustering pipeline and rebinds the scatter.

    Why this mirrors the Knowledge Hub resource rather than the server RunClusterAnalysis path: the server analysis returns points keyed only by record ID (so labels render as "Unknown"), produces generic "Cluster N" names, and picks an Entity Document non-deterministically when none is supplied (causing flip-flop "no vectors" results). This renderer instead:

    1. Resolves the entity's first active Entity Document explicitly (deterministic source).
    2. Fetches that document's vectors (with their JSON metadata) via GraphQLAIClient.FetchEntityVectors.
    3. Builds real point labels from the entity's IsNameField fields (buildLabel).
    4. Clusters in-browser via ClusteringService.RunClustering (client owns vectors + labels).
    5. Requests + applies LLM cluster names so clusters read semantically, not "Cluster 1..5".

    Inputs use the camelCase names mandated by the IViewRenderer contract (the host binds them by those exact names), rather than MJ's usual PascalCase for public members.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    Properties

    activeConfig: ClusterViewConfig = ...

    The current parsed config (defaults applied).

    clusters: ClusterInfo[] = []
    configChanged: EventEmitter<Record<string, unknown>> = ...

    Emitted when the renderer mutates its own opaque config (e.g. timeline date field, grid columns/sort/widths, map render mode). The container persists the blob verbatim against the active ViewTypeID and never inspects it. (Container ↔ plug-in coordination inside the Generic layer — NOT a signal that drives the outer app.)

    errorMessage: string = null
    fieldDisplayNames: Record<string, string> = {}

    Map of field names → human-readable display names for the scatter tooltip / detail panel.

    fieldPriority: string[] = []

    Ordered field keys for prioritized display in the scatter tooltip / detail panel.

    filterText: string = null

    Active filter text (for highlighting / client-side concerns).

    isLoading: boolean = false

    Whether the host is currently (re)loading the record set.

    points: ClusterPoint[] = []

    If specified, this provider will be used for communication and for all metadata purposes. By default, if not provided, the Metadata and RunView classes are used for this and the default GraphQLDataProvider is used which is connected to the same back-end MJAPI instance as the Metadata and RunView classes. If you want to have this component connect to a different MJAPI back-end, create an instance of a ProviderBase sub-class like GraphQLDataProvider/etc, and configure it as appropriate to connect to the MJAPI back-end you want to use, and then pass it in here.

    recordOpened: EventEmitter<unknown> = ...

    Emitted when THIS entity's record should be opened (double-click / open). Payload is the raw record. This is a NAVIGATION request — the only category of signal that legitimately bubbles to the outer app (routing lives there). Everything else a view does (export, add-to-list, delete, …) is self-contained in the plug-in via Generic dialogs and never bubbles up.

    records: Record<string, unknown>[] = []

    The view's records — used to map a clicked point back to its record object.

    recordSelected: EventEmitter<unknown> = ...

    Emitted when a record is selected (single click). Payload is the raw record object.

    selectedRecordId: string = null

    Primary-key string of the currently selected record, if any.

    "ɵdir": unknown
    "ɵfac": unknown

    Accessors

    • get ProviderToUse(): IMetadataProvider

      Returns either the default Metadata provider or the one specified in the Provider property, if it was specified

      Returns IMetadataProvider

    • get RunQueryToUse(): IRunQueryProvider

      Returns either the default RunQuery provider or the one specified in the Provider property, if it was specified

      Returns IRunQueryProvider

    • get RunReportToUse(): IRunReportProvider

      Returns either the default RunReport provider or the one specified in the Provider property, if it was specified

      Returns IRunReportProvider

    • get RunViewToUse(): IRunViewProvider

      Returns either the default RunView provider or the one specified in the Provider property, if it was specified

      Returns IRunViewProvider

    Methods

    • A callback method that is invoked immediately after the default change detector has checked the directive's data-bound properties for the first time, and before any of the view or content children have been checked. It is invoked only once when the directive is instantiated.

      Returns void