Member Junction
    Preparing search index...

    AI-aware composer: wraps the generic <mj-message-input-box> (from @memberjunction/ng-composer, which ships zero AI knowledge) and builds the AI trigger plugins in — '@' agent/user mentions, '#' entity/query record mentions, and '/' skill commands — while proxying the input box's full surface (inputs, outputs, and public methods).

    The familiar granular flags live HERE now:

    • EnableAgentMentions (default true) — the '@' trigger
    • EnableEntityMentions (default true) — the '#' trigger
    • EnableSkillCommands (default true) — the '/' trigger plus the pass-through enableMentions master switch.

    The wrapper always runs the inner editor in EXPLICIT provider-list mode (it owns the list; it deliberately does not proxy TriggerProviders / ExcludedTriggerKeys — use the raw <mj-message-input-box> when you need custom providers or discovery mode).

    Index

    Constructors

    Properties

    AcceptedFileTypes: string = 'image/*'
    afterSkillsOpened: EventEmitter<void> = ...

    Use AfterSkillsOpened.

    The same emitter under the old binding name, so a template still binding (afterSkillsOpened) keeps working. Must stay AFTER AfterSkillsOpened: class fields initialise in order, and the other way round this captures undefined.

    AfterSkillsOpened: EventEmitter<void> = ...
    attachmentClicked: EventEmitter<PendingAttachment> = ...

    Use AttachmentClicked.

    The same emitter under the old binding name, so a template still binding (attachmentClicked) keeps working. Must stay AFTER AttachmentClicked: class fields initialise in order, and the other way round this captures undefined.

    AttachmentClicked: EventEmitter<PendingAttachment> = ...
    attachmentError: EventEmitter<string> = ...

    Use AttachmentError.

    The same emitter under the old binding name, so a template still binding (attachmentError) keeps working. Must stay AFTER AttachmentError: class fields initialise in order, and the other way round this captures undefined.

    AttachmentError: EventEmitter<string> = ...
    attachmentsChanged: EventEmitter<PendingAttachment[]> = ...

    Use AttachmentsChanged.

    The same emitter under the old binding name, so a template still binding (attachmentsChanged) keeps working. Must stay AFTER AttachmentsChanged: class fields initialise in order, and the other way round this captures undefined.

    AttachmentsChanged: EventEmitter<PendingAttachment[]> = ...
    beforeSkillsOpened: EventEmitter<BeforeSkillsOpenedEventArgs> = ...

    Use BeforeSkillsOpened.

    The same emitter under the old binding name, so a template still binding (beforeSkillsOpened) keeps working. Must stay AFTER BeforeSkillsOpened: class fields initialise in order, and the other way round this captures undefined.

    BeforeSkillsOpened: EventEmitter<BeforeSkillsOpenedEventArgs> = ...

    Before/After pair for the Skills button, proxied straight through from the input box. Gated on EnableSkillCommands — the button and the keystroke are two doors to the same feature, so one flag governs both rather than letting a composer advertise skills it will not serve.

    Cancel on beforeSkillsOpened vetoes the dropdown; afterSkillsOpened then does not fire.

    blurred: EventEmitter<void> = ...

    Use Blurred.

    The same emitter under the old binding name, so a template still binding (blurred) keeps working. Must stay AFTER Blurred: class fields initialise in order, and the other way round this captures undefined.

    Blurred: EventEmitter<void> = ...

    Composer lost focus — hosts persist drafts on this.

    CanStartRealtime: boolean = true
    CurrentUser?: UserInfo
    Disabled: boolean = false
    EnableAttachments: boolean = true
    EnableMentions: boolean = true

    Master switch for all mention/command triggers (pass-through).

    EnablePlanMode: boolean = false
    EnableRealtime: boolean = false
    MaxAttachments: number = 10
    MaxAttachmentSizeBytes: number = ...
    Placeholder: string = 'Type your message to start a new conversation...'
    PlanModeActive: boolean = false
    planModeToggle: EventEmitter<void> = ...

    Use PlanModeToggle.

    The same emitter under the old binding name, so a template still binding (planModeToggle) keeps working. Must stay AFTER PlanModeToggle: class fields initialise in order, and the other way round this captures undefined.

    PlanModeToggle: EventEmitter<void> = ...
    Provider: IMetadataProvider | null = null

    Optional metadata provider scoping this composer (pass-through to the trigger plugins).

    Rows: number = 3
    SendSlotMode: SendSlotMode = 'send'

    What the send slot is doing; the host decides.

    ShowCharacterCount: boolean = false
    StatusElapsed: string | null = null

    Elapsed time after the status text, kept out of the live region and dropped on narrow screens.

    StatusText: string | null = null

    Status line shown bottom-left inside the box while non-null.

    StopClicked: EventEmitter<void> = ...

    The send slot was clicked in stop mode.

    StopCount: number = 0

    How many things a stop would stop; above 1 the slot reads "Stop all".

    StopLabel: string = 'Stop'

    Tooltip and accessible name of the slot in stop mode.

    textSubmitted: EventEmitter<string> = ...

    Use TextSubmitted.

    The same emitter under the old binding name, so a template still binding (textSubmitted) keeps working. Must stay AFTER TextSubmitted: class fields initialise in order, and the other way round this captures undefined.

    TextSubmitted: EventEmitter<string> = ...
    Value: string = ''
    valueChange: EventEmitter<string> = ...

    Use ValueChange.

    The same emitter under the old binding name, so a template still binding (valueChange) keeps working. Must stay AFTER ValueChange: class fields initialise in order, and the other way round this captures undefined.

    ValueChange: EventEmitter<string> = ...
    VoiceActive: boolean = false
    voiceOptionsRequested: EventEmitter<void> = ...

    Use VoiceOptionsRequested.

    The same emitter under the old binding name, so a template still binding (voiceOptionsRequested) keeps working. Must stay AFTER VoiceOptionsRequested: class fields initialise in order, and the other way round this captures undefined.

    VoiceOptionsRequested: EventEmitter<void> = ...
    voiceRequested: EventEmitter<void> = ...

    Use VoiceRequested.

    The same emitter under the old binding name, so a template still binding (voiceRequested) keeps working. Must stay AFTER VoiceRequested: class fields initialise in order, and the other way round this captures undefined.

    VoiceRequested: EventEmitter<void> = ...

    Accessors

    Methods