Member Junction
    Preparing search index...

    mj-view-workspace — the reusable "browse an entity's data across saved views" workspace.

    This composite component orchestrates the full saved-view lifecycle (select / save / save-as-new / rename / duplicate / delete / revert / quick-save / save-defaults) on top of an entity's data, by composing the existing Generic lego components in this package:

    • ViewSelectorComponent — the saved-view dropdown.
    • EntityViewerComponent — the data renderer (grid / cards / timeline / map / plug-ins).
    • ViewConfigPanelComponent — the slide-in column/sort/filter configuration panel.
    • mj-view-type-switcher — the toolbar dropdown for switching the active view type.
    • mj-quick-save-dialog, mj-duplicate-view-dialog, mj-shared-view-warning-dialog, mj-ev-confirm-dialog — the focused modals.

    It is the generic extraction of what DataExplorerDashboardComponent does today, minus routing, URL/query-param sync, and the Explorer state service. Anything that requires app-level routing is emitted as an event (OpenRecordRequested, OpenViewInTabRequested, CreateNewRecordRequested) for the host to handle — this component never imports Router.

    • When AutoSaveView is true, the workspace persists view CRUD itself via the MJUserViewEntityExtended BaseEntity (.Save() / .Delete()) and UserInfoEngine for the per-user default-view settings, firing the cancelable Before… events and notification After… events around each operation.
    • When AutoSaveView is false (the default), the workspace performs no persistence — it emits the change-request events (SaveViewRequested, DeleteViewRequested, DuplicateViewRequested, etc.) and the host is responsible for persisting and feeding back the updated view via the [SelectedView] input.

    State is held in plain component fields — there is no state-management service.

    <mj-view-workspace
    [EntityName]="'Accounts'"
    [AutoSaveView]="true"
    (OpenRecordRequested)="navService.openRecord($event.entity, $event.record)"
    (OpenViewInTabRequested)="navService.openView($event)"
    (CreateNewRecordRequested)="navService.newRecord($event)">
    </mj-view-workspace>

    Hierarchy (View Summary)

    Implements

    • OnInit
    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    AfterViewDelete: EventEmitter<ViewDeleteOperation> = ...

    Emitted AFTER a view delete has been persisted. Notification only.

    AfterViewSave: EventEmitter<ViewSaveOperation> = ...

    Emitted AFTER a view save has been persisted. Notification only.

    AutoSaveView: boolean = false

    When true, the workspace persists view CRUD itself (BaseEntity .Save()/.Delete() plus UserInfoEngine for the default-view settings) and fires the cancelable Before… / notification After… events around each persistence operation. When false (the default) the workspace only emits the change-request events and the host persists. Persistence is provider-based and generic-safe — it never performs routing.

    BeforeViewDelete: EventEmitter<
        WorkspaceCancelableEvent<MJUserViewEntityExtended>,
    > = ...

    Emitted (cancelable) BEFORE a view delete is persisted. A handler may set Cancel = true to veto. Only fires when AutoSaveView is true.

    BeforeViewSave: EventEmitter<WorkspaceCancelableEvent<ViewSaveOperation>> = ...

    Emitted (cancelable) BEFORE a view save is persisted. A handler may set Cancel = true to veto. Only fires when AutoSaveView is true.

    CreateNewRecordRequested: EventEmitter<EntityInfo> = ...

    Emitted when the user asks to create a new record for the current entity — either from the selector or bubbled up from a plug-in renderer's "New" button. The host opens the form.

    currentGridState: ViewGridState | null = null

    Live grid state (column widths / order / sort / aggregates) reflecting user interaction.

    currentViewEntity: MJUserViewEntityExtended | null = null

    The currently selected view entity (null = the default/unsaved view).

    DataLoaded: EventEmitter<DataLoadedEvent> = ...

    Emitted when the inner viewer finishes loading data — carries counts, timing and the records.

    defaultSaveAsNew: boolean = false

    Whether the config panel opens in "save as new" mode.

    DeleteViewRequested: EventEmitter<MJUserViewEntityExtended> = ...

    Emitted when the user requests a delete and AutoSaveView is false. The host persists.

    duplicateSourceViewName: string = ''

    Source view name shown in the duplicate-view dialog.

    duplicateSummary: ViewConfigSummary | null = null

    Summary shown in the duplicate-view dialog.

    DuplicateViewRequested: EventEmitter<{ newName: string; sourceViewId: string }> = ...

    Emitted when the user requests a duplicate and AutoSaveView is false. The host persists. Carries the source view ID and the chosen name for the copy.

    entityViewerRef?: EntityViewerComponent

    Reference to the entity viewer (for flushing pending grid changes + reloading data).

    filterDialogFields: FilterFieldInfo[] = []

    The filter fields available in the filter dialog.

    filterDialogState: CompositeFilterDescriptor | null = null

    The filter state currently being edited in the filter dialog.

    FilteredCountChanged: EventEmitter<FilteredCountChangedEvent> = ...

    Emitted when the inner viewer's filtered/total counts change.

    filterText: string = ''

    The current free-text filter.

    FilterTextChanged: EventEmitter<string> = ...

    Emitted when the inner viewer's filter text changes (two-way friendly with FilterText).

    isConfigPanelOpen: boolean = false

    Whether the slide-in config panel is open.

    isFilterDialogOpen: boolean = false

    Whether the full-width filter dialog is open.

    isSavingView: boolean = false

    Whether a save operation is in progress (drives the saving spinners).

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

    Records loaded by the viewer, kept for config-panel sample data.

    OpenRecordRequested: EventEmitter<
        { entity: EntityInfo; record: Record<string, unknown> },
    > = ...

    Emitted when the user opens a record (double-click / open). The host performs the navigation.

    OpenRelatedRecordRequested: EventEmitter<ViewRelatedRecordNavigation> = ...

    NAVIGATION request bubbled up from a plug-in renderer (via the inner viewer) to open a related record on a (possibly different) entity — e.g. a grid foreign-key drill-through. The host routes.

    OpenViewInTabRequested: EventEmitter<string> = ...

    Emitted when the user asks to open the current view in its own tab. Carries the MJ: User Views row ID. The host performs the navigation.

    pendingNewViewDescription: string = ''

    Pre-populated description carried from quick-save dialog into the config panel.

    pendingNewViewIsShared: boolean = false

    Pre-populated sharing preference carried from quick-save dialog into the config panel.

    pendingNewViewName: string = ''

    Pre-populated name carried from quick-save dialog into the config panel.

    Provider: IMetadataProvider | null

    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.

    quickSaveSummary: ViewConfigSummary | null = null

    Summary shown in the quick-save dialog.

    RecordSelected: EventEmitter<RecordSelectedEvent> = ...

    Emitted when a record is selected (single click) in the viewer.

    SaveDefaultsRequested: EventEmitter<ViewSaveEvent> = ...

    Emitted when the user saves per-user default view settings and AutoSaveView is false.

    SaveViewRequested: EventEmitter<ViewSaveEvent> = ...

    Emitted when the user requests a save and AutoSaveView is false. The host persists.

    selectedRecordId: string | null = null

    The currently selected record's composite-key string (for grid highlight).

    SelectedViewChange: EventEmitter<MJUserViewEntityExtended | null> = ...

    Two-way-binding companion for SelectedView.

    selectedViewId: string | null = null

    The currently selected view ID (null = default view).

    showDuplicateDialog: boolean = false

    Whether the duplicate-view dialog is open.

    showQuickSaveDialog: boolean = false

    Whether the quick-save dialog is open.

    showSharedViewWarning: boolean = false

    Whether the shared-view warning dialog is open.

    viewConfigPanelRef?: ViewConfigPanelComponent

    Reference to the config panel (for building summaries + canEdit checks).

    ViewerConfig: Partial<EntityViewerConfig> | null = null

    Partial EntityViewerConfig forwarded to the inner viewer (toolbar/pagination/etc.).

    viewModified: boolean = false

    Whether the current view has unsaved modifications.

    ViewSelected: EventEmitter<MJUserViewEntityExtended | null> = ...

    Emitted when the selected view changes (selection, save, delete). Notification only.

    viewSelectorRef?: ViewSelectorComponent

    Reference to the view selector (for reloading the view list after CRUD).

    "ɵ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

    • Export the current view's records via the inner viewer's active renderer. Returns false when the viewer isn't mounted or the active view type doesn't support export. The grid renderer downloads the file itself.

      Parameters

      • Optionalformat: "csv" | "excel" | "json"

      Returns Promise<boolean>

    • Live pagination/sort snapshot from the inner viewer, or null when not mounted.

      Returns
          | {
              CurrentPage: number;
              PageSize: number;
              Sort: SortState
              | null;
              TotalPages: number;
              TotalRecords: number;
          }
          | null